gpt4 book ai didi

python - 在循环中更改/添加变量。 (Python 2.7)

转载 作者:行者123 更新时间:2023-12-01 05:10:52 25 4
gpt4 key购买 nike

我对编程真的很陌生,所以我不确定如何表达我的问题。我想要完成的是允许用户输入有关多个项目中的特定项目的属性并将每个值记录到变量中。

例如,汽车。系统将提示用户三个有关汽车的问题:品牌、型号、年份。这个过程将循环直到没有剩余的项目。

这就是我所拥有的:

while True:
answer=raw_input('Is there another car? Y/N')
if answer=Y:
make=raw_input('Car manufacturer?')
model=raw_input('Car Model?')
year=raw_input('Year?')
elif answer=N:
break
else:
print 'Incorrect Response'

我知道代码确实很不稳定,但目标是每次循环通过时,它都会将用户输入记录到一组新变量(例如 make1、model1、year1、make2、model2 等)。这样我就可以在之后编译所有数据,而不会在每次传递时覆盖变量,就像我当前的代码一样。

感谢您的帮助。

最佳答案

为什么不在列表中累积值的元组?这类似于构建结果表,表中的每一行都对应于您的元组。

试试这个:

results = []

while True:
answer=raw_input('Is there another car? Y/N')
if answer == 'Y':
make = raw_input('Car manufacturer?')
model = raw_input('Car Model?')
year = raw_input('Year?')
results.append((make, model, year))
elif answer == 'N':
break
else:
print 'Incorrect Response'
for result in results:
print result

然后您将打印

(make1, model1, year1)
(make2, model2, year2)
... and so on

您可以使用命名元组变得更有趣:

import collections
Car = collections.namedtuple('Car', 'make model year')

results = []

while True:
answer=raw_input('Is there another car? Y/N')
if answer == 'Y':
make = raw_input('Car manufacturer?')
model = raw_input('Car Model?')
year = raw_input('Year?')
results.append(Car(make, model, year))
elif answer == 'N':
break
else:
print 'Incorrect Response'
for car in results:
print car.make, car.model, car.year

命名元组是一个像对象一样具有命名空间的元组,但不会占用 Python 进程的内存。完整对象将属性存储在字典中,这会占用更多内存。

关于python - 在循环中更改/添加变量。 (Python 2.7),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24251936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com