原标题:Sargent的量化经济学(6):Python基础

许文立 武汉大学经济与管理学院 xuweny87@163.com

许坤 安徽大学经济学院 kunxu2014@126.com

本讲呈现了阅读和编写Python代码所必需的编程语言基础。

概要

主题:

数据类型

输入

基本文件I/O

迭代的Python方法

更多的用户自定义函数介绍

比较和逻辑

标准Python风格

数据类型

迄今为止,我们粗略地看了一些常用的数据类型,例如字符型、整数型、浮点型和列表型

下面,我们来学习更多的数据类型

原始数据类型

特别简单的一种数据类型就是布尔值,它要么为真,要么为假

在算数表达式中,真用1表示,假用0表示

这被称为布尔算术,其在编程中非常有用

用于表达数字的两种最常用的数据类型就是整数型和浮点型

在计算机中,这两者是有差异的,因为浮点型具有更多的信息,而整数算术运算则更加直观

警告

小心:如果你仍用Python 2.x,两个整数的除法只返回整数部分

例如

对于Python 3.x来说

但是,下面的句法不论哪种版本都是一样的

复数是Python中另一种原始数据类型

此外,还有许多原始数据类型,我们将会在必要的时候进行介绍

集成器

Python有许多基本类型来储存(可能相异的)数据集

我们在前面已经讨论过了lists

一种相关的数据类型就是tuples,它是“不变的”lists

在Python中,一个目标被称为不变的,就意味着它一旦被创建就不能改变

Lists是可变的,而tuples则不可变

在后面,我们还会更加详细的解释可变与不可变,并说明为何它们之间的差异如此重要

切片符号

为了读取一个lists或者tuple中的多个元素,可以使用Python的切片符号

例如

通用规则a[m:n]返回n-m个元素,始于a[m]

负数也可以

同样,切片符号也可以用于tuples和字符型

Sets and Dictionaries

