用户交互
早期交互银行流程
用户到银行-->客服查验存折-->询问要办理什么业务-->用户存或取-->客服回复操作-->完成操作
现如银行ATM流程
用户到ATM-->ATM查验卡-->显示业务操作-->用户存或取-->ATM完成操作
ATM机器可以全天候工作,而人工客服只能有限工作,可以看出ATM的优势
在python中的交互
输入交互 input
用法 input()
用变量接收输入数据name = input('请输入姓名:') # 里面可以输出提示
input获取到的所有数据同一都会转成字符串
输入交互 print()
用法print()
可以直接输出数据值,也可以输出变量名绑定的数据值,可以同时输出多个数据值,但是需要用逗号隔开
print() print默认结束符为换行符 \n 或 \r\n 参数end 可以指定结束符
print 多个数据默认使用空格隔开,sep参数可以指定参数隔开符
格式化操作
格式化就是体现先定义一些重复或固定的一些语句,方便使用
%s
代码实现为:
name1 = '%s你好'
print(name1 % '张三')
name = '%s你好,%s岁'
print(name % ('张三',18))
多个格式化需要用元组操作
%d
%d,只能接收整数型数据,其他数据类型报错
格式化数字占位符自动补全
运算符
数学运算符
+ - * / %(取余) //(取整) **(密指)
1.简便写法
num = 1
num += 1 # 对应 num = num + 1 加
num -= 1 # 对应 num = num - 1 减
num *= 1 # 对应 num = num * 1 乘
num /= 1 # 对应 num = num / 1 除
num %= 1 # 对应 num = num % 1 取余
num //= 1 # 对应 num = num // 1 取整
==(等于) >=(大于等于) <=(小于等于) !=(不等于) >(大于) <(小于)
1 == 2 # False
1 >= 3 # False
1 <= 4 # True
1 != 2 # True
5 > 4 # True
4 < 2 # False
赋值运算符
链式赋值
age1 = age2 = age3 = '张三'
交叉赋值
num1 = 1
num2 = 88
num1, num2 = num2, num1
解压赋值
num_list = ['zhan', 'wang', 'zhao', 'feng']
'''
解压赋值在使用是一般要左右变量名个数与数据值个数一致
'''
surname1, surname2, surname3 = num_list
surname1 --> 'zhan'
surname2 --> 'wang'
surname3 --> 'zhao'
'''
当需要解压的数据特别多的兵器我们只需要其中的鸡哥那么可以打破以上规则
'''
surname1, *arg = num_list
surname1 --> 'zhan'
arg = ['wang', 'zhao', 'feng'] # 自动接收多余的数据组织成一个新的列表给后面的变量名
'''
当数据值不准备使用的时候可以使用下划线当做变量名进行绑定
'''
surname1, *_, surname2 = num_list
surname1 --> 'zhan'
_ --> ['wang', 'zhao']
surname2 --> 'zhao'
逻辑运算符
and or not
and
1. and
123 and 4>5 # False 条件不成立
' ' and 5>4 # True 条件成立' '空格字符''空字符串代表False
5 > 4 and ' ' # ' ' 条件成立
111 and 666 # 666 条件成立
5 > 3 and 666 and 6 < 8 # True 条件成立、
5 > 3 and 666 and 6 > 8 # False 条件不成立
2. and 逻辑运算符,从左到右顺序依次判断,所有条件同时成立,才为True,否则遇到不成立立即为为False,返回 如果前后两个条件成立,后面为数据值结果就是该数据值,如果是表达式则为布尔
or
1. or
123 or 4 > 5 # 123 条件成立
2 > 3 or 4 < 5 # True 条件成立
0 or [] or 1 # 1 条件成立
2. or 逻辑运算符,有一个条件成立即为True ,同时都为False才为False,
not
取反
not 4>5 # True
"""
三者混合使用的时候有优先级之分 但是我们不需要记忆优先级 应该通过代码的形式提前规定好优先级
eg: 先乘除有加减 但是可以使用括号来改变优先级
(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
"""
成员运算符
判断个体在不在群体内
in
name_list = ['zhangsan', 'lishi', 'wangwu']
print('zhao' in name_list) # False
print('zhangsan' in name_list) # True
# 列表最小单位是元素
name_str = 'zhangsan'
print(z in name_str) # True
print(0 in name_str) # False
# 字符串最小单位是单个字符
person_dict = {
'name': '张三',
'age': 12,
'salary': '1888.8'
}
print('张三' in person_dict) # False
print('name' in person_dict) # True
# 字典只有键参与判断
身份运算符
'''
查看内存地址函数
id(变量名或数据值)
'''
is 判断内存地址是否一样
== 判断值相同
li1 = [12312, 123123, 123123, 1233, 123123]
li2 = li = [12312, 123123, 123123, 1233, 123123]
li1 == li2 # True
li1 is li2 # False
# 小整数池
d1 = 1
d2 = 1
d1 == d2 # True
d1 is d2 # True
python解释器中两个变量同时绑定同一短小型整数数据值,为了减少内存使用,变量名会同时指向同一个内存地址
pycharm IDE工具在python解释器的基础上又进一步优化,可以支持一些短小植复仇
name1 = 'zhang zhang zhang'
name2 = 'zhang zhang zhang'
print(id(name1),id(name2))