当前位置: 首页 > 知识库问答 >
问题:

Python 3:使用while True循环在列表上追加整数

越朗
2023-03-14

我正在尝试做以下练习:

任务四

创建一个空列表购买金额用用户输入的项目价格填充列表继续添加到列表中,直到输入“完成”

可以在正确时使用:带中断

打印购买金额

以下是我目前掌握的代码:

#[ ] complete the Register Input task above
purchase_amounts=[]
purchase_amounts.append(input("Enter the prices: "))
while True:
    if input("Enter the prices: ") != "done":
        purchase_amounts.append(input("Enter the prices: "))
    else:
        break
print(purchase_amounts)

但它给了我一个非常奇怪的输出,如下所示:

输入价格:2222222

输入价格:1

输入价格: 2

输入价格:3

输入价格:完成

输入价格:完成

['2222222','2','完成']

有人知道为什么它会覆盖第二、第四和第五个输入,而不会将值添加到列表中吗?非常感谢!

共有3个答案

鲜于煜祺
2023-03-14
purchase_amounts=[]
while True:
    a=input("Enter price of Items :")
    if a=='Done':
        break
    else:
        purchase_amounts.append(a)

print(purchase_amounts)
宋高谊
2023-03-14

您有2个输入(),但实际上只使用一个。查看评论:

while True:
    if input("Enter the prices: ") != "done":                   #Here you only compare the input with "done" but you don't do anything with it
        purchase_amounts.append(input("Enter the prices: "))    #here you ask for a second input

您只能要求输入一次,并将其保留在变量中:

while True:
    value_input = input("Enter the prices: ")
    if value_input != "done":                   
        purchase_amounts.append(value_input)    
    else:
        break

PS:您可能想将字符串转换为int,不是吗?

都才俊
2023-03-14

你输入的次数太多了。

通过调用input()

purchase_amounts=[]
while True:
    user_input = input("Enter the prices: ")
    if user_input != "done":
        purchase_amounts.append(float(user_input))
    else:
        break
print(purchase_amounts)

输出:

Enter the prices: 12
Enter the prices: 13
Enter the prices: done
[12, 13]

 类似资料:
  • 我有一个两个项目的列表,每个项目是一个文本字符串。我想围绕这两个项目循环,如果一个单词不在一组单词中,则基本上删除它。但是,下面的代码将所有单词放在一起,而不是创建两个单独的项。我希望我的更新列表包含两个项目,每个原始项目对应一个im更新:

  • 我有一个具有字段is和is_searchable data has的列表

  • 问题内容: 我是一名基本的python程序员,因此希望我的问题的答案会很容易。我正在尝试拿字典并将其附加到列表中。然后,字典更改值,然后再次循环添加。似乎每次执行此操作时,列表中的所有词典都会更改其值以匹配刚刚添加的值。例如: 我认为结果是,但是我得到了: 任何帮助是极大的赞赏。 问题答案: 您需要追加一个 副本 ,否则您将一遍又一遍地添加对同一词典的引用: 我用和代替和; 您不想掩盖内置类型。

  • 我试图通过循环元素,然后通过分页单击来获得链接列表。我不确定如何在熊猫数据帧中的每个循环经过下面显示的分页后追加,这样我就可以在循环之外调用数据帧来列出所有的链接。 它总是覆盖并打印出最后一行。

  • 我是这里的一个新的python用户。我一直在写一个代码,使用selenium和beautiful soup去一个网站,得到html表,并把它变成一个数据帧。 state_list=[] df=pd.dataframe() 对于状态中的状态:driver=webdriver.chrome(executable_path='c://webdrivers/chromedriver.exe')driver

  • 问题内容: for (String fruit : list) { if(“banane”.equals(fruit)) list.remove(fruit); System.out.println(fruit); } 这是一个带有删除指令的循环。在执行时,我在控制台输出下得到一些ConcurrentModificationException: 问题:如何使用循环删除某些元素? 问题答案: 您需要