1.基本运算符
python运算符 | 注意: |
---|---|
1.算数运算符 | + , - , *, / 除 , % 取余 , //地板除(取商) , ** 幂运算 用义:返回一个数值。 |
2.位运算符 | 优先级 (<<或 >> ) > & > ^ > |
3.比较运算符 | == 比较两个值是否相等 != 比较两个值是否不同 只会产生2个结果,要么是True 要么是False #用义:始终返回一个布尔值。 |
4.身份运算符 | is 和 is not 用来判断两个数据的内存地址是否相同 #:每一个变量值都有内存地址 |
5.成员运算符 | in 或 not in 判断某个值是否包含在(或不在)一个容器类型数据当中, 在 字典 当中判断的是键。 nick:判断元素是否在容器类元素里面(字符串) |
6.逻辑运算符 | 优先级 () > not > and > or #: 把多个条件同时叠加 |
7.赋值运算符 | a += 1 => a = a+1 |
优先级 | 算数运算符 > 位运算符 > 比较运算符 > 身份运算符 > 成员运算符 > 逻辑运算符 > 赋值运算符 |
注:优先级最高的 ** 幂运算
优先级最低的 = 赋值运算
() 括号可以提升运算的优先级
身份运算符:
#每一个变量值都有内存地址。
x= 257
y = x
z= 257
print(id(x) == (id(y)))
print(x is y) # is比较的是内存地址
print(x is not y) # is not判断是否不等于
print(not x is y)
print(id(x) == id(z))
print(x is z)
2.流程控制
流程控制:--->控制变量的一个方向。
(1) if 判断
if 判断 if(如果) -->判断。
(1)单项分支结构
if 条件:
代码1
代码2
代码3
...
# 代码块(同一缩进级别的代码,例如代码1、代码2和代码3是相同缩进的代码,这三个代码组合在一起就是一个代码块,相同缩进的代码会自上而下的运行)
列1:# 单分支结构
# name = 'Owen'
# inp = input('name: ')
# if name == inp:
# print('撸起袖子加油干')
# print(1)
if 条件: (:表示你接下来的代码需要缩进) # 条件为True运行缩进内代码;不成立不运行缩进内代码
print('撸起袖子加油干')
code1
code2
code3
code3
代码块
(2)双项分支结构 : if else 判断
if 条件:
code1 条件成立执行code1
else:
code2 条件不成立执行code2
"""
if...else表示if成立代码成立会干什么,else不成立会干什么。
"""
'''
# name = 'bzr'
# s = input('name: ')
# if s == name:
# print('猥琐的班主任')
# else:
# print('英俊的nick老师')
(3)多项分支结构: if elif else的判定。
# 多分支结构
'''
if 条件1:
code1 条件1成立执行code1
elif 条件2:
code2 条件1不成立条件2成立执行code2
elif 条件3:
code3 条件1和2不成立,条件3成立执行code3
elif可以有无限个。。。
coden
else:
code4 所有条件都不成立,执行code4
'''
# : if...elif...else表示if条件1成立干什么,elif条件2成立干什么,elif条件3成立干什么,elif...否则干什么。
'''
height > 130 全票
heigh > 70 and height < 130 半票
height < 70 免票
'''
height = int(input('请输入你的身高:'))
if height > 130:
print('全票')
elif height > 70:
print('半票')
else:
print('免票')
变量/if判断/for循环
if if if 和 if elif else的区别:if :条件为True运行缩进内代码;不成立不运行缩进内代码
if elif else:条件不成立继续往下执行,这样的值有无数个,最后条件始终不成列时,结束命令时,执行else下的条件。
3.流程控制whlie循环的使用
流程控制:控制变量往一个方向变化
循环:重复干一件事。
3.1语法:
循环就是一个重复的过程,我们人需要重复干一个活,那么计算机也需要重复干一个活。如果验证失败,那么计算机会让我们再一次输入密码。这个时候就得说出我们的wile循环,while循环又称为条件循环。
while 条件
code 1
code 2
code 3
...
while True:
print('*1'*100)
print('*2'*100)
列题:# 实现ATM的输入密码重新输入的功能
while True:
user_str = 'Owen'
pwd_str = '123'
inp_user = input('请输入用户名: ')
inp_pwd = input('请输入密码: ')
if inp_user == user_str and pwd_str == inp_pwd:
print('登陆成功')
else:
print('登陆失败')
3.2 while + break的使用
break的意思是终止掉当前层的循环,执行其他代码。
while True:
print('1') # 1
print('2') #
break
print('3') #不打印
上述代码的break毫无意义,循环的目的是为了让计算机和人一样工作,循环处理事情,而他直接打印1和2之后就退出循环了。而我们展示下有意义的while+break代码的组合。
while True:
user_str = 'Owen'
pwd_str = '123'
inp_user = input('请输入用户名: ')
inp_pwd = input('请输入密码: ')
if inp_user == user_str and pwd_str == inp_pwd:
print('登录成功')
break
else:
print('登陆失败')
print('退出了while循环')
#请输入用户名: Owen
#请输入密码: 123
#登陆成功
#退出了while循环
3.3 while + continue的使用:
continue的意思是终止本次循环,直接进入下一次循环
n = 1
while n < 4:
print(n)
n += 1 #1,2,3
n = 1
while n < 10:
if n == 8:
n += 1 # 如果注释这一行,则会进入死循环
continue
print(n)
n += 1 #1,2,3,4,5,6,7,9
continue不能加在循环体的最后一步执行的代码,因为代码加上去毫无意义,如下所示的continue所在的位置就是毫无意义的。ps:注意是最后一步执行的代码,而不是最后一行。
while True:
if 条件1:
code1
code2
code3
...
else:
code1
code2
code3
...
continue
3.4 while循环的嵌套使用。
ATM(制动取存款机)密码输入成功还需要进行一系列的命令操作,比如取款,比如转账。并且在执行功能结束后会退出命令操作的功能,即在功能出执行输 L 会退出输出功能的while循环并且退出ATM程序。
# 退出内层循环的while循环嵌套
while True:
user_str = 'Owen'
pwd_str = '123'
inp_user = input('请输入用户名: ')
inp_pwd = input('请输入密码: ')
if inp_user == user_str and pwd_str == inp_pwd:
print('登陆成功')
while True:
cmd = input('请输入你需要的命令:')
if cmd == 'L':
break
print(f'{cmd} 功能执行')
else:
print('用户名 or 密码 error')
print('退出了while循环')
# 退出双层循环的while循环嵌套
while True:
user_str = 'Owen'
pwd_str = '123'
inp_user = input('请输入用户名: ')
inp_pwd = input('请输入密码: ')
if inp_user == user_str and pwd_str == inp_pwd:
print('登陆成功')
while True:
cmd = input('请输入你需要的命令:')
if cmd == ' L':
break
print(f'{cmd} 功能执行')
break
else:
print('用户名 or 密码 error')
# 打印结果:
print('退出了while循环')
username: Owen
password: 123
登陆成功
请输入你需要的命令:L
退出了while循环
3.5 while + else的使用。
while+else:else会在while没有被break时才会执行else中的代码。
# while+else
n = 1
while n < 3:
print(n)
n += 1
else:
print('else会在while没有被break时才会执行else中的代码')
1
2
else会在while没有被break时才会执行else中的代码