我们在继续讲之前,还有两个集成类型是sets(https://docs.python.org/3/tutorial/datastructures.html#sets)和dictionaries()

Dictionaries非常类似于lists,除了项目被命名,而不是别编号

名称“name”和“age”被称为keys

这些keys映射到('Frodo'and33)的目标被称为值(values)

set()函数创造集合

输入

自始至终,Python就以下列两个原则进行构建

小规模核心语言

许多不同的实验室或者模块中所带有的额外函数

例如,如果你要计算任意数字的平方根,没有现存函数来计算它

因此,你需要从一个模块中输入计算函数,在这种情形下,自然就是math

早前,我们已经讨论了一些输入的机制()

注意:math模块是标准实验室的一部分,它也是每个Python版本的一部分

另一方面,我们后面所使用的一些科学实验室则不是标准实验室中的一部分

随着讲座的推进,我们会讨论更多的模块

在Python学习过程中,你们会经常看到下列句法

这里的frommathimport*将math中所有函数都放进当前“namespace”——我们后面定义的一个概念

实际上,在大部分时候,应该避免这类句法

因为这会将许多未明确列示的变量名吸入,这就会导致冲突

Input and Output

我们来快速浏览一下输入和输出文件

我们仅仅只是讨论读写文本文件

输入和输出

我们从写开始

其中

嵌入式函数open()创造一个文件载体

write()和close()都是文件载体的方法

那么,我们所创造的文件在哪?

回忆一下,Python有当期工作路径的概念

或者,在Ipython或者Jupyter notebook

你们可以利用文件浏览器或者另一些方法来确认文件newfile.txt确实在当期工作路径中(用%ls来列出当期工作路径中的所有文件)

我们也能用Python读newline.txt的内容

路径

注意,如果newfile.txt不在当前工作路径,那么,这就是open()失败

在这个例子中,你要么声明这个文件的完整路径

要么,改变当期工作路径至文件所在路径,通过os.chdir('path_to_file')

(在Python中,用cd改变路径)

迭代

计算中,最重要的任务之一是穿过数据序列,执行既定的步骤

Python的长处之一就是简单、灵活界面,通过for循环来执行迭代

不同载体的循环

许多Python载体都是“可迭代的”

考虑文件

(https://github.com/QuantEcon/QuantEcon.lectures.code/blob/master/python_essentials/us_cities.txt),其中列示了美国的城市和人口

假设我们想要让这些信息更具有可读性,大写名字,并用逗号标记千位

程序读取数据

这里format()是一种字符型方法,用于插入变量到字符中()

输出如下

每一行的重定格式是三种不同字符型方法的结果,更详细的描述在后面

对我们来说,该程序中有趣的部分是第二行,即

文件载体f是可迭代的,因为它能放入for循环的in命令右边

文件中迭代步骤要通过每一行

没有指引的循环

你们可能已经注意到的一件事就是Python更偏好没有明确指引的循环

例如

优于

当你比较这两种方案时,你就会看到为什么第一个更好

Python提供了一些措施来简化无指引循环

其中之一就是zip(),

例如,试试运行下列代码

zip()函数对创造dictionaries也很有用——例如

如果我们确实需要一个来自于list中的指标,那么,一个选择就是利用enumerate()

要理解enumerate()能做什么,我们看看下面的例子

比较和逻辑运算符

比较

许多不同类型的表达式都能得到布尔值(例如,TrueorFalse)

常用的是比较,例如

Python一个非常nice的特征就是能输入链式不等式

检验等式的时候,我们使用=

对于“不等”,用!=

注意,当检验条件时,我们能使用任何有效的Python表达

规则:

等于0,空集或者集合(字符、列表等)以及None都与False等价

例如,在if语句中,[]和()与False等价

其他值则与True等价

例如,在if语句中,42等价于True

联合表达式

我们能使用and,or,not来结合表达式

有许多标准的逻辑连接

记住:

PandQ为真,如果两个都为真,否则为假

PorQ为假,如果两个都为假,否则为真

更多函数

我们介绍更多的函数,它们对于好的编程非常重要

Python有许多内置函数可用,而不需要import

还有两个内置函数是any()和all()

Python的内置函数可见

下面,我们来阐述一下用户自定义函数,用关键词def

为什么要写函数?

用户自定义函数对于阐明代码非常重要

分离不同的逻辑分支

促进代码再利用

(同一件事做两次总是一件浪费时间的事)

用户自定义函数基础可见

Python函数的灵活性

Python函数非常灵活

尤其是

在既定文件中,任何数量的函数都能被定义

可以在另一些函数内部定义函数

任何载体都能作为函数的元素,包括另一些函数

函数能返回任何类型载体,包括函数

注意,一个函数能包含任何多个return表达

当第一个返回受阻时,函数执行就会终止,例如

如果没有返回表达的函数,会自动返回一个特殊的Python目标None

文档注释

Python可能为函数、模块等等增加评论注释,被称为docstrings

对于docstrings,一个很好的特征就是在运行时也可以添加

例如

在运行上述代码后,文档注释依然可用

单行函数:lambda

关键词lambda用于创造简单的单行函数

例如

是完全等价的

要创造函数f(x)=x^3,我们能使用lamda

责任编辑:

python经济学函数_Sargent的量化经济学(6):Python基础相关推荐

  1. python经济学函数_Sargent的量化经济学(8):Python工作原理

    原标题:Sargent的量化经济学(8):Python工作原理 许文立 武汉大学经济与管理学院 xuweny87@163.com 许坤 安徽大学经济学院 kunxu2014@126.com Pytho ...

  2. python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法

    python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法 目录

  3. python islower函数_python字符串是否是小写-python 字符串小写-python islower函数-python islower函数未定义-嗨客网...

    Python字符串是否是小写教程 在开发过程中,有时候我们需要判断一个 Python islower()函数详解 语法 str.islower() -> bool 参数 参数 描述 str 表示 ...

  4. python fact函数_第5天:Python 函数

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,所以我经常说函数是程序员规模化使用的基础. 函数能提高应用的模块性,和代码的重复利用率.在程序设计中,常将一些常用的功能模块编写成函数 ...

  5. python split函数 空格_最易懂的Python新手教程:从基础语法到代码详解

    导读:本文立足基础,讲解Python和PyCharm的安装,及Python最简单的语法基础和爬虫技术中所需的Python语法. 作者:罗攀 蒋仟 如需转载请联系华章科技 本文涉及的主要知识点如下: P ...

  6. python用户手册是什么_Wind量化平台-用户手册(Python).pdf

    Wind量化平台-用户手册(Python) --中国金融数据及工具首席服务商 9311509 Wind Python 数据及交易接口 Version 1.1 修订时间:2014.02.12 上海万得信 ...

  7. python除法函数一般如何命名_关于python:当用于除法时,’/’和’//’之间有什么区别?...

    使用一个对另一个有好处吗?在Python2中,它们似乎都返回相同的结果: >>> 6/3 2 >>> 6//3 2 请参考整数除法的问题,因为引入了//运算符进行整 ...

  8. python sum函数numpy_如何用numba加速python?

    我把写好的markdown导入进来,但是没想到知乎的排版如此感人.如果对知乎排版不满想要看高清清爽版,请移步微信公众号原文 如何用numba加速python?同时欢迎关注 前言 说道现在最流行的语言, ...

  9. python与金融投资_金融量化投资与Python

    一.为什么选择Python? 闲谈 计算机姑娘是擅长进行科学计算的,本来她就是做这个的,只不过后来人们让她处理了很多文字内容罢了,乃至于现在有一些人认为她是用来打字写文章的(变成打字机了),忘记了她最 ...

最新文章

  1. SQL SERVER DBCC命令解释
  2. JPA和Hibernate的关系(转)
  3. android 线程锁Lock
  4. linux编译ace tao,CentOS环境下ACE编译指南
  5. UVa 10635 (LIS+二分) Prince and Princess
  6. go语言之数组与切片
  7. 分享Silverlight/WPF/Windows Phone一周学习导读(3月28日-4月2日)
  8. rhel6.3日志服务器rsyslog搭建过程;
  9. ERP系统健康体检的三大指标
  10. 妙招教你Office Word 2007文档另存为PDF文件[转]
  11. window新建文本快捷键
  12. Redis 与 Mysql 的数据一致性
  13. EXCEL无法插入公式
  14. 大厂职级、薪资一览表,你处在哪一级?(BAT/TMD/华为)
  15. Go基础:路径、文件名和包名的关系
  16. 综合日语第一册第十三课
  17. Chrome将网页保存为图片、PDF
  18. 大促中为什么需要可视化监控大屏?
  19. 所有身体器官的英文单词
  20. PRN(20210426):Online Continual Learning with Maximally Interfered Retrieval

热门文章

  1. 计算机更新失败变的很卡,难怪电脑升级后还这么卡,罪魁祸首找到了,看完你还敢这么用吗?...
  2. Monocular Fisheye Camera Depth Estimation Using Sparse LiDAR Supervision
  3. 一款基于Vue2.0高仿微信App的单页应用
  4. 用Python学《微积分B》(反常积分)
  5. BUG: scheduling while atomic: swapper/0/0/0x00010000
  6. MySql 执行异常Cause: java.sql.SQLException: Incorrect key file for table
  7. 【微信小程序系列:五】小程序适老化自动适配工具miniprogram-elder-transform---微信老年关怀模式下小程序字体适配微信字体
  8. (八)深入理解蓝牙Mesh的安全性和优缺点
  9. Vue打包扫描存在中危风险过期的YUI版本
  10. 【医学图像】图像分割系列.2 (diffusion)