python经济学函数_Sargent的量化经济学(6):Python基础
原标题: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基础相关推荐
- python经济学函数_Sargent的量化经济学(8):Python工作原理
原标题:Sargent的量化经济学(8):Python工作原理 许文立 武汉大学经济与管理学院 xuweny87@163.com 许坤 安徽大学经济学院 kunxu2014@126.com Pytho ...
- python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法
python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法 目录
- python islower函数_python字符串是否是小写-python 字符串小写-python islower函数-python islower函数未定义-嗨客网...
Python字符串是否是小写教程 在开发过程中,有时候我们需要判断一个 Python islower()函数详解 语法 str.islower() -> bool 参数 参数 描述 str 表示 ...
- python fact函数_第5天:Python 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,所以我经常说函数是程序员规模化使用的基础. 函数能提高应用的模块性,和代码的重复利用率.在程序设计中,常将一些常用的功能模块编写成函数 ...
- python split函数 空格_最易懂的Python新手教程:从基础语法到代码详解
导读:本文立足基础,讲解Python和PyCharm的安装,及Python最简单的语法基础和爬虫技术中所需的Python语法. 作者:罗攀 蒋仟 如需转载请联系华章科技 本文涉及的主要知识点如下: P ...
- python用户手册是什么_Wind量化平台-用户手册(Python).pdf
Wind量化平台-用户手册(Python) --中国金融数据及工具首席服务商 9311509 Wind Python 数据及交易接口 Version 1.1 修订时间:2014.02.12 上海万得信 ...
- python除法函数一般如何命名_关于python:当用于除法时,’/’和’//’之间有什么区别?...
使用一个对另一个有好处吗?在Python2中,它们似乎都返回相同的结果: >>> 6/3 2 >>> 6//3 2 请参考整数除法的问题,因为引入了//运算符进行整 ...
- python sum函数numpy_如何用numba加速python?
我把写好的markdown导入进来,但是没想到知乎的排版如此感人.如果对知乎排版不满想要看高清清爽版,请移步微信公众号原文 如何用numba加速python?同时欢迎关注 前言 说道现在最流行的语言, ...
- python与金融投资_金融量化投资与Python
一.为什么选择Python? 闲谈 计算机姑娘是擅长进行科学计算的,本来她就是做这个的,只不过后来人们让她处理了很多文字内容罢了,乃至于现在有一些人认为她是用来打字写文章的(变成打字机了),忘记了她最 ...
最新文章
- SQL SERVER DBCC命令解释
- JPA和Hibernate的关系(转)
- android 线程锁Lock
- linux编译ace tao,CentOS环境下ACE编译指南
- UVa 10635 (LIS+二分) Prince and Princess
- go语言之数组与切片
- 分享Silverlight/WPF/Windows Phone一周学习导读(3月28日-4月2日)
- rhel6.3日志服务器rsyslog搭建过程;
- ERP系统健康体检的三大指标
- 妙招教你Office Word 2007文档另存为PDF文件[转]
- window新建文本快捷键
- Redis 与 Mysql 的数据一致性
- EXCEL无法插入公式
- 大厂职级、薪资一览表,你处在哪一级?(BAT/TMD/华为)
- Go基础:路径、文件名和包名的关系
- 综合日语第一册第十三课
- Chrome将网页保存为图片、PDF
- 大促中为什么需要可视化监控大屏?
- 所有身体器官的英文单词
- PRN(20210426):Online Continual Learning with Maximally Interfered Retrieval
热门文章
- 计算机更新失败变的很卡,难怪电脑升级后还这么卡,罪魁祸首找到了,看完你还敢这么用吗?...
- Monocular Fisheye Camera Depth Estimation Using Sparse LiDAR Supervision
- 一款基于Vue2.0高仿微信App的单页应用
- 用Python学《微积分B》(反常积分)
- BUG: scheduling while atomic: swapper/0/0/0x00010000
- MySql 执行异常Cause: java.sql.SQLException: Incorrect key file for table
- 【微信小程序系列:五】小程序适老化自动适配工具miniprogram-elder-transform---微信老年关怀模式下小程序字体适配微信字体
- (八)深入理解蓝牙Mesh的安全性和优缺点
- Vue打包扫描存在中危风险过期的YUI版本
- 【医学图像】图像分割系列.2 (diffusion)