你要偷偷的学Python,然后惊呆所有人(第四天)

标题无意冒犯,就是觉得这个广告挺好玩的

文章目录

前言什么是模块?跟我一起动手导入自己的模块第一步:新建一个模块第二步:调用模块调用模块不同方法。`if __name__ == '__main__'`csv模块操作Excel图表我要用什么模块?这个模块里有哪些东西?使用csv模块读写我画了个圈,欢迎大家来我们的小圈子

前言

前期回顾:你要偷偷的学Python,然后惊呆所有人(第三天)

上面这篇里面写了python的一些知识基础,主要是Python对于文件的读写操作,可能是字数比较少吧,每次我自己点开都觉得有点尴尬。

但是也是因为文件读写相对于前面两篇会比较难一点吧

那么今天,我们就看一下能让Python成为‘万金油’的东西,模块!如果对基础还不是很熟练的话可以再扎实一下基础,毕竟万丈高楼平地起嘛,基础不老实是很危险的。

本系列文默认各位有一定的C或C++基础,因为我是学了点C++的皮毛之后入手的Python。本系列文默认各位会百度,学习‘模块’这个模块的话,还是建议大家有自己的编辑器和编译器的,上一篇已经给大家做了推荐啦?本系列也会着重培养各位的自主动手能力,毕竟我不可能把所有知识点都给你讲到,所以自己解决需求的能力就尤为重要,所以我在文中埋得坑请不要把它们看成坑,那是我留给你们的锻炼机会,请各显神通,自行解决。1234567

如果大家在学习中遇到困难,想找一个python学习交流环境,可以加入我们的python圈,裙号930900780,可领取python学习资料,会节约很多时间,减少很多遇到的难题。

好,接下来切入正题。

什么是模块?

如果有学过其他高级语言的朋友就会知道,在C/C++的源文件开头,一般都会有一大堆的‘include’,这是引用头文件,一个头文件当中会有一些比方说类、函数、变量等等,而你要使用这些东西,你就要事先做一个声明。

这样讲实在是太空泛了。

假设现在有个QQ群,群里有成员,有文件资料,有聊天记录,你要获取这些东西并使用,你是不是得加群?

掉用模块就是这个道理,模块里面有类、有函数、有变量,你要使用这些东西,你就得导入模块。

这样讲就通畅多了嘛。

emmm,总觉得还是少了点什么,对,我们来扫描一个模块,瞟一眼就好啊,不求看懂,大概知道里面是啥,咱心里有点数:

以下是一块 random 模块中的截取:

fromwarningsimportwarnas_warnfromtypesimportMethodTypeas_MethodType, BuiltinMethodTypeas_BuiltinMethodTypefrommathimportlogas_log, expas_exp, pias_pi, eas_e, ceilas_ceilfrommathimportsqrtas_sqrt, acosas_acos, cosas_cos, sinas_sinfromosimporturandomas_urandomfrom_collections_abcimportSetas_Set, Sequenceas_Sequencefromhashlibimportsha512as_sha512import_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*_piLOG4 = _log(4.0)SG_MAGICCONST =1.0+ _log(4.5)BPF =53# Number of bits in a floatRECIP_BPF =2**-BPFclassRandom(_random.Random):VERSION =3# used by getstate/setstatedef__init__(self, x=None):self.seed(x)        self.gauss_next =Nonedefseed(self, a=None, version=2):ifaisNone:try:# Seed with enough bytes to span the 19937 bit# state space for the Mersenne Twistera = int.from_bytes(_urandom(2500),'big')exceptNotImplementedError:importtime                a = int(time.time() *256)# use fractional secondsifversion ==2:ifisinstance(a, (str, bytes, bytearray)):ifisinstance(a, str):                    a = a.encode()                a += _sha512(a).digest()                a = int.from_bytes(a,'big')        super().seed(a)        self.gauss_next =None……1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950

可以看到,开头那个它调了一堆的包(import…,现在看不懂没关系),然后接下来时一些变量,接着是个类,类里面有函数。

好,大概瞟一眼就好啊,我们继续

定义变量需要用赋值语句,封装函数需要用def语句,封装类需要用class语句,但封装模块不需要任何语句。

之所以不用任何语句,是因为每一份单独的Python代码文件(后缀名是.py的文件)就是一个单独的模块。

这个也不难理解吧。

封装模块的目的也是为了把程序代码和数据存放起来以便再次利用。如果封装成类和函数,主要还是便于自己调用,但封装了模块,我们不仅能自己使用,文件的方式也很容易共享给其他人使用。

