数字,字符串类型内置方法
整形内置方法
为什么要有数据类型?
- 因为我们对于不同类型的变量需要用不同的数据类型去定义
整型
1.作用:
- 身高,体重,年龄,ID号
2.定义方式
- y = 10
- id_num = 1231321
- z = int(10)
- x = int('10')
3.方法
- '+', '-', '*', '/', '%', '//', '**'
- pow 开根号
- 开x的r次方:pow(x, 1.0/r)
- 返回的是一个浮点值
x = 8
print(pow(x,0.5))
print(int(pow(x,0.5)))
2.8284271247461903
2
4.储存一个值or多个值?
- 一个值
5.有序or无序?(有序:有索引, 无序:无索引)
- 没有有序无序这一说
6.可变or不可变(可变:值变id不变,不可变:值变id也变)
- 不可变
x = 10
print(id(x))
x += 1
print(id(x))
1792634208
1792634240
字符串类型的内置方法(重要且多)
1.作用
- 女朋友名字, 猪, 性别
2.定义方式
name1 = 'xiaopangi'
name2 = 'lingling'
name3 = '''
xiaopangzi
lingling
'''
number = str(10)
3.方法
- 优先掌握
name = ' xiaopangzi 999 lingling love '
1.按索引取值,只能取,不能改
print(name[6])
print(name[-5])
p
l
2.切片:步长为正数,从左到右切片;如果步长为负数,则从右到左切片,默认为[0👎1]
- 取左不取右
print(name[2:13])
print(name[1:-3:2])
print(name[-1:-6:-1])
xiaopangzi
ioagi 99 lnln o
evol
3.长度 len:
print(len(name))
35
4.成员运算 in / not in
print('pangzi' in name)
print('shabi' not in name)
True
True
5.移除空白 strip
-
移除两端的空格,从两端往中间
-
只要是strip()里面的字符,两端遇到就全部移除,无视strip里填写的顺序,默认空格
print(name)
print(name.strip())
print(name.strip(' xeiv'))
xiaopangzi 999 lingling love
xiaopangzi 999 lingling love
aopangzi 999 lingling lo
6.切分/割 split
- split()里填写的参数有顺序,遇到就进行切割
- 从左往右切,可以设置切割次数,返回一个list
- 未找到则不切割只返回一个含有原字符串的list
- 未填写参数是默认切割None(移除掉空格,再把空格两端的字符切割)
print(name.split('p'))
print(name.split('ads'))
print(name.split())
print(name.split('l'))
print(name.split('l', 1))
[' xiao', 'angzi 999 lingling love ']
[' xiaopangzi 999 lingling love ']
['xiaopangzi', '999', 'lingling', 'love']
[' xiaopangzi 999 ', 'ing', 'ing ', 'ove ']
[' xiaopangzi 999 ', 'ingling love ']
7.循环
for i in name:
print(i, end='')
xiaopangzi 999 lingling love
- 需要掌握
s = 'abcdE54321'
1.lstrip & rstrip
- 和strip类似
- 默认都是切空格,只是左右的问题
print(s.lstrip('ac'))
print(s.rstrip('21'))
bcdE54321
abcdE543
2.title & lower & upper
- title每个单词的首字母大写,其余小写
- lower & upper 全部大写or小写
print(s.title())
print(s.lower())
print(s.upper())
3.startswith & endswith
print(s.startswith('1'))
print(s.startswith('c', 2, 5))
print(s.endswith('2'))
print(s.endswith('3', -5, -2))
False
True
False
True
4.rsplit
- 和split类似,从右往左切
print(s.rsplit('3'))
['abcdE54', '21']
5.join
- 最后返回的一定是一个字符串
print('.'.join(s)) # 将'.'插入到s的每一个元素中
a.b.c.d.E.5.4.3.2.1
- 也可以把字符串插入到列表的每一个元素中(很重要)
s = "Let's take LeetCode contest"
res = ''
s_list = s.split()
for i in range(len(s_list)):
s_list[i] = s_list[i][::-1]
print(''.join(s_list))
print(s_list)
s'teL ekat edoCteeL tsetnoc
["s'teL", 'ekat', 'edoCteeL', 'tsetnoc']
6.replace
- 默认值是全部替换
print(s.replace('3', '2'))
a.b.c.d.E.5.4.3.2.1
7.isdigit
print(s.isdigit()) # 判断字符串是否由数字组成
False
- 了解
ss = 'zhi Hu zhen bang'
1.find & rfind & index & rindex & count
- find:从左往右,找到就停下
- rfind:从右往左,找到就停下,但是查找的元素和索引都是从左往右的
print(ss.find('zh'))
print(ss.rfind('ba')) # 如果输ab就找不到,并且返回的下标也是b的
0
12
- index & rindex 用法和find & rfind基本一样,区别如下
- find没找到,默认返回'-1', 可以修改返回值
- index没找到,报错
- 推荐用find
print(ss.find('aa'))
print(ss.index('aa'))
-1
ValueError Traceback (most recent call last)
1 print(ss.find('aa'))
----> 2 print(ss.index('aa'))
ValueError: substring not found
- count
print(ss.count('n'))
2
2.center & ljust & rjust & zfill
- 50中包括the
- 默认填充的是空格,zfill是填充0
print('the'.center(50))
print('the'.center(50, '-'))
print('the'.ljust(50, '-'))
print('the'.rjust(50, '-'))
print('the'.zfill(50))
the
-----------------------the------------------------
the-----------------------------------------------
-----------------------------------------------the
00000000000000000000000000000000000000000000000the
3.expandtabs
- 制表符默认是4个空格
- expandtabs默认是8个空格
print('a\tb')
print('a\tb'.expandtabs())
a b
a b
4.capitalize & swapcase
print(ss.capitalize()) # 第一个单词首字母大写,其余字母全部小写
print(ss.swapcase()) # 大小写翻转
print(ss)
Zhi hu zhen bang
ZHI hU ZHEN BANG
zhi Hu zhen bang
5.is 系列
- 太多了,自己百度吧
储存一个值or多个值?
- 1个值
有序or无序?(有序:有索引, 无序:无索引)
- 有序
可变or不可变(可变:值变id不变,不可变:值变id也变)
- 不可变
s = 'abc'
print(id(s))
s += 'de'
print(id(s))
2400066682192
2400136479384