数据类型的内置方法

今日内容回顾

  • 数据类型内置方法理论
  • 整形相关操作
  • 浮点型相关操作
  • 字符串相关操作
  • 列表相关操作
  • 可变类型与不可变类型

今日内容回顾详情

数据类型内置方法理论

我们之前所学习的每一种数据类型本身都含有一系列的操作方法,内置方法是其中最多的(自带功能)

在python中数据类型调用内置方法的统一句式为>>>:句点符

格式:绑定的字符串的变量名,字符串内置方法

​ 'Jason'.字符串内置方法

​ str.字符串内置方法

整形内置方法与操作

1.类型转换(将其他数据类型转换成整型)

int(其他数据类型)

浮点型可以直接转 字符串必须满足内部是纯数字才可以

2.进制转换

十进制转其他进制

print(bin(100) )   # 转成二进制用bin
print (oct(100))   #转成八进制用oct
print(hex(100) )#转成十六进制用hex

数字的开头如果是0b则为二进制 0b则为八进制 0x则为十六进制
其他进制转十进制

转成十进制全部都用int
print(int(0b1100100))
print(int(0o144))
print(int(0x64))
在后面加上数,是为了告诉别人这输出的是几进制
print(int("0b1100100", 2))
print(int("0o144", 8))
print(int("0x64", 16))

3.python自身对数字的敏感度较低(精确度比较低)

比如当你输出的数字是11.11时,他会直接打印输出11,并且不会四舍五入。

浮点型内置方法与操作

1.类型转换

float(其他数据类型)

字符串里面可以允许出现一个小数点 其他都必须是纯数字

2.还是精度比较的低,如果需要进准的计算需要借助与模块numpy....

字符串内置方法与操作

1.类型转换:

str(其他数据类型)

可以转换任何数据类型(只需要在前后加上引号即可)

2.必须要掌握的方法

2.1索引取值(起始位0开始 超出范围直接报错)

s1 = 'hello wrild'
print (s1[0])  # 输出的是第一位
print(s1[-1] ) #输出的是倒数第一位  ,支持负数,从末位开始

2.2切片操作

print(s1[1:5])    #顾头不顾尾 从索引1一直到切取到索引4
print(s1[-1:-5]) #  默认顺序是从左到右
print(s1[-5:-1])  # 默认顺序是从左到右

2.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

2.4统计字符串中的字符的个数

print(len(s1)) #统计字符串用len

2.5移除字符串首尾指定的字符

删除首位空格是.strip(),代码如下:
user_nume = input('user_name>>>:').strip()
if user_nume == 'jason':
    print('登陆成功')
#.strip() #括号内不写 默认移除收尾的空格

指定删除:左边.lstrip('字符串'), 右边.rstrip('字符串')
res1 = '$jason$'
print(res1.strip('$'))   #将所有'$'全部删掉
print(res1.lstrip('$'))  #将左边'$'全部删掉
print(res1.rstrip('$'))  #将右边'$'全部删掉

2.6切割字符串中指定的字符

切割字符串的内置方法是  .split(),split()里面也可以加上你想切割掉的字符串
res ='jason|123|read'
print(res.split('|'))  #这个打印会以一个列表的形式表现出来

res ='jason|123|read'
name, pwd, hobby = res.split('|') #解压赋值
print(res.split('|',maxsplit=1))  #['jason', '123|read']  从左往右切指定个数
print(res.split('|',maxsplit=1))  # ['jason|123', 'read']  从右往左切指定个数
maxsplit:最大分割次数

2.7字符串格式化输出

字符串输出的内置是format
format方法一:相当于占位符
res = 'my name is {} my age is {}'.format('jason',23)
print(res)
format方法二:可以用索引取值并支持反复使用
res = 'my name is {0} my age is {1} {0} {1}'.format('jason', 23)
print(res)
format方法三:占位符见名知意
res = 'my name is {name} my age is {age} {name} {age}'.format(name='jason',age= 23)
print(res)
format 方法四:用f在你想打印的字符串前面加上
name = input('name:')
age = input('age:')
res = f'my name is {name} my age is {age}'
print(res)

3.字符串需要了解的方法

3.1大小写相关

