Python基础疑问:如何从多行输入构建汽车与价格数组
修正后的代码实现
n = int(input()) cars = [] prices = [] for i in range(n): car_name, price_str = input().split() cars.append(car_name) prices.append(int(price_str)) # 打印所有汽车名称 for car in cars: print(car, end=" ") # 可选:打印所有价格(换行后输出) print() for price in prices: print(price, end=" ")
问题分析与修正点
未初始化存储列表:你原来的代码没有创建空列表来保存每一行的输入值,每次循环只是把当前行的
car和price覆盖成新值,之前的输入数据都丢失了。解决方法是提前声明cars = []和prices = [],每次循环用append()把新元素加入列表。变量赋值与类型转换:
input().split()会返回字符串列表,价格默认是字符串类型,如果你需要数值运算,记得转成int(或float)存入prices列表。错误的打印逻辑:原来的
print(car[i])里,car是最后一次输入的字符串(比如最后一行的"Ford"),car[i]会取字符串的第i个字符,而不是列表中的元素。直接遍历列表for car in cars就能依次输出所有汽车名称,更直观简洁。
测试你的示例输入:
3 Audi 2 BMW 3 Ford 4
输出会是:
Audi BMW Ford 2 3 4
内容的提问来源于stack exchange,提问作者Ann Maria
相关产品推荐
相关产品推荐

