Как создать разрыв строки в терминале? - PullRequest
10 голосов
/ 04 марта 2011

Я использую Python в терминале на Mac OSX последней.Когда я нажимаю ввод, он обрабатывает код, который я ввел, и я не могу понять, как добавить дополнительную строку кода, например, для основного цикла.

Ответы [ 6 ]

18 голосов
/ 04 марта 2011

В оболочке python, если вы набираете код, который допускает продолжение, нажатие Enter один раз не должно выполнять код ...

Приглашение Python выглядит так:

>>>

Если вы запускаете цикл for или набираете что-то, где python ожидает от вас большего, приглашение должно измениться на elipse.Например:

>>> def hello():
or
>>> for x in range(10):

вам подсказка должна превратиться в эту

...

, означающую, что вы ждете, когда вы введете больше для завершения кода.

ЗдесьВот пара полных примеров Python, автоматически ожидающих большего ввода перед эвакуацией:

>>> def hello():
...    print "hello"
...
>>> hello()
hello
>>>
>>> for x in range(10):
...     if x % 2:
...         print "%s is odd" % (x,)
...     else:
...         print "%s is even" % (x,)
... 
0 is even
1 is odd
2 is even
3 is odd
4 is even
5 is odd
6 is even
7 is odd
8 is even
9 is odd
>>>

Если вы хотите заставить python не оценивать набираемый вами код, вы можете добавлять "\" в конце каждогострока ... Например:

>>> def hello():\
...     print "hello"\
... \
... \
... \
... 
... 
>>> hello()
hello
>>> hello()\
... \
... \
... 
hello
>>> 

надеюсь, что это поможет.

3 голосов
/ 03 февраля 2017

Я всегда получал эти три точки снова и снова и не мог закрыть их. На самом деле это разрыв строки и работает с 2 ENTER. Я сделал это, я попытался дать два раза клавишу ВВОД, и это сработало.

>>> primenumlist = [2,3,5,7,11,13,17,19,23,29]
>>> for i in primenumlist:
...  print (i)
...
2
3
5
7
11
13
17
19
23
29
>>>
0 голосов
/ 21 августа 2018

В случае, если вы хотите использовать цикл, : в конце строки, как указано выше, изменит ваше приглашение на следующее:

...

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

Оттуда введите оставшуюся часть кода и выполните, как если бы вы выполняли цикл или оператор if, и ваш код будет выполняться так, как ожидается!

Вот фрагмент кода из SQLAlchemyУчебник, который использует это поведение:

>>> session.add_all([
...     User(name='wendy', fullname='Wendy Williams', password='foobar'),
...     User(name='mary', fullname='Mary Contrary', password='xxg527'),
...     User(name='fred', fullname='Fred Flinstone', password='blah')])

Чтобы воссоздать это, вы должны использовать shift + enter после первой строки, чтобы иметь возможность создать первый User объект в новой строке.Когда вы наберете ..., простое нажатие enter даст вам еще одну строку с подсказкой ....Чтобы выйти, просто нажмите enter в этом приглашении, чтобы вернуться к приглашению >.

0 голосов
/ 06 августа 2014

Ответ здесь гораздо проще. Если вы хотите продолжить в следующей строке после цикла, как

при b <1: </p>

когда вы нажимаете ввод, вы получаете приглашение с

...

тогда вам нужно "сделать отступ" пробелом табуляции, и только тогда вы можете добавить больше кода после трех точек, таких как

... (табуляция или пробел) печать b

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

оставить отступ прежним

это все

0 голосов
/ 04 марта 2011

Кстати, к тому же, как вы сформулировали свой вопрос, кажется, что вы пытаетесь выполнять команды python в обычной командной оболочке, а не в оболочке Python.

Вы вводили "python" в качестве первого шага?Например:

$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
0 голосов
/ 04 марта 2011

Операторы, которые представляют блок кода ниже, заканчиваются двоеточием (:) в Python.

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

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