Мое домашнее задание — написать программу, которая принимает пользовательский ввод и добавляет его в список перед возвратом нескольких значений.
Однако в домашнем задании есть оговорка, что если пользователь вводит пробелы до или после записи, он должен ее принять. Я также сталкиваюсь с проблемой, что мои ответы разделяются (ввод 24 помещает 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)
Код работает нормально и возвращает ожидаемые значения. У меня есть только 2 проблемы, упомянутые ранее.
Я предположил, что это из-за функции карты, с которой я не знаком, но я использовал ее для преобразования в строки. Как я могу их исправить?
Вы можете привести listAdd к int/float в зависимости от того, что подходит вместо использования карты. Это также будет держать многозначные числа вместе. Если вы вводите несколько чисел, разделенных пробелами или другими символами, вам необходимо сначала разделить их.
listAdd = int(listAdd)
int(' 5')
вернет 5
например
или
listAdd = float(listAdd)
float(' 5')
вернет 5.0
например
Проблема заключается в том, что вы добавляете строку, взятую из ввода, в список. Когда вы добавляете их вместе с помощью +
, он берет каждый элемент строки и добавляет их в список по отдельности. Правильный способ добавить целый элемент в список — метод .append()
. Кроме того, когда вы map
int
позже в списке, пробелы также удаляются.
При получении ввода используйте int(listAdd)
, чтобы преобразовать его в целое число, а затем просто добавьте его в массив с помощью функции append
. Следовательно,
userName.append(int(listAdd))