파이썬 인터프리터에서 한 줄 이상의 코드를 작성하려면 어떻게합니까?


35

터미널에서 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
나는 당신이 '들여 쓰기'에 문제가 있다고 생각합니다. A. 'python'을 입력하십시오. B. >>>가 나타납니다. C. 스크립트를 실행하려면 'tabs'를 사용하여 스크립트를 올바르게 들여 쓰기해야합니다.
r4.

3
나는 학습이 올바른지 아닌지 내 길을 묻지 않았다 ... 나는 당신이 대답을 알고 있다면 구체적인 질문을했다 ... 그렇지 않다면 ...

답변:


32

후행 백 슬래시 추가 ( \)

트릭은 bash예를 들어 수행 할 작업과 유사하게 후행 백 슬래시를 추가하는 것입니다. 예를 들어, 다음을 인쇄하려는 경우 1:

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

를 쓰면 \파이썬은 ...다음 줄에 코드를 입력 하라는 (계속 줄)을 묻습니다.

참고 : 이것은 함수 또는 클래스 정의를 만들 때 자동으로 발생하는 것입니다. 즉, 실제로 새 줄 이 필요한 시간 이므로 절대로 그다지 잘 사용하지 않거나 적어도 내가 아는 것은 없습니다. 다시 말해, 파이썬은 새로운 함수 정의 나 다른 유사한 구문 (예 :)을 입력 할 때 연속 선이 필요하다는 것을 알기에 충분히 영리 if:합니다. 이 자동적 인 경우, \파이썬에게 당신이 끝났다는 것을 알리기 위해 빈 줄을 입력해야한다는 것을 명심하십시오 .

다른 모든 것에는 한 줄씩 작성해야합니다. 통역사가 작동하는 방식은 통역사가 공급하는 모든 줄을 해석하는 것입니다. 더 이상은 아닙니다. 개행을 볼 때만 "동작"하므로, 인터프리터에게 줄 것을 실행하도록 지시합니다. 단일 백 슬래시는 인터프리터가 개행 문자를받지 못하게 Enter하지만 ( 실제로 눌렀다는 것을 알지 못함 ) 결국 문자를 받습니다.

Python의 인터프리터는 Emacs 또는 vi 스타일 키 바인딩과 같은 GNU readline을 사용하여 한 줄 내에서 탐색 할 때 고급 기능을 제공 합니다 (예 :) Ctrl-A. 그러나 현재 한 줄에서만 작동합니다. 역사도 있습니다 . 시도하고 누르십시오 .

복잡한 라인을 반복해서 실행하려면 어떻게합니까?

한 번에 두 줄 이상의 코드를 실행하려면 적절한 소스 파일을 사용하고 싶을 것입니다.

또는 내장 인터프리터를 사용하여 Python 코드를 작성하는 훌륭한 대화식 방법을 제공하는 Jupyter 노트북을 사용 하십시오 . 소스 코드 편집기에서와 같이 코드를 작성할 수 있지만 어떤 라인을 함께 해석할지 선택할 수 있습니다. 그런 다음 코드의 일부만 선택적으로 실행할 수 있습니다. 가장 좋은 방법은 작업 흐름에 적합한 지 확인하는 것입니다.


:) 첫 번째 줄에는 훌륭하지만 더 많은 줄을 원한다면 어떻게해야합니까? 두 번째 후행 백 슬래시는 구문 오류를 제공합니다.

정확히 작동 하지 않는 것은 무엇 입니까? 해당 줄을 선택하여 복사 한 다음 터미널에 붙여 넣으십시오. 개행은 인터프리터에 의해 구문 분석되므로 스크립트에서와 같이 위에서 아래로 실행됩니다. 이슈가 뭐야?
slhck

1
에디터에서 작성하여 붙여 넣기보다는 터미널에 직접 입력하고 싶습니다. 시간 낭비처럼 보입니다. :)

그런 다음 한 줄만 입력하면됩니다. 다른 방법은 없습니다. 통역사입니다. 실제로 필요할 때만 연속 선을 묻는 메시지가 표시됩니다.
slhck

7

어때요 ;\? 세미콜론은 명령의 끝을 알리고 다음 줄에서 계속할 백 슬래시 신호를 나타냅니다. 예를 들어, python명령 줄에 입력 하여 Python 인터프리터에 들어가십시오.

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

의 출력을 제공해야

0
4

2

간단히 말해서 배우고 두 줄 이상을 실행하려면 .py 파일에 씁니다.

후행 백 슬래시 방법은 일련의 명령을 빠르게 실행하려고 할 때 유용하지만 학습 할 때는 도움이되지 않습니다.

코드를 더 잘 개발하고 철자 실수에 대해 걱정할 필요없이 개별 명령을 편집하며 작은 파일로 작성할 때 유용하다고 생각되는 코드 스 니펫을 재사용 할 수 있습니다.


1
그래, 난 동의. 그러나 나는 기본 수준에 있습니다. 나는 유용한 변수를 쓰지 않고 바보 같은 변수 테스트와 수학 등을 작성합니다. 파일을 만들 수도 있습니다. 그래도 조언 주셔서 감사합니다.

간단한 수학조차도 파일에 넣을 가치가 있습니다 .3 줄 이상이면 vi에서 직접 할 것입니다. 심지어 나중에 내가 한 일이 궁금하다면 거기에 있습니다.
Rory Alsop

1

쉘 프롬프트에서 다음을 입력했는데 정상적으로 작동했습니다.

$ 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 년 반에 그렇게 시작했을 것입니다 질문을 게시 한 이후)


0

방금 다른 답변을 입력하여 실험을 계속했습니다. 마침내 올바른 구문을 작성하여 다음을 시도하십시오.

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

이것은 당신에게 결과를 줄 것이다

more string

3

오류없이

방금 ';'을 사용했습니다. 다른 줄에 쓰도록

내 답변이 도움이 되었기를 바랍니다.


0

쉘을 그대로두고 새 편집기 파일을여십시오. 즉, 파일로 이동하여 새 파일을 엽니 다. 원하는만큼 줄을 작성하십시오.


-2

세 개의 점에서 다음 명령을 입력하기 전에 "tab"키를 누르십시오. 그런 식으로 많은 명령을 계속 쓸 수 있습니다. 따라서 두 번째 코드 줄을 작성한 후 enter 키를 누르면 인터프리터를 통해 아래 피보나치 예제와 같이 (튜토리얼의) 세 번째 코드 줄을 입력 할 수 있습니다.

a, b = 0,1 while b <10 : ... print (b) # 점 뒤에 인쇄 명령을 입력하고 마지막에 Enter 키를 누르면 u 들여 쓰기 오류가 발생합니다. 대신 세 개의 점 뒤에 탭을 누른 다음 코드를 작성하고 Enter 키를 누르면 세 번째 코드 줄을 입력 할 수 있습니다. 아래 예제를 참조하십시오 (자습서에서).

a, b = 0,1 # Enter 키 뒤에 b <10 : # Enter 키 뒤에 ... print (b) # Enter 키 뒤에옵니다. 세 개의 점 다음에있는 탭에 유의하십시오 ... a, b = b, a + b # 다음에 Enter 키가 있습니다 ... enter 키 # 더 이상 입력 할 명령이 없습니다

위 프로그램의 결과를 볼 수 있습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.