1.华小智系列 - Python基础(案例版)

《Python基础》目录

  • 第四讲:Python函数与模块
    • 1、函数的定义与调用
    • 2、函数参数与返回值
      • 2.1 参数再研究
      • 2.2 返回值
      • 2.3 变量作用域
    • 3、一些基本函数的介绍
      • 3.1 print函数
      • 3.2 str函数与int函数
      • 3.3 len函数
      • 3.4 replace函数
      • 3.5 strip函数
      • 3.6 split函数
      • 3.7 异常处理函数try except函数
    • 4、Python模块/库介绍
    • 5、本章练习题
    • 6、课程相关资源

第四讲:Python函数与模块

配套书籍:《Python金融大数据挖掘与分析全流程详解》第1章
配套书籍:《Python大数据分析与机器学习商业案例实战》第1章
说到函数,大家可能畏难情绪就上来了,也许可能就想到以前学的什么幂函数,指数函数各种看着很吓人的东西了,但其实在Python里提到的函数就跟你小学初中学的一元一次函数是一个难度级别的,基本上你能理解一元一次函数:y(x) = x + 1,你就能理解Python里的函数了。

1、函数的定义与调用

函数的一个最主要的功能就是让你可以不用一个代码重复写很多遍,
定义一个函数的格式如下,我们用def来定义函数(def其实是define(定义)的缩写),这个是一个固定写法,注意记得写冒号及代码前的缩进

def 函数名(参数):代码

我们以刚刚说的一元一次函数y = x + 1来演示下Python函数的写法:

def y(x):print(x+1)
y(1)

这个其实和y(x) = x + 1基本就没什么太大差别了,前两行定义函数,第三行就是调用函数,调用函数其实很简单,只要输入函数名即可,如果含有参数,那么在函数名后面输入参数即可。这个第三行的y(1)就是表示y(1) = 1 + 1,根据第二行的内容,它将输出这个内容,最后输出:

2

其中第三行大家可以换成y(2),y(3)都可以,这样输出的结果就会随之改变.
比如:

def y(x):print(x+1)
y(1)  #第一次调用函数
y(2)  #第二次调用函数
y(3)  #第三次调用函数

那么输出的结果就是:

2
3
4

这边感慨一句,如下图,其实我们以前高中数学都学过f(x),这个f就是function(函数)的意思,以前没觉得它有多厉害,现在发现它和我们上面学的编程中的函数本质上其实是一个东西,或者说python中的函数,其灵感或者基石就是来自数学中的函数。如今学习编程,是重新体会了数学真的是很多学科基石呀。

有的时候函数括号里面不要参数也可以,这个大家简单了解即可,比如:

def y(): x = 1print(x+1)
y() #调用函数

其中前三行定义了一个函数,第四行调用了这个函数,发现在这个函数里我们并没有输入参数,直接敲击y()就可以调用函数了,不过这样的话,就没有办法改变x的值,这个函数的输出结果只会是2:

2

这种不输入参数的函数定义方法,一般用的比较少,大家了解即可。
那么定义函数,在实战中有什么应用呢?比如说在舆情监控爬虫实战中就大有用途,我给大家演示下,大家先大概看下:

def baidu(company):#这里是具体爬虫代码,第七章会讲print(company + 'completed!')companys = ['华能信托','阿里巴巴','百度集团','腾讯','京东','万科','华为集团']
for i in companys:baidu(i)

上面这个代码就是舆情监控项目实战的一个基本框架了,其中第2行的具体代码,在第七章和第九章会讲给大家听。现在大家先关注这个函数,这个函数名叫做baidu(因为代码主要爬取的是百度新闻),参数为company,该参数在第2行的具体爬虫代码里和第3行的print(company + ‘completed!’)都有应用。其中这个company只是一个代号,你可以换成阿猫阿狗都可以,比如,你换成如下内容,只要下面的company也记得改了就行。

def baidu(cat):#这里是具体爬虫代码,第九章会讲print(cat + 'completed!')

