今日内容总结
数据类型内置方法理论
我们之前所学习的每一种数据类型本身都含有一系列的操作方法,内置方法是其中最多的(自带的功能)
在python中数据类型调用内置方法的统一句式为>>>:句点符
'Jason'.字符串内置方法
绑定字符串的变量名.字符串内置方法
str.字符串内置方法
ps:数据类型的内置方法比较的多 我们如果想要掌控 不要光靠死记硬背 更多时候考的是孰能生巧
整形内置方法与操作
1.类型转换(将其他数据类型转换成整型)
int(其他数据类型) #int是关键字
ps:浮点型可以直接转 字符串必须满足内部是纯数字才可以,出现其他形式则立即报错.
2.进制数转换
十进制转其他进制
print(bin(100)) # 0b1100100 二进制
print(oct(100)) # 0o144 八进制
print(hex(100)) #ox64 十六进制
'''
数字的开头如果是0b则为二进制 0o则为八进制 0x泽维十六进制
'''
其他进制转十进制
print(int(0b11100100))
print(int(0o144)
print(int(0x64))
print(int("0b1100100", 2))
print(int("0o144", 8))
print(int("0x64", 16))
3.python自身对数字的敏感度较低(精确度低)
python这么语言其实真的一点都不厉害 主要是因为它背后有太多大佬
如果需要进行准确的计算需要借助于模块numpy...
浮点型内置方法与操作
1.类型转换
float(其他数据类型)
字符串里面可以允许出现一个小数点 其他都必须是纯数字
'''
浮点型类型转换里只能出现一个小数点,若为多个小数点则直接报错。(还是因为pytho对数字不敏感)
'''
2. python自身对数字的敏感度较低(精确度低)
python这么语言其实真的一点都不厉害 主要是因为它背后有太多大佬
如果需要进行准确的计算需要借助于模块numpy...
字符串内置方法与操作
1.类型转换
str(其他数据类型) #srt 关键字
ps:可以转任意数据类型(只需要在前后加引号即可)
2.必须要掌握的方法:
1.索引取值(起始位置0开始 超出范围直接报错)
print(s1[0]) # h
print(s1[-1]) # d 支持负数 从末尾开始
"""所提取的为负数时,所打印的内容是由右往左依此读取所打印数的内容"""
2.切片操作
print(s1[1:5]) #顾头不顾尾 从索引1一直切渠道索引4
print(s1[-1:-5]) # 默认的顺序是从左往右 所以不输出
print(s1[-5:-1]) # 默认的顺序是从左往右
'''
切片取值时,顺序默认从左往右,当第三个参数赋值为-1时,循序变为从右往左打印,若没有给第三个参数赋值则默认为1。取值的时候是遵循顾头不顾尾的原则,第二个参数数默认减一
'''
3.修改切片方向(间隔)
print(s1[1:5:1]) # 默认是1
print(s1[1:5:2]) # 默认是1
print(s1[-1:-5:-1])
print(s1[:]) # 不写数字就是默认都要
print(s1[2:]) # 从索引2 开始往后面都要
print(s1[:5]) # 从索引0开始往后要到4
print(s1[::2]) #从索引0开始每间隔两个取一个值
'''
间隔方向默认为从左往右
'''
4.统计字符串中字符的个数
print(len(s1)) #10
'''
注意在使用len()统计字符个数时,其中的空格也在统计范围内。
'''
5.移除字符首尾指导的字符
username = input('username>>>:').strip() #strip() ()内不写默认作用是消除首尾的空格空格
username = username.strip()
if username == 'jason'
print('登录成功')
res = ' jason '
print(len(res))
print(len(res.strip())) #括号内不写 默认移除首尾的空格
res1 = '$$jason$$'
print(res1.strip('$')) # jason
print(res1.lstrip('$'))# jason$$
print(res1.rstrip('$'))# $$jason
'''
运用字符串用内置的方法消除字符时,所表示的不是改变原始数据,而是产生了新的数据,随后输出来调用改变后的数据
还可以进行左消除或者右消除操作:
即在strip前加l或者r
l即left 即左消除
r即right 即右消除
'''
6.切割字符串中指定的字符
res = 'jason|123|read'
print(res.split('|')) #['jason','123','read']该方法的处理结果是一个列表
name,pwd,hobby = res.split('|')
print(res.split('|',maxsplit=1)) # ['jason','123|read']从左往右切指定个数
print(res.rsplit('|',maxsplit=1))# ['jason|123','read'] 从右往左切指定个数
'''
若出现连续的特征符号,考虑用切割操作。
使用切割字符串时,默认为从左往右切割,若split前由r时,则为从右往左切割
当需要切割次数时,使用maxsplit ,当后面的数值为多少就是需要切割多少次。
'''
7.字符串格式化输出
format玩法1:等价占位符
res = 'my name is ()my age is ()'.format('jason',123)
print(res)
format玩法2:索引取值并支持反复使用
res = 'my name is (0) my age is (1) (0) (0) (1)'.format('jason',123)
print(res)
format玩法3:占位符见名知意
res = 'my name is (name1) my age is (age1) (name1) (age)(name1)'.format(name1 = 'jason', age1 = 123)
print(res)
format玩法4:推荐使用(******)
name = input('username>>>:')
age = input('age>>>:')
res = f'my name is (name) my age is (age)'
print(res)
3.字符串需要了解的方法
1.大小写相关
res = 'hElLo WorlD 666'
print(res.upper()) #HELLO WORLD 666 全部大写
print(res.lower()) #hello world 666 全部小写
'''图片验证码:生成没有大小写统一的验证码 展示给用户看
获取用户输入的验证码 将用户输入的验证码和当初产生的验证码统一转大写或者小写再比对
'''
code = '8Ja6Cc'
print('展示给用户看的图片验证码',code)
confirm_code = input('请输入验证码').strip()
if confirm_code.upper() == code.upper():
print('验证正确')
res = 'hello world'
print(res.isupper()) #判断字符串是否是纯大写 false
print(res.isupper()) #判断字符串是否是纯小写 True
'''
进行大小写的相关操作时,使用lower()或者upper()操作可将字符串中所由字母进行大小写转换,进而使大小写穿插输入达到一致的结果。
若其前加is 则为判断该字符串是否是全大写,或者全是小写
'''
2.判断字符串中是否是纯数字
res = ''
print(res.isdigit())
guess_age = input('guess_age>>:').strip()
if guess_age.isdigit():
guess_age = int(guess_age)
else:
print('年龄都不知道怎么输吗???')
'''
采用isdigit()方法对整型进行判断处理
'''
3.替换字符串中指定的内容
res = 'my name is jason jason jasons jason jason'
print(res.replace('jason','tonySb')) # my name is tonySb ...tonysb
print(res.replace('jason', 'tonySB', 1)) # my name is tonySB jason jason jason jason 从左往右替换指定个数内容
'''
采用replace()方法可以将字符串中的代码进行替换(遵循从左往右的原则)
在原数据,替换数据之后填写一个数据值则为替换间隔数(没有填写则默认为0)
'''
4.字符串的拼接
ss1 = 'hello'
ss2 = 'world'
print(ss1 + '$$$' + ss2)
print(ss1 * 10)
print('|'.jsin(['jason','123','read','JDB']))
print('|'.join(['jason',123])) #参与拼接的数据值必须都是字符串
'''
字符串的拼接支持+ * 形式的拼接,拼接的结果为没有间隔的数据。
当使用join()方法进行拼接时,join前的单引号中若为|则使用|来将其拼接结果进行分割。若为空则视为没有间隔
列表中的数据都必须是字符串类型否则报错。
'''
5.统计指定字符出现的次数
res = 'hello world'
print(res.count('1'))
'''
相比于循环操作,采用.count()方法能够更加快捷的找到字符串中所需要的数据
'''
6.判断字符串的开头或者结尾
res = 'Jason say hello'
print(res.startswith('jason'))
print(res.startswith('j'))
print(res.startswith('jas'))
print(res.startswith('a'))
print(res.startswith('son'))
print(res.startswith('say'))
print(res.endswith('o'))
print(res.endswith('llo'))
print(res.endswith('hello'))
'''
采用swith()方法判断字符串的开头或者结尾
swith前为start时是判断开头是否正确 可以是首字母,也可是前面的连续字母
swith前为end 时,则是判断结尾是否正确。可以是尾字母,也可以是最后的连续字母(这里是从左往右)
'''
7.其他方法补充
res = 'helLO World hELlo worLD'
print(res.title()) #Hello World Hello World 只有开头大写
print(res.capitalize()) # Hello world hello world
print(res.swapcase()) # HELlo WorLD HelLO WORld
print(res.index('O'))
print(res.find('O'))
print(res.index('c')) # 找不到直接报错
print(res.find('c')) # 找不到默认返回-1
print(res.find('LO')) # 3
列表的内置方法及操作
1.类型转换
list(其他数据类型)
ps:能够被for循环的数据类型都可以转成列表
print(list('hello'))
print(list({'name':'jason','pwd':123}))
print(list({1,2,3,4}))
print(list({1,2,3,4,5})
2.需要掌握的方法
11 = [111, 222, 333, 444, 555, 666, 777, 888]
1.索引取值(正负数)
print(l1[0])
print(l1[-1])
2.切片操作 与字符串讲解操作一致
print(l1[0:5])
print(l1[:])
3.间隔数 方向 与字符串讲解操作一致
print(l1[::-1])
4.统计列表中数据值的个数
print(len(l1)) # 8
5.数据值修改
l1[0] = 123
print(l1)
6.列表添加数据值
方式1:尾部追加数据值
l1.append('干饭')
print(l1) # [111, 222, 333, 444, 555, 666, 777, 888, '干饭']
l1.append(['jason', 'kevin', 'jerry'])
print(l1) # [111, 222, 333, 444, 555, 666, 777, 888, ['jason', 'kevin', 'jerry']]
方式2:任意位置插入数据值
l1.insert(0, 'jason')
print(l1)
l1.insert(1, [11, 22, 33, 44])
print(l1) # [111, [11, 22, 33, 44], 222, 333, 444, 555, 666, 777, 888]
方式3:扩展列表 合并列表
ll1 = [11, 22, 33]
ll2 = [44, 55, 66]
print(ll1 + ll2) # [11, 22, 33, 44, 55, 66]
ll1.extend(ll2) # for循环+append
print(ll1) # [11, 22, 33, 44, 55, 66]
for i in ll2:
ll1.append(i)
print(ll1)
7.删除列表数据
方式1:通用的删除关键字del
del l1[0]
print(l1)
方式2:remove
l1.remove(444) # 括号内填写数据值
print(l1)
方式3:pop
l1.pop(3) # 括号内填写索引值
print(l1)
l1.pop() # 默认尾部弹出数据值
print(l1)
res = l1.pop(3)
print(res) # 444
res1 = l1.remove(444)
print(res1) # None
8.排序
ss = [54, 99, 55, 76, 12, 43, 76, 88, 99, 100, 33]
ss.sort() # 默认是升序
print(ss)
ss.sort(reverse=True)
print(ss) # 改为降序
9.统计列表中某个数据值出现的次数
print(l1.count(111))
10.颠倒列表顺序
l1.reverse()
print(l1)
可变与不可变类型
s1 = '$$jason$$'
l1 = [11, 22, 33]
s1.strip('$')
print(s1) # $$jason$$
'''字符串在调用内置方法之后并不会修改自己 而是产生了一个新的结果
如何查看调用方法之后有没有新的结果 可以在调用该方法的代码左侧添加变量名和赋值符号
res = s1.strip('$')
'''
ret = l1.append(44)
print(l1) # [11, 22, 33, 44]
print(ret) # None
'''列表在调用内置方法之后修改的就是自身 并没有产生一个新的结果'''
可变类型:值改变 内存地址不变
l1 = [11, 22, 33]
print(l1)
print(id(l1))
l1.append(44)
print(l1)
print(id(l1))
'''
append命令是将整个对象加在列表末尾,
'''
不可变类型:值改变 内存地址肯定变
res = '$$hello world$$'
print(res)
print(id(res))
res.strip('$')
print(res)
print(id(res))
'''
strip()用于移除字符串头尾指定的字符
'''
标签:内置,jason,res,s1,数据类型,字符串,l1,print,操作
From: https://www.cnblogs.com/wwssadadbaba/p/16742965.html