자바 아저씨가 파이톤을 사용하기 전의 모든 기록 (7)

7226 단어 Python

각종 환경을 구축하다.


안녕하세요, Java 삼촌입니다.
아무래도 문법도 점점 이해가 되는 것 같아서 Django의 개발 환경도 갖추어져야 한다고 생각해서 여기저기 다양한 정보를 찾았다이렇게 돼서
PyCharm 엔지니어들이 거의 이걸 사용하고 있다고 할 수 있습니다.

파이썬 개발 환경에 대한 비교 보도가 어디 있겠어요?
그렇게 생각해서 검색해 봤는데 괜찮은 확률로 PyCharm을 밀었어요.
하지만 유료 버전과 무료 버전의 기능이 제한되어 있는 것 같아서 어쨌든 현재 Visual Studio Code는 불편함을 느끼지 않습니다.
뭐, 잠시 논하지 말자.
보면서이 일대 설치했지만 Vagrant를 사용할 필요가 있다고 생각했어요.
아니오, 다양한 관계에서 사용하는 것이 좋다고 생각하지만 개발 환경으로서 Windows Anaconda에 코드를 써서 실행 환경으로Vagrant 환경에 업로드해야 한다는 것을 감안하면 좀 번거롭다고 생각합니다.특히 DB 관련 테스트 코드를 쓸 때 테스트를 하나씩 올리면 비용이 많이 드는 것 같다.
CI환경 안 만들면 안돼요?그런데 그게 오히려 무겁지 않나요?
그렇게 생각하다가 어제부터 계속 더듬어 보았어요.

목록 및 가변


말은 그렇게 하지만 저는 다임무텍스트를 잘 못해서 주로 독서를 추진합니다.
오늘 5-2 명단과 가변성을 읽고 있습니다.
목록과 원조의 차이는 다음과 같다.
  • 원조의 초기화 사용(), 목록은 []을 사용한다.[1,2,3,4][1:3][1]로도 표현할 수 있다.
  • 목록에서 원소가 하나라도 원조와 다를 필요가 없다.뭐, 냉정하게 말하자면 이것은 문법 해석의 문제이기 때문에 어쩔 수 없다.
  • 모듈 불변, 목록 가변
  • 마지막 요점도 앞서 논평에서 지적한'방법이 부작용을 동반한다'는 것과 관련이 있다.
    한 마디로 하면 목록은 가변적이기 때문에 부작용이 있는 (= 내부 상태 변경) 방법으로 목록 자체를 고칠 수 있다및 * 같은 연산자는 부작용이 없으므로(=내부 상태는 변경되지 않음) 목록에 이러한 연산자를 사용할 때 새 목록이 생성되고 반환됩니다.
    원조의 상황은 변하지 않는다. 원래 내부 상태를 바꾸는 방법 자체가 없다. 그런가?이 방면의 언급은 이 교재가 명확하지 않기 때문에 단언하기 어렵다.
    아마 함수형 프로그램 설계에서 이 부작용을 동반/동반하지 않으면 매우 중요하게 변할 것이다. 이것은 어디서 들은 말인가.아마 이따가 나올 거예요.

    목록 복사


    순환 중에 목록을 수정할 때 다음과 같은 방법으로 목록 클론을 생성하여 수정의 영향을 피할 수 있습니다.
  • 복제 목록의 일부분을 슬라이스로 표시합니다.
  • list(L)로 목록의 복사를 되돌려줍니다.(완전 복제구조기네)
  • 가변 객체가 포함된 경우 표준 라이브러리 copy를 가져와 copy합니다.deepCopy 사용
  • 코드를 나중에 쓰도록 하죠.썼어.
    5-2-1.py
    import copy
    
    source = [1, 2, 3, 4, 5]
    
    print('id(source) =', id(source))
    
    #スライス表記を使ったクローン
    for value in source[1:3]:
        print(value)
    
    print()
    
    #list(L)を使ったクローン
    copied = list(source)
    for value in copied:
        print(value)
    print('id(copied) =', id(copied))
    
    print()
    
    #copy.deepCopyを使ったクローン
    deep = copy.deepcopy(source)
    for value in deep:
        print(value)
    print('id(deep) =', id(deep))
    
    실행 결과는 다음과 같습니다.
    id(source) = 1242503195016
    2
    3
    
    1
    2
    3
    4
    5
    id(copied) = 1242502800136
    
    1
    2
    3
    4
    5
    id(deep) = 1242503195656
    

    포함 목록


    주어진 연산이 특정한 정렬 값(예를 들어 목록 요소)에 적용되는 결과를 요소로 하는 새로운 목록을 만들었습니다.
    그런 것 같습니다.
    따라서 for절에서 1개 이상의if문과 for문을 지속할 수 있고 조건에 맞는 데이터만 추출할 수 있다.네.
    이것도 이따가 쓰세요.썼어.
    5-2-2.py
    def isPrime(target):
        """簡単な素数判定。素数ならTrue、素数でなければFalseを返す"""
        for n in range(2, target):
            if target%n == 0:
                return False
        return True
    
    #リスト内包(単純な演算)
    simple = [x**2 for x in range(1, 6)]
    print(simple)
    
    #リスト内包(条件によるデータ抽出:素数の2乗をリストに抽出)
    onlyPrime = [x**2 for x in range(2, 11) if isPrime(x)]
    print(onlyPrime)
    
    나는 단지 추출한 데이터가 제곱이어서 특별한 의미가 없고 연산할 수 있다는 것을 표시하고 싶었을 뿐이다.
    실행하면 이런 느낌이야.
    [1, 4, 9, 16, 25]
    [4, 9, 25, 49]
    
    세 개의 연산자와 같은 번거로운 코드라는 인상을 준다.
    근데 아마 필터로 편리할 거예요.
    아마도 누군가가 다른 사람이 그 코드를 읽어야 할 수도 있고, 때로는 다른 사람이 교묘하기를 바라지 않는다는 것을 기억해야 한다
    기본적으로 평론은 매우 중요하다.
    오늘은 여기까지.

    좋은 웹페이지 즐겨찾기