day06-数字类型、字符串类型内置方法

数字类型内置方法

1. int()强制类型转化成整型

age_str = '18'    # 定义字符串
age = int(age_str)    # 将强制转化成数字类型
print(type(age))
<class 'int'>

2. float()强制类型转化成浮点型

age_str = '18.5'    # 定义字符串
age = float(age_str)    # 将强制转化成数字类型
print(type(age))
<class 'float'>

注意:不是所有的字符都能转化成数字类型,只有字符串中全为数字字符时才能转化成int型或浮点型

字符串类型内置方法

1. 按索引取值

name = 'Hello world, I am coming'    # 定义一个字符串name
print(name[0])    # 取第一个字符
print(name[-2])    # 取倒数第二个字符
H
n

2. 切片:步长为正数,从左到右切片;如果步长为负数,从右到左切片
格式:[start:end:step] step默认为1

name = 'Hello world, I am coming'    
print(name[0:5])    # 取出 Hello
print(name[-6:])    # 取出 coming
print(name[-1:-12:-1])    # 取出gnimoc ma I
Hello
coming
gnimoc ma I

3. 长度:len()返回字符串的长度

name = 'Hello world, I am coming'    
print(len(name))
24

4. 成员运算符 in|not in:判断是否在字符串里面,返回布尔值True或者False

name = 'Hello world, I am coming'    
print('Hello world' in name)
print('hello' in name)
print('world' not in name)
True
False
False

5. 移除空白strip(self, chars=None):移除两端的空白或字符,原字符串不变。从左开始去除lstrip(self, chars=None)和从右开始去除rstrip(self, chars=None),用法同strip(self, chars=None)

name = '    Hello world, I am coming1234   '
print(name.strip())     # 默认移除两端的空格
print(name.strip('1234 oldeH'))    # 在name中移除括号内的字符
print(name)
print(name.lstrip())    # 从左端移除
print(name.rstrip())    # 从右端移除
Hello world, I am coming1234
world, I am coming
    Hello world, I am coming1234   
Hello world, I am coming1234   
    Hello world, I am coming1234

6. 切分/割split(self, sep=None, maxsplit=-1):使用sep作为字符串的分隔符,若sep未指定或为None,默认以一个或多个空格作为分割符;maxsplit为分割的次数;返回一个列表。rsplit(self, sep=None, maxsplit=-1)用法同split(),从右开始切分

name = '    Hello world, I am coming,1234   '
print(name.split())        # 默认以空格分割
print(name.split(','))        # 以','分割
print(name.split(',',1))        # 以','分割,分割一次
print(name.rsplit(',',1))        # 从右开始以','分割,分割一次
['Hello', 'world,', 'I', 'am', 'coming,1234']
['    Hello world', ' I am coming', '1234   ']
['    Hello world', ' I am coming,1234   ']
['    Hello world, I am coming', '1234   ']

7. 循环遍历字符串

name = 'Hello world, I am coming,1234'
for i in name:
    print(i,end=',')
H,e,l,l,o, ,w,o,r,l,d,,, ,I, ,a,m, ,c,o,m,i,n,g,,,1,2,3,4,

8. 变小写字母lower(self) & 变大写字母upper(self)

name = 'Hello world, I am coming,1234'
print(name.lower())    # 将字符串中的大写字母变成小写
print(name.upper())    # 将字符串中的小写字母变成大写
hello world, i am coming,1234
HELLO WORLD, I AM COMING,1234

9. 判断字符串是否以...开始 startswith(self, prefix, start=None, end=None) & 判断字符串是否以...结尾startswith(self, prefix, start=None, end=None):prefix为指定的字符;从start开始,到end结束,默认从0开始,到最后结束。返回布尔值True或者False

name = 'Hello world, I am coming,1234'
print(name.startswith('H'))
print(name.endswith('4'))
print(name.startswith('H',1))
True
True
False

10. 连接join(self, iterable)

name = 'Hello'
print(','.join(name))    # 用','作为连接符,将括号内每个字符连接。连接符可自定义
H,e,l,l,o