res = 'hEllO WoRld'
print(res.upper()) #把res的字符串里面的字符全部变成大写 .upper()
print(res.lower()) #把res的字符串里面的字符全部变成小写 .lower()
代码实例:
code = 'u4R87'
print('展示给用户看的图片验证码', code)
confirm_code = input('请输入验证码').strip()
if confirm_code.upper() == code.upper():# 把全部变成大写进行判断
    print('验证码正确')

判断输入的字符串是否是全部大写 .isupper()
判断输入的字符串是否是全部小写 .islower()
代码实例如下:
     res = 'hello world'
    print(res.isupper())  # 判断字符串是否是纯大写  False
     print(res.islower())  # 判断字符串是否是纯小写  True

3.2判断字符串中是否是纯数字

判断是不是纯数字的内置方法 是 .isdigit 它会判断是不是数字是就是Ture 不是就是false
guess_age = input('guess_age>>>:').strip()
if guess_age.isdigit():
    guess_age = int(guess_age)
else:
    print('年龄都不知道怎么输吗???')

3.3替换字符串中指定的内容

替代字符串的内置方法的是  .raplace
代码的表现形式:
res = 'my name is jason jason jason jason'
print(res.replace('jason','tony'))
print(res.replace('jason','tony',2))     #从左到右替换指定的个数内容

3.4字符串拼接

字符串拼接的内置方法 .join('数据','数据','数据')
代码如下:
print('|'.join(['tony','123']))   #参加拼接的数据值必须是字符串

3.5统计指定字符出现的次数

统计用的内置方法  .count('你想统计的字符串')
代码如下:
res = 'hello world'
print(res.count('l'))

3.6判断字符串的开头或者结尾

判断字符串的开头的是.startswith()
判断字符串的结尾的是.endswith()
代码如下:
开头:
res = 'jason say hello'
print(res.startswith('jason'))
print(res.startswith('j'))
print(res.startswith('jas'))  #只要是开头'j'的字符串都可以
结尾:
res = 'jason say hello'
print(res.endswith('o'))
print(res.endswith('llo'))
print(res.endswith('hello'))

3.7其他方法补充

res = 'helLO wORld hELlo worLD'
print(res.title())  # 打印的字符串首字母大写
print(res.capitalize())  #第一个字符串大写,剩下的小写
print(res.swapcase())  # 把大的变成小写,小写的变成大写
print(res.index('O'))#类似索引
print(res.find('O'))
区别:
print(res.index('c'))  # 找不到直接报错
print(res.find('c'))  # 找不到默认返回-1

列表内置方法及操作

1.类型转换

list(其他数据类型)
只要是能被for循环的数据类型都可以转成列表
print(list('hello'))  #字符串
print(list({'name': 'jason', 'pwd': 123})) #字典
print(list((1, 2, 3, 4))) #元组
print(list({1, 2, 3, 4, 5}) ) #集合
    

2.需要掌握的方法

2.1索引取值 (正负数,正是左到右,负是右到左)

l1 = [111, 222, 333, 444, 555, 666, 777, 888]
print(l1[0])
print(l1[-1])

2.2切片操作 (和字符串一样)

l1 = [111, 222, 333, 444, 555, 666, 777, 888]
print(l1[1:5])    #顾头不顾尾 从索引1一直到切取到索引4
print(l1[:])  

2.3间隔数 (和字符串一样)

l1 = [111, 222, 333, 444, 555, 666, 777, 888]
print(l1[1:5:1] ) #默认为1
print(l1[1:5:2])    #默认为1
print(l1[-1:5:-1]) 
 print(l1[:] # 不写数字就默认全部都要
 print(l1[2:])  # 从索引2开始往后都要
print(l1[:5])  #从索引0开始要到4
print(l1[::2])  #从索引0开始要到4

2.4统计列表的数据值的个数
print(len(l1)) #统计字符串用len
2.5数据值修改

l1 = [111, 222, 333, 444, 555, 666, 777, 888]
l1[0] = 123
 print(l1)

2.6列表添加数据值

添加数据值的内置方法是append,insert,
append方法一:尾部追加数据值
代码如下:
l1 = [111, 222, 333, 444, 555, 666, 777, 888]
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']]
insert方法二:任意位置插入数据值
  代码如下:
 l1.insert(0, 'jason')
 print(l1)
 l1.insert([11, 22, 33, 44])
 print(l1)  # [111, [11, 22, 33, 44], 222, 333, 444, 555, 666, 777, 888]
extend方法三:
ll1 = [11, 22, 33]
ll2 = [44, 55, 66]
ll1.extend(ll2)
补充:
extend =for循环+append
ll1 = [11, 22, 33]
ll2 = [44, 55, 66]
 for i in ll2:
    ll1.append(i)
    print(ll1)

2.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)
pop和rmeove的区别:pop是把数据弹出还可以找回使用一次如何删除,而remove是直接删除:
代码如下:
res = l1.pop(3)
print(res)  # 444
res1 = l1.remove(444)
print(res1)  # None

