6. 基本数据类型的内置方法(整数、浮点数、字符串)
1. 整数和浮点数的内置方法
1.1 整数类型
1.1.1 强制类型转换
可以将符合整数类型的字符串强制转换成整数类型
1.1.2 进制转换
将十进制转换成其它进制
print(bin(999)) # 0b1111100111 # 二进制 0b开头 print(oct(999)) # 0o1747 # 八进制 0o开头 print(hex(999)) # 0x3e7 # 十六进制 0x开头
将其它进制转换成十进制
1.2 浮点数类型
1.2.1 强制类型转换
可以将符合浮点数格式的字符串转换为浮点数
【整数类型和浮点数类型方法补充】
(1)判断当前字符串是否符合整数类型格式
num1 = b'4' num2 = '4' # unicode,python3中不需要在字符串前加'u num3 = '四' num4 = 'Ⅳ' num5 = 4 print(num1, type(num1)) # b'4' <class 'bytes'> print(num2, type(num2)) # 4 <class 'str'> print(num3, type(num3)) # 四 <class 'str'> print(num4, type(num4)) # Ⅳ <class 'str'> print(num5, type(num5)) # 4 <class 'int'>
(2)判断当前字符串是否符合数字类型
num1 = b'4' num2 = '4' num3 = '四' num4 = 'Ⅳ' num5 = 4 # 整型不能调用isdigit方法 print(num1.isdigit()) # True print(num2.isdigit()) # True # 字符串形式的整数类型也是数字 print(num3.isdigit()) # False # 中文汉字和罗马数字在python中不符合数字类型 print(num4.isdigit()) # False
(3)判断当前字符串是否符合十进制类型
num1 = b'4' # 该类型没有isdecimal方法 num2 = '4' num3 = '四' num4 = 'Ⅳ' print(num2.isdecimal()) # True print(num3.isdecimal()) # False print(num4.isdecimal()) # False
小结:在python中没有判断当前字符串是否是浮点数类型的方法
# 字符串isdigit方法应用例子 num = input("请输入一个数字: ") if num.isdigit(): print(num) else: print(f'当前输入的{num}不是数字类型')
2. 字符串的内置方法
2.1 优先记住的内置方法
(1)字符串的拼接
+号可以进行字符串的拼接
print('1' + '2' + '3') # 123
.join(可迭代类型进行字符串的拼接)
(2)字符串索引取值
正向索引:从0开始 从左往右
负向索引:从-1开始 从右往左
print('messi'[0]) # m print('messi'[-1]) # i
字符串可以索引取值但是不能索引改值
(3)切片
顾头不顾尾
print('messi'[1:3]) # es
字符串[起始:终止:步长]
print("leomessi"[1:6:2]) # ems
# 字符串[::-1]将整个字符串进行翻转 print("leomessi"[::-1]) # issemoel
(4)计算长度
print(len('lionelmessi')) # 11
(5)成员运算
判断某个字符是否在某个成员内
print('o' in 'messi') # False print('o' in 'leomessi') # True
(6)去除特殊字符
# 一个字符串"^messi^" 将首尾的^去除掉 print('^messi^'.strip('^')) # messi
strip默认值是空格或者换行
控制左右去除的位置
去除左面的特殊字符
# 去除左面的特殊字符 print('^messi^'.lstrip('^')) # messi^ # 去除右面的特殊字符 print('^messi^'.rstrip('^')) # ^messi
(7)切分字符串
按照指定的分隔符将字符串进行切割,并且分隔符会消失
player = 'messi|cr7|neymar' print(player.split('|')) # ['messi', 'cr7', 'neymar']
(8)遍历字符串
for循环遍历
while循环索引取值
(9)重复某个字符串
字符串*数字
(10)大小写转换
a = 'LeoMessi' print(a.upper()) # 将a的单词转换为全大写 LEOMESSI print(a.lower()) # 将a的单词转换为全小写 leomessi
(11)首尾字符判断
print('leomessi'.startswith('l')) # True 判断该单词是否以l开头 print('leomessi'.endswith('i')) # True 判断该单词是否以i结尾
(12)格式化输出语法
%s
'{}'.format
f'{a}'
(13)替换指定字符
name = 'messi' # 只能基于索引取值,不能基于索引替换值 # 前面放需要被替换的内容,后面放新的内容 print(name.replace('m', 'n')) # nessi
(14)判断当前字符串是否符合整数类型
print('9.01'.isdigit()) # False print('9'.isdigit()) # True
2.2 了解的内置方法
(1)查找
在字符串中找某个字符所在的索引位置
find方法:
print('leomessi'.find('e')) # 1 # 从左往右找,找到一个就返回索引位置,不会继续向后找 print('leomessi'.rfind('e')) # 4 # 从右往左找,找到一个就返回索引位置,不会继续向前找 print('leomessi'.find('q')) # -1 # 如果需要查找的字符在当前字符串中不存在,就返回-1
index方法:
(2)统计字符在字符串中出现的次数
print('leomessi'.count('e')) # 2
(3)填充
填充在两侧:
center(填充的数据长度,需要填充的字符)
基于原本的数据长度进行填充
如果填充的长度是奇数,优先填充右侧再填充左侧
a = 'messi' print(a.center(len(a) + 3, '^')) # ^messi^^
左对齐:
a = 'messi' print(a.rjust(len(a) + 3, '^')) # ^^^messi
右对齐:
a = 'messi' print(a.ljust(len(a) + 3, '^')) # messi^^^
填充0
默认使用0填充至指定的长度,并且是从左往右填充
a = 'messi' print(a.zfill(len(a) + 3)) # 000messi
(4)首字母大写
a = 'cristiano ronaldo' print(a.capitalize()) # Cristiano ronaldo
(5)大小写翻转
a = 'Leo Messi' print(a.swapcase()) # lEO mESSI
(6)让整句话的每一个单词首字母大写
a = 'cristiano ronaldo' print(a.title()) # Cristiano Ronaldo