数据类型的内置方法

1|0数据类型的内置方法

1|1一、数据类型内置方法理论

1.内置方法是每个数据类型自带的功能 2.python中数据类型调用内置方法的统一句式:句点符(.) 绑定字符串的变量名.字符串内置方法 eg: 'jia'.字符串内置方法

1|2二、内置方法之整型相关操作

1.类型转换(把其他数据类型转换为整型) int(其他数据类型) 浮点型转可以直接转,字符串转的话必须满足内部是纯数字才可以 eg: res = int(12.56) # 12 res = int('12.56') # 字符串中必须纯数字才可以转,不然报错 2.进制数的转换 十进制转为其他进制: print(bin(30)) # 0b11110 print(oct(20)) # 0o24 print(hex(30)) # 0x1e 规律:数字的开头如果是0b则为二进制,0o为八进制,0x为十六进制 其他进制转为十进制: print(bin(0b11110, 2)) # 30 print(oct(0o24 ,8)) # 20 print(hex(0x1e, 16)) # 30 3.python自身对数字的敏感度较低(精确度低) eg: l1 = 2.1 l2 = 2 print(l1 - l2) #0.10000000000000009 如果需要更精准的计算时就需要借助于模块numpy....

1|3三、内置方法之浮点型相关操作

1.类型转换(把其他数据类型转换为浮点型) float(其他数据类型) eg: res = float('11.2.3') print(res) # 报错 字符串里面可以允许出现一个小数点(不能两个小数点),其他必须是数字 2.python自身对数字的敏感度较低(精确度低) eg: a = [100.7, 100.9] print(sum(a)) # 201.60000000000002

1|4四、内置方法之字符串相关操作

1|01.类型转换

str(其他数据类型) 可以转任意数据类型,主要在前后加引号就好了 eg: res1 = str(99) print(res1,type(res1)) # 99 <class 'str'> res2 = str('hell0') print(res2,type(res2)) # hell0 <class 'str'> res3 = str([1,2,3]) print(res3,type(res3)) # [1, 2, 3] <class 'str'> res4 = str({'username':'jia'}) print(res4,type(res4)) # {'username': 'jia'} <class 'str'>

1|02.字符串内置方法必须掌握的方法

  • 索引取值

    索引取值(起始位置0开始,超出范围直接报错) s1 = 'hello word' print(s1[0]) # h print(s1[-1]) # d 负数的话就是从末尾开始
  • 切片操作

    eg: print(s1[1:4]) # ell print(s1[-4:-1]) # wor 默认切片的顺序是从左往右的
  • 修改切片方向(间隔)

    eg: print(s1[1:5:2]) # el 不做要求的话间隔,步长默认是1 print(s1[-1:-5:-1]) # drow -1从右往左索引 print(s1[:]) # hello word 不写数字就是默认都要 print(s1[2:]) # llo word 从索引2开始往后都要 print(s1[:5]) # hello 从索引0开始要到索引4 print(s1[::2]) # hlowr 全都要,间隔一个数
  • 统计字符串中字符的个数

    eg: print(len(s1)) # 10
  • 移除字符串首尾指定的字符

    .strip()方法:默认移除字符串首尾的空格 eg1: res = 'jia ' print(len(res)) # 4 print(len(res.strip())) # 3 eg2: res1 = '$$jia$$' print(res1.strip('$')) # jia 移除字符串首尾指定的字符 print(res1.lstrip('$')) # jia$$ 移除字符串左边指定的字符 print(res1.rstrip('$')) # $$jia 移除字符串右边指定的字符 只能移除首尾的指定字符,中间的移不了 eg3: username = input('username>>').strip() if username == 'jia': print('登录成功') 先获取用户输入的数据值,然后将首尾空格移除掉,再绑定给变量名
  • 切割字符串中指定的字符

    .split()方法:切割字符串中指定的字符 eg: res = 'jason|123|read' print(res.split('|')) # ['jason', '123', 'read'] 处理结果是个列表 print(res.split('|', maxsplit=1)) # ['jason', '123|read'] 从左往右切指定个数 print(res.rsplit('|', maxsplit=1)) # ['jason', '123|read'] 从右往左切指定个数
  • 字符串格式化输出

    format用法1:(等价于占位符) eg: res = 'name is {} age is {}'.format('jia', 123) print(res) # name is jia age is 123 format用法2:(索引取值,并支持重复使用) eg: res = 'name is {0} age is {1} {0}'.format('jia', 123) print(res) format用法3:(占位符:见名知意) eg: res = 'name is {name1} age is {age1}'.format(name1='jia', age1=123) print(res) format用法4:(推荐) eg: name = input('username>>') age = input('age>>') res = f'my name is {name} my age is {age}' print(res)

