循环结构
上一节中我们已经学习过了python当中的分支结构,今天我来给大家隆重介绍我们的循环结构
再将循环结构之前,我想给大家介绍一下关于循环的基础知识
- range(101):可以用来产生0到100范围的整数,需要注意的是取不到101。
- range(1, 101):可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间。
- range(1, 101, 2):可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值。
- range(0, 101, 2):可以用来产生0到100的偶数,其中2是步长,即每次数值递增的值。
- range(100, 0, -2):可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值。
for-in循环
下面给大家带来一个引例:计算1~100求和的结果
思路分析:我们要建立一个初值0,每次循环从1~100里面取一个数,定义一个中间变量进行累加。
"""
计算1到100求和得结果
"""
sum=0#定义一个初值
#从1-100里一次取出一个数
for i in range(1,101):
sum+=i#我们在day1里提到过的复合运算符,sum=sum+i,每次循环sum的值都会发生变化
print(sum)
典例2:代码来实现1~100之间的偶数求和
"""
计算1到100之间的偶数和
version1.0
"""
double_sum=0
for i in range(2,101,2):
double_sum+=i
print(double_sum)
"""
用for循环实现1~100之间的偶数求和
注:这种方法不推荐
"""
sum = 0
for x in range(1, 101):
if x % 2 == 0:
sum += x
print(sum)
给大家一个练手题吧!!!
习题:请用代码实现1~100之间的奇数求和
while循环
如果要构造不知道具体循环次数的循环结构,我们推荐使用while循环。while循环通过一个能够产生bool值的表达式来控制循环,当表达式的值为True时则继续循环,当表达式的值为False时则结束循环
请用代码实现猜数字游戏!
猜数字游戏的规则是:计算机出一个1到100之间的随机数,玩家输入自己猜的数字,计算机给出对应的提示信息(大一点、小一点或猜对了),如果玩家猜中了数字,计算机提示用户一共猜了多少次,游戏结束,否则游戏继续。
"""
猜数字游戏
"""
import random#这里我们导入python内置的随机数包
answer=random.randint(1,100)#在1到100里面产生一个随机整数
count=0#赋初值
while True:
player=int(input('请你输入一个1到100里的整数:'))#因为猜错了还要输入数字,可以判断player应该定义为局部变量
count+=1
if player==answer:
print('猜对了!!')
break###猜对了,就不继续猜了!退出循环
elif player<answer:
print('小一点')
else:
print('大一点')
print('你总共猜了%d次' % count)
if count > 10:
print('你真是个大聪明')
典例:九九乘法口诀表
"""
九九乘法口诀表
"""
for i in range(1, 10):
print('\n')
for j in range(1, i + 1):
print('%d*%d=%d' % (i, j, i * j), end='\t')
练习1:输入一个正整数判断是不是素数。
- 提示:素数指的是只能被1和自身整除的大于1的整数。
"""
判断一个正整数是不是素数。
"""
from math import sqrt
num = int(input('请输入一个正整数: '))
end = int(sqrt(num))
is_prime = True
for x in range(2, end + 1):
if num % x == 0:
is_prime = False
break
if is_prime and num != 1:
print('%d是素数' % num)
else:
print('%d不是素数' % num)
习题:打印如下所示的三角形图案。
*
**
***
****
*****
*
**
***
****
*****
*
***
*****
*******
*********
"""
打印三角形图案
"""
row = int(input('请输入行数: '))
for i in range(row):
for _ in range(i + 1):
print('*', end='')
print()
for i in range(row):
for j in range(row):
if j < row - i - 1:
print(' ', end='')
else:
print('*', end='')
print()
for i in range(row):
for _ in range(row - i - 1):
print(' ', end='')
for _ in range(2 * i + 1):
print('*', end='')
print()
今天是更新的第三天了,希望越努力的人越幸运!!!