2.8排序

排序的内置方法是sort
ss = [54, 99, 55, 76, 12, 43, 76, 88, 99, 100, 33]
ss.sort()  # 默认是升序  因为默认为false
print(ss)
ss.sort(reverse=True) # 把这个改为True
print(ss)  #就改为降序

3.9统计列表中某个数据值出现的次数

l1 = [111, 222, 333, 444, 555, 666, 777, 888]
print(l1.count(111))

3.10颠倒列表顺序

颠倒列表的顺序的内置方法是reverse
代码如下:
l1 = [111, 222, 333, 444, 555, 666, 777, 888]
l1.reverse()
 print(l1)

可变类型与不可变类型

可变类型的的原理:
例如列表在调用内置方法之后修改的就是自身 并没有产生一个新的结果
不可变类型的原理:
字符串在调用内置方法之后并不会修改自己 而是产生了一个新的结果

可变类型:值改变 内存地址不变
  如:
 l1 = [11, 22, 33]
 print(l1)
 print(id(l1))
 l1.append(44)
 print(l1)
 print(id(l1))

不可变类型:值改变 内存地址肯定变
 如:
res = '$$hello world$$'
print(res)
print(id(res))
res.strip('$')
print(res)
print(id(res))
posted @   hugmi男孩  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
  1. 1 原来你也在这里 周笔畅
  2. 2 世间美好与你环环相扣 柏松
  3. 3 起风了 吴青峰
  4. 4 极恶都市 夏日入侵企划
极恶都市 - 夏日入侵企划
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 王星

作曲 : 灰鸿啊/皮皮

编曲 : 夏日入侵企画

制作人 : 邢硕

节奏吉他 : 肯尼

主音吉他 : 张伟楠

贝斯 : 皮皮

鼓 : 海鑫

和声 : 邢硕

音效制作 : 邢硕

录音 : 邢硕/夏国兴

混音 : 于昊

特别鸣谢 : 张伟楠

这城市的车流和这地表的颤抖

像一颗石子落入地心之后泛起的温柔

暗涌

河水流过转角她的楼

被梦魇

轻声呓语唤醒身后的幼兽

失效感官焦灼只剩下

麻木愚钝无从感受

共同支撑全都瓦解

只是我们现在都

已忘记到底是

谁隐藏春秋

谁在大雨之后

把旗帜插在最高的楼

过去陈旧的还在坚守

内心已腐朽

摇摇欲坠不停退后

毁灭即拯救

夏日掠夺春秋

结局无法看透

眼看这情节开始变旧

所有的城池已失守

最终无法占有

无眠辗转

伴着人间破碎的旧梦

像繁星

退却后只剩下混沌的夜空

炙热

掩盖风声鹤唳的担忧

把所有失落无助反手推入

无尽的白昼

失效感官焦灼只剩下

麻木愚钝无从感受

共同支撑全都瓦解

只是我们现在都已经忘记到底是

谁隐藏春秋

谁在大雨之后

把旗帜插在最高的楼

过去的陈旧还在坚守

内心已腐朽

摇摇欲坠不停退后

毁灭即拯救

夏日掠夺春秋

结局无法看透

眼看这情节开始变旧

所有的城池早已失守

惶恐难以接受

缠绵往复不肯放手

最终无法占有

谁隐藏春秋

谁在大雨之后

把旗帜插在最高的楼

过去的陈旧还在坚守

内心已腐朽

摇摇欲坠不停退后

毁 灭 即 拯 救

谁掠夺春秋

谁在大雨之后

把旗帜插在最高的楼

过去的陈旧还在坚守

内心已腐朽

摇摇欲坠不停退后

毁灭即拯救

夏日掠夺春秋

结局无法看透

明知城池已失守

缠绵往复不肯放手

最终无法占有

点击右上角即可分享
微信分享提示