멋있는 파이썬 다섯 개가 깜짝 놀랄 거예요.🤯 (섹션 1)

소개하다.


파이톤은 세계에서 가장 유행하고 가장 환영받는 프로그래밍 언어 중의 하나이다.이유는 다음과 같습니다.
  • 역학
  • 다기능
  • 대용량 모듈 및 라이브러리
  • 나는 거의 매일 파이톤을 사용한다.이 과정에서 나는 똑똑하지만 유용한 기교와 비결을 배웠다. 그것은 틀림없이 너로 하여금 어려움을 생각하게 할 것이다.
    여기서 나는 그중의 5+를 나누었다😉

    1.체인식 조심


    >>> (False == False) in [False] # makes sense
    False
    >>> False == (False in [False]) # makes sense
    False
    >>> False == False in [False] # now what?
    
    앞의 두 가지는 일리가 있지만, 세 번째는 무엇을 인쇄할 것이라고 생각합니까?
    "=="의 우선순위가 "in"보다 높거나 이 두 가지 상황에서 "False"의 답을 얻을 수 있지만 이것은 잘못된 것이다.왜?
    이것은 Python의 모든 비교 작업이 연결될 때 (괄호를 사용하지 않을 때) 같은 우선순위를 가지기 때문이다.즉,

    If a, b, c, …, y, z are expressions and op1, op2, …, opN are comparison operators, then a op1 b op2 c ... y opN z is equivalent to a op1 b and b op2 c and ... y opN z.


    그래서 세 번째 표현식의 계산 결과는(False == False) and (False in [False])사실이 이것이 사실이라는 것을 증명한다.
    자세한 내용은 이 웹 사이트를 참조하십시오LINK.

    2. 순환 변수 누설


    for x in range(7):
        if x == 6:
            print(x)
    print(x)
    
    첫 번째 인쇄 성명은 매우 간단한 것 같습니다. 그렇죠?이것은 6만 인쇄할 수 있습니다.if 조건이 설정되어 있기 때문입니다.그런데 두 번째 프린트 성명은요?
    변수 'x' 가 범위를 넘어섰기 때문에 오류가 발생하지 않습니다. & x는 for 순환의 범위를 벗어나지 않았기 때문입니다.
    그러나 실제로는 "6"을 다시 인쇄합니다.Python에서 for 순환은 존재하는 범위를 사용하고 정의된 순환 변수를 뒤에 두기 때문입니다.
    만일 우리가 전역 이름 공간에서 for 순환 변수를 현시적으로 정의했다면, 이것도 적용됩니다.이 경우 기존 변수를 다시 바인딩합니다.
    간단히 말하면python은 C/C++나 자바처럼 블록이 없다.Python에서 유일한 역할 영역 단원은 함수입니다.만약 함수에 변수를 성명한다면, 함수 중 어느 곳에서든 그것을 사용할 수 있으며, 아무런 문제가 없을 것이다.

    If you are a Javascript enthusiast then there is something more for you😉


    코드를 자바스크립트로 번역하면 '6' 을 출력한 다음 '7' 을 출력합니다.
    왜냐하면 우리가python에서 교체하는 방식이기 때문이다.변수 'x' 는 'for 순환' 을 시작하기 전에 사용할 값 집합을 명확하게 정합니다.javascript는 그렇지 않습니다.

    3. 기본 가변 매개 변수


    def func(default_arg=[]):
        default_arg.append("python")
        return default_arg
    
    print(func())
    print(func())
    print(func())
    
    당신은 상기 코드의 출력이 무엇이라고 생각합니까?우리는 우리가
    ['python']
    ['python']
    ['python']
    
    하지만 상황은 그렇지 않다.기본 매개 변수는 "list"와 같은 가변 대상입니다. 예를 들어, Python은 함수를 정의할 때마다 함수를 만들지, 호출할 때마다 만듭니다.
    반대로 호출할 때마다 최근에 할당된 값을 기본값으로 사용합니다.
    따라서 올바른 출력은 다음과 같습니다.
    ['Python']
    ['python', 'python']
    ['python', 'python', 'python']
    

    NOTE: When we explicitly pass [] to "func" as the argument, the default value of the default_arg variable will not be used, so the function will returned as expected i.e ['python'] ['python'] ['python'].


    python에서 가변/불변 대상에 대한 더 많은 정보를 알고 싶으면 LINK

    4. 계속 노력


    def func():
        try:
            return 'from_try'
        finally:
            return 'from_finally'
    
    print(func()) #What will get printed?
    
    위의 코드를 자세히 보면 "try"블록에서return 문장을 볼 수 있습니다.이 점에 따라 출력으로 "from try"를 인쇄해야 합니다.
    하지만Python docs성명:

    When a return, **break ** or **continue **statement is executed in the try suite of a try…finally statement, the finally clause is also executed ‘on the way out.’


    함수의 반환 값은 마지막으로 실행된return 문장에 의해 결정됩니다.finally 자구가 시종일관 실행되기 때문에finally 자구에서 실행되는return 자구는 시종일관 마지막으로 실행되는 문구가 될 것입니다.따라서 정확한 출력은 from_finally이다.

    5. "네"가 뭐가 잘못됐어요.


    >>> a = 256
    >>> b = 256
    >>> a is b
    True
    
    >>> a = 257
    >>> b = 257
    >>> a is b
    >>> ?
    
    첫 번째가 진짜라면 두 번째도 진짜일 것이다.아닌가?
    아니오, 정답은 틀렸어요.왜냐하면 256은 존재하는 대상이지만 257은 그렇지 않다.
    내 말은python을 시작할 때 -5에서 256까지의 숫자가 분배된다는 것이다.이 숫자들은 대량으로 사용되기 때문에 그것들을 준비하는 것은 의미가 있다.
    python 문서를 기준으로 다음을 수행합니다.

    The current implementation keeps an array of integer objects for all integers between -5 and 256, when you create an int in that range you just get back a reference to the existing object.


    이것이 바로 a와 b의 값을 257에 부여할 때 두 개의 다른 인용을 생성하는 이유입니다 & "예"연산자는 두 개의 조작수가 모두 같은 대상을 인용했는지 검사합니다. 이 예에서 이것은 정확하지 않습니다.
    이것이python의 멋진 괴벽 다섯 개다.나는 네가 그것들을 좋아하고 새로운 것을 배우기를 바란다.단, 제목에 '다섯 개의++python 코드 세션' 이 포함되어 있기 때문에, 나는 당신들에게 별도의 세션을 줄 것입니다. 나는 당신들이 좋아할 것이라고 믿습니다👇

    5++. 파이썬의 이모티콘🐍


    파이썬 코드에서 이모티콘을 사용할 수 있는 거 알아요?
    예, It's true
    >>import emoji
    >>print(emoji.emojize('Python is amazing :thumbs_up:'))
    Python is amazing 👍
    
    이것은 너의 전부emoji cheat sheet다.계속 해보자..

    If you enjoyed these tips & tricks consider following me on because that's where I most actively share such Python tricks along with other topics like Docker, kubernetes, Data structure & Algorithms




    아포프 티아지
    @apoorv__tyagi

    🐍 = 🤯이거 재밌다.👇마지막 줄에 무엇을 인쇄합니까?(PYTHON에서 체인 조작을 조심하세요.)🐍)
    2020년 12월 18일 오전 8:37

    만약 네가 여기에서 읽은 내용을 좋아한다면, 지지를 표시하고 싶다면, 나에게 커피를 좀 사주는 것을 고려할 수 있다☕


    좋은 웹페이지 즐겨찾기