• Python自动化之语法基础


    1 第一个程序 hello world

    在Linux环境下执行 vim hello.py

    #!/usr/bin/env python     #指定解释器
    print("hello world")
    

    运行Python程序

    Python hello.py
    
    1. 第一行是指定解释器,另一种写法是#!/usr/bin/python,后者限制了Python的位置,如果bin目录下没有Python这个解释器就会有问题,最好的写法是上面的写法。
    2. 如果要./hello.py这样执行的话,需要授予755权限,chmod 755 hello.py即可

    2 变量和字符编码

    变量定义规则

    • 变量名只能是 字母、数字或下划线的任意组合
    • 变量名的第一个字符不能是数字
    • 以下关键字不能声明为变量名
    • ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

    变量赋值问题

    name = "me"
    
    name2 = name
    
    print(name,name2)
    
    name = "me_new"
    
    print(name,name2)
    

    执行结果

    me me  
    me_new me  
    

    从上述结果可以看出那么重新赋值name2并没有发生任何变化,那是因为name赋值为name2时,只是把me的内存地址给了name2,所以name2就指向了me,而重新给name赋值后,name的指向变了,但name2的指向还是指向me的内存地址,所以name2的结果还是me。

    3 字符编码

    3.1 Python里面的中文写法

    在Python3下是支持中文的

    print ("你好中国")
    

    Python2的写法

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    print "你好中国"
    

    显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

    **Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 16 = 65536,
    注:此处说的的是最少2个字节,可能更多

    UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

    python如何使用注释
    单行注释 #后面加被注释的内容
    多行注释 可以在每行前面加#或者使用'''被注释的内容'''  

    4 用户输入

    输入名字并打印出来

    #!/usr/bin/env python
    _*_coding:utf-8_*_
    
    name = input("input your name:")
    print(name)
    

    getpass模块初始

    # !/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import getpass
    
    # 将用户输入的内容赋值给 name 变量
    password = getpass.getpass("input password:")
    
    # 打印输入的内容
    print(password)
    

    4.1 3种格式化输出

    第一种%格式化输出

    #!/usr/bin/env python
    #Author:wushipeng
    
    name = input("name:")
    job = input("job:")
    salary = input("salary:")
    
    info ='''
    --------info of %s----------
    name:%s
    job:%s
    salary:%s
    ''' % (name, name, job, salary)
    
    
    info1 ='''
    --------info of {name}----------
    name:{name}
    job:{job}
    salary:{salary}
    '''.format(name=name, job=job, salary=salary)
    

    结果

    name:wu
    job:it
    salary:3000
    
    --------info of wu----------
    name:wu
    job:it
    salary:3000
    

    第二种format格式化输出

    #!/usr/bin/env python
    #Author:wushipeng
    
    name = input("name:")
    job = input("job:")
    salary = input("salary:")
    
    info1 ='''
    --------info of {name}----------
    name:{name}
    job:{job}
    salary:{salary}
    '''.format(name=name, job=job, salary=salary)
    

    结果

    name:wu
    job:it
    salary:3000
    
    --------info of wu----------
    name:wu
    job:it
    salary:3000
    

    第三种format数字代指变量

    #!/usr/bin/env python
    #Author:wushipeng
    
    name = input("name:")
    job = input("job:")
    salary = input("salary:")
    
    info2 = '''
    --------info of {0}----------
    name:{0}
    job:{1}
    salary:{2}
    '''.format(name, job, salary)
    

    结果

    name:wu
    job:it
    salary:3000
    
    --------info of wu----------
    name:wu
    job:it
    salary:3000
    

    getpass可以使输入密码的时候不显示出来

    5 表达式if ... else

    猜年龄案例

    #!/usr/bin/env python
    #_*_coding:utf-8_*_
    
    age = 28
    while True:
        age_new = int(input("input you age:"))
        if age_new > age:
            print("it's bigger than age")
        elif age_new < age:
            print("it's smaller than age")
        else:
            print("you guess it")
        	break
    

    while循环可以让用户一直猜,直到猜出来为止,break直接结束整个循环。与之类似的还有continue,continue是结束本次内循环,进行下一次外循环。

    while实现限制5次,5次之后直接结束

    age = 28
    count = 0
    while True:
    
    age_new = int(input("input you age:"))
    if age_new > age:
        print("it's bigger than age")
    elif age_new < age:
        print("it's smaller than age")
    else:
        print("you guess it")
    
    count += 1
    if count == 5:
        break
    

    6 for循环

    #!/usr/bin/env python
    #_*_coding:utf-8_*_
    
    for i in range(10):
    print(i)
    
    结果:
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    

    猜年龄只限制输入5次

    # !/usr/bin/env python
    # _*_coding:utf-8_*_
    
    age = 28
    for i in range(5):
        age_new = int(input("input you age:"))
        if age_new > age:
            print("it's bigger than age")
        elif age_new < age:
            print("it's smaller than age")
        else:
            print("you guess it")
        break
  • 相关阅读:
    json数据解析转文本方法
    百度HttpV3版本图片识别
    项目用Socket网络框架+Protobuf
    各类数据类型的转换类
    异形按钮点击触发
    通过名字找物体工具
    任意图形工具
    Debug日志可视化
    fread不能读完整个文件
    生产者消费者问题——C++ windows版 多生产者多消费者的队列实现
  • 原文地址:https://www.cnblogs.com/wspblog/p/5708237.html
Copyright © 2020-2023  润新知