Python

作者: 心上人zZ | 来源:发表于2017-12-07 21:17 被阅读0次

Python的历史

1989年12月,Guido van Rossum为了打发圣诞节假期,开发了ABC脚本语言的后继

Python名称来自于他喜欢的一个情景剧Monty Python's Flying Cirus

Python是一种高级动态,完全面对象的语言、函数、模块、数字、字符串都是对象,并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性


Python程序设计哲学:优雅、明确、简单

代码强制缩进:视觉效果和功能的统一

Python的强制缩进规范完成了关键部分

我们还需要良好的编程规范

变量、函数、类命名

注释和文档

一些编程设计上的良好风格


第一个Python语句:超级计算器

打开IDLE

在Python Shell中输入语句

print("Hello World!")

立即看到运行结果!

可以计算2的100次方!

也可以直接输入算式,当计算器用

超级大的数都没问题


第一个Python程序:Hello World!

打开IDLE

File->New File

输入代码

print("Hello World!")

File->Save

Run->Run Module


Python语言的几个要件

数据对象和组织

>对现实世界实体和概念的抽象

>分为简单类型和容器类型

>简单类型用来表示值

整数int 、浮点数float、复数complex、逻辑值bool、字符串str

>容器类型用来组织这些值

列表list、元组tuple、集合set、字典dict

>数据类型之间几乎都可以转换

赋值和控制流

>对现实世界处理和过程的抽象

>分为运算语句和控制流语句

>运算语句用来实现处理与暂存

表达式计算、函数调用、赋值

>控制流语句用来 组织语句描述过程

顺序、条件分支、循环

>定义语句也用来组织语句,描述一个包含一系列处理过程的计算单元

函数定义、类定义


Python数据类型:整数int、浮点数float、复数、逻辑值、字符串

Python变量机制:引用数据对象

Python容器类型:列表和元组

>Python中有几种类型是一系列元素组成的序列,以整数作为索引

>字符串str就是一种同类元素的序列

>列表list和元组tuple则可以容纳不同类型的元素,构成序列

元组是不能再更新(不可变)序列

字符串也是不能再更新的序列

>列表则可以删除、添加、替换、重排序列中的元素

可变类型

容器类型:列表和元组

>创建列表:【】或者list()

>创建元组:()或者tuple()

>用索引【n】获取元素(列表可变)

>+:连接两个列表/元组

>*:复制n次,生成新列表/元组

>len():列表/元组中元素的个数

>in:某个元素是否存在

>【start:end:step】:切片


可变类型的变量引用情况

>由于变量的引用特性

>可变类型的变量操作需要注意

>多个变量通过赋值引用同一个可变类型对象时

>通过其中任何一个变量改变了可变类型对象

>其它变量也看到了改变

alist = [1,2,3,4]

blist = alist

blist[0] = 'abc'

clist = alist[ : ]

clist[0] = None

常用的连续序列生成器:range函数

>range(n)

从0到n-1的序列

>range(start,end)

从start到end-1

>range(start,end,step)

从start到end-1,步长间隔step

step可以是负数

>range函数返回range类型的对象,可以直接当做序列用,也可以转换为list或者tuple等容器类型


Python容器类型:集合set

>集合是不重复元素的无序组合

>用set()创建空集

>可用set()从其它序列转换生成集合

>集合的操作

in:判断元素是否属于集合

|,union():并集

&,intersection():差集

^:symmetric_difference():异或

<=,<,>=,>:子集、真子集、超集、真超集

Python容器类型:字典dict

>字典是通过键值key来索引元素value,而不是像列表是通过连续的整数来索引

>字典是可变类型、可以添加、删除、替换元素

>字典中的元素value没有顺序、可以是任意类型

>字典中的键值key可以是任何不可变类型(数值/字符串/元组)

建立大型数据结构

>嵌套列表

列表的元素是一些列表

alist[i][j]

>字典的元素可以是任意类型,甚至也可以是字典

bands = {'Marxes':['Moe','Curly']}

>字典的键值可以是任意不可变类型,例如用元组来作为坐标,索引元素

poi = {(100,100):'bus stop'}

输入和输出:input/print函数

>input(prompt)

显示提示信息prompt,用户输入的内容以字符串形式返回

>print(v1,v2,v3,...)

打印各变量的值输出

可以带参数end='\n',缺省为换行,表示 打印后以这个字符串结尾

带参数sep=' ',却省是空格,表示变量之间用什么字符串隔开

>格式化字符串

'%d %s '%(v1,v2)


运算语句:表达式、函数调用和赋值

〉 各种类型的数据对象,可以通过各种运算组织成复杂的表达式

