1. 基本概念
`continue` 语句用于跳过当前循环的剩余部分,直接进入下一次循环。这在某些情况下非常有用,比如当特定条件满足时,希望跳过某些操作。
2. 基本示例
for i in range(1, 11):
if i % 3 == 0:
continue
print(i, end=' ')
输出:
1 2 4 5 7 8 10
在这个示例中,当 `i` 可以被 3 整除时,`continue` 语句跳过当前循环的剩余部分,进入下一次循环,因此不会打印 `3`, `6`, 和 `9`。
3. 在不同场景中的应用
3.1 跳过负数
假设你有一个列表,其中包含正数和负数,你希望打印所有的正数。
numbers = [-1, 2, -3, 4, -5, 6]
for number in numbers:
if number < 0:
continue
print(number, end=' ')
输出:
2 4 6
3.2 跳过某些特定字符
假设你有一个字符串,想要打印出除了某些特定字符以外的所有字符。
text = "Hello, World!"
for char in text:
if char in ",!":
continue
print(char, end='')
输出:
Hello World
3.3 跳过偶数
假设你想打印1到10之间的奇数。
for i in range(1, 11):
if i % 2 == 0:
continue
print(i, end=' ')
输出:
1 3 5 7 9
4. 嵌套循环中的 `continue`
在嵌套循环中,`continue` 语句只会影响它所在的那一层循环。
for i in range(1, 4):
for j in range(1, 4):
if j == 2:
continue
print(f"i = {i}, j = {j}")
输出:
i = 1, j = 1
i = 1, j = 3
i = 2, j = 1
i = 2, j = 3
i = 3, j = 1
i = 3, j = 3
在这个示例中,当 `j` 等于 2 时,内层循环跳过当次循环,外层循环不受影响。
5. `continue` 结合其他条件
你可以结合多个条件使用 `continue` 语句。例如,跳过所有负数和零的情况。
numbers = [-1, 0, 1, 2, -3, 3, 0, 4]
for number in numbers:
if number <= 0:
continue
print(number, end=' ')
输出:
1 2 3 4
6. 更复杂的条件判断
6.1 结合多个条件
假设你有一个数字列表,想要打印出所有的正数,且这些正数不是3的倍数。
numbers = [-10, -3, 0, 1, 2, 3, 4, 9, 12]
for number in numbers:
if number <= 0 or number % 3 == 0:
continue
print(number, end=' ')
输出:
1 2 4
6.2 忽略特定字符的输入
假设你在处理用户输入的字符串,并希望忽略所有的空白字符和标点符号,只保留字母和数字。
input_string = "Hello, World! 123"
for char in input_string:
if char.isspace() or char in ",!":
continue
print(char, end='')
输出:
HelloWorld123
7. 使用 `continue` 来优化算法
7.1 寻找质数
在寻找质数的过程中,可以使用 `continue` 来跳过非质数的情况,从而提高效率。
for num in range(2, 20):
for i in range(2, num):
if num % i == 0:
break
else:
print(num, end=' ')
输出:
2 3 5 7 11 13 17 19
7.2 跳过不需要处理的文件
假设你在处理一批文件,需要跳过所有的临时文件(文件名以 `~` 开头)。
file_list = ["file1.txt", "~tempfile.txt", "file2.txt", "~backup.txt", "file3.txt"]
for file_name in file_list:
if file_name.startswith("~"):
continue
print(f"Processing {file_name}")
输出:
Processing file1.txt
Processing file2.txt
Processing file3.txt
8. 在生成器中使用 `continue`
生成器在处理大量数据时非常有用,`continue` 可以用于跳过不需要的项。
def filter_numbers():
for num in range(10):
if num % 2 == 0:
continue
yield num
for number in filter_numbers():
print(number, end=' ')
输出:
1 3 5 7 9
9. 与 `try` 块结合使用
在某些情况下,可能需要处理异常,并在发生特定异常时跳过当前循环。
data = ["123", "abc", "456", "def"]
for item in data:
try:
number = int(item)
except ValueError:
continue
print(number, end=' ')
输出:
123 456
10. 忽略特定条件的用户输入
假设你有一个用户输入的列表,并希望忽略所有为空或仅包含空白字符的输入。
user_inputs = ["hello", " ", "", "world", "python", " "]
for user_input in user_inputs:
if not user_input.strip():
continue
print(user_input)
输出:
hello
world
python
11. 在数据清洗中使用 `continue`
在清洗数据时,常常需要跳过不符合条件的数据。
raw_data = ["John,25", "Doe,abc", "Jane,30", "Smith,"]
for entry in raw_data:
parts = entry.split(',')
if len(parts) != 2 or not parts[1].isdigit():
continue
name, age = parts
print(f"Name: {name}, Age: {age}")
输出:
Name: John, Age: 25
Name: Jane, Age: 30
通过这些综合示例,你可以更好地理解和应用 `continue` 语句,以优化代码,提高程序的健壮性和可读性。