Как ввести ввод в питоне
Я принимаю участие в конкурсе, но не знаю, как заставить питона принять участие. Вот типичный пример. На сайте приведен пример того, как принимать данные, но они используют C и Java ( нажмите здесь). Пожалуйста, помогите мне разобраться, как заставить Python принимать данные в этом случае.
4 ответа
Есть несколько способов сделать это.
Принимая участие от переводчика
Для Python 2.x вы можете использовать raw_input()
функция:
my_input = raw_input("Please enter an input: ")
#do something with my_input
Обратите внимание, что ввод всегда является строкой. Чтобы получить номер, вы можете использовать встроенный int()
функция:
my_input = int(raw_input("Please enter an input: "))
#do something with my_input
Как уже упоминалось в одном другом ответе, это приведет к ошибке, если входное значение является плавающим.
Есть еще одна функция, input
в Python 2.x. Тем не менее, в этой версии Python, input
оценивает ввод, что является плохой идеей. Не рекомендуется его использовать.
Для Python 3.x, однако, вы можете использовать input()
работать без проблем, так как это замена для raw_input
:
my_input = input("Please enter an input: ")
#do something with my_input
Принимая входные данные из аргументов командной строки
Вы также можете получить свой ввод из аргументов командной строки при выполнении вашего скрипта следующим образом:
$ python my_script.py arg1 arg2
Аргументы будут сохранены в списке sys.argv
, sys.argv[0]
это первый аргумент, sys.argv[1]
это второй аргумент и тд.
Пример:
import sys
my_input = sys.argv[0]
#do something with my_input
Подробности смотрите здесь. Этот метод работает для обеих версий, Python 3.x и 2.x.
Надеюсь это поможет!
Один из способов это: http://docs.python.org/2/library/functions.html
Для чего-то более продвинутого: http://docs.python.org/2/library/cmd.html
Лучший способ получить информацию для пользователя - использовать raw_input
, это будет принимать пользовательский ввод в виде строки. Позвольте мне продемонстрировать:
>>> var = raw_input("Enter")
Enter>? happy
>>> var
'happy'
Обратите внимание на кавычки на счастливом, это указывает на строку. Вы также можете заметить, input
и да, это можно использовать для ввода данных пользователем, но вот один пример, где это плохая идея:
>>> a = 2
>>> input("Enter")
Enter>? a+1
3
Вот, input
на самом деле оценивается, так как мы уже объявили a
, a + 1 == 3
, и мы видим это как вывод в нашей сессии консоли. Это позже становится проблемой безопасности (вы не хотели бы, чтобы пользователи возились с вашими переменными), поэтому для пользовательского ввода, raw_input
это лучший выбор.
Так как вы получаете string
от raw_input
, вы можете преобразовать его в любое, если хотите, например:
>>> var = raw_input("Enter")
Enter>? 122
>>> var = int(var)
>>> var
122
Однако поплавки не будут работать с int
:
>>> int('1.223')
Traceback (most recent call last):
File "<console>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '1.223'
Вам нужно будет использовать float
вот, тогда это работает:
>>> float('1.223')
1.223