Python中如何遍历整数列表?解决int不可迭代报错问题
解决方法
问题出在你处理输入的步骤:int(input(...))会把用户输入的内容转换成单个整数,而单个整数类型确实无法被for循环遍历。你需要把输入转换成整数列表,这样才能正常遍历。
修正后的代码
def get_index_of_smallest(pint): positive_integers = [] for num in pint: if num > 0: positive_integers.append(num) # 原函数名是找最小元素的索引,但你之前返回的是最小值,这里按需调整: # 如果要返回最小值 return min(positive_integers) if positive_integers else None # 如果要返回最小值的索引(匹配原函数名的意图) # return positive_integers.index(min(positive_integers)) if positive_integers else None # 处理输入:把用户输入的空格分隔内容转成整数列表 integers = list(map(int, input("Please enter a bunch of integers: ").split())) result = get_index_of_smallest(integers) print(result)
关键说明
- 输入处理:
input().split()会把用户输入按空格拆分成字符串列表(比如输入"1 3 5 -2"会变成["1","3","5","-2"]),再用map(int, ...)把每个字符串转成整数,最后用list()转成可迭代的整数列表。 - 遍历问题:现在
integers是整数列表,属于可迭代类型,函数里的for循环就能正常遍历每个元素了。 - 边界处理:加了
if positive_integers else None的判断,避免用户输入全是负数或空输入时min()报错。
内容的提问来源于stack exchange,提问作者peterparker
相关产品推荐
相关产品推荐

