for循环
for ... in ...
这是for循环的固定搭配
for循环相比之下是更为简洁的,格式如下:
for 临时变量 in 序列(容器): #注意:该临时变量只在循环中使用,是不需要赋值的
循环体
案例1:
S1 = 'hello'
for i in S1:
print(i)
结果1:
解析:变量S1是字符串'hello',一共是五个数据,所以临时变量i是在容器S1中,从第一个元素一直迭代到最后一个元素,一共5个,依次是“h”“e”“l”“l”“o”
案例2:
S1 = 'hello'
for i in S1:
print(S1)
结果2:
解析:案例2和案例1输出的对象不一样,案例2中for循环,可以理解为输出S1的次数,而决定次数的多少即是临时变量i在S1中迭代的次数。
range()函数
range()函数:自动生成指定的连续的整数数字序列
1. range()第一种用法:
range(num)→num可以是任意数字,但不能不写
range(10)
在这里,printrange(10),是看不到输出内容的,因为range()是一个迭代器,想查看内容需要进行转换。 例如:
print(list(range(10)))
结果:
从默认0——9开始,不包含结束值10
2. range()第一种用法:
range(2,8)
print(list(range(2,8)))
结果:
第一个2是开始值,第二个8是结束值,但不包含结束值
3. range()第一种用法:
range(2,10,2)
print(list(range(2,10,2)))
结果:
第一个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)
案例五结果:
这里的“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('登陆失败')
结果: