이전 print
에는 Python 2에서 문 이었지만 이제는 Python 3에서 괄호가 필요한 함수가되었습니다.
어쨌든 Python 3에서 이러한 괄호를 억제 할 수 있습니까? 인쇄 기능을 다시 정의하여?
그래서 대신
print ("Hello stack over flowers")
다음을 입력 할 수 있습니다.
print "Hello stack over flowers"
이전 print
에는 Python 2에서 문 이었지만 이제는 Python 3에서 괄호가 필요한 함수가되었습니다.
어쨌든 Python 3에서 이러한 괄호를 억제 할 수 있습니까? 인쇄 기능을 다시 정의하여?
그래서 대신
print ("Hello stack over flowers")
다음을 입력 할 수 있습니다.
print "Hello stack over flowers"
()
항상 입력 하는 것은 불필요하게 시간이 많이 걸립니다.
답변:
Python 3에서 인쇄하려면 한 쌍의 괄호가 필요하지만 print
함수이기 때문에 더 이상 공백이 필요하지 않습니다 . 그래서 그것은 하나의 추가 캐릭터입니다.
여전히 한 쌍의 괄호를 입력하는 것이 "불필요한 시간 소모적"이라는 것을 알게된다면 그렇게 p = print
하여 몇 개의 문자를 저장할 수 있습니다 . 새 참조를 함수에 바인딩 할 수 있지만 키워드에는 바인딩 할 수 없기 때문에이 print
단축키는 Python 3 에서만 수행 할 수 있습니다 .
파이썬 2 :
>>> p = print
File "<stdin>", line 1
p = print
^
SyntaxError: invalid syntax
파이썬 3 :
>>> p = print
>>> p('hello')
hello
코드의 가독성이 떨어지지 만 무언가를 인쇄 할 때마다 몇 개의 문자가 저장됩니다.
print
Python 3 코드에서 괄호없이 사용 하는 것은 좋은 생각이 아닙니다. 별칭 등을 생성하지도 않습니다. 거래 중단 자라면 Python 2를 사용하세요.
그러나 print
괄호없이 대화 형 쉘에서 유용 할 수 있습니다. 실제로 문자 수를 줄이는 문제가 아니라 디버깅하는 동안 무언가를 인쇄 할 때마다 Shift 키를 두 번 누를 필요가 없습니다. IPython을 사용하면 슬래시로 줄을 시작하는 경우 괄호를 사용하지 않고 함수를 호출 할 수 있습니다.
Python 3.6.6 (default, Jun 28 2018, 05:43:53)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: var = 'Hello world'
In [2]: /print var
Hello world
을 켜면 autocall
슬래시를 입력 할 필요도 없습니다.
In [3]: %autocall
Automatic calling is: Smart
In [4]: print var
------> print(var)
Hello world
Autohotkey를 사용하여 매크로를 만듭니다. AHK는 무료이며 설치가 간단합니다. www.autohotkey.com
예를 들어 alt-p에 매크로를 할당 할 수 있습니다.
!p::send print(){Left}
그러면 alt-p가 print ()를 출력하고 커서를 괄호 안쪽으로 이동합니다.
또는 문제 를 직접 해결하기 위해 자동 교체를 정의하고 열려있는 파일의 확장자가 .py 인 경우로 범위를 제한합니다.
#IfWinActive .py ;;; scope limiter
:b*:print ::print(){Left} ;;; I forget what b* does. The rest should be clear
#IfWinActive ;;; remove the scope limitation
이것은 보장되고 고통스럽지 않으며 투명한 솔루션입니다.
아니요. Python 3에서는 항상 구문 오류입니다. 2to3
코드를 Python 3으로 변환 하는 데 사용 하는 것이 좋습니다.
shift
+ 9
..... 다시 shift
+ 0
는 완전합니다.
print
괄호 쌍과 같은 쓸모없는 디버깅 기술로 인해 방해받지 않아야합니다.
print
그만한 가치가 있다고 느꼈습니다.
괄호없이 할 수있는 유일한 방법은 파이썬 2에서와 같이 키워드를 사용하는 것뿐입니다. 수동으로 키워드를 정의 할 수 없으므로 아니요.
마침내 이전 Python2 예제 스크립트에서이 모든 것을 변경하는 정규식을 알아 냈습니다. 그렇지 않으면 2to3.py를 사용하십시오.
Regexr.com에서 사용해보세요. NP ++ (?)에서 작동하지 않습니다.
find: (?<=print)( ')(.*)(')
replace: ('$2')
변수의 경우 :
(?<=print)( )(.*)(\n)
('$2')\n
레이블 및 변수 :
(?<=print)( ')(.*)(',)(.*)(\n)
('$2',$4)\n
(?<=print)( ')(.*)(')
\('$2'\)
print ('string')
.