第5行是个需要监控的公司列表,第6行for i in companys则是通过循环来对每个项目公司来进行监控。这边这个i你可以换成任何内容,没有影响的,比如你写成j,写成company都是可以的,因为它就是遍历列表,然后把列表元素输入到baidu(company)这个函数当中,也就是第7行的内容。
第7行就是把各个公司作为参数来运行baidu(company)这个函数。这样就实现了对各个公司进行舆情监控,我目前监控了200多家项目公司及信托公司,所以大家可以体会下函数的重要性,如果没有函数,也就意味着同样的代码我得复制200多遍。

2、函数参数与返回值

2.1 参数再研究

def baidu(company):#这里是具体爬虫代码,第九章会讲print(company + 'completed!')companys = ['华能信托','阿里巴巴','百度','腾讯','京东','万科','建设银行']
for i in companys:baidu(i)

我们再来把这几行代码研究下,初学者可能会有点疑惑,这个第一行的参数company是不是可以换成别的任何一个值,答案是可以的,这个company只是个参数,它就相当于y(x) = x + 1中的x,你换成可以用z来代替x,变成y(z) = z + 1,只是形式变了,对函数本身并没任何影响,只要x + 1中的x变成z即可。
所以我们完全也可以这么写,把company换成keyword**,这个参数只是个代号而已。

def baidu(keyword):#这里是具体爬虫代码,第七章会讲print(keyword + 'completed!')companys = ['华能信托','阿里巴巴','百度','腾讯','京东','万科','建设银行']
for i in companys:baidu(i)

而**最后两行中的i相当于y(1) = 1 +1 中的1,这个是函数调用输入的值。其中你可以把i换成j,换成k什么的都可以,因为无论换成什么,它都是表示这个列表companys中的每一个公司名称。

2.2 返回值

我们把最开始的代码稍微修改下,把print改成return,别的内容不变。

def y(x):return(x+1)
y(1)

我们再次运行下,发现什么东西都没有,这是怎么回事呢,因为return和print函数不同,return相当于看不见的print,它是把原来该print的值赋值给了y(x)这个函数,学术点的说法就是该函数的返回值为:x+1。那么我们再稍稍修改下,就可以把y(x)显现出来了。

def y(x):return(x+1)
a = y(1)
print(a)

上面提到其实y(1)已经是一个有数值的东西了,只是不会直观的让你看到,原来该print的y(1)现在就相当于在后台给y(1)一个数值,那么令它等于a,然后利用print就可以把它打印出来了。
可以看到,return和print还是很像的,只不过有的时候我们不希望把内容都print出来(那样最后代码输出显示的内容会过多)而是只是在需要的时候去使用它即可。
上面这4行代码就可以输出如下内容了:

2

同样在下面这个代码里,我们把print改成return,return就是返回值的一个函数,这个不会把keyword + 'completed!'直接打印出来了,而是说把keyword + 'completed!'赋值给baidu这个函数了。

def baidu(keyword):#这里是具体爬虫代码,第七章会讲return(keyword + 'completed!')a = baidu('华能信托')
print(a)

这样输出的内容也同样还是

华能信托completed!

此外,return和print还有个不同的地方在于,return不用括号也是完全没有关系的,比如下面的代码是完全ok的,这个print是不可以的。

def baidu(keyword):#这里是具体爬虫代码,第七章会讲return keyword + 'completed!'  #这里把括号去掉了a = baidu('华能信托')
print(a)

去掉括号输出的内容也同样还是

华能信托completed!

可以看到return并不需要括号,当然你加上也没什么问题。
有的同学可能还有些疑惑,这个return感觉好像和print也没什么区别呀,反而还比print多绕了几步。那是因为这个代码还比较简单,所以两者的差异不大,如果原来print的是一堆内容,那return的左右就体现出来了。
当我们把一个公司相关的新闻标题,来源,评分都获取了之后,把它打印出来实在是有点有点繁琐,而你利用return则不用担心它把这些数据都打印出来了。而且你用return最大的好处是把函数得到的结果返回给了函数名,之后可以调用函数名就可以使用函数结果了,这个在高阶的应用里应用较多,这里了解即可。

2.3 变量作用域

