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

 

posted @ 2024-07-18 17:10  hbutmeng  阅读(1)  评论(0编辑  收藏  举报