if判断
if判断其实就是让计算机模拟人的判断
if
if 条件:
代码1
代码2
代码3
...
# 代码块(同一缩进级别的代码,例如代码1、代码2和代码3是相同缩进的代码,这三个代码组合在一起就是一个代码块,相同缩进的代码会自上而下的运行)
if...else
if...else表示if成立代码成立会干什么,else不成立会干什么。
if 条件:
代码1
代码2
代码3
...
else:
代码1
代码2
代码3
...
if...elif...else
if...elif...else表示if条件1成立干什么,elif条件2成立干什么,elif条件3成立干什么,elif...否则干什么。
练习1:成绩评判
- 如果 成绩>=90,打印"优秀"
- 如果 成绩>=80 并且 成绩<90,打印"良好"
- 如果 成绩>=70 并且 成绩<80,打印"普通"
- 其他情况:打印"差"
# 成绩评判
score = input("your score: ")
score = int(score)
if score >= 90:
print('优秀')
# elif score >= 80 and score < 90:
elif score >= 80:
print('良好')
# elif score >= 70 and score < 80:
elif score >= 70:
print('普通')
else:
print('差')
if的嵌套
# if的嵌套
cls = 'human'
gender = 'female'
age = 18
is_success = False
if cls == 'human' and gender == 'female' and age > 16 and age < 22:
print('开始表白')
if is_success:
print('那我们一起走吧...')
else:
print('我逗你玩呢')
else:
print('阿姨好')
while循环
循环就是一个重复的过程,我们人需要重复干一个活,那么计算机也需要重复干一个活。
while 条件
code 1
code 2
code 3
...
while+break
break的意思是终止掉当前层的循环,执行其他代码。
while True:
user_db = 'nick'
pwd_db = '123'
inp_user = input('username: ')
inp_pwd = input('password: ')
if inp_user == user_db and pwd_db == inp_pwd:
print('login successful')
break
else:
print('username or password error')
print('退出了while循环')
while+continue
continue的意思是终止本次循环,直接进入下一次循环。
continue不能加在循环体的最后一步执行的代码,因为代码加上去毫无意义
while循环的嵌套
# 退出双层循环的while循环嵌套
while True:
user_db = 'nick'
pwd_db = '123'
inp_user = input('username: ')
inp_pwd = input('password: ')
if inp_user == user_db and pwd_db == inp_pwd:
print('login successful')
while True:
cmd = input('请输入你需要的命令:')
if cmd == 'q':
break
print(f'{cmd} 功能执行')
break
else:
print('username or password error')
print('退出了while循环')
tag控制循环的退出
# tag控制循环退出
tag = True
while tag:
user_db = 'nick'
pwd_db = '123'
inp_user = input('username: ')
inp_pwd = input('password: ')
if inp_user == user_db and pwd_db == inp_pwd:
print('login successful')
while tag:
cmd = input('请输入你需要的命令:')
if cmd == 'q':
tag = False
print(f'{cmd} 功能执行')
else:
print('username or password error')
print('退出了while循环')
while+else
while+else:else会在while没有被break时才会执行else中的代码。
for循环
for循环字典会取出key值
info = {'name': 'nick', 'age': 19}
for item in info:
# 取出info的keys
print(item)
for循环range,包含1但是不包含10
print(list(range(1, 10)))
# for循环按照索引取值
name_list = ['nick', 'jason', 'tank', 'sean']
# for i in range(5): # 5是数的
for i in range(len(name_list)):
print(i, name_list[i])
for+break
for循环调出本层循环
# for+break
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
if name == 'jason':
break
print(name)
for+continue
for循环跳出本次循环,进入下一次循环
# for+continue
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
if name == 'jason':
continue
print(name)
for循环嵌套
# for循环嵌套
for i in range(3):
print(f'-----:{i}')
for j in range(2):
print(f'*****:{j}')
for+else
for循环没有break的时候触发else内部的代码块
# for+else
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
print(name)
else:
print('for循环没有被break中断掉')
练习题
1.猜年龄游戏升级版,有以下三点要求:
- 允许用户最多尝试3次
- 每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序
- 如果猜对了,就直接退出
n=0
age=23
while n<4:
guess_age=int(input(f'请猜年龄,还有{3-n}次机会:'))
if guess_age==age:
print('猜对了!退出程序哦~')
break
else:
print('猜错了!')
n=n+1
if n==3:
conf=input('你猜错了三次,还要继续再猜吗?')
while 1:
if conf=='y' or conf=='Y':
n=0
break
elif conf=='n' or conf=='N':
print('不猜了,退出程序')
n+=1
break
else:
conf=input('输入错误,不继续请输入n或者N,继续请输入y或者Y')
2.打印99乘法表
for i in range(1,10):
for j in range(1,i+1):
print(f"{i},*,{j},=,{i*j}",end=' ')
print()
3.打印如下所示金字塔:
'''
# max_level=5
* # current_level=1,空格数=4,*号数=1
*** # current_level=2,空格数=3,*号数=3
***** # current_level=3,空格数=2,*号数=5
******* # current_level=4,空格数=1,*号数=7
********* # current_level=5,空格数=0,*号数=9
# 数学表达式
空格数 = max_level-current_level
*号数 = 2*current_level-1
'''
max_level=5
for i in range(1,max_level+1):
current_level=i
blank=max_level-current_level
star=2*current_level-1
print(' '*blank,'*'*star)