课堂笔记3(基本数据类型)

基本数据类型

分为:自定义数据类型、内置数据类型。

内置数据类型

一、数值类型:
int:整数
bool:布尔数(True、False)
float:浮点数(点数)
complex:复数

二、序列类型:
不可变:
str:字符串
tuple:元组
bytes:字节

可变:
list:列表

三、集合类型:
set:集合

四、映射类型:
dict:字典

数值类型

数值类型:不可变类型。指类型的值一旦有不同就是一个新的对象。数字1和2分别代表两个对象,对变量重新赋值一个数字类型,就会新建一个数字对象。

注意:变量只是对某个对象的引用,或者说是代号、名字等等,变量本身没有数据类型的概念。只有 1,[1,2],"hello"这一类对象才具有数据类型的概念。

python有四个数值类型:int(整数),bool布尔数(T、F),float(浮点数),complex(复数)

一、整数(int):

a)整数:数值为正或者为负,不带小数点,表示数字时通常使用十进制(decimal)来表示。【十进制:满十进一】
有时还会用八进制和十六进制来表示:
十六进制 前缀0x。 0-9 a-f 表示。python中使用 hex()将十进制转为十六进制。例如:hex(10)

八进制 前缀0o, 0-7表示 python中使用 oct()将十进制转为八进制。例如:oct(10)

二进制 前缀0b, 0-1表示 python中使用 bin()将十进制转为二进制。例如:bin(10)

b)整数内存:python整数的长度为32位,并且通常连续分配内存空间。
例如: 1和2 的内存地址就相差32位。
id(1) 1991470560
id(2) 1991470592

c) 小整数对象池
python初始化的时候会自动建立一个小整数对象池,方便调用避免后期重复生成。这里包含了262个指向整数对象的指针数组,范围是 -5~256。也就是说,比如整数10,即使我们在程序中没有创建它,其实在python后台已经悄悄为我们创建了。

d)整数缓冲区
只在python中存在,方法在pycharm中存在,电脑终端中不存在。
刚被删除的整数不会被真正立刻删除回收,而是在后台缓冲一段时间,等待下一次的可能调用。
在这里插入图片描述

二、浮点数(float)

浮点数也就是小数,如:1.23。3.14。-9.01等等。但对于很大或很小的浮点数一般使用科学记数法表示。把10用e代替,1.23x10^9就是1.23e9,0.000012可以写成1.2e-5等等。

a)浮点数与整数之间的转换
int ——> float。float(x)例如:a=1变成浮点数float(a)
float ——> int int(x)例如:a=1.0变成整数int(a)

三、复数(complex)

复数由 实数部分 和 虚数部分 构成。
可以用 a+bj 或者 complex(a,b)表示

复数的实部a 和虚部b 都是浮点数

四、数学计算

除了简单的加减乘除还有许多科学计算需要导入math这个标准库。它包含了绝大多数可能需要的科学计算函数。(不需要pip安装,但需要导入)
导入:import的语法
导入math库:import_math

使用math库中的类比如ceil类、floor类、pow类:
math.ceil(x) 【ceil 取整,和//取整的区别是向上取整,结果的最小整数要大于等于x。比如:4.3取整为5】

math.floor(x)【floor是向下取整。结果的最小整数要小于等于x,比如:4.5取整为4】

math.pow(x,y)【pow是幂次方,例如:pow(2,3)指2的3次幂】
使用图:
在这里插入图片描述

python自带的不需要导入math的:
abs(x):绝对值
在这里插入图片描述

round(x):四舍五入【四舍六入五成偶】
四舍五入的时候如果入了变成基数比如4.5 变成5【5是基数】的时候就用四舍六入。
而如果 四舍五入变成偶数,比如3.5变成4 则按四舍五入来计算。
在这里插入图片描述

备注:两种导入方法
1)import_xxxx[导入xxx库],需要使用时再输入: xxx.aaa[调用xxx库中的aaa类]
2)from 库名【xxx】 import 方法名【aaa】

五、布尔类型和空值(None)

布尔类型:传统意义上就是对与错、0与1
python中布尔类型只有两个值:True、False
注意:首字母必须大写,不能用其他花式型。

a)bool()使用:
我们通过python 内置的bool()函数来测试表达式的布尔值结果

运算符反馈的都是布尔值:
比较运算符【==、< >等等】
成员运算符【aaa in [x,a,c]】
等运算符

条件判断