1|03.字符串内置方法必须了解的方法

  • 大小写相关

    .upper() 统一转为大写 .lower() 统一转为小写 eg: res = 'hElLO WorlD' print(res.upper()) # HELLO WORLD print(res.lower()) # hello world
  • 判断字符中是否是纯数字

    .isdigit() 判断字符里面是否是纯数字 eg: guess_age = input('guess_age>>>:').strip() if guess_age.isdigit(): guess_age = int(guess_age) else: print('输的不对')
  • 替换字符串中指定内容

    .replace() 替换指定内容 eg: guess_age = input('guess_age>>>:').strip() if guess_age.isdigit(): guess_age = int(guess_age) else: print('年龄都不知道怎么输吗???')
  • 字符串的拼接

    .join() 拼接字符串 eg: print('|'.join(['jason', 123])) # 参与拼接的数据值必须都是字符串
  • 统计字符出现的次数

    .count()统计字符出现的次数 eg: res = 'hello world' print(res.count('l'))
  • 判断字符串的开头或者结尾

    eg: res = 'jason say hello' print(res.startswith('jason')) print(res.endswith('o'))
  • 其他方法

    .title() # 所有首字母大写 .capitalize() # 第一个的首字母大写 .swapcase() # 大写变为小写,小写变为大写,大小写转换 .index() # 索引 .find() # 查找

1|5五、内置方法之列表相关操作

l1 = [11, 22, 33, 44, 55, 77] 1.索引取值 eg: print(l1[-1]) # 77 2.切片操作 eg: print(l1[0:5]) # [11, 22, 33, 44, 55] 3.间隔数 eg: print(l1[::-1]) # [77, 55, 44, 33, 22, 11] 4.统计列表中的数据值个数 eg: print(len(l1)) # 6 5.数据值修改 eg: l1[0] = 99 print(l1) # [99, 22, 33, 44, 55, 77] 6.列表中添加数据值 (1).append() # 尾部追加数据值 eg: l1.append('数据') (2).insert() # 任意位置插入数据值 eg: l1.insert(1, [11, 33]) (3)+号 # 扩展列表 合并列表 eg: l2 = [2, 4] print(l1 + l2) # [11, 22, 33, 44, 55, 77, 2, 4] (4).extend() # 相当于for循环加append eg: l1.extend(l2) print(l1) # [11, 22, 33, 44, 55, 77, 2, 4] 相当于: for i in l2: l1.append(l2) print(l1) 7.删除列表数据 (1)del 通用删除关键字del eg: del l1[0] print(l1) (2) remove 彻底删除数据值 eg: l1.remove(22) print(l1) (3)pop 尾部弹出数据值,并没有真正删除数据 eg: l1.pop(33) print(l1) 8.排序 (1) .sort()就是升序 eg: s1 = [33, 44, 66, 88, 21, 12] s1.sort() print(s1) # [12, 21, 33, 44, 66, 88] (2) 降序 加一个参数,将其设为True,就是降序了 eg: s1 = [33, 44, 66, 88, 21, 12] s1.sort(reverse=True) print(s1) # [88, 66, 44, 33, 21, 12] 9. 统计列表中某个数据出现的次数 eg: print(l1.count(22)) 10.颠倒列表顺序 eg: l1.reverse() print(l1)

img

1|6六、可变类型与不可变类型

eg: s1 = '$$jia$$' s1.strip('$') print(s1) # $$jia$$ 注:字符串在调用内置方法之后不会修改自己,而是产生了一个新的结果 eg: l1 = [11, 22, 33, 44] l1.append(33) print(l1) # [11, 22, 33, 44, 33] 注:列表在调用内置方法之后修改的就是自身,并没有产生一个新的结果 可变类型:值改变,内存地址不变 eg: l1 = [11, 22, 33, 44] print(l1) # [11, 22, 33, 44] print(id(l1)) # 1643060049856 l1.append(44) print(l1) # [11, 22, 33, 44, 44] print(id(l1)) # 1643060049856 不可变类型:值改变,内存地址肯定变 eg: res = '$$hello world$$' print(res) # $$hello world$$ print(id(res)) # 1689900415664 res.strip('$') print(res) # $$hello world$$ print(id(res)) # 1689900415664 字符串不支持修改,要想值改变,就得程序赋值 可变类型:集合,列表,字典 不可变类型:整型,字符串,元组,

1|7七、作业

1.基于字符串充当数据库完成用户登录(基础练习) data_source = 'jason|123' # 一个用户数据 获取用户用户名和密码 将上述数据拆分校验用户信息是否正确
解答: data_source = 'jason|123' data = data_source.split('|') username = input('username>>') password = input('password>>') if username == data[0] and password == data[1]: print('登录成功') else: print('用户名或者密码有误')
2.基于列表充当数据库完成用户登录(拔高练习) # 多个用户数据 data_source = ['jason|123', 'kevin|321','oscar|222']
解答: data_source = ['jason|123', 'kevin|321', 'oscar|222'] username = input('username>>') password = input('password>>') # data_source = str(data_source) for i in data_source: data = i.split('|') user = data[0] pwd = data[1] if username == user and password == pwd: print('登录成功') break else: print('用户名或者密码有误')

__EOF__

本文作者泡芙有点甜
本文链接https://www.cnblogs.com/zx0524/p/16743216.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   小王应该在学习!  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示