Python中的循环有两种
for循环和while循环
1.for循环
语法:
for 变量 in 序列:
循环体
说明:
for/in | 关键字;固定写法 |
变量 | 可以是任意变量;一般写一个新的变量 |
序列 | Python中容器型数据类型,例如:字符串、列表、元组、字典、集合、range等 |
冒号 | 固定写法 |
循环体 | 和for保持一个缩进的一条或者多条语句;循环体就是需要重复执行的代码块 |
执行过程:
让变量到序列中取值,一个一个的取值,取完为止,每取一个值执行一次循环体
(for循环的循环次数看序列中元素的个数)
for i in 'python':
print(i, 'hello')
2.range的用法
1) range(N) - 产生 0 - N-1 的数字序列:0,1,2,3,4,...N-1
(N必须是正整数)
2) range(M, N) - 产生M ~ N-1 的数字序列:M,M+1,M+2,...,N-1
(M和N都是整数并且M小于N)
3) range(M, N, step) - step控制每次增加的值(默认是1):M,M+step, M+2*step, ...
for i in range(-100, 0):
print("x:", -i) # 求100到1的数
求和套路:计算1+2+3+…+100的和
num = 0
for i in range(0, 101):
num += i
print(num) #num = 5050
统计个数:统计0-100中能够被3整除的偶数的个数
num = 0
for i in range(101):
if i % 3 == 0 and i % 2 == 0:
num += 1
print(num)
3.while循环
语法:
while 条件语句:
循环体
说明:
while | 关键字;固定写法 |
条件语句 | 除了赋值语句以外的任意表达式 |
冒号 | 固定写法 |
循环体 | 和while保持一个缩进的一条或者多条语句,循环体就是需要重复执行的代码块 |
执行过程:
先判断条件语句是否为True,为True就执行循环,
执行完循环体再判断条件语句是否为True,为True再执行循环体,
…以此类推,直到条件语句的结果为False整个循环就结束。
while 控制次数的套路:
变量 = 0
while 变量 < 5:
需要重复执行的操作
变量 += 1
4.for循环和while的选择
什么时候用for循环:
- 遍历序列(将序列中的元素一个个取出来)
- 循环次数确定
什么时候用while循环: - 死循环
- 循环次数不确定
continue和break只能在循环体中使用
1.continue - 结束一次循环
如果在执行循环体的时候遇到了continue,那么当次循环结束直接进入下次循环
for i in range(5):
print("=====")
continue
print("+++++")
除了能被3整除以外的数
count = 0
for i in range(10):
if i % 3 == 0:
continue
count += 1
print(count)
2.break - 结束整个循环
如果执行循环体的时候遇到break,那么整个循环直接结束
num = 0
sum1 = 0
while True:
sum1 += num
if sum1 > 1000:
break
num += 1
print(num - 1, sum1 - num)
3.while循环的用法
while True:
需要重复执行的操作
if 循环结束的条件:
break
猜数字游戏:
随机产生一个0~100数字: num,用户不断输入数字知道输入的值和产生的睡姿数相等游戏就结束
num = random.randint(0, 100)
count = 0
while True:
num1 = int(input("请输入一个整数(0~100):"))
if num1 == num:
print("恭喜你猜对了!", num1)
break
elif num1 > num:
print("大了,请重新输入", num1)
else:
print("小了,请重新输入", num1)
count += 1
if count == 10:
print("就这?就这?不会吧不会吧,不会真的有人10次都猜不对吧")
break
else
完整的for循环和while循环
for 变量 in 序列:
循环体
else:
代码块
while 条件语句:
循环体
else:
代码块
else不影响原循环的执行; else后面的代码在循环正常结束的时候会执行,
如果循环是因为遇到break而结束的,else后面的代码块就不会执行。
练习:成绩是否及格
score = int(input("请输入成绩:"))
if score >= 60:
print("及格")
else:
print("不及格")