Day 06 数据类型的内置方法
今日内容总结
数据类型的内置方法
- 整型 int
- 浮点型 float
- 字符串 str
- 列表 list
可变类型与不可变类型
数据类型的内置方法
整型 int
概念
用来记录人的年龄,电话号码,身份证号码之类的整数形式的状态
定义
age = 18 # age = int(18)
数据类型转换
int ( ) 将括号内的数据转成整型
eg.
print(int(123))
>>>123
print(int(12.6)) # 小数转成整型,小数点后的数值直接省略
>>>12
print(int('123')) # 内容是整数的字符串可以转为整型
>>>123
print(int([1,2,3,4])) #内容是整数的列表不可以转为整型
>>>报错
print(int('hello world'))
>>>报错
print(int('11.12')) # 转成整型的字符串必须是整数,其他形式不可以
>>>报错
进制转换
可利用int( )将其他进制转为十进制
eg.
# 将十进制100转为其他进制
print(bin(100)) # 将十进制的100转换成二进制对应的数 0b1100100
print(oct(100)) # 将十进制的100转换成八进制对应的数 0o144
print(hex(100)) # 将十进制的100转换成十六进制对应的数 0x64
# 将上述得到的其它进制的数转为十进制
print(bin(100)) # 将十进制的100转换成二进制对应的数 0b1100100
print(oct(100)) # 将十进制的100转换成八进制对应的数 0o144
print(hex(100)) # 将十进制的100转换成十六进制对应的数 0x64
ps:
0b开头表示二进制数
0o开头表示八进制数
0x开头表示十六进制数
浮点型 float
概念
用来记录人的身高,体重,薪资等小数相关的状态
定义
height = 185.5 # height = float(185.5)
数据类型转换
float ( ) 将括号内的数据转成浮点型
eg.
print(float(185.5))
>>>185.5
print(float(185)) # 整数转成浮点型,会在整数后加一位小数
>>>185.5
print(float('185.5')) # 内容为小数形式的字符串可转为浮点型
>>>185.0
print(float('185')) # 内容为整数形式的字符串也可转为浮点型,会在整数后加一位小数 !注意,这点跟整型不同
>>>185.0
print(float('hello world'))
>>>报错
print(float([1.1 , 1.2 , 1.3 , 1.4])) #内容是小数的列表不可以转为浮点型
>>>报错
字符串 str
概念
用来记录人的名字,家庭住址,性别等描述性质的状态
在单引号\双引号\三引号内,由一串字符组成
定义
name1 = 'koala' # 本质:name = str('任意形式内容')
name2 = "yugali" # 本质:name = str("任意形式内容")
name3 = """lucky""" # 本质:name = str("""任意形式内容""")
数据类型转换
eg.
# 任意类型都可转成字符串类型
print('123')
>>>123
print('123.5')
>>>123.5
print('koala')
>>>koala
print('[1 , 2 , 3 , 4]')
>>>[1 , 2 , 3 , 4]
print('{name:koala , age:18}')
>>>{name:koala , age:18}
重点操作
1.按索引取值
name = 'koala'
print(name[0]) # 索引是从0开始的
>>>k
print(name[-1]) # -1表示最有一个元素 正数表示从左往右 负数从右往左
>>>a
2.切片
name = 'koala & yugali'
print(name[0 : 8]) # 顾头不顾尾,空格也算字符
>>>koala &
print(name[-1 : -5 : -1]) # 默认的切片方向都是从左往右 -1修改成从右往左
>>>ilag
print(name[0 : 10 : 2]) # 第三个参数表示步长
>>>kaa&y
- len 长度
统计字符串里面的字符个数
name = 'koala & yugali'
print(len(name)) # 空格也算字符
>>>14
- in & not in 成员运算
name = 'koala & yugali'
print('koala'in name )
>>>True
print('yugali' not in name )
>>>False
- strip 移除指定的首尾字符
eg.1 移除首位的指定字符
username = input('username>>>:').strip() # strip移除字符串首尾指定的字符(默认移除空格)
if username == 'koala':
print('登录成功')
else:
print('登录失败')
eg.2 移除首字符或尾字符
name = '**koala**'
print(name.lstrip('*')) # 移除左侧字符,即首字符
>>>koala**
print(name.rstrip('*')) # 移除右侧字符,即尾字符
>>>**koala
6.split 切分
eg.1 括号内不指定字符,默认以空格作为切分符号
name = 'koala & yugali'
print(name.split())
>>>['koala', '&', 'yugali']
eg.2 括号内指定分隔字符,则按照括号内指定的字符切割字符串
name = 'koala & yugali'
print(name.split('&'))
>>>['koala ', ' yugali']
split切割得到的结果是列表数据类型
- for 循环
name = 'koala'
for i in name:
print(i)
>>> k o a l a # 依次获取字符串中单个单个的字符
次重点操作
- lower(),upper() 大小写
eg.
name = 'Koala & Yugali'
print(name.upper()) # 将所有的英文字母转成大写
>>>KOALA & YUGALI
print(name.lower()) # 将所有的英文字母转成小写
>>>koala & yugali
- startswith,endswith 判断字符串是否以括号内指定的字符开头或结尾
eg.
name = 'koala & yugali'
print(name.startswith('koala'))
>>>True
print(name.endswith('yugali'))
>>>True
- format 字符串格式化
eg.1 与%s一致,按照个数位置 一一传值
name = 'my name is {} my age is {}'
print(name.format('koala',18))
>>>my name is koala my age is 18
eg.2 按照索引取值 ,可以反复使用
name = 'my name is {0} my age is {1} {0} {0} {0}'
print(name.format('koala',18))
>>>my name is koala my age is 18 koala koala koala
eg.3 指名道姓取值 ,可以反复使用
res = 'my name is {name} my age is {age} {name} {name} {name}'
print(res.format(name ='koala',age =18))
>>>my name is koala my age is 18 koala koala koala
- count统计字符串中 指定字符出现的个数
eg.
name = 'koala & yugali'
print(name.count('a'))
>>>3
print(name.count('a', 1 , 6)) # 指定范围统计
>>>2
- **title ** 将所有英文单词首字母大写
eg.
name = 'koala & yugali'
print(name.title())
>>>Koala & Yugali
- capitalize 首字母大写 后面统一变小写
name = 'koala & yugali'
print(name.capitalize())
>>>Koala & yugali
- replace 替换
res = 'my name is koala koala koala'
print(res.replace('koala' ,'yugali')) # 全局替换
>>>my name is yugali yugali yugali
print(res.replace('koala' ,'yugali' ,2 )) # 局部替换
my name is yugali yugali koala
- join 将列表从可迭代对象中取出多个字符串,然后按照指定的分隔符进行拼接,拼接的结果为字符串多个元素拼接成字符串
name = ['jason','egon','kevin','tony']
print('|'.join(name))
>>>jason|egon|kevin|tony
列表 list
概念
列表类型就是专门用来记录多个同种属性的值,且存取方便
中括号括起来 内存可以存放多个元素,元素与元素之间逗号隔开 ,元素可以是任意数据类型
定义
name_list = ['jason', 'egon', 'tony'] # name_list = list(['jason', 'egon', 'tony'])
数据类型转换
但凡能被for循环遍历的数据类型都可以传给list()转换成列表类型,list()会跟for循环一样遍历出数据类型中包含的每一个元素然后放到列表中
eg.
print(list('koala'))
>>>['k', 'o', 'a', 'l', 'a'] # 把每个字符提出来放到列表中
print(list(123)) # 数字型不可用
>>>报错
print(list([1,2,3,4]))
>>>[1, 2, 3, 4]
print(list({'name' : 'koala' , 'age' : 18})) # 字典型依然只有key参与,值不参与
>>>['name', 'age']
- 索引取值
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
print(name_list[0])
print(name_list[-1])
>>>aaa ddd
- 切片
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
print(name_list[0:2]) #顾头不顾尾
>>>['aaa', 'bbb']
print(name_list[0:2:2]) # 第三位是步数
>>>['aaa']
print(name_list[-1:-3:-1]) # 第三位的负数表示反方向
>>>['ddd', 'ccc']
- len 统计列表中元素的个数
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
print(len(name_list))
>>>4
列表元素的CURD(增删改查)
- 修改元素
eg.
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
name_list[1] = 'koala' # 按照索引位置修改
print(name_list)
>>>['aaa', 'koala', 'ccc', 'ddd']
- append 末尾追加单个元素
eg.
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
name_list.append('koala')
print(name_list)
>>>['aaa', 'bbb', 'ccc', 'ddd', 'koala']
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
name_list.append(123)
print(name_list)
>>>['aaa', 'bbb', 'ccc', 'ddd', 123]
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
name_list.append([1 , 2 , 3])
print(name_list)
>>>['aaa', 'bbb', 'ccc', 'ddd', [1, 2, 3]]
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
name_list.append({'name' : 'koala' , 'age' : 18})
print(name_list)
>>>['aaa', 'bbb', 'ccc', 'ddd', {'name': 'koala', 'age': 18}]
- insert 插入元素
eg.
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
name_list.insert(1, 'koala')
print(name_list)
>>>['aaa', 'koala', 'bbb', 'ccc', 'ddd']
- extend 扩展列表
eg.
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
name_list.extend('koala') # 字符串会将单个字符取出转成单个元素填充进列表中
print(name_list)
>>>['aaa', 'bbb', 'ccc', 'ddd', 'k', 'o', 'a', 'l', 'a']
name_list1 = ['aaa' , 'bbb' ,'ccc' , 'ddd']
name_list2 = ['111' , '222' ,'333' , '444']
name_list1.extend(name_list2)
print(name_list1)
>>>['aaa', 'bbb', 'ccc', 'ddd', '111', '222', '333', '444']
- 通用的删除操作
eg.1 del 删除
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
del name_list[1]
print(name_list)
>>>['aaa', 'ccc', 'ddd']
eg.2 remove 移除
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
res = name_list.remove('ccc') # 指名道姓的移除'ccc'
print(name_list)
>>>['aaa', 'bbb', 'ddd']
print(res)
>>>None # 彻底移除'ccc',res里没有元素
eg.3 pop 弹出
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
res = name_list.pop()
print(name_list) # 默认从尾部弹出元素
['aaa', 'bbb', 'ccc']
print(res) # 弹出的元素保存在res中
>>>ddd
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
res = name_list.pop(2) # 指定位置弹出
print(name_list)
>>>['aaa', 'bbb', 'ddd']
- clear 清空列表
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
name_list.clear()
print(name_list)
>>[]
- count 统计列表中某个元素出现的次数
eg.
l1 = [1 ,2 , 3 , 3 , 4]
print(l1.count(3))
>>>2
- 元素的排序
eg.
l2 = [11,88,22,44,33,77,66,55]
l2.sort() # 排序 默认是升序
print(l2)
>>>[11, 22, 33, 44, 55, 66, 77, 88]
l2.sort(reverse=True) # reverse=True 降序
print(l2)
>>>[88, 77, 66, 55, 44, 33, 22, 11]
l2.reverse() # 倒序
print(l2)
>>>[55, 66, 77, 33, 44, 22, 88, 11]
可变类型与不可变类型
可变类型
值改变 内存地址不变
不可变类型
值改变 内存地址一定变

浙公网安备 33010602011771号