这块内容其实不讲也没什么事,但就是怕有的初学者有疑问,再自己练习的时候不知道什么情况。简单提炼就是,你在函数内使用的变量是和函数外的程序没有关系的
举个栗子:

x = 1
def y(x):x = x + 1print(x)
y(3) print(x)

单纯看上面几行代码,大家想下最后会输出什么内容呢?
先给大家看下最后的输出结果,然后大家可以想一下:

4
1

同样是print(x),为什么打印出来的内容不一样呢?
如果你2.1参数再研究这一节你看明白了的话,那么这里大家就更容易理解了。其实函数y(x)里面的x和外面的x没有关系了,像之前讲过的,你可以把y(x)换成y(z),再把其他的x都换成z,那么这个函数其实是没有变化的:

x = 1
def y(z):z = z + 1print(z)
y(3) print(x)

看上面的代码,大家应该会更加明白,这样输出的肯定就是4和1了,这个y(z)中的z或者说y(x)中的x只是在函数内部才有效,它不会影响外部的变量,函数的参数只是个代号,与外部的变量关系不大。
这个大家不太用深究,因为我们一般各个函数都是相互独立的,不太会产生什么干扰。

3、一些基本函数的介绍

这边给大家介绍下Python中常用的一些函数,其实之前在基础知识里都已经介绍了一些了,这边可以当做复习吧。

3.1 print函数

这个大家应该都非常熟悉了,这个只是拎出来再强调下这个函数的重要性,它在我们之后的编程中会经常用到,它第一个作用是用来打印输出结果,比如我一开始爬取阿里巴巴在百度新闻上的舆情(如下图),我得把最原始的爬取内容打印输出出来,然后寻找规律,获取我想要的内容,那么print的作用就很大了。

第二个功能在我这边是用来发现错误以及纠正错误,比如我不知道程序到底是哪里出了问题了,那么就在我觉得有问题的地方打印输出一下,看它打印输出的结果是不是我想要的,如果不是的话,再做修改。

3.2 str函数与int函数

这边在讲字符串的时候已经讲过str这个函数了,这个用的很多,因为我们有的时候经常要把字符串和数字拼接到一起,那么就需要用到str函数:
举个例子:

score = 85
print('A公司今日评分为' + str(score) + '分。')

我们将爬取到的分数已经获取了,想把它打印输出出来,那么涉及字符串的拼接就需要用到str函数,他可以把数字85变成字符串’85’。
int函数的话,其实用的不多,这边简单提下,比如下面这个score = '85’是一个字符串,按照下面这个写法就会报错,报错显示为数据格式不匹配

score = '85'
if score > 80:print('OK')

如果我们想把它与80进行比大小,就得用int函数把它转换成数字

score = '85'
score = int(score)
if score > 80:print('OK')

这样就可以把字符串转换成数字,与数字进行比较了。

# 补充知识点1:如果是小数的话,就得用float()函数
score = '85.5'
score = float(score)  # float()函数可以处理浮点数(也就是带小数的数字)
if score > 80:print('OK')# 补充知识2:如果是想保留2位小数,可以使用round()函数
score = 85.126
score = round(score, 2)  # 自动四舍五入
print(score)

3.3 len函数

这个len函数最主要的作用是统计列表元素个数,当我们不知道列表一共有多少元素的时候,它能帮我们做一个统计,这个在之后的舆情监控之后又很大的作用。
举个例子,我爬取阿里巴巴,但不知道具体爬到了多少标题,那么用len就能获取标题个数,为之后的操作做准备:

title = ['标题1','标题2','标题3','标题4','标题5']
href = ['网址1','网址2','网址3','网址4','网址5']
for i in range(len(title)): #len(title)表示一个有多少个新闻,这里是5href[i] = 'www.baidu.com/' + href[i] #这个其实就相当于 a = a + 1print(str(i+1) + '.' + title[i]) #这个其实把字符串进行一个拼接print(href[i])

还是拿我们之前第三讲:For语句详解讲过的一个例子来做示范,这个就是一个我们在舆情监控中经常用到的len函数。它主要针对我们不清楚有多少新闻个数的时候来进行应用,如果我们知道了一共就5条新闻,那么就不用写len(title)了,直接写for i in range(5)即可:

