查看原文
其他

Python推文合集基础篇(下)|算法简介

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:王子一,中南财经政法大学金融学院 文字编辑:戴   雯 技术总编:张馨月

爬虫俱乐部云端课程

  爬虫俱乐部于2020年暑期在线上举办的Stata与Python编程技术训练营和Stata数据分析法律与制度专题训练营在不久前已经圆满结束啦~应广大学员需求,我们的课程现已在腾讯课堂全面上线,且继续提供答疑服务。现在关注公众号并在朋友圈转发推文《来腾讯课堂学Stata和Python啦》或《8月Stata数据分析法律与制度专场来啦!》,即可获得600元课程优惠券,集赞50个再领200元课程优惠券!(截图发至本公众号后台领取)原价2400元的课程,现在只要1600元!     

上一次已经介绍过了Python的六个标准数据类型,详情可参考推文《【小白指南】Python中有哪些数据类型?(附推文合集)》,今天小编继续往下介绍Python的算法内容,这是我们必须要学习的内容,绝对不允许跳过,也是为以后进一步地学习打下基础。今天我们从流程控制结构,函数,文件操作,错误调试,标准库和第三方库进行简单介绍,下面开始今天的行程!

  • 流程控制结构

如果余生是你,我就......

Python第四天

再不偷偷为夏天做准备就晚了(Python第8天 for循环)

  • 函数

Python常见内置函数用法(一)
Python常见内置函数用法(二)
Python常见内置函数用法(三)
Python常见内置函数用法(四)
万般进制千机变,Python一计乾坤定——利用Python来进行进制转换
带你走进编码的世界——Unicode编码
encode 和decode——带你探索编码与解码的世界
二进制序列类型——bytes()、bytearray()
类型内置函数-type() isinstance()
《python定义函数知识大讲堂<1>》
《python定义函数知识大讲堂<2>》
每一个变量都会过好它们的一生传值or传引用?
一文明白Python的传参过程可迭代对象、迭代器、生成器傻傻分不清楚
优雅的map()
  • 文件读写

Python第7天 

文件读写Excel文件导入python进行判断处理并输出

Python之读取与写入CSV文件

Pandas之数据的读入与导出

  • 错误调试

三分钟教你读懂Python报错

Python异常处理之try/except

对抗bug方法介绍——爆款pysnooper你用了吗?(上篇)

对抗bug方法介绍——爆款pysnooper你用了吗?(下篇)

  • 标准库和第三方库

Python之time模块详解
Python之timeit模块:查看程序运行时间
Python之chronyk时间解析库
Python日期的处理——datetime模块
Python标准库:random生成随机数
Python标准库:random生成服从各类分布的随机数
Python标准库os:操作系统接口与目录操作标准库math的介绍
Python标准库-logging模块(2) logging模块的四大组件
Python标准库-logging模块(1)
Python标准库re:正则表达式
Python标准库re:正则表达式(二)
Python之Tushare包——获取股票交易数据
Watchdog:电脑每天在干嘛?

同昨天一样,我们也对各部分的内容进行了简单的梳理,下面来一起看看吧~

流程控制结构

Python提供了分支结构和循环结构这两种基本的流程控制结构,其中分支结构用于实现根据条件来选择性地执行某段代码;循环结构用于实现根据循环条件重复执行某段代码。

分支结构

Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块。

  • if 语句

    Python中if语句的一般形式如下所示:

if 表达式1: 语句1elif 表达式2: 语句2else: 语句3

例如判断分数是属于优秀,良好还是后进:

if score < 75: print("后进") elif score >= 90: print("优秀")else: print("良好")
  • if 嵌套

    在嵌套 if 语句中,可以把 if...elif...else 结构放在另外一个 if... elif... else 结构中,如下所示:

if 表达式1: 语句 if 表达式2: 语句 elif 表达式3: 语句 else: 语句elif 表达式4: 语句else: 语句

例如,判断分数所处的分数段:

if score > 60: print("大于60") if score > 80: print("大于80") print("大于60第二次")else: if score > 30: print("大于30")

循环结构

