目录:
在日常生活中不同类型的数据具有不同的功能
eg:表格数据文件具有处理表格的各项功能(透视表 图形化 公式计算)
视频数据文件具有快进 加速等各项功能
...
1.整型int
类型转换
方式在代码中展示出来的效果就是 名字()
eg:
res = '123'
print(type(res)) 结果是:字符串str
res = int(res) 转换成整型
print(type(res)) 结果是整型
int在做类型转换的时候 只能转换纯数字
int('123.123') # 报错 不识别小数点
int('tony 123') # 报错 不识别除数字以外的数据
int其实还可以做进制数转换
print(bin(100)) # 将十进制的100转换成二进制 0b1100100
print(oct(100)) # 将十进制的100转换成八进制 0o144
print(hex(100)) # 将十进制的100转换成十六进制 0x64
0b开头为二进制数 0o开头为八进制数 0x开头为十六进制数
print(int('0b1100100', 2)) 结果是: 100
print(int('0o144', 8)) 结果是: 100
print(int('0x64', 16)) 结果是: 100
2.浮点型float
类型转换
res = '123.23'
print(type(res)) 结果是字符串str
res = float(res) 转成浮点型
print(type(res)) 结果是浮点型float
print(float('123')) 整数转换出来会加小数点,即: 123.0
3.字符串str
类型转换
print(str(123))
print(str(123.21))
print(str([1, 2, 3, 4]))
print(str({'name': 'jason', 'pwd': 123}))
print(str((1, 2, 3, 4)))
print(str(True))
print(str({1, 2, 3, 4}))
所有类型的值都可以转成字符串
基本用法
res = 'hello world!'
①.索引取值
print(res[1]) 返回结果是: e
②.切片操作 顾头不顾尾
print(res[1:4]) 返回结果是: ell
③.步长操作
print(res[1:10]) 返回结果是:ello worl
print(res[1:10:2]) 返回结果是:el ol
④.索引支持负数
print(res[-1]) 返回结果是:!
print(res[-5:-1]) 返回结果是: orld 顾头不顾尾
print(res[-5:-1:-1]) 方向冲突 没有结果
⑤.统计字符串内部字符的个数
print(len(res)) # 12
6.移除字符串首尾指定的字符 strip()
name = ' jason '
print(name, len(name))
print(len(name.strip())) 默认移除首尾的空格
name1 = '$$jason$$'
print(name1.strip('$')) 移除首尾$返回结果是: jason
print(name1.lstrip('$')) 移除左边$返回结果是: jason$$
print(name1.rstrip('$')) 移除末尾$返回结果是: $$jason
⑦.按照指定的字符切割字符串 split() 该方法的结果是一个列表
res2 = 'jason|123|18'
print(res2.split('|')) 移除|返回结果是: ['jason', '123', '18']
print(res2.split('|', maxsplit=1)) 移除左边第一个|返回结果是: ['jason', '123|18'] maxsplit用于控制切割的次数
print(res2.rsplit('|', maxsplit=1)) 移除末尾第一个|返回结果是:['jason|123', '18']
如何查看数据类型都有哪些内置方法?
句点符(.)可以查看数据类型内置方法
⑧大小写
res = 'JasOn123 JAson'
res1 = 'jason123'
转全大写
print(res.upper()) 返回结果是: JASON123 JASON
转全小写
print(res.lower()) 返回结果是: jason123 jason
实际案例:图片验证码忽略大小写
思路:全部转大写或者小写再比对
判断是否是纯大写 返回结果是:True或False
print(res.isupper())
print(res1.isupper())
判断是否是纯小写
print(res.islower())
print(res1.islower())
判断字符串是否以指定的字符开头或者以指定字符结尾
s1 = 'jason 123 newapeman heiheihei oldgirl'
判断字符是否以指定的字符开头
print(s1.startswith('tony')) 返回结果是: False
print(s1.startswith('j')) 返回结果是: True
print(s1.startswith('jas')) 返回结果是: True
print(s1.startswith('jason')) 返回结果是: True
判断字符是否以指定的字符结尾
print(s1.endswith('oldboy')) 返回结果是: False
print(s1.endswith('l')) 返回结果是: True
print(s1.endswith('rl')) 返回结果是: True
print(s1.endswith('oldgirl')) 返回结果是: True
⑨格式化输出
⑨.①.与用户交互 占位符 %s %d
⑨.②.字符串内置方法 format()
第一种玩法 相当于%s占位符
s2 = 'my name is {} my age is {}'
print(s2.format('jason',18)) # my name is jason my age is 18
第二种玩法 大括号内写索引值可以打破顺序 并且可以反复使用相同位置的数据
s3 = '{1} my name is {1} my age is {0} {0} {0} {1} {1}'
print(s3.format('jason', 18))
第三种玩法 大括号内写变量名
s4 = '{name1} my name is {name1} my age is {age} {name1} {name1}'
print(s4.format(name1='jason', age=18))
占位符与format结合具体情况挑选使用!!!
⑩字符串的拼接
方式1 字符串相加
print('hello' + 'world') 返回结果是:helloworld
方式2 join方法
l = ['jason', 'tony', 'kevin', 'tom', 'jack']
使用+号方法:
print(l[0] + '|' + l[1] + '|' + l[2] + '|' + l[3] + '|' + l[4])
用join
print('|'.join(l))
返回结果是:jason|tony|kevin|tom|jack
易错题:
l1 = ['jason', 123, 'tony']
print('$'.join(l1)) 返回结果是: 报错
join只能拼接字符串,123是整型。
在python中,不同的数据类型之间无法直接操作
解决方法:给123添加引号
eg:
l1 = ['jason', '123', 'tony']
⑪替换字符串中指定的字符
s4 = 'my name is tony tony tony my age is 18'
替换字符串中所有的tony>>>jason
print(s4.replace('tony', 'jason')) 返回结果是: my name is jason jason jason my age is 18
替换指定个数的文本
print(s4.replace('tony', 'jason', 1)) 返回结果是: my name is jason tony tony my age is 18
⑫判断字符串中是否是纯数字
s5 = 'jason123'
print(s5.isdigit()) 返回结果是: False
s6 = '123'
print(s5.isdigit()) 返回结果是: True
以下内容了解即可
1.字体格式相关
s5 = 'my name is jason my age is 18'
print(s5.title()) # My Name Is Jason My Age Is 18 所有单词首字母大写
print(s5.capitalize()) # My name is jason my age is 18 开头的单词首字母大写
s6 = 'JaSOn iS Sb'
print(s6.swapcase()) # jAsoN Is sB 大小写互换
s7 = 'my name is jason sb sb sb somebody sb sb sb sb sone sb sone'
print(s7.find('s')) # 查看指定字符对应的起始索引值 从左往右找到一个就结束
print(s7.find('sb')) # 查看指定字符对应的起始索引值 从左往右找到一个就结束
print(s7.find('w')) # 找不到返回-1
print(s7.index('w')) # 找不到直接报错
# 统计某个字符出现的次数(记忆)
print(s7.count('sb'))
s8 = 'jason'
print(s8.center(15, '$')) # 居中展示
print(s8.ljust(15, '&')) # 左对齐 jason&&&&&&&&&&
print(s8.rjust(15, '*')) # 右对齐 **********jason
name = 'tony123'
name.isalnum() # 字符串中既可以包含数字也可以包含字母
name.isalpha() # 字符串中只包含字母
4.字符串
列表内一般都会存储相同数据类型的数据
类型转换 数据类型关键字(需要转换的数据)
数字不能拆分
print(list(123)) 返回结果是: 报错
print(list(123.21)) 返回结果是: 报错
print(list('hello')) 字符串的返回结果是: ['h', 'e', 'l', 'l', 'o']
print(list({'username': 'jason', 'pwd': 123})) 返回结果是:只出现K值 ['username', 'pwd']
print(list((11, 22, 33))) 元祖的返回结果是: [11, 22, 33]
print(list({11, 22, 33})) 集合的返回结果是: [33, 11, 22]
'''list关键字可以将支持for循环的数据类型转换成列表'''
列表修改、添加数据
name_list = [666, 'kevin', 'tony', 'jack']
①.修改值
name_list[0] = 666
print(name_list) 返回结果是: [666, 'kevin', 'tony', 'jack']
②.添加值
方式1 尾部追加(将括号内的数据当成一个整体追加到列表末尾)
name_list.append(666)
print(name_list) 返回结果是: ['jason', 'kevin', 'tony', 'jack', 666]
name_list.append([666, 777, 888, 999])
print(name_list) 返回结果是: ['jason', 'kevin', 'tony', 'jack', [666, 777, 888, 999]]
方式2 插入元素(将括号内的数据当成一个整体插入到索引指定位置)
name_list.insert(0, 'heiheihei')
print(name_list) 返回结果是: ['heiheihei', 'jason', 'kevin', 'tony', 'jack']
name_list.insert(2, 'hahaha')
print(name_list) 返回结果是: ['jason', 'kevin', 'hahaha', 'tony', 'jack']
name_list.insert(0, [11, 22, 33])
print(name_list)
方式3 扩展元素(相当于for循环+append操作)
name_list.extend([111, 222, 333, 444, 555])
print(name_list) 返回结果是: ['jason', 'kevin', 'tony', 'jack', 111, 222, 333, 444, 555]
l1 = [111, 222, 333, 444, 555]
l2 = [1, 2, 3, 4, 5]
l1.append(l2) # 将l2中元素追加到l1末尾
print(l1)
列表删除数据
删除数据
方式1 通用删除方式
del name_list[1] # 根据索引直接删除 del是关键字delete缩写
print(name_list) 返回结果是: ['jason', 'tony', 'jack']
方式2 remove() 括号内指定需要移除的元素值
name_list.remove('jason')
print(name_list)
print(name_list.remove('jason')) 返回结果是: None(默认不会产生实际结果)
方式3 pop() 括号内指定需要弹出的元素索引值 括号内如果不写参数则默认弹出列表尾部元素
name_list.pop(1)
print(name_list)
name_list.pop()
print(name_list)
print(name_list.pop()) 返回结果是: jack
5.可变类型与不可变类型
s5 = 'my name is jason my age is 18'
print(s5.title()) 打印出来的是操作之后的结果 # My Name Is Jason My Age Is 18
print(s5) 返回结果是: my name is jason my age is 18
name_list = ['jason', 'kevin', 'tony', 'jack']
print(id(name_list))
print(name_list.remove('jason')) 返回结果是:None
print(name_list) 返回结果是: ['kevin', 'tony', 'jack']
print(id(name_list)) 同上述的print(id(name_list) 内存地址一样,值已经改变。
可变类型与不可变类型!!!
可变类型 >>> 列表
值改变 内存地址不变 修改的是原值
不可变类型 >>> 整型 浮点型 字符串
值改变 内存地址肯定变 其实是产生了新值
name_list = ['jason', 'kevin', 'tony', 'jack']
print(id(name_list))
name_list.append(123) 末尾增加123
print(id(name_list)) 内存地址还是同print(id(name_list))
篇幅过长~
end
下次见~