我的作业是制作一个程序,该程序接受用户输入并将其添加到列表中,然后返回几个值。
但是,作业有一项规定,如果用户在输入之前或之后输入空格,则它应该接受。我也遇到了我的答案被拆分的问题(在列表中输入24个puts 2和4)。
def main():
done = False
userNum = []
num = 0
print("Please enter to numbers to find the min/max value, sum, and number of entries.")
while not done:
listAdd = input("Please enter a number. When done press enter: ")
userNum += listAdd
if not listAdd:
break
userNum = list(map(int, userNum))
num += 1
print("Your list is: ", userNum)
print("The amount of numbers entered: ", num)
#max
max = 0
for i in userNum:
if i > max:
max = i
print("Your maximum value of the list is: ", max)
#min
mini = 1
for i in userNum:
if i < mini:
mini = i
print("Your minimum value of the list is: ", mini)
#average
avgList = 0
count = 0
while count < num:
avgList += userNum[count]
count += 1
print("The average value of your function is: ", avgList / num)
代码可以正常运行并返回期望值。我只有前面提到的两个问题。
我认为这是因为我不熟悉map函数,但是我用它来转换为字符串。我该如何解决?
答案 0 :(得分:1)
您可以根据需要将listAdd强制转换为int / float而不是使用map。这还将使多个数字保持在一起。 如果您要输入多个以空格或其他字符分隔的数字,则需要先将它们分开。
main
listAdd = int(listAdd)
例如将返回int(' 5')
或
5
listAdd = float(listAdd)
例如将返回float(' 5')
答案 1 :(得分:0)
问题是当您将从输入中获取的字符串添加到列表中时。当您使用+
将它们添加在一起时,它将获取字符串的每个元素并将它们分别添加到列表中。将整个元素添加到列表的正确方法是.append()
方法。同样,当您在列表的后面map
int
时,空格也会被删除。
答案 2 :(得分:0)
获取输入时,使用int(listAdd)
将其更改为整数,然后使用append
函数将其添加到数组中。因此,
userName.append(int(listAdd))