괄호없이 Python 3 인쇄
print
파이썬 2의 진술로 사용하지만, 지금은 파이썬 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
코드의 가독성이 떨어지지 만 인쇄 할 때마다 몇 개의 문자가 저장됩니다.
AHK 스크립트는 좋은 아이디어입니다. 관심있는 사람들을 위해 나를 위해 일하기 위해 약간 변경해야했습니다.
SetTitleMatchMode,2 ;;; allows for a partial search
#IfWinActive, .py ;;; scope limiter to only python files
:b*:print ::print(){Left} ;;; I forget what b* does
#IfWinActive ;;; remove the scope limitation
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으로 변환 하는 데 사용 하는 것이 좋습니다.
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
괄호없이 할 수있는 유일한 방법은 파이썬 2에서와 같이 키워드를 사용하는 것입니다. 수동으로 키워드를 정의 할 수 없습니다.
I finally figured out the regex to change these all in old Python2 example scripts. Otherwise use 2to3.py.
Try it out on Regexr.com, doesn't work in NP++(?):
find: (?<=print)( ')(.*)(')
replace: ('$2')
for variables:
(?<=print)( )(.*)(\n)
('$2')\n
for label and variable:
(?<=print)( ')(.*)(',)(.*)(\n)
('$2',$4)\n
In Python 3, print is a function, whereas it used to be a statement in previous versions. As @holdenweb suggested, use 2to3 to translate your code.
참고URL : https://stackoverflow.com/questions/32122868/python-3-print-without-parenthesis
'UFO ET IT' 카테고리의 다른 글
Interface Builder는 스토리 보드를 저하시키고, 뷰의 크기를 조정하고, 조금씩 위치를 변경합니다. (0) | 2020.11.18 |
---|---|
return 문에서 파이썬 튜플 풀기 (0) | 2020.11.18 |
Node.js로 실시간으로 웹 페이지 스크랩 (0) | 2020.11.18 |
Mac OSX에서 TortoiseSVN과 동등한 것은 무엇입니까? (0) | 2020.11.18 |
Fiddler-포트 443에 대한 터널링 된 http 요청 (0) | 2020.11.18 |