用户交互、运算符
一. 程序与用户交互
1.1 什么是用户交互
用户交互就是人与计算机中input/输入数据,计算机print/输出结果
1.2 如何与用户交互
交互的本质就是输入、输出
1.2.1 输入input
# 在python3中input功能会等待用户的输入,用户输入任何内容,都存成字符串类型,然后赋值给等号左边的变量名
>>> username=input('请输入您的用户名:')
请输入您的用户名:jack # username = "jack"
>>> password=input('请输入您的密码:')
请输入您的密码:123 # password = "123"
# 了解知识:
# 1、在python2中存在一个raw_input功能与python3中的input功能一模一样
# 2、在python2中还存在一个input功能,需要用户输入一个明确的数据类型,输入什么类型就存成什么类型
>>> l=input('输入什么类型就存成什么类型: ')
输入什么类型就存成什么类型: [1,2,3]
>>> type(l)
<type 'list'>
1.2.2 输出print
>>> print('hello world') # 只输出一个值
hello world
>>> print('first','second','third') # 一次性输出多个值,值用逗号隔开
first second third
# 默认print功能有一个end参数,该参数的默认值为"\n"(代表换行),可以将end参数的值改成任意其它字符
print("aaaa",end='')
print("bbbb",end='&')
print("cccc",end='@')
#整体输出结果为:aaaabbbb&cccc@
1.2.3 输出之格式化输出
(1)什么是格式化输出
把一段字符串里面的某些内容替换掉之后再输出,就是格式化输出
(2)如何格式化输出
a、'%s' %()、 '%d' %()等
name = input('your name: ')
age = input('your age: ') #用户输入18,会存成字符串18,无法传给%d
print('My name is %s,my age is %s' %(name,age))
b、'{}'.format()
name = input('your name: ')
age = input('your age: ') #用户输入18,会存成字符串18,无法传给%d
print('My name is {},my age is{}'.format(name,age))
c、f'{}'
name = "momo"
age = 20
print(f'name:{name}, age:{age}')
二、基本运算符
2.1 算数运算符
2.2 比较运算符
2.3 赋值运算符
python语法中除了有=号这种简单的赋值运算外,还支持增量赋值、链式赋值、交叉赋值、解压赋值,这些赋值运算符存在的意义都是为了让我们的代码看起来更加精简
2.3.1 增量赋值
2.3.2链式赋值
>>> x=y=z=10
>>> x,y,z
(10, 10, 10)
2.3.3 交叉赋值
>>> m=10
>>> n=20
>>> m,n=n,m # 交叉赋值
>>> m,n
(20, 10)
2.3.4解压赋值
>>> nums=[11,22,33,44,55]
>>> a,b,c,d,e=nums # nums包含多个值,就好比一个压缩包,解压赋值因此得名
>>> a,b,c,d,e
(11, 22, 33, 44, 55)
注意:上述解压赋值,等号左边的变量名个数必须与右面包含值的个数相同,否则会报错
但如果我们只想取头尾的几个值,可以用*_匹配
>>> a,b,*_=nums
>>> a,b
(11, 22)
>>> *_c,d=nums
>>> c,d
(44, 55)
ps:字符串、字典、元组、集合类型都支持解压赋值
2.4 逻辑运算符
逻辑运算符用于连接多个条件,进行关联判断,会返回布尔值True或False
优先级not>and>or
2.5 成员运算符
2.6 身份运算符
需要强调的是:==双等号比较的是value是否相等,而is比较的是id是否相等
#1. id相同,内存地址必定相同,意味着type和value必定相同
#2. value相同type肯定相同,但id可能不同,如下
>>> x='Info Tony:18'
>>> y='Info Tony:18'
>>> id(x),id(y) # x与y的id不同,但是二者的值相同
(4327422640, 4327422256)
>>> x == y # 等号比较的是value
True
>>> type(x),type(y) # 值相同type肯定相同
(<class 'str'>, <class 'str'>)
>>> x is y # is比较的是id,x与y的值相等但id可以不同
False