6가지 아무도 가르치지 않는 파이썬의 힌트와 기교🚀🐍

파이톤은 현재 세계에서 가장 많이 사용되는 프로그래밍 언어이다. 유일한 이유는 파이톤 개발자들이 그것을 이용하여 소프트웨어를 구축하는 것을 좋아하기 때문이다.
간단한 문법, 대량의 라이브러리, 빠른 학습 곡선은 이미 초보자와 경험이 풍부한 개발자들의 사랑을 받았다.
그래서 오늘 나는 통상적으로 가르치지 않는 가장 좋은 파이썬 기교 6개를 공유할 것이다.😃
모든 예는 이Github repo에서 구독 후 사용할 수 있기 때문에 반드시 그것들을 보아야 한다.
-->본문의 소스 코드 액세스 및 다운로드here
 

🎉 경품⚡


우리는 너에게 네가 필요로 하는 어떤 과정도 제공할 것이다.어떠한 가격, 어떤 과정.
를 시작하려면 다음을 수행해야 합니다.
  • 👍 이 게시물에 응답
  • ✉️ 구독newsletter<--중요
  •  

    시퀀스에서 임의 요소 선택


    표준 라이브러리의 random 패키지에는 유용한 함수가 많다.그러나 random.choice(seq)는 특히 유용하다.
    색인 가능한 시퀀스에서 무작위 요소를 선택할 수 있습니다. 예를 들어 lists, tuples, 심지어 strings
    import random as r
    my_list = [1, 2, 3, "go"]
    print(r.choice(my_list))
    
    # Random item
    

    인스턴스


    일련의 책을 받는 책 picker 함수는 목록에서 이 항목을 삭제하고 문자열로 되돌려줍니다
    # We import only the function we need
    from random import choice
    
    def book_picker(books):
        book_choice = choice(books)
        books.remove(book_choice)    
        return f"You picked {book_choice}"
    
    books = ["Harry potter", "Don Quixote", "Learn Python by Daniel Diaz", "Dracula"]
    
    print(book_picker(books)) # Random choice
    
    print(books) # Remaining books
    

    제한 및 예외


    인덱스할 수 없는 시퀀스 random.choice(seq), 예를 들어 dictionaries, sets, numeric types 를 사용하려고 시도하면 파이톤이 오류를 일으킬 수 있습니다.
    # With Dictionary
    import random as r
    scores = {"Jhon": 4, "Ben": 3, "Diana": 5}
    
    print(r.choice(my_scores)) # Key error
    
    또한 시퀀스가 비어 있으면 파이톤IndexError이 발생합니다.
    # With an empty sequence
    import random as r
    empty_list = []
    
    print(r.choice(empty_list)) # Index error
    

    사용*


    때때로 우리는 빈칸으로 구분된 가수 요소를 인쇄해야 한다. 내가 본 가장 흔히 볼 수 있는 해결 방안은
    my_list = [1, 2, 3, 5, 7]
    
    for i in my_list:
       print(i, end=" ") # 1 2 3 5 7 
    
    비록 이것이 문제를 해결했지만 코드는python과 그렇게 비슷하지 않다."""*""패키지 해제 연산자를 사용하여 보다 간편한 솔루션 제공"
    my_list = [1, 2, 3, 5, 7]
    
    print(*mylist) # 1 2 3 5 7 
    
    보시다시피 unpack 조작부호는iterable의 왼쪽에 항상 설정되어 있으며, 이것은 Python에게 알려 줍니다.

    Assign each element from this iterable to the desired tuple or list


    iterable는 우리가 for로 순환할 수 있는 모든 서열임을 기억하십시오.데이터 형식을 편집할 수 있는지 확인하려면 iter() 함수를 사용합니다.
    
    print(iter("This is a string")) # Str Iterable object
    
    print(iter(["this", "is", "a", "list"])) # List iterable object
    
    print(iter(1))
    # Raises an error
    # Integers can't be iterated
    

    변수를 사용하여 패키지 해제


    패키지 해제 조작부호의 기능을 이해한 후에 변수에 데이터를 저장하기를 원할 수도 있습니다.어떻게 하는지 보여주세요.
    
    string = "Let's learn Python"
    
    # We want to assign the unpacked result in var1
    var1 = [*string]
    
    print(var1)
    # ['L', 'e', 't', "'", 's', ' ', 'l', 'e', 'a', 'r', 'n', ' ', 'P', 'y', 't', 'h', 'o', 'n']
    
    [*iterable] 부분이 혼란스러워 보일 수 있으니 설명해 드릴게요.
    우리가iterable를 해제할 때python은 이iterable의 모든 요소를 저장하기 위해 데이터 구조를 필요로 하기 때문에 [] 조작부호 외에 목록을 만듭니다 (*.
    만약 우리가 * 연산자로부터 변수의 유형을 얻으려고 시도한다면, 우리는
    another_str = "The * operator"
    
    # Using a list outside the unpacking
    var2 = [*another_str]
    
    print(type(var2)) # List
    
    # Using a tuple
    # Tuples ends with a comma
    var3 = (*another_str,)
    
    print(type(var3)) # Tuple
    
    물론 목록이나 원조가 없는 상태에서 가방을 풀려고 하면 SyntaxError
    bad_variable = *"Bad String"
    # Syntax error
    
    하도급 해제는 더 많은 용도가 있기 때문에, 나는 그것에 관한 단독 문장을 한 편 쓸 수 있다.😀

    set을 사용하여 작업 최적화


    python documentation에 따라 set(iterable)클래스는iterable에서 set 대상을 만듭니다.
    너희들 중 일부가 알 수 있는 바와 같이 집합은 무질서한 데이터 구조이기 때문에 색인을 할 수 없다. 집합의 특징 중 하나는 중복항을 허용하지 않는다는 것이다.

    인스턴스


    함수, 중복 항목을 삭제하고 정렬된 목록을 되돌려줍니다.
    def eliminate_duplicates(lst):
        """
        Returns a sorted list, without duplicates
        """ 
        new_list = list(set(lst)) 
    
        new_list.sort()    
    
        return new_list
    
    list1 = [25, 12, 11, 4, 12, 12, 25]
    
    print(eliminate_duplicates(list1))
    

    편집기를 종료하지 않고 클래스의 속성과 방법을 보기

    dir() 함수 반환 클래스의 속성과 방법.우리는 이 유용한 기교를 사용하여 클래스 유형의 모든 정의를 열거할 수 있다.
    -> $ python 
    string = "A string"
    
    print(dir(string))
    
    # ['__add__', .....,'upper', 'zfill']
    
    예를 들어, 만약 우리가 문자열을 대문자로 바꾸는 방법을 찾고 있다면, 브라우저를 열기가 귀찮을 뿐이다. dir 함수를 실행하고 문자열을 매개 변수로 삼아 정확한 방법을 검색하기만 하면 된다.

    인스턴스


    Dell이 dir에서 얻을 수 있는 가장 좋은 방법은 타사 패키지를 사용할 때 터미널을 종료하지 않고 클래스에서 필요한 모든 정보를 얻을 수 있다는 것입니다.
    -> $ python
    
    
    from django.views import View
    
    print(dir(View))
    
    # ['__class__', '__delattr__', .... 'setup']
    

    슬라이싱 작업


    슬라이드는 단지 서열의 일부 부분에 접근하는 방식일 뿐이다.python에서 슬라이드는 여러 가지 기술을 실행할 수 있도록 합니다.

    반전 시퀀스


    # Reversing lists
    lst = ["Fun", "is", "Programming"]
    
    lst = lst[::-1]
    
    print(lst) # ['Programming', 'is', 'Fun']
    
    # Reversing strings
    
    string = "Dog running on the park"
    
    string = string[::-1]
    
    print(string) # krap eht no gninnur goD
    

    인스턴스


    함수는 주어진 인덱스까지 서열을 되돌려줍니다.
    def cutoff(seq, index):
        if not len(seq) > index:
            return "Sorry the index is bigger than the sequence"
    
        return seq[:index]
    
    long_string = "This is a long description of a blog post about Python and technology"
    
    print(cutoff(long_string, 15))
    # This is a long 
    
    print(cutoff(long_string, 70))
    # Sorry the index is bigger than the sequence
    

    10개의 알파벳으로 디버거를 호출하다


    이 함수breakpoint는python 3.6+에서 얻을 수 있습니다.세션pdb.set_trace()이 호출됩니다.
    이것은 듣기에 순수한 편리함일 수도 있지만, 나에게 있어서, 이것은 디버거를 호출하는 매우 간단하고 우아한 방식이다

    예.


    n_odds = 0
    
    for i in range(1, 14, 2):
        # Check for the value of i in each iteration
        breakpoint()
        # Bad condition
        if i % 2 == 0:
            n_odds += 1
    
    print(n_odds)
    

    결론


    이 자습서에서는 다음과 같은 내용을 설명합니다.
  • 시퀀스
  • 에서 무작위 요소 선택
  • 사용* 조작원
  • 으로 소자 포장 열기
  • 중복 항목을 효과적으로 삭제하는 능력을 집합
  • 코드 편집기를 종료하지 않은 상태에서 검색 방법과 변수
  • 를 어떻게 검색합니까
  • python 슬라이드의 다양한 용도
  • 함수breakpoint를 어떻게 호출하는지
  • Please consider supporting me on Ko-fi. You would help me to continue building these tutorials!.


    만약 당신에게 어떤 피드백이 있다면, 평론에서 저에게 알려주세요.
    관련 항목:



    좋은 웹페이지 즐겨찾기