Python For循环详解:轻松掌握Python循环技巧,案例实战,让你的代码更高效,告别循环困境!

嗨,大家好!今天咱们聊聊Python for循环这事儿。说实话,刚开始学编程那会儿,我也被各种循环搞得头大。什么while循环、do-while循环(Python里没这个,哈哈),现在想想,for循环绝对是我的救星,简单粗暴,但又强大无比!

最基本的for循环:遍历序列

你肯定见过这样的代码:

python
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)

这段代码干了啥? 简单啊,它遍历了fruits这个列表,把里面的每个元素(也就是每种水果的名字)依次赋值给变量fruit,然后在循环体里面,我们打印了这个fruit。所以,你会在控制台上看到:

apple
banana
cherry

这就是for循环最基本的功能:遍历一个可迭代对象。啥是可迭代对象? 简单理解,就是能一个一个拿出来的东西,比如列表、元组、字符串、集合、甚至字典(遍历键)等等。

更灵活的range()函数

光遍历列表好像有点不够用啊,比如我想打印1到10的数字怎么办? 难道要手动创建一个[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]的列表吗? 太蠢了吧!

这时候range()函数就派上用场了。它可以生成一个数字序列。

python
for i in range(1, 11): # 注意:range(1, 11)不包含11
print(i)

这段代码会打印出1到10的数字。 range(1, 11)表示生成一个从1开始(包含1),到11结束(不包含11)的数字序列。

range()函数还有更强大的用法:

  • range(n):生成从0到n-1的数字序列。
  • range(start, stop):生成从start到stop-1的数字序列。
  • range(start, stop, step):生成从start开始,到stop-1结束,步长为step的数字序列。

比如,我想打印1到10的奇数:

python
for i in range(1, 11, 2):
print(i)

这里的step是2,所以每次i的值都会增加2。

高级用法:字典的遍历

字典是Python里非常重要的数据结构,那怎么用for循环遍历字典呢?

“`python
my_dict = {“name”: “Alice”, “age”: 30, “city”: “New York”}

遍历键

for key in my_dict:
print(key)

遍历值

for value in my_dict.values():
print(value)

遍历键值对

for key, value in my_dict.items():
print(f”Key: {key}, Value: {value}”)
“`

看明白了吗? my_dict.keys()返回字典的所有键,my_dict.values()返回字典的所有值,my_dict.items()返回字典的所有键值对(以元组的形式)。

更简洁的列表推导式

有时候,我们想用for循环创建一个新的列表,比如,我想把一个列表里的每个数字都平方一下:

“`python
numbers = [1, 2, 3, 4, 5]
squared_numbers = []
for number in numbers:
squared_numbers.append(number ** 2)

print(squared_numbers) # 输出:[1, 4, 9, 16, 25]
“`

这段代码没啥问题,但是有点啰嗦。 Python提供了更简洁的列表推导式:

“`python
numbers = [1, 2, 3, 4, 5]
squared_numbers = [number ** 2 for number in numbers]

print(squared_numbers) # 输出:[1, 4, 9, 16, 25]
“`

一行代码搞定! 列表推导式不仅简洁,而且效率通常也更高。

嵌套循环:处理复杂的数据结构

如果数据结构比较复杂,比如一个列表里面嵌套了多个列表,那就需要用到嵌套循环了。

“`python
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

for row in matrix:
for element in row:
print(element, end=” “) # end=” ” 表示不换行,用空格分隔
print() # 换行
“`

这段代码会打印出一个矩阵:

1 2 3
4 5 6
7 8 9

控制循环:break和continue

有时候,我们想在循环过程中提前结束循环,或者跳过某一次循环,这时候就要用到breakcontinue语句了。

  • break:直接结束整个循环。
  • continue:跳过本次循环,继续下一次循环。

举个例子,我想找到列表中第一个大于5的数字:

“`python
numbers = [1, 3, 5, 7, 9]

for number in numbers:
if number > 5:
print(f”第一个大于5的数字是:{number}”)
break # 找到就结束循环
“`

再比如,我想打印列表中所有的奇数:

“`python
numbers = [1, 2, 3, 4, 5, 6]

for number in numbers:
if number % 2 == 0: # 如果是偶数
continue # 跳过本次循环
print(number)
“`

循环中的else语句

Python的for循环还有一个不太常用的else语句。 这个else语句会在循环正常结束后执行(也就是说,没有被break语句提前结束)。

“`python
numbers = [1, 3, 5, 7, 9]

for number in numbers:
if number % 2 == 0:
print(“列表中有偶数”)
break
else:
print(“列表中没有偶数”)
“`

如果列表中有偶数,那么循环会被break语句提前结束,else语句不会执行。 如果列表中没有偶数,那么循环会正常结束,else语句会执行。

实战案例:数据清洗

假设我们有一个包含一些脏数据的列表,比如,有些字符串是空的,有些字符串包含空格,我们想清洗一下这些数据:

“`python
data = [” apple “, “banana”, “”, ” cherry “, “orange”]

cleaned_data = []
for item in data:
item = item.strip() # 去除字符串两端的空格
if item: # 如果字符串不为空
cleaned_data.append(item)

print(cleaned_data) # 输出:[‘apple’, ‘banana’, ‘cherry’, ‘orange’]
“`

这个例子展示了for循环在数据清洗中的应用。 item.strip()方法可以去除字符串两端的空格,if item:判断字符串是否为空。

总结

Python for循环是编程中最基本、最重要的循环结构之一。 它可以用来遍历各种可迭代对象,进行各种各样的操作。 掌握了for循环,你的Python编程能力会更上一层楼! 希望这篇文章能帮助你更好地理解和使用Python for循环。记住,多练习,多实践,才能真正掌握它!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。