Как написать код длиной более одной строки в интерпретаторе Python?

Как написать код длиной более одной строки в интерпретаторе Python?

У меня проблема с кодированием 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)

решение1

Добавьте завершающую обратную косую черту ( \)

Хитрость в том, чтобы – подобно тому, что вы сделали бы в 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 с помощью встроенного интерпретатора. Вы можете писать код так же, как в редакторе исходного кода, но вы можете выбирать, какие строки интерпретировать вместе. Затем вы можете запускать только части кода выборочно. Лучший способ — просто попробовать и посмотреть, подходит ли это вашему рабочему процессу.

решение2

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

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

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

0
4

решение3

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

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

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

more string

3

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

Я просто использовал «;», чтобы написать на другой строке

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

решение4

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

$ 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
>>> 

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

Связанный контент