语法,if,while循环,for循环

半世苍凉 提交于 2020-02-18 19:12:27

一、语法

  • if:

if判断其实是在模拟人做判断。就是说如果这样干什么,如果那样干什么。对于ATM系统而言,则需要判断你的账号密码的正确性。

if 条件:
    代码1
    代码2
    代码3
    ...
# 代码块(同一缩进级别的代码,例如代码1、代码2和代码3是相同缩进的代码,这三个代码组合在一起就是一个代码块,相同缩进的代码会自上而下的运行)

例如:输入姑娘的年龄后,进行以下判断:

  1. 如果姑娘小于18岁,打印“未成年”
  2. 如果姑娘大于18岁小于25岁,打印“表白”

  3. 如果姑娘大于25岁小于45岁,打印“阿姨好”

  4. 如果姑娘大于45岁,打印“奶奶好”

    while 1:
        age=input('请输入女孩的年龄')
        age=int(age)
    
        if age >=45:
            print('奶奶好')
        if age >=25 and age<45:
            print('阿姨好')
        if age >=18 and age<25:
            print('表白')
        if age <18:
            print('未成年')
    
  • if...else:

​ if...else表示if成立代码成立会干什么,else不成立会干什么。

  • if...elif...else

if...elif...else表示if条件1成立干什么,elif条件2成立干什么,elif条件3成立干什么,elif...否则干什么。

例如:成绩评判

  • 如果 成绩>=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('差')

二、while循环

循环就是一个重复的过程,我们人需要重复干一个活,那么计算机也需要重复干一个活。ATM验证失败,那么计算机会让我们再一次输入密码。这个时候就得说出我们的wile循环,while循环又称为条件循环。

  • 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循环')

    username: nick
    password: 123
    login successful
    退出了while循环

  • while+continue

    continue的意思是终止本次循环,直接进入下一次循环。

    continue不能加在循环体的最后一步执行的代码,因为代码加上去毫无意义,如下所示的continue所在的位置就是毫无意义的。

    ps:注意是最后一步执行的代码,而不是最后一行。

  • while循环的嵌套

    ATM密码输入成功还需要进行一系列的命令操作,比如取款,比如转账。并且在执行功能结束后会退出命令操作的功能,即在功能出执行输入q会退出输出功能的while循环并且退出ATM程序。

==例如:猜年龄游戏升级版,有以下三点要求:==

  1. 允许用户最多尝试3次

  2. 每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序

  3. 如果猜对了,就直接退出

    n=0
    age=20
    while n<4:
        guess_age=int(input(f'请输入年龄,你还有{3-n}次机会哦:'))
        if guess_age==age:
            print('猜对了,退出程序')
            break
        else:
            print('猜错了')
            n=n+1
            if n==3:
                a=input('你已经输错了3次,如想继续玩,请输入y或者Y;'
                          '不继续请输入n或者N:')
                while 1:
                    if a=="n"or a=="N":
                        print('不猜了,退出程序')
                        n=4
                        break
                    elif a=='y'or a=='Y':
                        n=0
                        break

三、for循环

字典也有取多个值的需求,字典可能有while循环无法使用了,这个时候可以使用我们的for循环。

for循环的循环次数受限于容器类型的长度,而while循环的循环次数需要自己控制。for循环也可以按照索引取值。

例如:打印1-100之间的偶数:

for i in range(1,101):
    if i%2!=1:
        print(i)
  • for+continue

    for循环调出本次循环,进入下一次循环

  • for+break

    for循环调出本层循环。

  • for循环嵌套

    外层循环循环一次,内层循环循环所有的

    ==例如:打印如下所示9*9乘法表:==

    '''
    1*1=1 
    2*1=2 2*2=4 
    3*1=3 3*2=6 3*3=9 
    4*1=4 4*2=8 4*3=12 4*4=16 
    5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 
    6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
    7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
    8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
    9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 
    '''
    for i in range(1,10):
        for j in range(1,i+1):
            print(f'{i}','*',f'{j}','=',i*j,end=' ')
        print()
  • for+else

    for循环没有break的时候触发else内部代码块。

  • for循环实现loading

    import time
    
    print('Loading', end='')
    for i in range(6):
        print(".", end='')
        time.sleep(0.2)

    loading......

==例如:打印如下所示金字塔:==

'''
             # 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,6):
    current_level=i
    a=5-i
    b=2*i-1
    print(' '*a,'*'*b)
    
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!