24

У меня проблема с кодированием Python в терминале. Я просто изучаю основы, поэтому мне не нужно создавать файлы .py.

В терминале я могу запустить одну строку кода в интерпретаторе Python, но как мне написать более одной строки?

Очевидно, что если я нажму Enter, он введет команду и не пойдет по линии.

Я просто хочу проверить следующее в терминале:

my_age = 35
my_eyes = 'Blue'
print "my age is %d and my eye color is %s" % (my_age, my_eyes)

8 ответов8

24

Добавить косую черту (\)

Хитрость заключается в том, чтобы - как и в bash , например - добавить обратную косую черту. Например, если я хочу напечатать 1:

charon:~ werner$ python
>>> print 1
1
>>> print \
... 1
1
>>> 

Если вы напишите \ , Python предложит вам с помощью ... (строки продолжения) ввести код в следующей строке, так сказать.

Примечание: это то, что автоматически происходит, когда вы создаете определение функции или класса, то есть время, когда вам действительно нужна новая строка, поэтому для этого никогда не будет действительно хорошего использования, или, по крайней мере, ничего из того, о чем я знаю. Другими словами, Python достаточно умен, чтобы понимать, что вам нужны строки продолжения, когда вы вводите новое определение функции или другие подобные конструкции (например, if: . В этих автоматических случаях, обратите внимание, что вам нужно ввести пустую строку, используя \ чтобы сообщить Python, что вы сделали.

Для всего остального вам нужно написать одну строку за другой. Интерпретатор работает так, что он хорошо интерпретирует каждую строку, которую вы ему передаете. Не больше, не меньше. Он будет "действовать" только тогда, когда увидит символ новой строки, поэтому он говорит переводчику выполнить то, что вы ему дали. Единственная обратная косая черта не позволит интерпретатору когда-либо получить символ новой строки (то есть он не будет знать, что вы действительно нажали Enter), но в конечном итоге он получит его.

Интерпретатор Python обладает расширенными возможностями, когда вы используете GNU readline, например, Emacs или сочетания клавиш в стиле vi для навигации по строке (например, Ctrl-A). Тем не менее, они работают только в одной текущей строке. История тоже там, просто попробуйте и нажмите .

Что если я хочу многократно запускать сложные строки?

Возможно, вы захотите использовать правильные исходные файлы, если хотите выполнять более одной строки кода за раз.

Или используйте блокноты Jupyter, которые предлагают отличный интерактивный способ создания кода Python со встроенным интерпретатором. Вы можете написать код так же, как в редакторе исходного кода, но вы можете выбрать, какие строки интерпретируются вместе. Затем вы можете выборочно запускать только части кода. Лучший способ - просто попробовать и посмотреть, подходит ли это вашему рабочему процессу.

6

Как насчет использования ;\? Точка с запятой сигнализирует об окончании команды и обратном слэше, который мы продолжаем на следующей строке. Например, введите python в командной строке, чтобы войти в интерпретатор Python, затем

>>> x=0 ;\
... print(x) ;\
... x=4 ;\
... print(x)

должен дать вывод

0
4
2

Я просто набрал следующую строку в командной строке, и она работала просто отлично:

$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> my_age = 35
>>> my_eyes = 'Blue'
>>> print "my age is %d and my eye color is %s" % (my_age, my_eyes)
my age is 35 and my eye color is Blue
>>> 

Способ ввода более одной строки кода в интерактивном интерпретаторе Python заключается в том, чтобы набрать более одной строки кода в интерактивном интерпретаторе Python. Я думаю, это будет достаточно для ваших целей.

Это правда, что вы получите новое приглашение после каждой строки, что означает, что если две строки кода выдают результат, этот вывод будет разделен запросами. Я думаю, это то, что вас беспокоит, хотя пример в вашем вопросе не предполагает, что:

$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "first line"
first line
>>> print "second line"
second line
>>> 

Если это проблема, вы можете заключить несколько утверждений в (с правильным отступом!) if заявление:

$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> if 1:
...     print "first line"
...     print "second line"
... 
first line
second line
>>> 

(Я бы предложил, даже если это не отвечает на ваш вопрос, что если вы пишете достаточно сложный для этого код, вы должны писать сценарии. Возможно, вы начали делать это через полтора года после того, как отправили вопрос.)

1

Проще говоря, если вы хотите учиться и хотите запустить более одной строки, вы записываете это в файл .py.

Метод обратной косой черты хорош, когда вы хотите быстро выполнить серию команд, но он не помогает, когда вы учитесь.

Вы сможете лучше разрабатывать код, редактировать отдельные команды, не беспокоясь об орфографических ошибках, и повторно использовать фрагменты кода, которые вы найдете полезными, если будете записывать их в небольшой файл.

1

Попробуйте это видео на YouTube, в котором рассказывается о случаях и важности отступов: https://www.youtube.com/watch?v=JkXPxMOSJTY

0

Я просто изучал ответ, который вы получили.Я продолжал экспериментировать, помещая разные символы.Я наконец получил правильный синтаксис, чтобы написать это. Попробуйте следующее

print("more string") ; print(3)

это даст вам результат

more string

3

без каких-либо ошибок

я только что использовал ';' чтобы сделать это написать в другой строке

я надеюсь, что мой ответ может помочь вам

0

Просто выйдите из оболочки и откройте новый файл редактора. Т.е. перейти в файл и открыть новый файл. Напишите столько строк кодов, сколько хотите.

-1

На трех точках обязательно нажмите клавишу "Tab", прежде чем вводить следующую команду. Таким образом, вы можете продолжать писать столько команд. Поэтому, когда вы нажимаете Enter после написания второй строки кода, интерпретатор позволяет вам ввести третью строку кода ... как в примере Фибоначчи ниже (из учебника):

a, b = 0,1, а b <10: ... print(b) # Если вы введете команду печати сразу после точек и нажмете клавишу ввода в конце, вы получите ошибку отступа. Вместо этого нажмите на вкладку после трех точек, затем введите свой код и нажмите клавишу ввода, это позволит вам ввести третью строку кода и так далее. Посмотрите на приведенный ниже пример (из учебника):

a, b = 0,1 # сопровождается клавишей ввода, а b <10: # следует клавишей ввода ... print(b) # сопровождается клавишей ввода. обратите внимание на вкладку после трех точек ... a, b = b, a+b #, сопровождаемых клавишей ввода ... клавишей ввода # Нет больше команд для ввода

вы увидите результат вышеописанной проги

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .