Как ввести целочисленный кортеж от пользователя? - PullRequest
9 голосов
/ 10 февраля 2010

В настоящее время я делаю это

print 'Enter source'
source = tuple(sys.stdin.readline())

print 'Enter target'
target = tuple(sys.stdin.readline())

но источник и цель в этом случае становятся строковыми кортежами с \ n в конце

Ответы [ 3 ]

12 голосов
/ 10 февраля 2010
tuple(int(x.strip()) for x in raw_input().split(','))
6 голосов
/ 10 февраля 2010

Оказывается, что int довольно хорошо справляется с удалением пробелов, поэтому нет необходимости использовать strip

tuple(map(int,raw_input().split(',')))

Например:

>>> tuple(map(int,"3,4".split(',')))
(3, 4)
>>> tuple(map(int," 1 , 2 ".split(',')))
(1, 2)
1 голос
/ 10 февраля 2010

Если вы все еще хотите, чтобы пользователю дважды предлагали запрос и т. Д.

print 'Enter source'
source = sys.stdin.readline().strip()  #strip removes the \n

print 'Enter target'
target = sys.stdin.readline().strip()

myTuple = tuple([int(source), int(target)])

Это, вероятно, менее питонический, но более дидактический ...

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