python repeat
1. 介绍
在编程中,循环结构是一种重要的控制结构,它允许我们多次执行相同或类似的代码块。Python中有两种主要的循环结构:while
循环和for
循环。
本文将详细介绍Python中的循环结构,并提供一些实际应用的示例代码。
2. while
循环
while
循环是一种基于条件判断的循环结构。它的基本语法为:
while 条件:
代码块
while
循环的执行过程是这样的:首先,判断条件是否为真。如果条件为真,则执行循环体内的代码块,并再次判断条件。如果条件仍为真,则继续执行循环体,以此类推,直到条件为假时,循环结束。
下面是一个简单的示例,计算从1加到10的和:
sum = 0
num = 1
while num <= 10:
sum += num
num += 1
print("从1加到10的和为:", sum)
输出为:
从1加到10的和为: 55
在这个示例中,变量sum
和num
分别代表累加的和和当前的数值。while
循环通过判断num
是否小于等于10来控制循环的执行。每次循环,将num
的值加到sum
上,并将num
加1。循环结束后,打印出最终的和。
需要注意的是,如果条件一直为真,那么while
循环将会一直执行下去,这就是所谓的无限循环。为了避免进入无限循环,需要在循环体内添加适当的条件判断和控制语句。
3. for
循环
for
循环是一种基于序列的循环结构,它用于遍历一个序列(如列表、元组、字符串等)或其他可迭代对象。它的基本语法为:
for 变量 in 序列:
代码块
for
循环的执行过程是这样的:首先,从序列中取出第一个值,将其赋给变量;然后执行循环体内的代码块;接着从序列中取出下一个值,赋给变量,并再次执行循环体,以此类推,直到序列中的所有值都被遍历完,循环结束。
下面是一个示例,遍历列表中的元素并打印出它们:
fruits = ["apple", "banana", "orange"]
for fruit in fruits:
print(fruit)
输出为:
apple
banana
orange
在这个示例中,变量fruit
依次取得列表fruits
中的每个元素,并执行循环体内的代码块,即打印出对应的水果名称。
需要注意的是,for
循环并不需要像while
循环那样手动控制循环条件,它会自动遍历序列中的所有元素。同时,通过配合其他控制结构(如if...else
语句)和函数的调用,可以实现更加复杂的循环逻辑。
4. break
和continue
语句
在循环结构中,有两个重要的关键字可用于控制循环的执行流程:break
和continue
。
break
语句用于立即终止当前所在的循环,并跳出循环体。如果在while
循环中使用break
,则循环将会完全终止;如果在for
循环中使用break
,则循环将会跳出当前的循环,继续执行后续的代码。
下面是一个示例,利用break
语句找到第一个大于100的数:
numbers = [76, 34, 99, 120, 58, 23, 105]
for number in numbers:
if number > 100:
print("第一个大于100的数是:", number)
break
输出为:
第一个大于100的数是: 120
在这个示例中,循环遍历列表numbers
中的元素。当遇到第一个大于100的数时,打印出该数并使用break
语句终止循环。
continue
语句用于跳过本次循环中剩余的代码,直接进入下一次循环。它可以用于在循环执行过程中忽略某些特定情况,只处理符合条件的情况。
下面是一个示例,输出一个列表中的奇数:
numbers = [2, 5, 10, 7, 4, 9, 6]
for number in numbers:
if number % 2 == 0:
continue
print(number)
输出为:
5
7
9
在这个示例中,循环遍历列表numbers
中的元素。当遇到偶数时,使用continue
语句直接进入下一次循环;当遇到奇数时,打印出该数,并继续执行下一次循环。
5. 循环的嵌套
在Python中,循环可以进行嵌套,即在一个循环的代码块中包含另一个循环。这种嵌套结构可以用于处理更加复杂的问题。
下面是一个示例,使用循环嵌套来打印出九九乘法表:
for i in range(1, 10):
for j in range(1, i+1):
print(i, "*", j, "=", i*j, end="\t")
print()
输出为:
| 1 * 1 = 1 |
| 2 * 1 = 2 | 2 * 2 = 4 |
| 3 * 1 = 3 | 3 * 2 = 6 | 3 * 3 = 9 |
| 4 * 1 = 4 | 4 * 2 = 8 | 4 * 3 = 12 | 4 * 4 = 16 |
| 5 * 1 = 5 | 5 * 2 = 10 | 5 * 3 = 15 | 5 * 4 = 20 | 5 * 5 = 25 |
| 6 * 1 = 6 | 6 * 2 = 12 | 6 * 3 = 18 | 6 * 4 = 24 | 6 * 5 = 30 | 6 * 6 = 36 |
| 7 * 1 = 7 | 7 * 2 = 14 | 7 * 3 = 21 | 7 * 4 = 28 | 7 * 5 = 35 | 7 * 6 = 42 | 7 * 7 = 49 |
| 8 * 1 = 8 | 8 * 2 = 16 | 8 * 3 = 24 | 8 * 4 = 32 | 8 * 5 = 40 | 8 * 6 = 48 | 8 * 7 = 56 | 8 * 8 = 64 |
| 9 * 1 = 9 | 9 * 2 = 18 | 9 * 3 = 27 | 9 * 4 = 36 | 9 * 5 = 45 | 9 * 6 = 54 | 9 * 7 = 63 | 9 * 8 = 72 | 9 * 9 = 81 |
在这个示例中,外层的循环控制乘法表的行数,内层的循环控制每行中的列数。使用嵌套循环,我们可以方便地生成九九乘法表。
6. 应用示例:计算阶乘
循环结构在实际编程中有广泛的应用,下面我们通过一个示例来展示如何使用循环计算一个数的阶乘。
阶乘是指从1乘到某个正整数的连乘结果,用!
表示。例如,5的阶乘记作5!,其结果为5 * 4 * 3 * 2 * 1 = 120。
num = int(input("请输入一个正整数: "))
factorial = 1
if num < 0:
print("抱歉,阶乘只能计算正整数!")
elif num == 0:
print("0的阶乘为1")
else:
for i in range(1, num + 1):
factorial *= i
print(num, "的阶乘为", factorial)
在这个示例中,首先用户输入一个正整数,并将其存储在变量num
中。然后通过一个条件判断语句来处理不同的情况:
- 如果用户输入的数小于0,输出提示信息;
- 如果用户输入的数等于0,输出为1;
- 如果用户输入的数大于0,通过一个
for
循环依次计算从1到num
的乘积,并将结果存储在变量factorial
中,最后输出。
7. 总结
本文介绍了Python中的循环结构,包括while
循环和for
循环,以及如何使用关键字break
和continue
控制循环的执行流程。还展示了循环的嵌套以及一个计算阶乘的示例。
循环结构在编程中具有重要的作用,它能够帮助我们处理重复性任务,简化代码逻辑,并提高代码的可复用性和效率。了解和掌握循环结构的使用,对于进行程序开发和问题解决都是非常有帮助的。