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
  1. len 长度

统计字符串里面的字符个数

name = 'koala & yugali'
print(len(name))  # 空格也算字符
>>>14
  1. in & not in 成员运算
name = 'koala & yugali'
print('koala'in name )
>>>True
print('yugali' not in name )
>>>False
  1. 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切割得到的结果是列表数据类型

  1. for 循环
name = 'koala'
for i in name:
    print(i)
>>> k o a l a   # 依次获取字符串中单个单个的字符

次重点操作

  1. lower(),upper() 大小写

eg.

name = 'Koala & Yugali'
print(name.upper())  # 将所有的英文字母转成大写
>>>KOALA & YUGALI
print(name.lower())  # 将所有的英文字母转成小写
>>>koala & yugali
  1. startswith,endswith 判断字符串是否以括号内指定的字符开头或结尾

eg.

name = 'koala & yugali'
print(name.startswith('koala'))
>>>True
print(name.endswith('yugali'))
>>>True
  1. 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
  1. count统计字符串中 指定字符出现的个数

eg.

name = 'koala & yugali'
print(name.count('a'))
>>>3
print(name.count('a', 1 , 6))  # 指定范围统计
>>>2
  1. **title ** 将所有英文单词首字母大写

eg.

name = 'koala & yugali'
print(name.title())
>>>Koala & Yugali
  1. capitalize 首字母大写 后面统一变小写
name = 'koala & yugali'
print(name.capitalize())
>>>Koala & yugali
  1. 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
  1. 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']
  1. 索引取值
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
print(name_list[0])
print(name_list[-1])
>>>aaa   ddd
  1. 切片
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']
  1. len 统计列表中元素的个数
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
print(len(name_list))
>>>4

列表元素的CURD(增删改查)

  1. 修改元素

eg.

name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
name_list[1] = 'koala'  # 按照索引位置修改
print(name_list)
>>>['aaa', 'koala', 'ccc', 'ddd']
  1. 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}]
  1. insert 插入元素

eg.

name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
name_list.insert(1, 'koala')
print(name_list)
>>>['aaa', 'koala', 'bbb', 'ccc', 'ddd']
  1. 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']
  1. 通用的删除操作

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']
  1. clear 清空列表
name_list = ['aaa' , 'bbb' ,'ccc' , 'ddd']
name_list.clear()
print(name_list)
>>[]
  1. count 统计列表中某个元素出现的次数

eg.

l1 = [1 ,2 , 3 , 3 , 4]
print(l1.count(3))
>>>2
  1. 元素的排序

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]

可变类型与不可变类型

可变类型

值改变 内存地址不变

不可变类型

值改变 内存地址一定变

posted @ 2021-06-02 20:38  Koalaaa  阅读(52)  评论(0)    收藏  举报