回顾昨天的条件语句的知识,学习今天的循环语句!
昨天内容回顾:
if...else...
if...ifel...else...
本章节将向大家介绍Python的循环语句,程序在一般情况下是按顺序执行的。
编程语言提供了各种控制结构,允许更复杂的执行路径。
循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式:
Python提供了for循环和while循环(在Python中没有do..while循环):
循环类型 | 描述 |
---|---|
while 循环 | 在给定的判断条件为 true 时执行循环体,否则退出循环体。 |
for 循环 | 重复执行语句 |
嵌套循环 | 你可以在while循环体中嵌套for循环 |
1.while循环
"""
案例1:
while 表达式(True或者False):
执行代码
循环词while
表达式2 > 0
循环体print('循环')
"""
while 2 > 0:
print('循环')
print('循环结束')
"""
案例2:猜年龄
如果你猜错了,就继续猜,告诉他猜错了
如果猜对了,就停止
条件语句和循环语句的结合使用
"""
your_age = 25
is_wrong = True
while is_wrong:
guess_age = int(input('請輸入你要猜測的年龄:'))
if guess_age != your_age:
print('猜错了')
else:
print('恭喜猜对了')
is_wrong = False
"""
作业1:使用while循环猜数字
数字是个随机值
你循环猜測一个值,如果大了,打印大了,如果小了,打印小了,如果正确,跳出循环
作业2:
如果猜错>=三次,打印你真笨,别猜了,跳出循环
如果第一次就猜中了,打印你太聪明了,第一次就猜对了
"""
random_num = random.randint(1, 100)
is_wrong = True
while is_wrong:
guess_num = int(input('請輸入你要猜測的数字:'))
if guess_num > random_num:
print('大了')
elif guess_num < random_num:
print('小了')
else:
print('恭喜猜对了')
is_wrong = False
2.for循环
"""
案例3:
for i in 可迭代对象:
执行代码
"""
for i in range(1, 10):
print(i)
pass
"""
案例4:
for i in 可迭代对象:
执行代码
"""
list_name = ['刘德华', '周星驰', '宋小宝', '赵本山', '霍建华']
for name in list_name:
print(name)
3.嵌套循环
for...
while...
循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:
控制语句 | 描述 |
---|---|
break 语句 | 在语句块执行过程中终止循环,并且跳出整个循环 |
continue 语句 | 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。 |
pass 语句 | pass是空语句,是为了保持程序结构的完整性。 |
"""
案例4:
break的使用,语句意思:跳出循环
"""
for i in range(1, 100):
print(i)
if i == 88:
break
"""
案例5:
continue的使用,语句意思:跳出当前循环,继续下一次循环
我们希望让1-99里面的数字+5,并且打印输出;如果遇到偶数,则不变,不用打印
"""
for i in range(1, 100):
if i % 2 == 0:
continue
i += 5
print(i)
案例:
6.阶乘计算。计算1+2!+3!+……10!的结果。
"""
案例6.阶乘计算。计算1+2!+3!+……10!的结果
1.计算一个数字的阶乘如何计算
"""
count = 0
for x in range(1, 11):
count_x = 1
for y in range(1, x + 1):
count_x *= y # count_x =count_x * y
count += count_x
print(count)
作业:
1、求1~100之间能被7整除,但不能同时被5整除的所有整数。
2、求200以内能被17整除的最大正整数。
3、假设一个笼子里总共有鸡、兔30只,脚80只,求鸡、兔各有多少只。
4、编写程序,假设公鸡5元一只,母鸡3元一只,小鸡1元3只,现在有100元钱,想买100只鸡,计算有多少种买法?
5、九九乘法表输出。
6、整数序列求和。用户输入一个正整数N,计算从1到N(包含1和N)相加之后的结果。
最难的作业:
"""
作业4:
打印输出1到100以内的质数
伪码
想要的目的是,经过break的数字不再打印
难点:
for也可以和else结合使用
意思是,如果循环正常退出
简单理解为循环正常结束了,走else,否则碰到break等,不走
"""
for num in range(2, 100):
for i in range(2, num):
if num % i == 0:
break
else:
print(num)