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
有时候,我们想在循环过程中提前结束循环,或者跳过某一次循环,这时候就要用到break
和continue
语句了。
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循环。记住,多练习,多实践,才能真正掌握它!
评论(0)