Несколько данных в одном пользовательском вводе - PullRequest
0 голосов
/ 22 апреля 2019

У меня проблема с несколькими номерами в одном пользовательском вводе.Идея состоит в том, чтобы умножить номер каждого пользователя на заранее определенный.Можно ли вообще пройти через?

in1 = input('Enter ')
in2 = 10

def count():
    s = [x*in2 for x in in1]
    print(s)

count()

При таком вводе, как «5 5 5», терминал дал мне следующее:

['5555555555', '          ', '5555555555', '          ', '5555555555']

Ответы [ 2 ]

2 голосов
/ 22 апреля 2019

Поскольку input() обрабатывает его как str, используя split(), чтобы разделить их пробелами, конвертируем каждое str в int и затем умножаем его на in2. Также избегайте использования ключевых слов в качестве имен функций:

in1 = input('Enter ').split()              # ['5', '5', '5']
in2 = 10

def func():
    return [int(x)*in2 for x in in1 if x]

print(func())

OUTPUT :

Enter 5 5 5
[50, 50, 50]
0 голосов
/ 22 апреля 2019

Вы также должны передавать параметры в вашу функцию и возвращать результат:

def multiplyUp(userInput, factor):
    return [int(x) * factor for x in userInput]

in1 = input('Enter ').split()
in2 = 10

print(multiplyUp(in1, in2))

Примечание: код, бесстыдно украденный у @ DirtyBit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...