Python中for循环的用法与常见问题
number=33
for i in range(3):
while i:
guess=int(input(‘Enter an integer :’))
if guess==number:
print(‘Congratulations, you guessed it.’)
print(’(but you do not win any prizes!)’)
break
elif guess<=number-5:
print(‘No, it is a little higher than that’)
elif abs(guess-number)<5:
print(‘很接近了!’)
else:
print(‘No, it is a little lower than that’)
else:
print(‘test’)
print(‘Done’)
------------------------------------------------------------
第一次执行什么参数都没输入为什么会执行>>print(‘test’)
>>print(‘test’)的缩进级别与 while 一致
Python中for循环的用法与常见问题

Python里的for循环是遍历序列(列表、元组、字符串)或可迭代对象的利器,核心是for item in iterable:。新手常见几个坑:
-
遍历时修改列表:这会导致意外跳过元素或错误。比如想删除列表中的偶数:
# 错误示范 numbers = [1, 2, 3, 4, 5] for num in numbers: if num % 2 == 0: numbers.remove(num) # 直接修改原列表,迭代会出问题 print(numbers) # 输出可能是 [1, 3, 5],但也可能出错或结果不对正确做法:遍历副本或使用列表推导式。
# 方法1:遍历副本 numbers = [1, 2, 3, 4, 5] for num in numbers[:]: # 使用切片创建副本 if num % 2 == 0: numbers.remove(num) print(numbers) # 输出 [1, 3, 5] # 方法2:列表推导式(更Pythonic) numbers = [1, 2, 3, 4, 5] numbers = [num for num in numbers if num % 2 != 0] print(numbers) # 输出 [1, 3, 5] -
忘记缩进:Python严格依赖缩进定义循环体,没缩进的代码不会在循环内执行。
# 错误 for i in range(3): print(i) # 会报IndentationError # 正确 for i in range(3): print(i) # 必须缩进 -
混淆
range的用法:range(start, stop, step)生成从start到stop-1的整数。range(5)是0到4,不包括5。 -
需要索引时没用
enumerate:遍历时既要元素又要索引,用enumerate最方便。fruits = ['apple', 'banana', 'cherry'] for index, fruit in enumerate(fruits): print(f"Index {index}: {fruit}") -
遍历字典:直接遍历字典得到的是键。用
.items()同时获取键值对。my_dict = {'a': 1, 'b': 2} for key in my_dict: print(key) # 输出 'a', 'b' for key, value in my_dict.items(): print(key, value) # 输出 'a' 1, 'b' 2
总结:遍历别改原列表,缩进要对,善用enumerate和.items()。
代码不是这样贴的啊。
关键字,循环语句 else,百度下?
难得你还知道补一句
缩进
你让我怎么面向游标卡尺编程
我有百度过,答案都不是我想要的,我把最后一个[else 的缩进级别提升到 for]&[从 1 开始 for]就不会出现这种情况;就是不太明白为什么 0 就会先执行与 while 缩进级别一致的 else
新人哈,不太懂怎么 V2EX 的编辑功能
PS.我连提问后编辑都找不到在哪
建议撤了,重新贴代码
while i 是啥,是 while 1 么?
while 变量 i (字母 i)
明白,谢谢
…
请问如何避免这种 0 与布尔型变量混用,在这个语句中有哪些方法可以实现

