for 循环

怎甘沉沦 提交于 2020-03-08 04:26:27

for循环

for循环与while循环的区别

  1. for循环是可控的,while循环一不小心就会造成死循环
  2. for循环不需要条件,while循环需要条件
# 打印一个列表

hobby_list = ('raeding','wirth','cooking','fishing',1,3,5,7,9) 

count = 0

while count < len(hobby_list):     # 使用的是while循环实现
    print(hobby_list[count])
    count += 1
raeding
wirth
cooking
fishing
1
3
5
7
9
hobby_list = ('raeding','wirth','cooking','fishing',1,3,5,7,9) 

for i in hobby_list:      # 使用for循环实现
    print(i)
raeding
wirth
cooking
fishing
1
3
5
7
9

相较于上面两个代码,我们可以发现while循环实现列表打印比较繁琐,而for循环只需要两行就解决了

for i in range(6):  # 相当于for i in range(0,6)
    print(i)
0
1
2
3
4
5

补充:range()函数顾头不顾尾,意思就是list(range(1,4))相当于list = [1,2,3],没有4

for+break

跳出本层for循环

基本语法

'''
for 条件:
    code1
    code2
    if 条件:
        break  
    
    code3
    ……
    
'''
for i in range(8):
    
    if i == 6:
        break    # 当i = 6 时,跳出for循环
    print(i)
0
1
2
3
4
5

for+continue

基本语法

跳出本次循环,继续进行下面的循环

'''
for 条件:
    code1
    code2
    if 条件:
        continue  
    
    code3
    ……
    
'''
for i in range(5):
    
    if i == 3:
        print(' ')
        continue    # 当i = 3 时,不执行本次循环,然后继续后面的循环
    print(i)
0
1
2
 
4

for……else

定义:如果for循环没有被break掉,则执行else内部代码

for num in 'abcdefghijklmno':
    if num == 'j':
        break
    print(num,end = ' ')
else:
    print('for循环没有被break中断掉')
a b c d e f g h i 

for循环嵌套

在while循环中有嵌套,同样的,for循环同样有嵌套

# 九九乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print(f'{i}*{j}={i*j}',end = ' ')
    print('')
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 

秀一波操作

1. 使用for循环实现loading......

import time

print('loading',end='')

for i in range(20):
    print('.',end='')
    time.sleep(0.8)
loading....................

2. 实现一个登录功能

name = 'hades'
pwd = 'zzp'

function_list = {0: 'reading', 1: 'writing', 2: 'cooking',3:'fishing'}

for count in range(3):
    username = input('>>>usrename: ')
    password = input('>>>password: ')
    re_password = input('>>>re_password: ')

    if username != name or password != pwd:
        print('用户名或密码错误')
    else:
        if password != re_password:
            print('两次密码不一致')
            
        else:
            print('登录成功')
            while True:
                print(f'请选择功能:{function_list}')
                choice = input('>>>choice:')
                if choice == 'q':
                    count = 3
                    print('Logout')
                    break
                choice = int(choice)
                print(f'你已经选择功能:{function_list[choice]}')
>>>usrename: hades
>>>password: zzp
>>>re_password: zzp
登录成功
请选择功能:{0: 'reading', 1: 'writing', 2: 'cooking', 3: 'fishing'}
>>>choice:0
你已经选择功能:reading
请选择功能:{0: 'reading', 1: 'writing', 2: 'cooking', 3: 'fishing'}
>>>choice:3
你已经选择功能:fishing
请选择功能:{0: 'reading', 1: 'writing', 2: 'cooking', 3: 'fishing'}
>>>choice:q
Logout

练习题

1. 打印1-100之间的偶数:

for num in range(1,100):
    if (num % 2) == 0:
        print(num,end = ' ')
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 

2. 猜年龄游戏升级版,有以下三点要求:

1. 允许用户最多尝试3次
2. 每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序
3. 如何猜对了,就直接退出 
age = '35'

print('------------俺们来玩一个猜年龄游戏--------------\n')

guess = 'Y'

while guess == 'Y' or guess == 'y':
    count = 0

    while count < 3:
        guess = input('请输入你猜的年龄:')

        if guess == age:
            print('恭喜你猜对啦,真厉害!\n')
            break

        elif guess < age:
            print('猜小了,不要气馁,再来一次~')

        else:
            print('猜大了,再接再厉,restare~')

        time = 2 - count
        
        if time > 0:
            print(f'你还有{time}次机会哦!')

        else:
            print('Game Over')

        count += 1

    guess = input('是否还想再来一次呢(是请按Y/否请按N):')

print('----------------欢迎下次再来。------------------')
------------俺们来玩一个猜年龄游戏--------------

请输入你猜的年龄:2
猜小了,不要气馁,再来一次~
你还有2次机会哦!
请输入你猜的年龄:35
恭喜你猜对啦,真厉害!

是否还想再来一次呢(是请按Y/否请按N):y
请输入你猜的年龄:34
猜小了,不要气馁,再来一次~
你还有2次机会哦!
请输入你猜的年龄:47
猜大了,再接再厉,restare~
你还有1次机会哦!
请输入你猜的年龄:3
猜小了,不要气馁,再来一次~
Game Over

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