python自学笔记二

1.整数类型及运算

python的数据类型有:整形、浮点型和字符串

1.1整数型

整数是不带小数部分的数:如:25,-86,0等

python支持的运算有:+、-、*、/、//(整除)、&(求余)、**(乘方)等

1.2运算符的优先级

** & // / * - +

1.3运算精度

python与其他大多数编程语言不同,它对数据类型的长度没有限制,可以执行数十位甚至数百数千位的整数运算。

2浮点数类型及运算

2.1浮点数类型

浮点数类型就是带小数点的数字,如:-3.1,-2.89,-60,5.(5.0), .6(0.6)

所有用于整数运算的算术运算符都可以用于浮点运算,包括:+ - * / // % **等

对于非常大或非常小的浮点数,通常用科学计数法表示,例如8.8**-5.4的计算结果为:

7.939507629591553e-06,e-06表示10的-6次方,结果实际就是前面的数乘以10的-6次方。

2.2与整数不同,浮点数存在上限与下限,超出上限或者下限将导致数据溢出并提示错误。溢出错误意味计算结果太大或太小,python无法将其表示为浮点数。有时碰到溢出错误的时候,python也会继续运算而得到错误的结果,我们要避免溢出错误,尽量不用太大的数进行计算。

例子:>>>500.0**1000

运行结果提示:OverflowError: (34, 'Result too large'),表示溢出错误。

2.3数据精度

浮点数的精度是一个无法解决的难题,由于浮点数计算有时候会得到一个无限值得结果,特别是做除法或者开方根计算的时候,这时候很难得到一个精确的值,例如:2/3,实际结果应该是小数点后面有无穷个6,但python计算的结果是0.6666666666666666

这个例子结果后面精确到16位,一般来说,这种细微的误差通常不是问题。然而,执行大量计算的时候,小误差会累积出大误差。比如,在科学工程计算领域,计算桥梁所受压力的时候,细微的误差会引起严重的问题。

2.4复数

python提供了复数的支持,数学上,复数的单位是-1的平方根,用1j表示-1的平方根。科学计算领域会用到复数,我们不详细讲复数。

3.字符串

字符串是一系列字符,字符包括字母、数字、标点符号以及数百个其它的特殊符号和不打印的转义字符。

(1). 字符串的表示,有3种方式

a. 单引号,比如:'http'、 'cat'

b. 双引号,比如:”hello, world”、”open house”

c. 三引号,用来引用多行字符串,比如:

“””

hello, how are you?

what is your name?

“””

一般有多行的长字符串时,用三引号括起来,三引号括起来的内容可以包含双引号字符”和单引号字符' 。

(2). 字符串的长度,用内置函数len(s)可以得到字符串包含几个字符,即字符串的长度,s是字符串参数。

例子:len(”pear”),得到的结果是4,len(“”)是得到空字符串的长度,值为0

(3). 字符串连接

可以把字符串进行相加得到新的字符串,比如:>>>'hot'+'dog'

这种运算被称为字符串连接,要将同一个字符串连接多次,可以用相乘的方法。比如:>>>10*'ha'

字符串连接的结果成为另一个字符串,可在任何需要字符串的地方使用字符串连接。

例子:>>>len(12*'pizza')

>>>len('house'+'car')

4获取帮助

python是一种自动文档化语言,大多数函数和模块都包含简短的解释。

(1). 列出模块中的函数

用import导出模块后,可使用函数dir(m)列出模块的所有函数,import是导出模块的命令,m是模块名。后面函数章节会详细讲解。

例子:>>>import math

>>>dir(math)

这个例子列出math模块的一些函数,以双下划线( __ )开头的名称用于较复杂的python编程。

要查看完整的python内置函数清单,可在提示符后输入 >>>dir(__builtins__)

可以用函数help(f)来查看某个函数的文档帮助信息。

例子:>>>help(sum)

可以直接在提示符下输入help(),然后输入某个模块或函数名得到详细的帮助信息。

(2). 打印文档字符串,例子:>>>print(math.acos.__doc__)

5. 类型转换

(1). 自动转换

在表达式中同时包含整数与浮点数时,python会自动将整数转换为浮点数。

例子:>>>25*8.5

结果为:212.5

(2). 将整数或字符串转换为浮点数

可以使用函数float(x)将整数或字符串转换成浮点数。

例子:>>>float(3)

>>>float('3.5')

(3). 将整数或浮点数转换为字符串,函数str(n)可以将指定的数字转换成相应的字符串。

例子:>>>str(85)

>>>str(-9.78)

(4). 将浮点数转换为整数

这点有点麻烦,需要决定如何处理小数部分。函数int(x)将小数部分删除。而函数round(x)采用四舍五入法。注:python的浮点数如果小数部分是0.5的时候,四舍五入会向偶数靠拢,比如round(8.5)的结果为8

例子:>>>int(8.64)

结果为:8

>>>round(8.64)

结果为:9

>>>round(8.5)

结果为:8

(5). 将字符串转换为数值

可以使用函数int()把字符串转换成整数,float(x)将字符串转换成浮点数。

例子:>>>int('3')

>>>float('3.5')

6. 变量和赋值

(1). 变量的定义

变量与函数、模块和类一样,有具体的名称,这些名称统称为标识符。变量在内存中指向保存一个值的地址,需要用赋值运算符来定义变量。

例子:>>>fruit='apple'

>>>fruit

'apple'

fruit是变量名,它指向字符串'apple',代码行fruit='apple'称为赋值语句;=是赋值运算符,让变量指向一个值。

(2). 变量的命名规则

a. 变量名的长度不受限制,但其中的字符必须是字母、数字或下划线。

b. 变量名的第一字符不能是数字,必须是字母或下划线。

c. 区分大小写,TAX、Tax和tax是不同的变量名。

d. 不能将关键字做变量名,比如,if、else、while、def、or、and、not、in等关键字。

(3). 赋值语句

赋值语句包含3个主要部分:左值、赋值运算符和右值。比如:var=value,var是左值,=是赋值运算符,value是右值。赋值语句有两个用途:定义新的变量;让已定义的变量指向特定的值。

例子:>>>x=5

>>>x+=8

第一条赋值语句x=5完成两项功能,一个是创建变量,另一个是赋值为5。第二条语句是重新计算x的值,计算完后x的值为13,这条语句之前需要用赋值语句定义变量x,否则将报错。定义的时候可以将任意的值赋给变量,包括其它变量。

例子:>>>x=3

>>>y=x

先定义x,再定义y,它们的值都是3

(4). 多重赋值

python中,有一种便利的方法,可以同时给多个变量赋值,比如:>>>x,y,z=1,'two',3.0

赋值运算符左边有3个变量,右边有3个值,每个变量之间用逗号分开,值之间也用逗号分开。

(5). 交换变量的值

多重赋值的一个很实用的用途是交换两个变量的值,比如:

>>>a,b=5,9

>>>a,b

(5,9)

>>>a,b=b,a

>>>a,b

(9,5)

语句a,b=b,a的含义是:同时给变量a和b赋值。