〉 调用函数或者对象,也可以返回数据,所有可调用的事务称为 callable

调用函数或者对象,需要在其名称后加圆括号,如果有参数,写在圆括号里不加圆括号的函数或者对象名称仅是表示自己,不是调用

〉将表达式或者调用返回值传递给变量进行引用,称为赋值

赋值语句的小技巧

 〉 级联赋值语句

x = y = z =1

〉 多个变量分解赋值

a, b = ['hello', 'world']

〉 变量交换

a, b = b,a

〉 自操作

i +=1

n *= 45

控制流语句:条件if 、while循环、f o r循环


函数function

〉 函数用来对具有明确功能的代码段命名,以便复用(ruse)

〉 定义函数:def语句;

def<函数名> (<参数表>):

<缩进的代码段>

return<函数返回值>

〉 调用函数<函数名>(<参数>)

注意括号!

无返回值:<函数名> (<参数表>)

返回值赋值:v =<函数名> (<参数表>)

定义函数的参数:固定参数/可变参数

〉 定义函数时,参数可以有两种;

〉 一种是在参数表中写明参数名key的参数,固定了顺序和数量

def func(key1, key2, key3…):

def func(key1, key2=value2…):

〉 一种是定义时还不知道会有多少参数传入的可变参数

def func(*args): #不带key的多个参数

def func(**kwargs): #key=val形式的多个参数

定义函数的参数:固定参数/可变参数

调用函数的参数:位置参数/关键字参数

变量作用域 

• 全局变量 

• 定义在函数外的拥有全局作用域

 • 全局变量可以在整个程序范围内访问

 • 全局变量想作用于函数内,需加 global 

• 局部变量

 • 定义在函数内部的变量拥有局部作用域

 • 局部变量只能在其被声明的函数内部访问 

• 调用函数时,所有在函数内声明的变量名称都将被加入到作用域


Python引用扩展模块:import

〉 import<模块> [as <别名>]

将模块中的函数等名称导入当前程序 “命名空间”namespace

引用方法:<模块>.<名称>

〉 dir(<名称>)函数

列出名称的属性

〉 help(<名称>)函数

显示参考手册

〉 from<模块> import<名称>

导入模块的部分名称

时间相关:calendar模块

〉 跟日历相关的若干函数和类,可以生成文本形式的日历

〉 calendar.calendar(<年>)

〉 calendar.month(<年>,<月>)返回多行字符串

〉 calendar.isleap(<年>)判别闰年

〉 calendar.prmonth(<年>,<月>)

〉 calendar.prcal(<年>)

时间相关:datetime模块

〉有4个主要的类

date处理年月日

time处理时分秒、毫秒

datetime处理日期加时间

timedelta处理时段(时间间隔)

〉 常用函数/方法

datetime.date.today()

datetime.datetime.now()

datetime.datetime.isoformat()

〉 两个时间相减就是timedelta2天前

时间相关:time模块

〉 time.time()浮点数表示的现在时间

 从1970-1-1 0:0:0开始的秒数 

〉 time.struct_time结构化时间类

time.localtime(<纪元时间>)->结构

time.gmtime(<纪元时间>)->结构

time.mktime(<结构化时间>)->纪元时间

〉 time.strftime(<格式>)表示格式化输出(结构化)时间

〉 time.strptime(<字串>,<格式>)按照格式识别字串,返回时间

基本模块简介:算术

 〉 math:常用的算术函数、三角函数 、幂指数等等

 〉 cmath:支持复数的math函数

 〉 decimal:十进制定点数

 〉 fractions:有理数,比例 

〉 random:随机数

random.randint(a,b)

random.randrange(start,stop,step)

〉 statistics:一些统计函数

持久化:shelve

〉 将任何数据对象,保存到文件中去

〉 类似字典形式访问,可读可写

〉 shelve.open(<文件名>)

〉 f[key]=value

〉 value=f[key]

〉 del f[key]

〉 f.close()

文本文件读写:内置文件对象

〉 open(<文件名>, <模式>)

〉 f.close()

〉 f.readline():返回一行

〉 f.readlines():返回所有行,列表

〉 f.writelines(<字符串列表>):写入文本行

图形用户界面:easygui

〉 可以显示各种对话框、文本框、选择框与用户交互

easygui.egdemo()演示

〉 easygui.msgbox 

〉 easygui.fileopenbox 

〉 easygui.choicebox 

〉 easygui.textbox

 〉 easygui.passwordbox

 〉 可以做出简单的图形界面程序

海龟做图:turtle

相关文章

网友评论

      本文标题:Python

      本文链接:https://www.haomeiwen.com/subject/aapxixtx.html