Как я могу получить необработанный ввод только из одной строки? - PullRequest
0 голосов
/ 03 апреля 2019

Я хочу набрать ввод с клавиатуры в PowerShell следующим образом: 1 2 3 4, но если я наберу его так, он покажет:

Traceback (most recent call last):
  File "iqtest.py", line 7, in <module>
    l.append(int(raw_input()))
ValueError: invalid literal for int() with base 10: '1 2 3 4'

Он работает только после ввода послекаждый вход, таким образом создавая 4 строки вместо 1. Как я могу взять все 4 входа только в одну строку?Мой код:

list=[]
l=list
for i in range(0,n):
    l.append(int(raw_input()))

Ответы [ 3 ]

3 голосов
/ 03 апреля 2019

Вы можете использовать split и map:

l = map(int, raw_input().split())
0 голосов
/ 03 апреля 2019

вы можете использовать split и list comprehension `

nums = [int(n) for n in raw_input().split(' ')]
0 голосов
/ 03 апреля 2019

Здесь я читаю несколько чисел, разделенных пробелом. Поэтому я использую .split (''), который будет возвращать список чисел, но типа string.Следующим шагом является использование списка для преобразования всех чисел в списке «x» в значения типа int.

x=raw_input().split(' ') 
x=[int(num) for num in x]
print x #python2
...