用户交互与运算符
用户交互
什么是用户交互?
用户向计算机输入数据,计算机反馈给用户输出结果就是交互
为什么要交互?
让计算机能够和人一样与用户相互沟通交流
如何与用户交互?
获取用户输入
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 + 100x -= 100 # x = x - 100x *= 100 # x = x * 100x /= 100 # x = x / 100
链式赋值
x = 100y = xz = x# 简化x = y = z = 100
交叉赋值
x = 10y = 4# 让x指向y指向的值 让x指向y指向的值x, y = y ,xprint(x, y) # 4 10
解压赋值(重要)
name_list = ['kevin', 'tony', 'jerry']name1, name2, name3 = name_listprint(name1, name2, name3)# kevin tony jerry
⚠️注意:等号左边的变量名个数必须与右面变量值的个数相同,否则会报错。
但是如果只想取其中几个数据,可以用*_
x = [1, 2, 3, 4, 5, 6, 7, 8, 9]a, b, *_ = xprint(a, b, *_)# 1 2 3 4 5 6 7 8 9a, *_, b = xprint(a, *_, b)# 1 2 3 4 5 6 7 8 9print(a, b)# 1 9print(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)# Trueprint('jason' not in name_list)# True
身份运算符
用于比较两个对象的存储地址是否一致 (is 或者not is)
x = 10y = 10print(x == y)print(x is y)print(id(x), id(y))# True# True# 4452014416 4452014416x = [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中有一个内存优化机制,如果数据内存很小,处于节省内存的考虑,就会将变量都指向同一内存地址,从而达到节省内存的目的
