비밀리에 파이썬을 배우고 모두에게 충격을주고 싶다 (4 일차)

여기에 사진 설명 삽입

제목은 불쾌감을주기위한 것이 아니지만이 광고가 재미 있다고 생각합니다
. 마음에 들면 위의 마인드 맵을 가져 가세요. 어차피 많이 배울 수는 없습니다.

머리말

예비 검토 : 나는 파이썬을 비밀리에 배우고 나서 모두를 놀라게하고 싶다 (3 일째).
위 기사는 파이썬에 대한 기본적인 지식, 주로 파일에 대한 파이썬의 읽기 및 쓰기 작업을 썼습니다 . 아마도 단어 수가 상대적으로 적기 때문일 것입니다. 직접 열어 보니 조금 부끄러 웠습니다.
그러나 그것은 또한 이전 두 기사보다 파일 읽기 및 쓰기가 조금 더 어렵 기 때문입니다.

그래서 오늘, 파이썬을 "잡지", 모듈로 만드는 것들을 살펴 보겠습니다! 기초에 능숙하지 않으면 기초를 굳건히 할 수 있고, 결국 정직하지 않고 땅 위에 건물을 짓는 것은 위험합니다.

本系列文默认各位有一定的C或C++基础,因为我是学了点C++的皮毛之后入手的Python,这里也要感谢齐锋学长送来的支持。
本系列文默认各位会百度,学习‘模块’这个模块的话,还是建议大家有自己的编辑器和编译器的,上一篇已经给大家做了推荐啦?

我要的不多,点个关注就好啦
然后呢,本系列的目录嘛,说实话我个人比较倾向于那两本 Primer Plus,所以就跟着它们的目录结构吧。

本系列也会着重培养各位的自主动手能力,毕竟我不可能把所有知识点都给你讲到,所以自己解决需求的能力就尤为重要,所以我在文中埋得坑请不要把它们看成坑,那是我留给你们的锻炼机会,请各显神通,自行解决。

좋아요, 주제로 넘어 갑시다.


모듈이란?

다른 고급 언어를 배웠다면 C / C ++ 소스 파일의 시작 부분에 일반적으로 많은 'include'가 있음을 알 수 있습니다. 이것은 참조 헤더 파일입니다. 헤더 파일에는 일부 클래스와 함수가 있습니다. , 변수 등을 사용하고 싶다면 사전에 진술을해야합니다.

이런 식으로 실제로 공간이 부족합니다.
여기에 사진 설명 삽입

회원, 파일, 채팅 기록이있는 QQ 그룹이 있다고 가정 해 봅시다. 이러한 것들을 얻고 사용하려면 그룹에 가입해야합니까?
이것이 모듈을 버리는 이유입니다. 모듈에는 클래스, 함수, 변수가 있습니다. 이러한 것들을 사용하려면 모듈을 임포트해야합니다.

이런 식으로 훨씬 더 부드럽습니다.

음, 항상 뭔가 빠진 것 같은 느낌이 들어요. 예, 모듈을 스캔하고 훑어 보겠습니다. 이해하고 싶지 않습니다. 안에 무엇이 있는지 알고있을 것입니다.

다음은 임의 모듈의 차단입니다.

from warnings import warn as _warn
from types import MethodType as _MethodType, BuiltinMethodType as _BuiltinMethodType
from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil
from math import sqrt as _sqrt, acos as _acos, cos as _cos, sin as _sin
from os import urandom as _urandom
from _collections_abc import Set as _Set, Sequence as _Sequence
from hashlib import sha512 as _sha512
import _random

__all__ = ["Random","seed","random","uniform","randint","choice","sample",
           "randrange","shuffle","normalvariate","lognormvariate",
           "expovariate","vonmisesvariate","gammavariate","triangular",
           "gauss","betavariate","paretovariate","weibullvariate",
           "getstate","setstate", "getrandbits",
           "SystemRandom"]

NV_MAGICCONST = 4 * _exp(-0.5)/_sqrt(2.0)
TWOPI = 2.0*_pi
LOG4 = _log(4.0)
SG_MAGICCONST = 1.0 + _log(4.5)
BPF = 53        # Number of bits in a float
RECIP_BPF = 2**-BPF

class Random(_random.Random):
    VERSION = 3     # used by getstate/setstate

    def __init__(self, x=None):
        self.seed(x)
        self.gauss_next = None

    def seed(self, a=None, version=2):
        if a is None:
            try:
                # Seed with enough bytes to span the 19937 bit
                # state space for the Mersenne Twister
                a = int.from_bytes(_urandom(2500), 'big')
            except NotImplementedError:
                import time
                a = int(time.time() * 256) # use fractional seconds

        if version == 2:
            if isinstance(a, (str, bytes, bytearray)):
                if isinstance(a, str):
                    a = a.encode()
                a += _sha512(a).digest()
                a = int.from_bytes(a, 'big')

        super().seed(a)
        self.gauss_next = None
