Python使用for循环遍历列表实现英寸转厘米的问题求解
问题原因
你在for循环中已经遍历拿到了列表的每个元素i,但调用单位转换函数时依然用固定下标从原列表取值,才会出现重复输出相同结果的问题;另外numbers[0,1,2]属于非法的列表索引写法,运行会直接报错。
修复后代码(简洁写法)
直接使用每次迭代拿到的单个元素做转换即可:
def tomtoCm(add): assert add > 0 return add * 2.54 numbers = [4, 1, 20] def numbersToCm(numbers): for i in numbers: convert = tomtoCm(i) print(convert) numbersToCm(numbers)
运行后输出结果为:
10.16 2.54 50.8
下标索引写法(适配你尝试len、range的场景)
如果需要通过下标操作列表,正确写法如下,效果和上面的代码完全一致:
def tomtoCm(add): assert add > 0 return add * 2.54 numbers = [4, 1, 20] def numbersToCm(numbers): # 生成和列表长度匹配的下标序列 for idx in range(len(numbers)): convert = tomtoCm(numbers[idx]) print(convert) numbersToCm(numbers)
内容的提问来源于stack exchange,提问作者victorialangoe
相关产品推荐
相关产品推荐

