用户交互与运算符
用户交互
什么是用户交互?
用户向计算机输入数据,计算机反馈给用户输出结果就是交互
为什么要交互?
让计算机能够和人一样与用户相互沟通交流
如何与用户交互?
获取用户输入
username = input('请输入用户名:')
输出内部数据
print(username)
补充:print
括号内支持多个数据打印,需要用逗号隔开
格式化输出
什么是格式化输出?
字符串中只修改特定的区域,替换掉再输出
为什么要格式化输出?
因为计算机表示的数据不一定适合人来阅读,需要我们把数据去显示成我们需要的格式
如何格式化输出?
通过占位符%s
、 %d
把参数格式化成指定的数据
a = '你好%s!你%s的话费是%s,余额是%s'
print(a % ('kevin', 3, 100, 10))
# 你好kevin!你3的话费是100,余额是10
补充:%s
可以示任意数据占位,%d
只能是数字占位
print('%08d' % 123) # 000000123
# 08代表满足8位不够0补
print('%08d' % 123456789) # 123456789
# 就算数字占位超出规定的,也正常输出数字
基本运算符
算术运算符
乘*
、除/
、 整除//
、 取余%
、 等于==
,和数学计算的符号基本相同
比较运算符
比较运算是对两个值进行比较,返回布尔值True
和False
赋值运算符
增量赋值
x += 100 # x = x + 100
x -= 100 # x = x - 100
x *= 100 # x = x * 100
x /= 100 # x = x / 100
链式赋值
x = 100
y = x
z = x
# 简化
x = y = z = 100
交叉赋值
x = 10
y = 4
# 让x指向y指向的值 让x指向y指向的值
x, y = y ,x
print(x, y) # 4 10
解压赋值(重要)
name_list = ['kevin', 'tony', 'jerry']
name1, name2, name3 = name_list
print(name1, name2, name3)
# kevin tony jerry
⚠️注意:等号左边的变量名个数必须与右面变量值的个数相同,否则会报错。
但是如果只想取其中几个数据,可以用*_
x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
a, b, *_ = x
print(a, b, *_)
# 1 2 3 4 5 6 7 8 9
a, *_, b = x
print(a, *_, b)
# 1 2 3 4 5 6 7 8 9
print(a, b)
# 1 9
print(a, _, b)
# 1 [2, 3, 4, 5, 6, 7, 8] 9
⚠️补充:单独的下划线作为变量名使用,意思是为了符合语法 但是指向的值用不到的情况
逻辑运算符
and 与
用and
连接多个条件,且必须都满足结果返回True
否则False
print(2 > 1 and 1 != 1 and True and 3 > 2)
#False
or 或
用or
连接多个条件,只要有一个条件满足结果返回True
否则False
print(2 > 1 or 1 != 1 or True or 3 > 2)
# True
not 非
将条件翻转,True
变为False
,False
变为True
补充:三者混合使用的时候是有优先级的 但是我们不需要记
应该人为的在编写初期就强制规定好顺序
成员运算符
判断数据是否存在某个(in
或者not in
)
name_list = ['kevin', 'tony', 'jerry']
print('kevin' in name_list)
# True
print('jason' not in name_list)
# True
身份运算符
用于比较两个对象的存储地址是否一致 (is
或者not is
)
x = 10
y = 10
print(x == y)
print(x is y)
print(id(x), id(y))
# True
# True
# 4452014416 4452014416
x = [1, 2, 3, 4, 5]
y = [1, 2, 3, 4, 5]
print(x == y)
print(x is y)
print(id(x), id(y))
# True
# False
# 140382814748744 140382814732168
补充:
is
与==
区别在于is
用于判断两个变量引用对象是否为同一个(同一块内存空间),==
用于判断引用变量的值是否相等。id()
函数是用来获取对象内存地址- 在python中有一个内存优化机制,如果数据内存很小,处于节省内存的考虑,就会将变量都指向同一内存地址,从而达到节省内存的目的