if判断,while循环,for循环

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.猜年龄游戏升级版,有以下三点要求:

  1. 允许用户最多尝试3次
  2. 每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序
  3. 如果猜对了,就直接退出
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)

猜你喜欢

转载自www.cnblogs.com/zhoajiahao/p/10908050.html