……

보시다시피, 처음에는 패키지 묶음 (import ..., 지금 이해하지 못하더라도 중요하지 않음)과 일부 변수, 함수가있는 클래스를 조정했습니다.
좋아, 어쩌면 한눈에 계속하자


변수를 정의하려면 할당 문이 필요하고 함수를 캡슐화하려면 def 문이 필요하고 클래스를 캡슐화하려면 클래스 문이 필요하지만 모듈을 캡슐화하는 데 문이 필요하지 않습니다.

문이 사용되지 않는 이유는 각 개별 Python 코드 파일 (확장자가 .py 인 파일)이 별도의 모듈이기 때문입니다.

이것은 이해하기 어렵지 않습니다.

모듈을 캡슐화하는 목적은 재사용을 위해 프로그램 코드와 데이터를 저장하는 것입니다. 클래스와 함수로 캡슐화하면 주로 스스로 호출하는 것이 편리하지만 모듈은 캡슐화되어 우리가 직접 사용할 수있을뿐만 아니라 파일 형식도 다른 사람들과 공유하기 쉽습니다.


나만의 모듈을 가져 오려면 저와 함께하세요

어떻게 말해야할까요? 다른 사람들은 수천 개의 모듈을 가지고 있지만 나중에 모듈을 직접 작성해야하기 때문에 공부할 때 스스로 작성한 모듈을 사용하는 것이 더 쉽습니다.

1 단계 : 새 모듈 만들기

여기에 사진 설명 삽입

그림의 순서에 따라 새 모듈을 만든 다음 코드를 작성합니다.

2 단계 : 모듈 호출

여기에 사진 설명 삽입

음, 이것은 아주 단순한 작은 밤입니다.

모듈의 다른 메서드를 호출합니다.

이전 기사에서와 같이 파일을 여는 방법은 두 가지가 있습니다. 하나는 직접 여는 방법이고 다른 하나는 별칭을 사용하는 방법입니다. 모듈을 호출하는 다른 방법도 있습니다.

첫 번째 직접 가져 오기 유형은 이미 본 적이 있지만 여기서 조금 더 말할 수 있습니다. 모듈 이름이 너무 길면 별칭을 사용할 수 있습니다.
예를 들어 import test테스트가 약간 길다고 생각하면 나중에 사용하기가 불편합니다. 이렇게 할 수 import test as t
있지만 나중에 만 사용할 수 있습니다. t는 해당 모듈을 참조하는 데 사용되지만 테스트는 더 이상 사용할 수 없으며 상위 패키지입니다.

두 번째 메서드 from ... import ...
이 메서드는 무엇입니까? 또는 위의 예제에서 이제 테스트에서 test3 클래스를 사용하고 싶습니다. 다른 클래스는 원하지 않습니다. 다른 모든 것을 가져와야하는 이유는 무엇입니까? 너무 크지 않나요? 이때이 방법을 사용하여 정확한 위치를 지정할 수 있습니다.

그림을보세요 :
이것은 전형적인 잘못된 글쓰기 방식입니다. 이제 정확한 위치를 잡았으니 이전에 큰 수영장에 얽매이지 마십시오.
여기에 사진 설명 삽입

다음은 특정 부분 만 가져오고 가져 오지 않은 나머지 부분을 응용 프로그램의 일부로 가져 오면 충돌하지 않는지 테스트하는 것입니다.
여기에 사진 설명 삽입

이것은 확인 결과입니다.
여기에 사진 설명 삽입

이것은 여전히 ​​사용할 수있는 별칭의 사용입니다.
여기에 사진 설명 삽입


여기서 한 가지 더, 여러 모듈을 가져 오려면 어떻게해야합니까? 또한 가능합니다. 쉼표를 사용하여 다른 모듈을 구분하십시오. 위로 이동하여 직접 시도해보십시오.


if __name__ == '__main__'

Python 및 기타 여러 프로그래밍 언어의 경우 프로그램에 진입 점이 있어야합니다.

Python에서 특정 py 파일을 실행할 때 프로그램을 시작할 수 있습니다. ---이 py 파일은 프로그램의 진입 점입니다.

그러나 프로그램을 구성하기위한 py 파일이 많을 때 :
여기에 사진 설명 삽입

특정 py 파일을 프로그램의 진입 점으로 [지정]하기 위해 이러한 코드를 py 파일에 작성할 수 있습니다.

# 【文件:xx.py】

代码块 ①……

if __name__ == '__main__':
    代码块 ②……

