循环
1.for循环
1.语法:
for 变量 in 序列:
循环体
2.说明:
a. for/in - 关键字;固定写法
b. 变量 - 可以是任意变量;一般写一个新的变量
c. 序列 - python中容器型数据类型,例如:字符串、列表、字典、集合、元组、迭代器、生成器、range等;
d. 冒号 - 固定写法
e. 循环体 - 和for保持一个缩进的一条或者多条语句;
循环体就是需要重复执行的代码块
3.执行过程:
让变量去序列中一个一个的取值,取完为止;每取一个值执行一次循环体(循环次数看序列中元素的个数)
range(N) - 产生一个0 ~ N-1 的数字序列:0,1,2,3,…,N-1(N必须是正整数)
range(M, N) - 产生一个M ~ N-1 的数字序列;
range(M,N,step) - 产生一个M ~ N 的步长为step的数字序列(step控制每次增加的值,默认是1);
# 练习:产生一个0 ~ 100内的奇数的序列
for i in range(1, 100, 2):
print(i)
# 练习:产生一个100 ~ 1所有的数字对应的序列
for i in range(100, 0, -1):
print('i:', i)
# 练习:统计1000以内是十位数加上个位数的和等于5的个数
count = 0
for i in range(0, 1001):
if i % 100 // 10 + i % 10 == 5:
count += 1
print('count:', count)
2.while循环
1.语法:
while 条件语句:
循环体
2.说明:
while - 关键字;固定写法
条件语句 - 除了赋值语句意外的任何表达式
冒号 - 固定写法
循环体 - 和while保持一个缩进的一条或者多条语句;
循环体就是需要重复执行的代码块。
3.执行过程:
先判断条件语句是否为True,为True就执行循环体,执行完循环体再判断条件语句是否为True,为True再执行循环体,…以此类推,知 道条件语句为False整个循环就结束
4.while控制次数的套路:
变量 = 0
while 变量 < 次数
需要重复执行的操作
变量 += 1
5.什么时候用for循环:
1)遍历序列(将序列中的元素一个一个取出来)
2)循环次数确定
6.什么时候用while循环
1)死循环
2)循环次数不确定
# 练习:写程序实现不断输入数据,直到输入的内容为0为止
i = 1
while i != '0':
i = input('请输入:')
3.Continue和break
1.continue
如果在执行循环体的时候遇到continue,那么当次循环结束直接进入下次循环
count = 0
for x in range(10):
if x % 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) # 从0开始累加,求总和不超过1000所累加的最后一个数的大小
3.while循环的用法
while True:
需要重复执行的操作
if 循环结束的条件:
break
# 猜数字游戏
# 随机产生一个0 ~ 100的数字:num,用户不断输入数字直到输入的值和产生的随机数相等游戏就结束
import random
num1 = random.randint(0, 100)
print(num1)
num2 = int(input('请猜一个0~100的数字:'))
count = 0
while num2 != num1:
count += 1
if count >= 3:
print('错了,你已经超过三次机会了,game over')
break
if num2 > num1:
print('你是猪吗,太大了')
num2 = int(input('请再猜一个小一点的数字:'))
elif num2 < num1:
print('你是猪吗,太小了')
num2 = int(input('请再猜一个大一点的数字:'))
else:
count += 1
print('牛皮啊,才', count, '次就被你猜中了', sep='')
4.完整的for循环和while循环
for 变量 in 序列:
循环体
else:
代码块
while 条件语句:
循环体
else:
代码块
else不影响原循环的执行;else后面的代码块在循环正常结束的时候会执行,
如果循环因为遇到break而结束的,else后面的代码块就不会执行。(可以用来验证循环体中有没有遇到break)
for i in range(5):
if i == 3:
print('===')
else:
print('结束')
# ===
# 结束
for i in range(5):
if i == 3:
print('===')
break
else:
print('结束')
# ===
补充
三目运算符(三元运算符)
1)C语言中的三目运算符:
表达式1 ? 表达式2 : 表达式3 - 判断表达式1是否为True,如果是整个运算结果是表达式2的结果,否则运算结果是表达式3的结果
result = age > = 18 ? “成年” : “未成年”
2)python中的三目运算符
表达式2 if 表达式1 else 表达式3 - 判断表达式1是否为True,如果是整个运算结果是表达式2的结果,否则运算结果是表达式3的结果
result = “成年” if age > = 18 else “未成年”