Python:for循环

168 阅读3分钟

for循环

for ... in ...

这是for循环的固定搭配

for循环相比之下是更为简洁的,格式如下:

for 临时变量 in 序列(容器):        #注意:该临时变量只在循环中使用,是不需要赋值的
    循环体

案例1:

S1 = 'hello'
for i in S1:
    print(i)

结果1:
image.png

解析:变量S1是字符串'hello',一共是五个数据,所以临时变量i是在容器S1中,从第一个元素一直迭代到最后一个元素,一共5个,依次是“h”“e”“l”“l”“o”

案例2:

S1 = 'hello'
for i in S1:
    print(S1)

结果2:

image.png

解析:案例2和案例1输出的对象不一样,案例2中for循环,可以理解为输出S1的次数,而决定次数的多少即是临时变量i在S1中迭代的次数。

range()函数

range()函数:自动生成指定的连续整数数字序列

1. range()第一种用法:

range(num)→num可以是任意数字,但不能不写

range(10)

在这里,printrange(10),是看不到输出内容的,因为range()是一个迭代器,想查看内容需要进行转换。 例如:

print(list(range(10)))   

结果:

image.png

从默认0——9开始,不包含结束值10

2. range()第一种用法:

range(2,8)             
print(list(range(2,8))) 

结果:

image.png

第一个2是开始值,第二个8是结束值,但不包含结束值

3. range()第一种用法:

range(2,10,2)
print(list(range(2,10,2)))

结果:

image.png

第一个2是开始值(包含),第二个10是结束值(不包含),第三个2是间隔长度(步长),间隔长度正负都行,但必须是整数

案例3:使用for循环计算1——100之间所有数字,并求和

sum = 0
for i in range(1,101):
    sum +=i
print(sum)

案例3结果:

5050

解析:由以上看出,使用for循环,大大简化了代码的书写,其中“for i in range(1,101)”充分表现了临时变量i在range中从1一直跌倒到100,相加起来就得到了结果5050

案例4:使用for循环计算1——100之间所偶数之和

sum = 0
for i in range(1,101):
    if i % 2 ==0:
        sum +=i
print(sum)

案例4结果:

2550

for循环的嵌套:

案例5:道歉五天,每天十次

c = 0    #用来计算道歉了一共多少次
for i in range(5):
    for i in range(10):
        print('对不起')
        c +=1
print(c)

案例五结果:

image.png

这里的“for i in range(5):”用来表示先“道歉五天”,所以一共会循环5次,“for i in range(10):”是针对于每一天的循环次数,一天十次,每当输出一次“对不起”,变量c就会加上1,用来计数

for循环和while循环的对比:

while(自定义的条件)→容易进入死循环,一般用于循环次数不确定的时候

例1:找出能被21整除,以及能被51整数的数字,找到时,立马退出循环

num = 51
while True:
    num +=1  #在这里加上可以
    if num %51 ==0 and num %21 ==0:
        print(num)
        break
#    num +=1   这里也加上可以

输出结果:357

解析:这里想得到结果,但不知道要循环多少次才能得到,所以采用了while循环

例2:用来登录,一共五次机会,用完即登陆失败,提前登录就退出循环

for i in range(5):
    acount = input('请输入账号:')
    password = input('请输入密码:')
    if acount == 'GOD' and password == '123456':
        print('登陆成功')
        break
    else:
        print('信息有误')
else:
    print('登陆失败')

结果:

image.png