이 문장의 의미는 다음과 같습니다.
여기에 사진 설명 삽입

여기서 [if name == ' main ']은 Python 시뮬레이션의 프로그램 항목과 동일합니다. 파이썬 자체는 그러한 글쓰기를 규정하지 않으며 프로그래머가 합의에 도달하는 코딩 습관입니다.


Excel 차트를 조작하기위한 csv 모듈

우선, 이것이 다른 사람의 모듈을 사용하고 있음을 분명히 알아야합니다. 둘째, 우리가 달성하고자하는 기능은 Excel 테이블의 간단한 작업이라는 것만 알고 있습니다.

그래서 우리의 순서는 :
어떤 모듈을 사용합니까?
이 모듈의 기능은 무엇입니까?
이러한 특정 기능을 사용하는 방법은 무엇입니까?
좋아, 사용하겠습니다.

어떤 모듈이 필요합니까?

이것은 실제로 다루기 쉽지만 다루기도 매우 어렵습니다.
처리하기 쉬운 경우 Du Niang에게 물어보십시오.
여기에 사진 설명 삽입
, 한 번의 검색으로 모든 것을 찾을 수 있습니다 .
말하기가 쉽지 않습니다. 이전 경험을 많이 찾을 수 없습니다. 물어봐야합니다.

예를 들어 오늘날 우리는 사용하기 쉽기 때문에 csv 모듈을 사용합니다.

이 모듈의 내용은 무엇입니까?

그렇다면이 문제는 다루기 쉬우 며, 영어가 괜찮다고 생각하거나 영어를 연습하고 싶다면 공식 웹 사이트가 최신 버전으로 업데이트 되었기 때문에 공식 웹 사이트를 방문 할 수 있습니다.
중국어 번역 버전, 때로는 최신 버전을 찾는 것이 그다지 효과적이지 않습니다.

농담입니다. 중국어 버전에도
Python 설명서 (공식 중국어 버전)가 있습니다.

좋습니다. csv 모듈 (검색 창 포함)을 찾습니다. CSV

관심이 있으시면 중국어와 영어로 읽을 수 있고, 바쁘시면 샘플 코드를보세요.

csv 모듈 사용

먼저 테이블을 만듭니다.
여기에 사진 설명 삽입

그런 다음 파일을 여는 것처럼이 테이블을 엽니 다. 파일 작업에 익숙하지 않은 경우이 리뷰로 돌아갈 수 있습니다. 나는 Python을 비밀리에 배우고 싶습니다 .
(3)

읽다

import csv

with open('test.csv', newline = '', encoding = 'GBK')  as f:
    #参数encoding = 'utf-8'防止出现乱码
    reader = csv.reader(f)
    #使用csv的reader()方法,创建一个reader对象
    for row in reader:
        print(row)

여기에 사진 설명 삽입

쓰다

먼저 writer (또는 다른 이름)라는 변수를 사용하여 인스턴스를 만듭니다. 생성 방법은 writer = csv.writer (x)입니다. 그런 다음 writer.writerow (list)를 사용하여 라인 목록의 내용을 csv 파일에 쓸 수 있습니다.
여기에 사진 설명 삽입

import csv

with open('test.csv','a', newline='',encoding='utf-8') as f:
    writer  = csv.writer(f)
    writer.writerow(['6', '小黑', '65', '82', '86'])
    writer.writerow(['7', '小红', '78', '64', '31'])

여기에 사진 설명 삽입
여기에 사진 설명 삽입

이 시점에서 우리는 가장 기본적인 csv 테이블 읽기 및 입력 방법을 배웠습니다.


오늘의 작업 :
여러 csv 파일을 하나의 csv 파일로 병합 해 보겠습니다. 이것은 말하기 어렵지 않으며 간단하다고 말하는 것이 그렇게 직관적이지 않습니다.

다음 기사에 내 코드를 넣을 것입니다.

그런 다음 평균적으로 "Learn Python Secretly"시리즈를 평균 3 ~ 4 일 동안 업데이트하므로 모든 것이 계획대로 진행될 것이므로 걱정하지 마십시오.

다음 기사는 실기 기사입니다. 요즘 학습 내용을 처음부터 복습하도록하겠습니다. 더 많은 연습이있을 것입니다.


나는 원을 그렸고, 우리의 작은 원에 모두를 환영합니다

저는 Python Q & A 그룹을 만들었습니다. 관심있는 친구들은 다음을 확인할 수 있습니다. 이것은 어떤 종류의 그룹입니까?

그룹을 통한 포털 : 포털

여기에 사진 설명 삽입
여기에 사진 설명 삽입

추천

출처blog.csdn.net/qq_43762191/article/details/109195441