Можно ли запустить сначала программу, а затем ждать ввода пользователя в командной строке. например.
Run...
Process...
Input from the user(in command line form)...
Process...
Можно ли запустить сначала программу, а затем ждать ввода пользователя в командной строке. например.
Run...
Process...
Input from the user(in command line form)...
Process...
Не совсем ясно, что означал OP (даже после некоторых комментариев и комментариев), но вот два ответа на возможные интерпретации вопроса:
Используйте raw_input
в Python 2.x и input
в Python 3. (Они встроены, поэтому вам не нужно импортировать что-либо для их использования; вам просто нужно использовать правильный для своего версия python.)
Например:
user_input = raw_input("Some input please: ")
Более подробную информацию можно найти здесь.
Итак, например, у вас может быть script, который выглядит как
# First, do some work, to show -- as requested -- that
# the user input doesn't need to come first.
from __future__ import print_function
var1 = 'tok'
var2 = 'tik'+var1
print(var1, var2)
# Now ask for input
user_input = raw_input("Some input please: ") # or `input("Some...` in python 3
# Now do something with the above
print(user_input)
Если вы сохранили это в foo.py
, вы можете просто вызвать script из командной строки, распечатать tok tiktok
, а затем запросить ввод. Вы можете ввести bar baz
(за которым следует клавиша ввода) и напечатать bar baz
. Вот как это будет выглядеть:
$ python foo.py
tok tiktok
Some input please: bar baz
bar baz
Здесь $
представляет приглашение командной строки (так что вы на самом деле не набираете это), и я нажимаю Enter
после ввода bar baz
, когда он запрашивает ввод.
Предположим, что у вас есть script с именем foo.py
и вы хотите вызвать его с помощью аргументов bar
и baz
из командной строки, например
$ foo.py bar baz
(Опять же, $
представляет приглашение командной строки.) Затем вы можете сделать это со следующим в script:
import sys
arg1 = sys.argv[1]
arg2 = sys.argv[2]
Здесь переменная arg1
будет содержать строку 'bar'
, а arg2
будет содержать 'baz'
. Объект sys.argv
- это всего лишь список, содержащий все из командной строки. Обратите внимание, что sys.argv[0]
- это имя script. И если, например, вам нужен только один список всех аргументов, вы бы использовали sys.argv[1:]
.
the_input = raw_input("Enter input: ")
И что это.
Кроме того, если вы хотите составить список входов, вы можете сделать что-то вроде:
a = []
for x in xrange(1,10):
a.append(raw_input("Enter Data: "))
В этом случае вам будет предложено 10 данных для хранения 9 элементов в списке.
Выход:
Enter data: 2
Enter data: 3
Enter data: 4
Enter data: 5
Enter data: 7
Enter data: 3
Enter data: 8
Enter data: 22
Enter data: 5
>>> a
['2', '3', '4', '5', '7', '3', '8', '22', '5']
Вы можете искать в этом списке основной способ с чем-то вроде (после создания этого списка):
if '2' in a:
print "Found"
еще: print "Не найден."
Вы можете заменить "2" на "raw_input()" следующим образом:
if raw_input("Search for: ") in a:
print "Found"
else:
print "Not found"
Если вы хотите взять ввод из файла, который вы кормите через командную строку (что обычно необходимо для выполнения кодовых проблем для соревнований, таких как Joke Google Code или ACM/IBM ICPC):
example.py
while(True):
line = raw_input()
print "input data: %s" % line
В интерфейсе командной строки:
example.py < input.txt
Надеюсь, что это поможет.
Если вы используете Python 3, raw_input
изменился на input
Пример Python 3:
line = input('Enter a sentence:')
Запустите script со следующей строкой. Сначала будет запущен script, после чего вы получите командную строку python. В этот момент все переменные и функции будут доступны для интерактивного использования и вызовов.
#!/usr/bin/env python -i