第1章 python语言基础
1.1 Python语言概述
-
特点:简单易学、程序可读性好、丰富的数据类型、开源的语言、解释型的语言、面向对象的语言。
-
局限:运行速度较慢。
1.2 Python语言的开发环境
1.3 常量与变量
-
Python是一种动态类型的语言。
-
变量具有变量名、变量值、变量地址三个属性。
-
Python标识符:由字母、数字、下划线组成,区分大小写,但不能由数字开头。
1.4 Python数据类型
1.4.1 数值类型
-
整型数据
(1)十进制整数:120
(2)二进制整数:0b1111或0B1111
(3)八进制整数:0o127或0O127
(4)十六进制整数:0xa8c或0Xa8c
-
浮点型数据
(1)十进制小数形式:3.23
(2)指数形式:45e-5,3.6e8,9.8E18(默认提供17位有效数字的精度,指数必须为整数)
-
复数型数据
形式为:a+bJ或a+bj,如3+4j
通过x.real来获取复数的实部,x.imag来获取复数的虚部
1.4.2 字符串类型
-
Python标准字符串
通过单引号、双引号、三引号(三个单引号或三个双引号)来定义。其中,三引号括起来的字符串可以是多行的。
-
转义字符
如果在字符串前加一个r,表示原始字符,反斜杠则不发生转义。
转义字符 说明 \0 空字符 \a 产生响铃声 \b 退格符 \n 换行符 \r 回车符,表示行结束,但不换行 \t 水平制表符 \\ 反斜杠 \’ 单引号 \" 双引号 \ddd 1~3位八进制数表示的ASCII码所代表的字符 \xhh 1~2位十六进制数表示的ASCII码所代表的字符 -
基本的字符串函数
(1) eval(字符串) 函数:将字符串的内容当做语句执行。
(2) len(字符串) 函数:返回字符串的长度。
1.4.3 布尔类型
布尔类型(bool)具有真和假两种值。对数值使用bool函数时,0返回False,其他值返回True。
1.4.4 复合数据类型
-
列表(list)
如
[3,"abc",[4,8,3]]
,用中括号表示,元素可变。 -
元组(tuple)
如
("abc",4.5,[2,5])
,用小括号表示,元素不可变,相当于只读列表。但元组里的列表可变。空的小括号表示空元组;当元组只有一个元素时,必须以逗号结尾。
任何一组以逗号分隔的对象,当省略标识序列时,默认为元组。
-
字典(dictionary)
如
{'name':'mike','code':246}
,是一种映射类型,关键字为不可变类型且不能相同。{}表示一个空字典。
-
集合(set)
如
{'jim','jack','tom'}
,是一个无序且不包含重复元素的数据类型,基本功能是成员关系测试和消除重复元素。可以使用大括号或set()函数创建集合,但创建空集合必须使用set()。
1.5 常用系统函数
1.5.1 常用模块函数
1.math模块函数
-
数学常量
- e :返回常数e
- pi :返回圆周率 π \pi π的值
-
绝对值和平方根函数
- fabs(x):返回x的绝对值,返回值为浮点数
- sqrt(x):返回x的平方根
-
幂函数和对数函数
- pow(x,y):返回x的y次幂
- exp(x):返回e的x次幂
- log(x [,base]):返回x的自然对数,base可以改变对数的底
- log10(x):返回x的常用对数,其中10为底
-
取整和求余函数
- ceil(x):对x向上取整
- floor(x):对x向下取整
- fmod(x,y) :返回x/y的余数,返回值为浮点数
-
弧度角度转换函数
- degrees(x):将弧度转换为角度
- radians(x):将角度转换为弧度
-
三角函数和反三角函数
- sin(x)
- cos(x)
- tan(x)
- asin(x)
- acos(x)
- atan(x)
2.cmath模块函数
cmath模块函数与math模块函数基本一致,包括圆周率、自然对数底、复数的幂指数、对数函数、平方根函数、三角函数等。
3.random模块函数
-
随机挑选和排序
- choice(seq):从序列的元素中随机挑选一个元素。
- sample(seq,k):从序列的元素中随机挑选k个元素。
- shuffle(seq):将序列的所有元素随机排序。
-
随机生成随机数
- random():随机生成一个[0,1)范围内的实数。
- uniform(a,b):随机生成一个[a,b]范围内的实数。
- randrange(a,b,c):随机生成一个[a,b)范围内以c递增的整数,省略c时以1递增,省略a时初始值为0。
- randint(a,b):随机生成一个[a,b]范围内的整数,相当于randrange(a,b+1)。
-
time模块函数
-
time():返回当前的时间戳。
-
localtime([secs]):返回当前时间元组。
-
asctime([tupletime]):接收一个时间元组,并返回一个日期时间字符串。
-
ctime([secs]):类似于asctime([tupletime]),不带参数时与asctime()功能相同。
-
strftime(日期格式):按制指的日期格式返回当前日期。
如:strftime(’%Y-%m-%d %H:%M:%S’) 返回 “2019-05-06 12:10:32”
%y表示两位数的年份,%Y表示4位数的年份,%m表示月份,%d表示月中的一天,%H表示24小时制的小时数,%I表示12小时制的小时数,%M表示分钟数,%S表示秒数。
-
-
calendar模块函数
- setfirstweekday(weekday):设置每个星期的开始工作日代码。0~6表示星期一到星期日。
- firstweekday():返回当前设置的每个星期开始工作日。
- isleap(year):判断指定年份是否为闰年,是则返回True,否则返回False。
- leapdays(y1,y2):返回在[y1,y2)范围内的闰年数。
- calendar(year):返回指定年份的日历。
- month(year,month):返回指定年份和月份的日历。
- monthcalendar(year,month):返回整数列表,每个字列表示一个星期。
- monthrange(year,month):返回两个整数,第一个整数代表指定的年和月的第一天是星期几,第二个整数代表所指定月份的天数。
- weekday(year,month,day):返回给定的日期的星期代码。
1.5.2 常用内置函数
1.range()函数
- range([start], end [,step]):产生可迭代对象,从start开始(默认从0开始),到end结束,但不包括end,并且按步长step增加(默认为1)。
- 可以利用list()、tuple()函数转换为对应的数据类型:list[range(2,8,3)],返回[2,5]。
2.数值运算函数
- abs(x):返回x的绝对值,结果保持x的类型。x为复数时返回复数的模。
- pow(x,y,[z]):返回x的y次幂,结果保持x或y的类型。如果使用了参数z,表示x的y次方再对z求余数。
- round(x [,n]):用于对浮点数进行四舍五入运算,返回值为浮点数 。n表示精确到小数点后的位数,不使用n则返回与第一个参数最近的整数。
- divmod(x,y):返回一个包含商和余数的元组,第一位为商,第二位为余数。
1.6 基本运算
1.6.1 算术运算
-
算术运算符与算术表达式
加 减 乘 除 整除 求余 乘方 + - * / // % ** -
浮点数的计算误差
-
数据类型的转换
-
两个同类型运算量参加运算,结果类型不变;整型与浮点型运算,会将整型转换为浮点型再进行运算,结果为浮点型。
-
int(x):将x转换为整型。
-
float(x):将x转换为浮点型。
-
complex(x):将x转换为复数,其中x为实部,0位虚部。
-
complex(x,y):将x和y转换为一个复数,其中x为实部,y为虚部。
-
1.6.2 位运算
-
按位与运算
&:两个为1结果才为1。
-
按位或运算
|:两个为0结果才为0。
-
按位异或运算
^:两个相同为结果0,不同为结果1。
-
按位取反运算
~:0变1,1变0。
-
左移运算
<<:如3<<2:将3左移两位,右边(低位)补0。
-
右移运算
>>:移动对象为正数时,高位补0;为负数时,高位补1。