一、与计算机交互

  1. python与用户如何交互?

​ 如:手写一个ATM的登录系统

name = input('请输入你的姓名:')
pwd = input('请输入你的密码:')

print(type(name))
print(type(pwd))

​ 请输入你的姓名:nick
​ 请输入你的密码:123
​ <class 'str'>
​ <class 'str'>

​ 通过打印结果,可以发现input()方法的作用只是接收值,无论我们输入的是数字类型、字符 串 类型、列表类型,input()的接收值都是字符串类型,

​ 我们暂时都是用input()交互,之后会用Web/可视化界面的形式交互。

  1. Python2和Python3的交互

    name = raw_input('请输入你的姓名:')
    pwd = raw_input('请输入你的密码:')
    
    print(type(name))  # 'str'
    print(type(pwd))  # 'str'
    

python2当中的raw_input()和python3中的input()是一样的。

```python
x = input('username: ')  # 必须输入明确的数据类型,你输入什么类型则接收什么数据类型,输入'egon'而不是egon,否则会报错
```

python3的交互相比较于python2应该是 更合理,虽然使用更麻烦了些,因为输入年龄还需要 强制转换,但是如果用python2的input,用户需要知道自己输入的数据是什么类型的,不 方便。

二、格式化输出

  1. 占位符

    如:%s(针对所有数据类型)、%d(仅仅针对数字类型)

    name='jick'
    age=19
    print('My name is %s,my age is %s' %(name,age))
    

    my name is jick ,my name is 19

    age=19
    print('my age is %d' %age)
    

    my age is 19

  2. format格式化

    相比较占位符的方式,python3.6版本新增了f-string格式化的方式,简单易懂,用的比较多。

    • 小写的f:
    name = 'nick'
    age = 19
    print(f'Hello, {name}. You are {age}.')
    

    Hello,nick.You are 19.

    • 大写的F也适用:
    name = 'nick'
    age = 19
    print(F'Hello, {name}. You are {age}.')
    

    Hello, nick. You are 19.

    • 以后会用到的操作:
    age=19
    print(f'{age*2}'')
    

    38

    • ''.2f''代表显示小数点后2位
    salary = 6.6666
    print(f'{salary:.2f}')
    

    6.67

三、基本运算符

  1. 算数运算符

    就是基本的加减乘除。

    • print(1+2)     --->3
      
    • #  /: 有零有整除,得到一个浮点型
      print(10/3)   --->3.333333333333335
      
    • #  //:地板除,只取整数部分
      print(10//3)  ---> 3
      
    • # %:取余
      print(10%3)     --->1
      
    • #  **:幂
      print(10**3)     --->1000
      

    基本运算符-算术运算符.jpg

  2. 比较运算符基本运算符-比较运算符.jpg

    pwd='123'
    print(pwd!='123')     #  false
    print(pwd=='123')     #  true
    
    13=[1,3]
    print(11<13)   # 报错,列表比较大小仅限于同一位置的对应的值是相同的类型
    
  3. 赋值运算符基本运算符-赋值运算符.jpg

    age=19
    age*=2
    print(age)      --->38
    
  4. 逻辑运算符基本运算符-逻辑运算符.jpg

  5. 身份运算符基本运算符-身份运算符.jpg

    身份运算符用于比较两个对象的存储单元。

    is和==的区别:is用于判断两个变量引用对象是否为同一个(是否在同一块内存空间中),

    ==用于判断引用变量的值是否相等。

    x = 257
    y = x
    z = 257
    
    print(f'x is y:{x is y}')
    print(f'x == y:{x == y}')
    
    print(f'x is z:{x is z}')
    print(f'x == z:{x == z}')
    

    x is y:True
    x == y:True
    x is z:False
    x == z:True

    id相同的值一定相同,值相同的id不一定相同,小整数池的除外。

  6. Python运算符优先级!基本运算符-python运算符优先级.jpg

python运算符的优先级相当于数学中的先算乘除再算加减,优先级高的用括号括出来就可以了。

  1. 链式赋值

    a=b=c=d=e=10
    print(f'a:{a},b:{b},c:{c},d:{d},e:{e}')
    

    a:10, b:10, c:10, d:10,e:10

  2. 交叉赋值

    x = 100
    y = 200
    x, y = y,x
    
    print(f'x:{x}')
    print(f'y:{y}')
    

    x:200

    y:100

  3. 解压缩

    如果我们给出一个列表,我们需要一次性取出多个值,我们是不是可以用下面的方式实现呢?

    name_list = ['nick', 'egon', 'jason']
    x = name_list[0]
    y = name_list[1]
    z = name_list[2]
    print(f'x:{x}, y:{y}, z:{z}')
    

    x:nick, y:egon, z:jason

    变量值的解压缩可以这样理解。超市打包是把多个商品放在一起,解压缩其实就是解包把多个商品一次性拿出来。

name_list = ['nick', 'egon', 'jason', ]
x, y, z = name_list
print(f'x:{x}, y:{y}, z:{z}')

x:nick, y:egon, z:jason

有时候我们解压缩的值可能是我们不想要的,那么可以使用下划线,万能的下划线。

name_list = ['nick', 'egon', 'jason', 'tank']
x, y, z, a = name_list
x, _, z, _ = name_list  # _相当于告诉计算机不要了,不能以_开头和结尾

还能有一个只可意会不可言传的操作。

name_list = ['nick', 'egon', 'jason', 'tank', 'kevin', 'jerry']
x, y, _, _, _, z = name_list
x, y, *_, z = name_list

写程序关键是创造价值。python追求的是简洁性,代码不要写的太长了。因此字典也是可以的,但是字典解压缩的是key。

posted on 2019-05-21 18:36  gong^_^  阅读(195)  评论(0编辑  收藏  举报