for i in range(5)

而实际爬虫过程中我们是不知道有多少新闻条数的,所以len函数的作用就发挥出来了,这边倒数第二行正好还讲到了刚刚讲过的str函数,大家也可以当做一个复习。
顺便提一句,len函数还可以统计字符串的长度,如下:

a = '123华小智abcd'
print(len(a))

最后输出结果为10,就是十个字符串。

3.4 replace函数

这个replace函数主要的作用是替换你想替换的内容,具体的使用方法如下:“字符串.replace(替换之前的内容,替换之后的内容)”,比如舆情监控的时候我们爬到的一条新闻标题是

a ='<em>阿里巴巴</em>电商脱贫成“教材” 累计培训逾万名县域干部'
a = a.replace('<em>','')
a = a.replace('</em>','')
print(a)

这样我们就能把新闻标题里我们不希望要的给剔除掉,大家可以把这一块代码复制或敲到程序里运行看看,会得到如下结果:

阿里巴巴电商脱贫成“教材” 累计培训逾万名县域干部

在之后第九讲:正则表达式详解中,我会介绍另外一个替换的方法,那个方法更灵活,这边先埋个伏笔。

3.5 strip函数

strip函数主要的作用是删除空白符(包括’换行符\n’和空字符串’ '),具体的使用方法如下:“字符串.strip()”。
比如舆情监控的时候我们爬到的一条新闻标题是:’ 华能信托2018年上半年行业综合排名位列第5 ',在这个标题前面后面都有些我们不想要的空白字符串,有的时候甚至还有讨厌的换行符,那么处理办法如下:

a ='        华能信托2018年上半年行业综合排名位列第5        '
a = a.strip()
print(a)

那么我们就可以获取到一条非常干净的新闻标题了。

华能信托2018年上半年行业综合排名位列第5

3.6 split函数

split函数主要的作用是根据你的想法来分割字符串,具体的使用方法如下:“字符串.split(‘分割的方法’)”。同样用实战中碰到情况来举例,如果我爬取到的日期是这样的内容:‘2018年12月12日 08:07’,我们是不想要最后的具体时分秒,我们只想要“2018年12月12日”,这里就没办法用replace办法,因为它可能是08:07,也有可能是09:20。但是我们知道‘2018年12月12日’和具体时分秒中间有个空格,那么我们就可以利用这个空格,把2018年12月12日和具体时分秒分割开来。这个分割的方法就是空格。

a = '2018年12月12日 08:07'
a = a.split(' ')[0]
print(a)

大家自己试一下,会得到如下输出结果:

2018年12月12日

这边有个小细节提醒下大家,这个split之后,不是分成几块了嘛,所以它的返回结果是一个列表,所以在第二行代码,如果我们想获取前半块内容,也是列表的第一个内容,就要输入序号0(在python中序号0表示第一个元素),要写成a = a.split(’ ')[0]。
大家可以写这么几行代码来理解下我说的内容:

a = '2018年12月12日 08:07'
a = a.split(' ')
print(a)

我们可以看到输出的内容为:

['2018年12月12日', '08:07']

这样我们应该就更能理解split之后得到的其实是一个列表了,所以如果想获取列表的第一个元素,就要写list[0]来获取啦。

复习联动:列表转字符串,和字符串转列表

class1 = ['丁一', '王二麻子', '张三', '李四', '赵五']
a = ",".join(class1)
print(a)a = '丁一,王二麻子,张三,李四,赵五'
a = a.split(',')
print(a)

结果如下:

丁一,王二麻子,张三,李四,赵五
['丁一', '王二麻子', '张三', '李四', '赵五']

3.7 异常处理函数try except函数

(这个其实叫try except语句,当初写的时候不够严谨,不过叫法并不影响使用)
这个异常处理函数也是一个比较有用的一个函数,也许你之前学习的过程中,经常程序会报错,然后程序就被迫中止了,那么利用异常处理函数的话,就可以避免程序因为哪一步程序出了错而整个程序终止,这在舆情监控的时候非常有用,因为它是24小时不间断运行的,如果哪里出了点小问题,比如爬取的某个网站突然崩溃了,但别的网站还ok,我们希望就不用管这个崩溃的网站,继续执行下面的代码即可
异常处理函数的具体使用方法如下:

try:主代码
except:如果主代码出错了,那么该执行的代码

先举个简单的例子:

try:print(1 + 'a')
except:print('主代码运行失败')

根据我们已经学过的知识,print(1 + ‘a’) 这行代码肯定是会报错的,因为数字和字符串是不可以直接相加的,那么在这里我们用try except之后,try这一块失败了,程序没法运行,那么它就会跳转到except那里执行 print(‘主代码运行失败’),可以看到最后输出的内容为:

主代码运行失败

其实这个的逻辑有点像if else函数,try就相当于if,except就相当于else,两者的底层逻辑其实是一样的,都是一个不行,就执行另外一个。
那么这个在具体项目中的实践是怎么样的呢?

try:#这里是百度新闻爬取的代码,之后第五第七章会讲print('百度新闻爬取成功')
except:print('百度新闻爬取失败')

如上面的代码,在第二行有具体的爬虫代码,如果它没出问题,那么就直接打印“百度新闻爬取成功”,如果它出问题了,那么就打印“百度新闻爬取失败”。
比如说如果我再print(百度新闻爬取成功)前面故意加一个错误的内容来做演示:

try:#这里是百度新闻爬取的代码,之后第五第七章会讲print(1 + '1')print('百度新闻爬取成功')
except:print('百度新闻爬取失败')

因为1 + ‘1’是两个不同类型变量相加,是没法执行的,那么它就会输出except里的内容,输出:百度新闻爬取失败。
这个当你爬取的网站多了之后就非常有用了,因为你不想因为百度新闻爬取失败,就耽误之后的新浪财经新闻的爬取,或者耽误微信推文的爬取。具体代码如下:

try:#这里是百度新闻爬取的代码,之后第五第七章会讲print(1 + 'a')print('百度新闻爬取成功')
except:print('百度新闻爬取失败')try:#这里是新浪财经新闻爬取的代码,之后爬虫进阶课会讲print('新浪财经新闻爬取成功')
except:print('新浪财经新闻爬取失败')try:#这里是微信推文爬取的代码,之后爬虫进阶课会讲print('微信推文爬取成功')
except:print('微信推文爬取失败')

可以看到,如上面的代码演示,每一个网站的爬取我都采用了try except函数来进行处理,这样无论是哪一个网站的爬取出现了问题(比如上面那个百度就会出问题,但是因为写了异常处理函数,所以会执行except里的内容,打印输出“百度新闻爬取失败”,而不会影响之后代码的执行),都不会影响别的网站的爬取工作,这样在进行24小时不间断爬取的过程中,我们就不用担心出现程序因为出错而自己中断的问题啦。

4、Python模块/库介绍

模块(也有人把它叫作库)是Python这些年发展如此迅猛的一个原因,因为很多优秀的IT工程师在研发出非常棒的代码之后,愿意把它共享给大家进行使用,而储存这些非常棒的代码的地方就叫做模块,或者叫做,有的库是python自带的,有的库则需要我们进行下载才可以使用。
引用库的方法一般如下:

import 库名
或者
from 库名 import 库里的一个功能

引用完库之后,我们就可以使用库里面的功能了。
我们先用一个简单的例子来演示库的使用,如果我们想让python来输出当前的时间,那么应用time库即可,这个是python自带的,不需要我们安装。

import time
print(time.strftime("%Y-%m-%d"))

这个就可以输出当天的时间了。

2020-12-26

补充知识点:休息几秒

# 补充知识点:休息几秒
time.sleep(3)  # 这样程序会休息3秒再执行之后的内容

或者从datetime这个库里面,引用datetime功能。前一个datetime表示库名,后一个datetime大家可以理解成功能,然后是用功能datetime的now函数获取时间。

from datetime import datetime
print(datetime.now())

这个输出的日期格式为:

2018-12-11 14:55:26.562000

其实这个也完全可以这么写:

import datetime
print(datetime.datetime.now())

这个效果和上面的代码是一样的,他也是调用datetime模块的datetime功能的now函数。这样大家就理解了,其实调用库只要学会import +库名就可以了,from 库名 import 功能只是为了之后调用的时候更简洁而已。
补充知识点:日期的减法 & 转为标准日期格式

# 补充知识点:日期的减法
today = datetime.datetime.now()
yesterday = today - datetime.timedelta(days=1)
print(today)
print(yesterday)
# 转为标准日期格式(字符串格式)
today = today.strftime("%Y-%m-%d")
yesterday = yesterday.strftime("%Y-%m-%d")
print(today)
print(yesterday)

在项目实战中,比如在爬虫领域,我们经常需要用到的一个库叫做requests,它是我们能够通过python程序访问网站的基础,我们下面就带大家先来安装下这个库。
安装库有两个常用的办法:
1.Pycharm安装法
如果你使用的是Pycharm,直接在Pycharm中安装即可,具体安装步骤如下:
第一步,点击File,选择settings。

第二步:选择Project,选择Project Interpreter,选择右边的绿色的加号

第三步:搜索你所需要的库的名字,比如这边的requests库,搜索完成后点击左下角的Install Package进行安装即可。

2.Pip安装法
如果你使用的不是pycharm编译器,比如说用的是Spyder,那么这里就可以用也很常见的 pip install 库名 安装办法,具体步骤如下:
第一步:同时按住Win + R键,调出运行框,输入cmd

第二步:在弹出的对话框里,输入 pip install requests,等待安装结束即可。

如果出现下图画面则说明安装成功了:

充知识点:
补充知识点:通过清华镜像pip安装库
因为pip安装是从国外网站下载库,如果有时因为网络原因有些库下载不下来,那么这时候就可以通过清华镜像来安装相关库(清华镜像就是清华把相关库下载到清华服务器,然后供大家下载),具体操作是使用pip的时候在后面加上-i参数,指定pip源,代码如下:

pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple

其中xxx就是需要安装的库名,例如安装PDF文本解析库pdfplumber可以采用如下代码:

pip install pdfplumber -i https://pypi.tuna.tsinghua.edu.cn/simple

如下图所示:

如果还安装有问题,可以通过wheel文件安装,例如安装pyecharts库,可以搜索pyecharts whl文件,可以找到如下网站:https://pypi.org/project/pyecharts/#files;然后下载压缩文件,在下载文件所在文件夹的文件路径框里输入cmd后Enter运行(也可以shift + enter键进入文件夹终端),进入文件终端后,输入pip install 文件名进行安装。

https://pypi.org/,这个网站能找到大部分的库。

https://packaging.python.org/tutorials/installing-packages/#use-pip-for-installing

如果是whl或tar.gz等后缀文件,也是在下载文件所在文件夹的文件路径框里输入cmd后Enter运行(也可以shift + enter键进入文件夹终端),进入文件终端后直接 pip install 文件名即可,如下图所示:

或者直接Win + R后输入cmd,然后pip install 文件路径/文件名也可以,这里的区别就是在C盘的cmd(终端)中运行,所以得加上文件路径,如下图所示:

两种方法都可以,Pycharm法安装比较直观,但有的时候有的库你找不到那就用Pip安装法也很方便。
当我们把requests安装好了之后,让我们来小小实战一下吧,大家可以把这几行代码复制或者输入到程序中:

import requests
url = 'https://www.baidu.com/'
res = requests.get(url).text
print(res)

第一步:首先通过import requests库把requests导入进来;
第二步:输入一个网址,这里我们用百度来做个示例,注意不要单纯的输入www.baidu.com,因为它完整的网址是https://www.baidu.com/,之后的第五讲我会解释下这一块,这一步大家先了解下即可;
第三步:通过requests的get功能来访问该网站,并通过text属性获取网页源代码;
第四步:把获取的网址内容打印输出出来;

这个是大家学习爬虫的第一步,大家看到这个爬取到的内容还是相当粗糙的,有很多值得改进的地方,但这些都不重要啦,我之后都会一步步讲到。我们要看到的是,通过这简单的4行代码,我们就能获取网页上面的信息,而之后爬取百度新闻,新浪财经,微信推文其实都是用的一模一样的原理,所以大家要有学爬虫不难的信心呀。

5、本章练习题

# 练习:把下面8个函数自己写写尝试下,可以随意编排内容
print
str intlenreplace
stripsplittry except

王宇韬:

# 练习:把下面7个函数自己写写尝试下
# print
print('王宇韬')# str int
print(str(1) + '.' + '标题1')  # 把这个数字变成字符串
print(int('1') + 1)  # 把字符串变成整数
print(float('1.5') + 1)  # 把字符串变成小数# len
print(len('王宇韬wyt'))  # 打印字符串的长度
a = [1, 3, 5]
print(len(a))  # 打印的是列表长度,也就是列表元素个数# replace
b = 'XXX我是XXX王宇韬'
b = b.replace('X', '')
print(b)# strip
c = '   我是王宇韬     '
c = c.strip()
print(c)# split
d = '2020-07-25 10:53'
d = d.split(' ')[1]
print(d)# try except
try:print(1 + '1')
except:print('try里的内容失败啦!该我执行啦!')

王宇韬:
为什么有的时候是直接import,有的时候是from…import?

王宇韬:

import re
content = 'Hello 123 world 456 华小智python基础教学135'
result = re.findall('\d\d\d',content)
print(result)for i in range(len(result)):print(str(i+1) + '.' + result[i])

王宇韬:

# 练习,获取上面字符串中的两位数字,并一一打印
import re
content = 'Hello 123 world 456 华小智python基础教学135'
result = re.findall('\d\d',content)
print(result)for i in range(len(result)):print(str(i+1) + '.' + result[i])

秦士伟:
反常识序号。。

Xue静:
大括号,小括号,中括号有啥说法么

Fdyabc:
中括号list

晓:
老师,刚通过pip install安装docx,然后导入时报错了

阿斯拉达:
装起来好慢

6、课程相关资源

拓展:Python进阶的其他应用
https://shimo.im/docs/vp6KVJXR8tqWxgXR/ 《华小智智能平台课程(课表)》,可复制链接后用石墨文档 App 或小程序打开

Python软件下载地址
2020软件最新安装教程(附软件):https://shimo.im/docs/Y6cG9gx8djkvT86R/ 《Python 2020最新安装教程(巨详细版)》

备选:Anaconda(这个就是Python的安装包)&Pycharm&Wampserver网盘下载地址:
链接: https://pan.baidu.com/s/1DWJ5ptC7jrkNr5IXPkD9Rw 提取码: p8w8

课程源代码地址
获取方式1:石墨文档获取

(电脑浏览器端打开(需微信扫码登录石墨文档),然后点击下载)

获取方式2:个人网站获取
访问笔者个人网站的下载专区:edu.huaxiaozhi.com/download,然后点击下载。

获取方式3:微信号获取
添加如下微信:huaxz001,和小助理沟通获取源代码。

京东链接:https://search.jd.com/Search?keyword=王宇韬,搜索“王宇韬”,在淘宝、当当也可购买。加入学习交流群,可以添加如下微信:huaxz001(请注明缘由)。

各类课程可在网易云、51CTO** 搜索王宇韬,进行查看。

本课程 Python基础(案例版):可在网易云、51CTO 查看。(点击可直接获取。)

小白都能学会的Python基础 第四讲:Python函数与模块相关推荐

  1. python 函数修饰器 父类_手把手教你学python第十四讲(函数装饰器,super用法和时间处理)...

    文中有些字在图中是因为每篇文章最多100张图片,我把有的小图片和文字一起截图了,文中所有的引用都会标出原文网址,除此以外都是作者原创. 有时候会在文章最前或者最后补充一些知识或者把前面说的有问题的地方 ...

  2. Python基础十四——内置函数和匿名函数

    内置函数: 截止到 python 版本3.6.2,现在 python 一共提供了 68 个内置函数.     Built-in Functions     abs() dict() help() mi ...

  3. python基础(四)python中的位运算

    (一)python中的位运算   位运算即按位(bitwise)运算,python中的位运算符有&.|.^.~.>>.<<.具体的:   & 按位与运算符:参与 ...

  4. python基础十四之匿名函数

    匿名函数 处理简单问题的简化函数,关键字lambda. # 格式:函数名 = lambda 参数:返回值 anonymity = lambda s: s ** 0.5 print(anonymity( ...

  5. 小孩儿都能学会的零基础Python学习教程

    本套python学习路线从零开始,让你⼀步步掌握Python开发的各项相关技能,最终达到企业对Python开发.后端开发.爬⾍开发.数据分析等职位的要求. 内容很全面,从python基础知识到最后的项 ...

  6. python基础教程是什么-python基础教程都有什么?

    分享一下传智播客的python基础教程 第一阶段 Python核心编程 可掌握的核心能力 1.掌握Python基础语法,具备基础的编程能力; 2.建立起编程思维以及面向对象程序设计思想.解决的现实问题 ...

  7. Python基础班---第一部分(基础)---Python基础知识---第一个Python程序

    01. 第一个 HelloPython 程序 1.1 Python 源程序的基本概念 Python 源程序就是一个特殊格式的文本文件,可以使用任意文本编辑软件做 Python 的开发 Python 程 ...

  8. 什么是python基础教程-最好的Python入门教程是?

    Python教程领到手,学习不用愁!领! 作为一门编程语言,Python是属于入门比较简单的.所以身边不少人都选择了自学Python,而且网上相关资料也有很多,知识兔分享大量的Python教学课程,基 ...

  9. 【数据分析师-python基础】python基础语法精讲

    python基础语法精讲 1 从数字开始 1.1 理解整数.浮点数.复数几种类型对象 1.2 掌握运算及其相关的常用函数 2 变量.表达式和语句 2.1 变量作用及定义的方法 2.2 变量命名原则和习 ...

最新文章

  1. ●BZOJ 4596 [Shoi2016]黑暗前的幻想乡
  2. 将要改变IT世界的的docker技术是什么?
  3. 【pmcaff】罗永浩昨日演讲视频:一个理想主义者的创业故事Ⅳ
  4. ITK:获取给定顶点周围的面孔列表
  5. ASP.NET中禁止继承IIS中web.config根目录的配置
  6. Beginning iCloud in iOS 5 Tutorial Part 2(转载)
  7. amr转换成mp3 java_java将amr文件转换为MP3格式(windowslinux均可使用,亲测)
  8. MyBatis 实现多表查询、resultMap 标签、MyBatis 注解、mybatis运行原理
  9. Derek解读Bytom源码-P2P网络 地址簿
  10. word分页保存_搞定office丨Word快捷技巧第3弹!
  11. Android源码中学习文档如何查看
  12. 汽车电子零部件电磁兼容EMC测试标准
  13. my android机器人作文,机器人作文400字
  14. matlab mode函数,matlab常用函数
  15. SSRS(rdl报表)分页显示表头和对表头的冻结处理
  16. 人工智能数学基础03之:隐函数推导
  17. 企业服务器固态硬盘寿命,SSD固态硬盘使用寿命短?_企业存储技术与评测-中关村在线...
  18. 随堂记录1--硬件-安装系统-重定向-cp-mv-rm-find-alias-显示20-30行-替换find+sed-selinux-iptables-LANG...
  19. cad导入新的线型、填充图案、字体压缩包
  20. 矩阵/向量/标量间相互求导

热门文章

  1. STM32之HAL库详解 及 手动移植
  2. 面试中的最常被问到的两种锁
  3. 微信小程序详细图文教程-10分钟完成微信小程序开发部署发布
  4. 命令行给Linux安装中文,Linux下命令行安装TeamViewer
  5. Android实现网络下载一(单任务下载--支持断点续传)
  6. 腾讯QQ团队开源分布式后台服务引擎msec
  7. 晶体三极管放大电路的基础
  8. 职业选手的。cfg怎么用_靠演技出道,用直拍疯狂吸粉:“姐圈”选手怎么就出圈了呢?...
  9. 10 行 Python 代码能实现哪些有趣功能?
  10. 成为百万富翁的四个方法