数据类型的内置方法
- 一 整型(int)
- 二 浮点型(float)
- 三 字符串(str)
- 四 列表(list)
- 作业
- 五 字典(dict)
- 六 布尔值(bool)
- 七 元组(tuple)
- 八 集合(set)
一 整型(int)
- 整型类型主要是做数据的运算,没有内置的方法。
# 整型
print(int(22.33)) # 22
print(int('1123')) # 1123
print(int('123a')) # 报错
print(int([11, 22, 22])) # 报错
print(int({'name': 'jasper', 'age': 18})) # 报错
print(int((1, 2, 3))) # 报错
print(int({1, 2, 3, 4})) # 报错
print(int(True)) # 1
print(int(False)) # 0
- 类型转换:
# 进制数之间的转换
# 十进制转其他进制
print(bin(12121)) # 十进制转二进制 0b10111101011001
print(oct(12121)) # 十进制转八进制 0o27531
print(hex(12121)) # 十进制转十六进制 0x2f59
# 其他进制转十进制
print(int(0b10111101011001))
print(int(0o27531))
print(int(0x2f59))
print(int('0b10111101011001', 2)) # 后面的参数代表是几进制数,int方法不用输入此参数,会自动识别
二 浮点型(float)
- 类型转换
# 类型转换
print(float(123)) # 123.0
print(float('123')) # 123.0
print(float([1, 2, 3])) # 报错
print(float({'name': 'jasper', 'age': 18})) # 报错
print(float((1, 2, 3))) # 报错
print(float({1, 2, 3})) # 报错
print(float(True)) # 1.0
三 字符串(str)
- 类型转换
所以的数据类型都可以转成字符串类型print(str(1), type(str(1))) # 1
print(str(1.1), type(str(1.1))) # 1.1
print(str([1, 2, 3]), type(str([1, 2, 3]))) # [1, 2, 3]
print(str({'name': 'jasper', 'age': 18}),type(str({'name': 'jasper', 'age': 18})))
# {'name': 'jasper', 'age': 18}
print(str((1, 2, 3)), type(str((1, 2, 3)))) # (1, 2, 3)
print(str({1, 2, 3}), type(str({1, 2, 3}))) # {1, 2, 3}
print(str(True), type(str(True))) # True
- 常用内置方法
- [ ]
# str[]用法
my_str = 'all at once'
# 1.索引取值
print(my_str[1]) # l
# 2.切片
print(my_str[:3]) # all
print(my_str[0:6:2]) # ala
print(my_str[::-1]) # ecno ta lla 可以用第三个参数等于-1来倒取
"""
切片中默认顺序是从左往右的,前两个参数是来定范围的,
是一个左闭右开的区间,第三个参数是定义间隔距离的。
"""
- split
# 1 str.split() 切分
str1 = 'my name is jasper'
print(str1.split(' '))
# 按空格切分,返回列表 ['my', 'name', 'is', 'jasper']
print('str1'.split(' ', maxsplit=2))
# maxsplit参数指定切的次数 ['my', 'name', 'is jasper']
print('str1'.rsplit(' ', maxsplit=2))
# 从右边开始切 ['my name', 'is', 'jasper']
- strip
# 2 str.strip() 去除指定字符
str2 = ' hello python '
print(str2.strip(' ')) # hello python
print(str2.rstrip(' ')) # hello python 去除右边
print(str2.lstrip(' ')) # hello python 去除左边
# .strip不能去除中间的字符
- index
# 3 str.index() # 取索引
str3 = 'Process finished'
print(str3.index('c')) # 3
print(str3.index('ess')) # 4
print(str3.index('x')) # 报错
- find
# 4 str.find()
str4 = 'most recent call last'
print(str4.find('r')) # 5
print(str4.find('r', 1, 6)) # 5 第一个参数是要找的值,后两个参数是开始和结束的范围
print(str4.find('z')) # -1 索引不存在返回-1
- isnumeric
# 5 str.isnumeric() 判断是不是纯数字
print('1232'.isnumeric()) # True
print('123.2'.isnumeric()) # False
print('1232a'.isnumeric()) # False
print('1232 '.isnumeric()) # False 只能是纯数字字符串此为True
- format
# 6 str.format() 格式化输出
str6 = 'my name is {}, my age is {}'
# 方式一:
print(str6.format('jasper', 18))
# 方式二:支持索引取值,可以用多次
str6_1 = 'my name is {0}, my age is {1}'
print(str6_1.format('jasper', 18))
# 方式三:支持关键字取值,可以用多次
str6_2 = 'my name is {name}, my age is {age}'
print(str6_2.format(name='jasper', age=18))
# 方式四:推荐
name = 'jasper'
age = 18
print(f'my name is {name}, my age is {age}')
- startswith
# 7 str.startswith() 判断是不是什么开头 返回布尔值
str7 = 'with exit code'
print(str7.startswith('w')) # True
print(str7.startswith('w', 1, 9)) # False 后两个参数是指索引范围
# str.endswith() # 判断是不是什么结束
print(str7.endswith('e')) # True
print(str7.endswith('e', 0, 5)) # false
- isdigit
# 8 str.isdigit() # 判断是否是纯数字 返回布尔值
print('111'.isdigit()) # True
print('111a'.isdigit()) # False
- upper
# 9 str.upper() 全部转换为大写
print('asEsadeE'.upper()) # ASESADEE
# # str.lower() 全部转换为小写
print('ADSDWQEdadad'.lower()) # adsdwqedadad
# # str.isupper() 判断是否为全大写 返回布尔值
print('Sdad'.isupper()) # False
# # str.islower() 判断是否为全小写 返回布尔值
print('asdasd'.islower()) # True
print('21312321'.lower()) # 21312321 不报错
print('你好'.upper()) # 你好 不报错 没有意义
- title
# 10 str.title() 返回首字母大写
str10 = 'hello python39'
print(str10.title()) # Hello Python39
# # str.istitle() # 判断是否首字母大写 返回布尔值
print(str10.istitle()) # False
- replace
# 11 str.replace() 替换
str11 = 'str7.startswith'
print(str11.replace('start', 'stop')) # str7.stopswith
# 前面的参数是想要替换的值,后面的参数是替换后值
- capitalize
# 12 str.capitalize() # 首字母大写 只有第一个字符大写
str12 = 'a big headache'
print(str12.capitalize()) # A big headache
- join
# 13 str.join() # 连接字符串
str13_1 = 'a series of'
str13_2 = 'above all'
print(str13_1 + str13_2) # a series ofabove all
print(''.join([str13_1, str13_2])) # a series ofabove all
# 点前面的参数是决定字符串以什么相连接
- center
# 14 str.center() # 返回一个指定宽度和填充符的字符串
str14 = 'from'
print(str14.center(10, '*'))
# 第一个参数是新字符串的长度,第二个参数是填充符号,默认为空格
- count
# 15 str.count() # 统计字符个数
str12 = 'a matter of concern'
print(str12.count('a')) # 2
print(str12.count('a', 1, 10)) # 1 后两个参数是索引范围
四 列表(list)
- 类型转换
# 类型转换
# print(list(111), type(list(111))) # TypeError: 'int' object is not iterable
# print(list(11.1), type(list(11.1))) # TypeError: 'float' object is not iterable
# print(list(True), type(list())) # TypeError: 'bool' object is not iterable
# print(list('111'), type(list('111')))
print(list({'name': 'jasper', 'age': 18}), # ['name', 'age']
type(list({'name': 'jasper', 'age': 18})))
print(list((1, 2, 3)), type(list((1, 2, 3)))) # [1, 2, 3]
print(list({1, 2, 3}), type(list({1, 2, 3}))) # [1, 2, 3]
不可迭代对象是不能转换成列表的 - 内置方法
- 索引取值
my_list = ['jasper', 18, 'male', 'read']
# 索引取值
print(my_list[2]) # male
print(my_list[5]) # ist index out of range 超出范围会报错
- 切片操作
# 切片
my_list = ['jasper', 18, 'male', 'read']
print(my_list[:]) # ['jasper', 18, 'male', 'read']
print(my_list[1:3]) # [18, 'male']
print(my_list[0:3:2]) # ['jasper', 'male']
# 三个参数前两个定范围,也是一个左闭右开的区间,最后一个是间隔数。
- 列表数据个数
# 列表数据个数
my_list = ['jasper', 18, 'male', 'read']
# len()方法
print(len(my_list)) # 4
作业
- 基于字符串充当数据库完成用户登录(基础练习)
data_source = ‘jason|123’ # 一个用户数据
获取用户用户名和密码 将上述数据拆分校验用户信息是否正确data_source = 'jason|123'
username = input('输入用户名>>>:')
password = input('输入密码>>>:')
new_data_source = data_source.split('|') # 返回列表类型
if username == new_data_source[0] and password == new_data_source[1]:
print('登录成功')
else:
print('用户名和密码错误')
- 基于列表充当数据库完成用户登录(拔高练习) # 多个用户数据
data_source = [‘jason|123’, ‘kevin|321’,‘oscar|222’]data_source = ['jason|123', 'kevin|321', 'oscar|222']
username = input('输入用户名>>>:')
password = input('输入密码>>>:')
for i in range(len(data_source)): # 循环出列表中的每个数据
"""
数据库是一个列表,列表中每一个数据值包含了用户名和登陆密码,
之间使用|符号相隔开的,并且|左边是名字,右边是密码。
先用字符串的split方法以|切开,这样就得到一个新的列表,新的
列表索引0位置是用户名,索引1位置是密码,接下来判断yh输入的
用户名和新列表索引0的位置and用户输入的密码和新列表索引1位置
值是否相等。相等就登陆成功,不等就进入下一次循环,for循环遍
历完整个列表还是没有找到就登陆失败。
"""
if username == (data_source[i].split('|'))[0] and password == (data_source[i].split('|'))[1]:
print('loging successful')
break
else:
print('longing fail')
五 字典(dict)
六 布尔值(bool)
七 元组(tuple)
八 集合(set)