跟我一起动手导入自己的模块

怎么说呢,别人的模块千千万,但是学习的时候还是用自己写的模块比较得心应手,因为以后也少不了自己写模块的时候。

第一步:新建一个模块

照图中的顺序,把模块新建出来,然后把代码写上。

第二步:调用模块

好,这是一个很简单的小栗子。

调用模块不同方法。

就像上一篇的文件打开有两种方法,一种直接了当的打开,另一种用别名,这里调用模块也有不同的方法。

第一种直接import已经见过了,不过这里可以再说一点,如果模块名过长,可以取个别名

比方说

import test,你觉得test有点长,后面使用不方便,你可以这样:import test as t

不过后面就只能用 t 来指代那个模块,而不能再用 test 了,它已经被顶包了。

第二种方法,叫 from…import…

这种方法是什么,还是上面那个例子,我现在就想用test里面的那个test3类,其他的我不要,那我为什么要把其他的东西都

导进来,那不是太庞大了吗?这时候就可以用这种方法,精准定位。

看图:

这是一个典型的错误写法:既然你已经精准定位了,就不要再纠缠与以前的那个大水池了

这里测试了一下如果只导入某部分,其余没被导入的部分被导入部分应用会不会有冲突:

这是验证结果:

这是别名的使用,照样是可以使用的:

这里再提一点,如果想要导入多个模块呢?也是可以的,不同模块之间用逗号割开即可,大家动起来,自己尝试一下。

if __name__ == '__main__'

对于Python和其他许多编程语言来说,程序都要有一个运行入口。

在Python中,当我们在运行某一个py文件,就能启动程序 ——— 这个py文件就是程序的运行入口。

但是,当我们有了一大堆py文件组成一个程序的时候:

为了【指明】某个py文件是程序的运行入口,我们可以在该py文件中写出这样的代码:

# 【文件:xx.py】代码块 ①……if__name__== '__main__':    代码块 ②……123456

这句话的意思是这样的:

这里的【if name == ‘main’】就相当于是 Python 模拟的程序入口。Python 本身并没有规定这么写,这是一种程序员达成共识的编码习惯。

csv模块操作Excel图表

首先我们要明确的知道,这是在使用别人的模块。其次我们只知道我们要实现的功能是简单操作Excel表格。

那么我们的顺序就应该是:

我要用什么模块?

这个模块里有哪些功能?

这些具体功能该怎么使用?

好的,我去用了。

我要用什么模块?

这个其实很好办,也很不好办。

说好办嘛,你问度娘就好啦:

是吧,一搜全都有。

说不好办吧,很多前人的经验你是搜不到的,你得去问。

比如说我们今天就使用csv模块,因为它简单易上手。

这个模块里有哪些东西?

那这个问题也很好办嘛,如果觉得自己英语没问题,或者想锻炼一下英语的朋友,可以去官网,因为官网是有更新到最新版的。

中文翻译版嘛,有时候不能很有效的找到最新版。

嘿嘿,开个玩笑,中文版也有

Python手册(官方中文版)

好,我们找到csv模块(有搜索框的):CSV

有兴趣的话可以连中文带英文一起看,赶时间的话就直接看它的示例代码即可啦。

使用csv模块

首先我们建个表:

然后打开这个表,就像打开文件一样,如果文件操作还不熟练的朋友可以回到这篇温习一下:

你要偷偷的学Python(3)

import csvwithopen('test.csv',newline='',encoding='GBK')asf:#参数encoding = 'utf-8'防止出现乱码reader = csv.reader(f)#使用csv的reader()方法,创建一个reader对象forrowinreader:        print(row)12345678

先创建一个变量名为writer(也可以是其他名字)的实例,创建方式是writer = csv.writer(x),然后使用writer.writerow(列表)就可以给csv文件写入一行列表中的内容。

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

到这里,最基本的csv表格读取和录入方法我们就已经学会了。

今日份任务:

大家尝试一下将多个csv文件合并到一个csv文件中吧,这个

说难其实也不难,说简单也不是那么的直观啦。

我画了个圈,欢迎大家来我们的小圈子

我建了一个Python学习答疑群,有兴趣的朋友可以了解一下。这里有我自己整理的整套python学习资料和路线,想要这些资料的都可以进裙930900780领取。

本文章素材来源于网络,如有侵权请联系删除。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,012评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,628评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,653评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,485评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,574评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,590评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,596评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,340评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,794评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,102评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,276评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,940评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,583评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,201评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,441评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,173评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,136评论 2 352