Как удалить пробелы из ввода и сохранить ввод как одну запись

Мое домашнее задание — написать программу, которая принимает пользовательский ввод и добавляет его в список перед возвратом нескольких значений.

Однако в домашнем задании есть оговорка, что если пользователь вводит пробелы до или после записи, он должен ее принять. Я также сталкиваюсь с проблемой, что мои ответы разделяются (ввод 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 проблемы, упомянутые ранее.

Я предположил, что это из-за функции карты, с которой я не знаком, но я использовал ее для преобразования в строки. Как я могу их исправить?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
58
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вы можете привести listAdd к int/float в зависимости от того, что подходит вместо использования карты. Это также будет держать многозначные числа вместе. Если вы вводите несколько чисел, разделенных пробелами или другими символами, вам необходимо сначала разделить их.

listAdd = int(listAdd)

int(' 5') вернет 5 например

или

listAdd = float(listAdd)

float(' 5') вернет 5.0 например

Проблема заключается в том, что вы добавляете строку, взятую из ввода, в список. Когда вы добавляете их вместе с помощью +, он берет каждый элемент строки и добавляет их в список по отдельности. Правильный способ добавить целый элемент в список — метод .append(). Кроме того, когда вы mapint позже в списке, пробелы также удаляются.

При получении ввода используйте int(listAdd), чтобы преобразовать его в целое число, а затем просто добавьте его в массив с помощью функции append. Следовательно,

userName.append(int(listAdd))

Другие вопросы по теме