004-小白之路-python数据类型

本文深入讲解Python中的数据类型,包括数字、字符串、列表、元组、集合和字典。探讨了每种类型的特性,如数字类型的进制表示,字符串的格式化及查找方法,以及不同类型之间的转换。
  1. python中所有的数据类型都是类,每一个变量都是类的“实例”。
  2. python有6中数据类型:数字、字符串、列表、元组、集合和字典
  3. 列表、元组、集合和字典可以保存多项数据,统称为数据结构类型

数字类型

整数类型、浮点数类型、复数类型、布尔类型

整数类型

为int,范围很大,只受计算机硬件限制
二进制:0b或者0B为前缀
八进制:0o或者0O为前缀
十六进制:0x或者0X为前缀
浮点型:用来存储小数,类型为float,只支持双精度浮点类型
可以用小数,也可以用科学计数法,E或e,e2表示10的2次方
复数类型为complex
布尔类型为bool,bool为int的子类,两个值 True False
任何类型都可通过 bool() 转换为布尔值,那些被认为,没有的,空的 转换为False,反之为True。如None,False,0,0.0,0j,空字符串,空[] ,{},()都装换为False

数字类型相互装换

隐式装换

在做数学计算的时候,会隐式转换
例如:bool和整数加减,会装换为整数,True转为1,False转为0
使用type()函数可以返回传入的数据类型

显式转换

int(),float(),bool()

字符串类型

字符串类型为str
字符串表达方式

  1. 普通字符串:单引号或者双引号包裹
  2. 原始字符串:在普通字符串前加 r ,字符串的特色字符不需要转译
  3. 长字符串:字符串包含换行缩进等排版字符,可以用三重单引号或者三重双引号

默认用单引号包裹普通字符串,字符采用unicode编码
字符串中单引号或者双引号可以不用转译,有单引号用双引号包裹,有双引号用单引号包裹
长字符串中有特色字符也需要转译

字符串格式化

使用foramt()方法以及占位符

name = 'Mary'
age = 18
s = '她的年龄是{0}岁'.format(age)
print(s)
s = '{0}的年龄是{1}岁'.format(name,age)
s = '{1}的年龄是{0}岁'.format(age,name)
s = '{n}的年龄是{a}岁'.format(n=name,a=age)

字符串可以有占位符{},配合formar() 使用,占位符可以用索引也可以用参数的名字
占位符还可以有格式化控制符,对格式化进行更精确控制

控制符    说明
s             字符串格式化
d             十进制整数
f、F        十进制浮点数
g、G       十进制整数或者浮点数
e、E       科学计数法表示浮点数 
o             八进制
 x、X       十六进制

格式控制符位于占位符索引或占位符名字的后面,之间用冒号分隔。
例如 {1:d} 表示索引为1的占位符格式参数是十进制整数。

name = 'Mary'
age = 19
money = 1128.26413
s = '{0}的年龄是{1:d}岁'.format(name,age)
value:'Mary的年龄是18岁'
s = '{0}的年龄是{1:5d}岁'.format(name,age)
value:'Mary的年龄是     18岁'   5d输出长度为5的字符串,不足空格补齐
s = '{0}的收入是{1:f}'.format(name,money)
value:'Mary的收入是1128.234130'      
s = '{0}的收入是{1:.2f}'.format(name,money)
value:'Mary的收入是1128.27'     小数位保留两位四舍五入
s = '{0}的收入是{1:10.2f}'.format(name,money)
value:'Mary的收入是1128.27'   总长度10,不足空格补位
s = '{0}的收入是{1:g}'.format(name,money)
value:'Mary的收入是1128.27'

字符串查找

在给定的字符串中查找子字符串
字符串类str中提供了find和rfind的方法用于查找子字符串,返回值是子字符串的位置,没有返回 -1
str.find(sub,start,end) 从左开始查找,start和end可以不要,返回索引
str.rfind(sub,start,end) 从右开始查找,start和end可以不要,返回索引

s_str = 'There is a string accessing example.'
len(s_str)   36
s_str[16]    g
s_str.find('r')   3
s_str.rfind('r')   13
s_str.find('ing')   14
s_str.rfind('ing')   3
s_str.find('r',2)   3
s_str.find('r',2,4)   3

函数的方法的区别

  1. 方法是定义在类中的函数,在类的外部调用需要通过类或对象调用
  2. 函数不是定义在类中,称为顶层函数,不属于任何类

字符串和数字的相互转换

字符串到数字:int() float()
int(‘16’) 16
int(‘AB’,16) 171 转为16进制
数字到字符串:str()
str(2.34)
str(True) ‘True’
str([]) ‘[]’
字符串格式化:
‘{0:.2f}’.format(2.345) ‘2.34’
‘{0:5.1f}’.format(2.345) ’ 2.3’

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值