Python学习之旅
Python核心编程基础篇2020.12.21
指导教师:逻辑教育讲师Amy
- 数据类型种类
一、数值类型
1. 数值类型介绍
- 数值类型是不可变的,每一个数值都是一个对象,对变量新赋一个数值都会新建一个对象
- 变量本身没有数据类型概念,对它赋值后,只是对数值的引用
2. 整数型(int
)
- 数值为正或负,不带小数,通常以十进制(
decimal
)表示 - 十六进制:用
0x
前缀和0-9
,a-f
,表示,使用hex()
可将十进制转化为十六进制 - 八进制:用
0o
前缀和0-7
表示,使用oct()
将十进制转化为八进制 - 二进制:用
0b
前缀和0-1
表示,使用bin()
将十进制转化为为二进制 - 整数内存
Python整数长度为32位,通常分配连续内存空间,(1,2之间相差32)
3.小整数对象池
Python初始化时,自动建立一个整数数组,范围-5~256
,方便我们去调用。作用是节省内存,增加程序运行速度。
4.整数缓冲区
- 和小整数对象池一样,为了提高程序运行速度,刚删除的整数不会被立即删除,而是在后台缓存一段时间,等待有可能再次调用。(该效果只会在pycharm中实现,并且不包括小整数对象池)
del a
,可删除定义的变量a
5.浮点数(float
)
- 即小数,可用科学技术法表示,例:
0.00002
→2e-5
- 浮点数与整数之间转换
float()
:将整数转为浮点数型int
将浮点数转为整数型
6.复数
complex
,由实数部分和虚数部分组成,可用a+bj
或complex(a, b)
- 复数的实部
a
和虚部b
都是浮点数类
7.数学运算(math库)
- 数值运算有些需要导入math库,有些不需要如
+,-,*,/
math.ceil(x)
返回大于等于x
的最小整数math.floor(x)
返回小于等于x
的最大整数math.pow(x,y)
返回x
的y
次方abs(x)
返回x
的绝对值round(x)
对x
进行四舍六入五成偶,并返回
8.布尔类型(bool
)
- 布尔类型只有两个值:
True
,False
,且首字母必须为大写 bool()
可用来测试表达式的布尔值- 注意:
- 数值类型:
0
,0.0
的值都为False
,其它都为True
- 字符串:
''
空字符串为False
,' '
空格和其它字符串都为True
- 列表:空列表
[]
为False
,其它都为True
None
的布尔值永远为False
- 数值类型:
- 布尔类型运算
- 逻辑运算:
and
,or
,not
- 算数运算:
True
看作1
,False
看作0
- 逻辑运算:
9.空值
None
空值(首字母大写),不是布尔类型,也不能理解为0
,是NoneType
二、字符串(不可变序列类)
1.字符串创建
- 使用成对单引号或双引号创建,三对单引号或双引号可创建多行字符串
2.字符串的存储
- 整数在内存中占一个字节,字符串中间不管有多少内容,每个字符都单独存储
3.字符串下标
- 也可称为索引,可以通过下标将字符串中的某个字母取出来,默认从0开始
4.字符串切片
- 格式:
slice[start: stop[: step]]
slice
:字符串名start
:起始位置索引,不写时默认为0stop
:结束位置索引,不写时默认为最后一个step
:步长,不写时默认为1- 例:
name='hello oldamy'
取出'oldamy'
,'hloodm'
- 注意
- 切片索引默认从0开始
- 索引超出范围时,取单个字符报错,而切片不会报错
- 步长不许为0和浮点数
5.字符串类型转换
str
→int
:字符串转成整数型时,字符串中不能有小数点str
→float
:字符串转浮点数int
→str
:整数转字符串
6.字符串拼接
'3'
+'5'
→'35'
7.字符串格式化
- 有三种形式:
%
形式,format
形式,Python3.6.4以上具有的f
形式 - 例
8.字符串常见操作
s.find(sub)
→返回s
中sub
的最小索引,若sub
不存在则返回-1
s.index(sub)
→返回s
中sub
的最小索引,若sub
不存在则报错s.replace(old, new[, count])
→替换将s
中old
替换成new
,count
为替换个数,不写时全部替换,字符串可替换字符串s.lower()
→将字符串s
全部转化为小写,括号中可不传入参数s.upper()
→将字符串s
全部转化为大写,括号中可不传入参数s.isdigit()
→判断字符串s
是否全由数字组成,是则返回True
,否则返回False
s.isalpha()
→判断字符串s
是否全由字母构成,是则返回True
,否则返回False
s.isalnum()
→判断字符串s
是否只含有字母或数字,无其它字符,是返回True
,否返回False
s.split(sep)
→以s
中sep
为界将s分割成列表并返回,sep
被删除,默认为空格,例:'666 666 666'.split()
→['666', '666', '666']
,可指定分割次数s.startswith(prefix)
→判断字符串s
是否以prefix
为前缀,返回bool
值s.endswith(suffix)
→判断字符串s
是否以suffix
为后缀,返回bool
值s.strip()
→去掉字符串首尾空格s.join(iterable)
→用s
将序列iterable
连成新字符串例
三、作业
- 作业一
法一:
法二:利用成员运算符s in ['Y', 'y']:
法三:将s
统一转为小写或大写在比较 - 作业三