文章详细介绍了Python中的循环结构,包括for循环、while循环以及range()函数的使用方法。
Python提供了很多种循环结构,其中最常用的是for
循环和while
循环。
当我们写代码的时候,有时候需要重复执行同一个或一些指令。例如,如果我们想要编写一个控制机器人踢足球的程序,当机器人持球并且没有进入射门范围时,我们需要一直发出指令让机器人向球门方向移动。在这种情况下,让机器人向球门方向移动是一个需要重复执行的动作,我们可以使用分支结构来判断机器人是否持球以及是否进入射门范围。另一个例子是,如果我们想要在屏幕上每隔1秒钟打印一次“hello, world”,并持续打印一个小时,我们不可能直接将代码print('hello, world')
重复写3600次,这时就需要使用循环结构。
循环结构是程序中控制某个或一些指令重复执行的结构。在Python中,有两种方法来构建循环结构:一种是for-in
循环,另一种是while
循环。
for
循环可以遍历序列(如列表、元组、字符串等)中的每个元素,并对其进行操作。语法如下:
for item in sequence:# 执行操作
item
是序列中的每个元素,sequence
是要遍历的序列。在循环体中,可以对item
进行任何操作。
例如:用for循环实现1~100求和
sum = 0
for x in range(101):sum += x
print(sum)
需要说明的是上面代码中的range(1, 101)
可以用来构造一个从1到100的范围,当我们把这样一个范围放到for-in
循环中,就可以通过前面的循环变量x
依次取出从1到100的整数。当然,range
的用法非常灵活,下面给出了一个例子:
range(101)
:可以用来产生0到100范围的整数,需要注意的是取不到101。range(1, 101)
:可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间。range(1, 101, 2)
:可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值。range(100, 0, -2)
:可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值。我们可以使用for-in
循环来遍历一个可迭代对象,例如字符串和列表。对于字符串,循环变量将依次取到字符串中的每个字符。对于列表,循环变量将依次取到列表中的每个元素。下面是一些例子:
for ch in "hello, world":print(ch)
[1, 2, 3, 4, 5]
while
循环则是在满足条件的情况下反复执行循环体中的语句。语法如下:
while condition:# 执行操作
condition
是循环的条件,只有在满足条件的情况下才会执行循环体中的语句。在循环体中,应该有一些操作可以改变condition
的值,否则循环会一直执行下去,直到程序崩溃或者手动停止。
如果要构造不知道具体循环次数的循环结构,我们推荐使用while
循环。while
循环通过一个能够产生或转换出bool
值的表达式来控制循环,表达式的值为True
则继续循环;表达式的值为False
则结束循环。
下面我们通过一个“猜数字”的小游戏来看看如何使用while
循环。猜数字游戏的规则是:计算机出一个1到100之间的随机数,玩家输入自己猜的数字,计算机给出对应的提示信息(大一点、小一点或猜对了),如果玩家猜中了数字,计算机提示用户一共猜了多少次,游戏结束,否则游戏继续。
import randomanswer = random.randint(1, 100)
counter = 0
while True:counter += 1number = int(input('请输入: '))if number < answer:print('大一点')elif number > answer:print('小一点')else:print('恭喜你猜对了!')break
print('你总共猜了%d次' % counter)
if counter > 7:print('你的智商余额明显不足')
除了for
循环和while
循环,Python还提供了range()
函数,用于生成一个序列。range()
函数有三个参数:起始值、终止值和步长。语法如下:
range(start, stop[, step])
start
是序列的起始值,默认为0;stop
是序列的终止值,但不包括在序列内;step
是序列的步长,默认为1。使用range()
函数可以轻松地生成一个数字序列,再用for
循环进行遍历操作。
免费下载答案源码
提示:素数指的是只能被1和自身整除的大于1的整数。
参考答案:
提示:两个数的最大公约数是两个数的公共因子中最大的那个数;两个数的最小公倍数则是能够同时被两个数整除的最小的那个数。
参考答案:
*
**
***
****
*****
**********
*****
****************
*********
参考答案:
免费下载答案源码