Python 中的循环语句有while for 

  • while 循环

    Python 中 while 语句的一般形式为:

while 判断条件: 执行语句

例如,计算 2+4+6+...+100 的结果:

s = 0i = 0while i < 101: i += 2 s += iprint(s)
  • for 语句
    for循环可以遍历任何序列的项目,如一个列表或者一个字符串。for循环的一般格式如下:
for <variable> in <sequence>: <statements>else: <statements>

例如,计算1+2+...+100 的结果:

a = 0for i in range(1,101): # range是一个内置函数,它会生成数列 a += i print(a)

函数

Python中内置了许多有用的函数,我们可以直接调用。同时,我们也可综合运用不同的数据类型和流程控制结构构建自己需要的函数。下面依次进行介绍:

内置函数

为了提高程序员的开发效率,Python 提供了很多可以直接拿来用的函数,包含数学运算符、类型转换、对象操作等多种类型。用户可以直接调用,也可以使用help()查看使用方法。如:

help(sum)print(sum([1,2,3]))

定义函数

在Python中,定义一个函数要使用def语句,一般格式如下:

def 函数名(参数列表): 函数体

比如,我们可以定义一个函数计算1到100的累计和:

def f(): a = 0 for i in range(101): a += i return a

同时,我们还可传入参数来增加代码的应用性,比如下面这个函数,就实现了计算1到任意数字累计和的功能:

def f(n): a = 0 for i in range(n): a+=i return af(50)

上面这些只是简单的介绍,除此之外,函数中还可定义默认参数、位置参数、关键字参数、可变参数,对于这些更高阶的应用,大家可以结合我们的往期推文来“食用”~

文件操作

在Python中可以实现各种文件的读写,其中最基本的即为open()函数,open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。

open(file, mode='r')

例如,打下下面这个文件并写入内容,可以执行如下代码:

f = open("hello.txt","w") # 打开文件f.write("hello world!" * 2) # 写入内容f.close() #关闭文件对象

为了使代码更加易读,可以将上述代码改写成带tab缩进的with关键句,如下:

with open("hello.txt","a",encoding="utf8") as f: f.write("hello world!\n")

对于open()函数中的mode参数,这里列出常用的几个:

参数描述
r以只读方式打开文件
rb以二进制方式打开用于只读
w打开一个文件只用于写入
wb以二进制方式打开用于写入
a打开一个文件用于追加
ab以二进制方式打开用于追加

上述参数后添加 +, 表示打开一个文件进行更新(可读可写)

错误调试

我们在敲写代码的过程中经常会遇到各类报错,看懂报错信息和场景对提高排错效率非常重要。当发生异常时,我们需要对异常进行捕获,其中最常用的是try...except...结构,其完整格式如图所示:

这里举一个简单的小栗子:

while True: try: x = int(input("请输入一个字符: ")) break except ValueError: print("您输入的不是字符,请再次尝试输入!")

一个try语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组,例如:

except (RuntimeError, TypeError, NameError): pass

以上就是今天推文全部的内容啦~ 基础篇就这样结束了,对于基本的操作语法和代码规范大家一定要多加熟悉,为进一步的学习Python打好基础。那么!动起手来,一起学习吧~





对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐
【小白指南】Python中有哪些数据类型?(附推文合集)

轻松获取通行数据——cntraveltime命令介绍

让Stata完美牵手中国地图之cnmapsearch

自然语言分析——利用NLTK进行文本预处理

寻找B站的最爱--8月B站全站榜爬虫

cnaddress命令——实现经纬度转换为中文地址

定位神器——cngcode

Python入门—Spyder的简单使用

Jupyter Notebook 的这些tips你了解吗?
给变量名换马甲之rename命令

追踪命令set trace on——解你燃眉之急

爬虫大杀器 | “手把手”教你配置Selenium

小白必看!Anaconda安装全攻略

数据类型转换之destring和tostring命令

mvencode和mvdecode——打开缺失值与特定数值转换大门的钥匙
优雅的map()
Python实现Excel中vlookup函数功能
关于我们


微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata和python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存