b)布尔值规则:
除了数值是根据0、0.0和其他数区分False True之外。其他数据类型都是根据空、非空进行False、True进行区别,其中空格算非空字符串。
注意:None的布尔值永远是False。None一定要首字母大写。

数值:0、0.0的bool值为False,其他全为True。 比如 -1、1、10等等。
在这里插入图片描述

字符串:非空字符串都为True。空字符串为False。【含有空格的字符串也是非空字符串。】

在这里插入图片描述
列表:空列表为False,其他全为True 比如空格。

None:永远是False

c)布尔值的运算:
and 运算:两个都为True 才算True
or 运算:两个有一个True就算做True
not 运算:为False的时候就算True
算术 运算:注意把True看作1,False看作0
在这里插入图片描述

d)空值(None)
空值不是布尔值,是python中的一个特殊值。None不能理解为0。类型是NoneType。永远为False。不是0也不是空字符串更不是空列表,就是单独的值,一般用来返回值。

字符串(str)

用单引号(’’)或者双引号("")来创建字符串
使用三引号("""""")创建多行字符串【文本格式,保留文本的样式】用文本注释时候使用较多
字符串本身是不可变型,下标取出也不可改变下标对应的元素。
在这里插入图片描述

a)字符串的存储
字符串和数值的存储区别。
整数在内存中占一个字节比如100就是一个字节。字符串是每个字母都算一个单独空间,比如:1 0 0.就是3个

在这里插入图片描述
b)字符串的下标
字符串是序列数据结构,所以通过下标将字符串中某个字母提取出来,下标也可以称为索引。默认从 0开始
比如: name=“hello oldamy”
在这里插入图片描述
注意:空格也算一个数。

可以正向(从左到右 0开始)
也可倒数(从右到左 -1开始)
下标取值时,数字超出范围,例如下标选12.就会报错。

c)字符串的切片
slice[start:stop:step]
star:起始位置,默认为0
stop:结束位置,默认最后一个元素
step:可选参数:步长,默认为1

注意:
1、切片是左闭右开区间。比如取“oldamy”时如果按下表选择6-11则只会显示“oldam”少了11下标对应的“y”。应该输入12。
2、当取单个字符的时候索引(下标数)超出范围会报错,但是切片使用时不会,代表最后一位。
3、如果结束要取到最后一位也可以不输入内容。直接[6:]
4、[:]起始位置和结束位置都不输入则代表从头到尾
5、步长不能为0,也不能为浮点数

比如: name=“hello oldamy”
当步长为1时:就是元素连续。

取oldamy:
name[6:12] 或者 name[6:]

取hello oldamy:
name[:] 或者 name[0:12]

步长为2时:元素隔一个取一个
name[::2] 得到 hloodm
[::2]中2代表步长,整体代表从头到位按步长2取元素

在这里插入图片描述

逆序输出:步长为-1 (从右往左开始走)
name[::-1]得到 ymadlo olleh
在这里插入图片描述

d)字符串类型转换
字符串转成整数int形式:
in(“1”)打印结果为:1
注意:字符串中如果是小数点或者字母都会报错。比如1.0 或者a 。因为无法识别标点以及字母不属于十进制。

整数转换成字符串str形式:
str(1)打印结果为:“1”

e)字符串组成方式:
字符串的相加:
字符串用+做拼接。比如:“1”+"2"打印结果为12
在这里插入图片描述

字符串格式化:

%格式f的使用可以将变量的赋值变动化。
%的格式需要考虑数据类型。
%s :str
%d :digit(整数)
%f :浮点数
举例:下图,打印输出结果为:hansen年龄为20
在这里插入图片描述

str.format()
1、不用考虑数据类型
2、调换位置。但注意填写好下标。

用{}形式占坑
正常情况:
print("{}年龄为{}".format(name,age))
打印结果:
hansen年龄为20

调换位置情况:
如果输入
print("{}年龄为{}".format(age,name))
打印结果为:
20年龄为hansen
但是,调换位置又要结果为hansen年龄为20.
print("{}年龄为{0}".format(age,name))
打印结果:
hansen年龄为20
因为在占坑符号{}中输入了下标。年龄为{0}中0代表了 format(age,name)中的age, name代表1
在这里插入图片描述

python3.6.4开始引入 f"
不需要考虑数据类型
用{}占坑
在字符串前面输入小写的f
在{}中填写变量(名称)
print(f"{name}年龄为{age}")
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yuuisei/article/details/111615946