11. 替换replace(self, old, new, count=None):用new来替换old;count表示替换的个数,不写或为None时全部替换

name = 'Hello'
print(name.replace('l', 'w'))
print(name.replace('l', 'w', 1))
Hewwo
Hewlo

12. 判断数字isdigit(self): 判断是否全为数字字符,返回布尔值True或者False

name = 'Hello123'
age = '123'
print(name.isdigit())
print(age.isdigit())
False
True

13.查找find(self, sub, start=None, end=None) & rfind(self, sub, start=None, end=None) & index(self, sub, start=None, end=None) & rindex(self, sub, start=None, end=None):sub表示要查找的字符,start查找的开始位置,end查找的结束位置,不写或为None时表示查找整个字符串

name = 'Hello123'
print(name.find('l'))    # 返回查找到的第一个字符下标
print(name.find('w'))    # 没有找到时返回-1
print(name.rfind('l'))    # 返回查找到最右端第一个字符下标
print(name.rfind('w'))    # 没有找到时返回-1
print(name.index('l'))    # 返回查找到的第一个字符下标
print(name.rindex('l'))    # 返回查找最右端的第一个字符下标
print(name.index('s'))    # 没找到时报错
print(name.rindex('s'))    # 没找到时报错
2
-1
3
-1
2
3
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-55-f4490f4012ef> in <module>
      6 print(name.index('l'))    # 返回查找到的第一个字符下标
      7 print(name.rindex('l'))    # 返回查找最右端的第一个字符下标
----> 8 print(name.index('s'))    # 没找到时报错
      9 print(name.rindex('s'))    # 没找到时报错
ValueError: substring not found

14. 计数count(self, sub, start=None, end=None):sub表示要查找的字符,start查找的开始位置,end查找的结束位置,不写或为None时表示查找整个字符串,返回sub在字符串中出现的次数

name = 'Hello123'
print(name.count('l'))
2

15. 对齐方式center(self, width, fillchar=None) & ljust(self, width, fillchar=None) & rjust(self, width, fillchar=None) & zfill(self, width):width表示字符串的长度,filchar表示要填充的字符,不写或为None时表示用空格填充

name = 'Hello123'
print(name.center(20))          # 字符串居中,用空格填充
print(name.ljust(20, '*'))      # 字符串居左,用‘*’填充
print(name.rjust(20, '-'))      # 字符串居左,用‘-’填充
print(name.zfill(20))           # 字符串前面用0填充
      Hello123      
Hello123************
------------Hello123
000000000000Hello123

16. 定义制表符占的字符expandtabs(self, tabsize=8):tabsize为设置的所占字符,不写默认为8个字符

name = 'a\tb'
print(name.expandtabs(4))
a   b

17. 首字母大写capitalize(self) & 转换大小写swapcase(self) & 每个单词首字母大写title(self)

name = 'HelLo123 WORLD , i am coming'
print(name.capitalize())    # 将字符串的第一个字符大写,其他为小写
print(name.swapcase())      # 将字符串中的大小写相互转换
print(name.title())         # 将字符串中的单词首字母大写
Hello123 world , i am coming
hELlO123 world , I AM COMING
Hello123 World , I Am Coming

18. is系列,返回布尔值True 或者 False(了解即可)

  • isalnum(self) 是否只有数字字母
  • isalpha(self) 是否都是字母
  • isdecimal(self) 是否只有十进制字符
  • isidentifier(self) 是否是个有效的标识符
  • islower(self) 字符中的字母是否全为小写
  • isnumeric(self) 是否全为数字
  • isprintable(self) 是否可以打印
  • isspace(self) 是否全为空格
  • istitle(self) 是否是标题
  • isupper(self) 字符中的字母是否全为大写

有序 or 无序

有索引的数据有序,无索引的数据为无序。所以,数字类型没有有序无序的所说,字符串为有序的

可变 or 不可变

值变化时id不变的为可变数据,值变id也变的为不可变数据。所以数字类型是不可变数据,字符串也是不可变数据

猜你喜欢

转载自www.cnblogs.com/863652104kai/p/10913709.html