数据类型的内置方法

打印 上一主题 下一主题

主题 827|帖子 827|积分 2485

数据类型的内置方法


  • 简介:内置方法可以简单的理解成是每个数据类型自带的功能(每个人的不同特长)
  • 使用数据类型的内置方法统一采用句点符:数据类型.方法名()
  1. eg:
  2. 'jason'.字符串具备的方法()
  3. name = 'jason'
  4. name.字符串具备的方法()
  5.    ps:如何快速查看某个数据类型的内置方法
  6.               借助于编辑器自动提示
复制代码
1.整型相关方法

1.1.整型


  • 概念:整型就是整数,主要用于计算,没有内置方法
  • 关键字:int()
1.2.类型转换


  • 类型转换:int(待转换的数据)
  1. age = input()
  2. age = int(age)
  3. print(type(int('123')))  # 字符串 内部是纯数字情况 可以转换
  4. print(type(int('123a321')))  # 字符串里面必须是纯数字才可以转换
  5. print(type(int('123.33')))  # 小数点也不行
复制代码
1.3.进制转换


  • 进制:二进制、八进制、十进制、十六进制
  • 十进制转换其他进制:

    • bin():将十进制转二进制    0b1100100  0b是二进制数的标识
    • oct():将十进制转八进制    0o144      0o是八进制数的标识
    • hex():将十进制转十六进制  0x64       0x是十六进制数的标识

  1. print(bin(100)) # 将十进制转二进制
  2. print(oct(100)) # 将十进制转八进制
  3. print(hex(100)) # 将十进制转十六进制
复制代码

  • 其他进制转十进制

    • 自动识别进制数
    • 人为指定进制数

  1. # 自动识别进制数
  2. print(int(0b1100100))   # 100
  3. print(int(0o144))       # 100
  4. print(int(0x64))        # 100
复制代码
  1. # 人为指定进制数
  2. print(int('0b1100100', 2))  # 100
  3. print(int('0o144', 8))  # 100
  4. print(int('0x64', 16))  # 100
复制代码
2.浮点型相关方法

2.1.浮点型


  • 概念:浮点型由整数部分与小数部分组成
  • 关键字:float
2.2.类型转换
  1. print(float('123'))  # 123.0
  2. print(type(float('123')))  # float
  3. print(float('123a123'))
  4. print(float('123.12'))  # 可以识别一个小数点
  5. print(float('123.123.1.2.2.2.2.2.2'))  # 不可以
复制代码
2.3.针对布尔值的特殊情况
  1. print(float(True))  # 1.0
  2. print(float(False))  # 0.0
  3. print(int(True))  # 1
  4. print(int(False))  # 0
复制代码
3.字符串相关方法

3.1.字符串


  • 概念:双引号或者单引号中的数据,就是字符串
  • 关键字:str
3.2.类型转换


  • 类型转换:兼容所有数据值
  1. print(str(123), type(str(123)))
  2. print(str(123.11), type(str(123.11)))
  3. print(str([1, 2, 3, 4]), type(str([1, 2, 3, 4])))
  4. print(str({'name': 'jason'}), type(str({'name': 'jason'})))
  5. print(str(True), type(str(True)))
  6. print(str((1, 2, 3, 4)), type(str((1, 2, 3, 4))))
  7. print(str({1, 2, 3, 4}), type(str({1, 2, 3, 4})))
复制代码
3.3.需掌握的方法


  • 索引取值:单个字符,支持负数
  1. s1 = 'hello jason!'
  2. print(s1[0])  # h
  3. print(s1[-1])  # !
  4. print(s1[-2])  # n
复制代码

  • 切片取值:多个字符,支持负数,切片的顺序默认从左往右
  1. s1 = 'hello jason!'
  2. print(s1[0:3])  # hel  从索引0的位置开始切到索引2的位置 顾头不顾尾
  3. print(s1[-1:-4])  # 切片的顺序默认从左往右
  4. print(s1[-1:-4:-1])  # !no 可以通过第三个参数的正负一 控制方向
  5. print(s1[-4:-1])  # son  顾头不顾尾
复制代码

  • 间隔/方向
  1. s1 = 'hello jason!'
  2. print(s1[:])  # 所有
  3. print(s1[::2])  # 针对整个字符串 隔一个取一个
  4. print(s1[0:5:1])  # hello  默认1可以不写
  5. print(s1[0:5:2])  # hlo
复制代码

  • 统计字符串中字符的个数
  1. s1 = 'hello jason!'
  2. print(len(s1))  # print(len('hello jason!'))  12  空格也算字符
复制代码

  • 移除字符串首尾指导的字符
  1. s1 = 'hello jason!'
  2. username = input('username>>>:')
  3. if username == 'jason':  # 'jason ' == 'jason'
  4.         print('登录成功')
  5. else:
  6.         print('你不是jason!')
复制代码
  1. # 字符串调用内置方法,不是改变原数据,而是产生了新的数据
  2. name = '  jason  '
  3. print(len(name))  # 9
  4. print(name.strip(), len(name.strip()))  # jason 5
  5. res = name.strip()
  6. print(name, len(name))  #   jason   9
  7. print(res, len(res))  # jason 5
  8. desc1 = '$$jason$$'
  9. print(desc1.strip('$'))  # jason
  10. print(desc1.lstrip('$'))  # jason$$          left
  11. print(desc1.rstrip('$'))  # $$jason          right
  12. username = input('username>>>:')
  13. username = username.strip()
  14. username = input('username>>>:').strip()  # 先获取用户输入 再立刻移除首尾空格 最后绑定给变量名username
  15. if username == 'jason':  # 'jason ' == 'jason'
  16.         print('登录成功')
  17. else:
  18.         print('你不是jason!')
复制代码

  • 按照指定的字符切割字符串

    • 当字符串中出现了连续的特征符号 应该考虑使用切割操作

  1. info = 'jason|123|read'
  2. res = info.split('|')  # 切割字符串之后结果是一个列表
  3. print(res, type(res))  # ['jason', '123', 'read'] <class 'list'>
  4. name, pwd, hobby = info.split('|')  # name, pwd, hobby = ['jason', '123', 'read']
  5. print(info.split('|', maxsplit=1))  # 从左往右 只切一次  ['jason', '123|read']
  6. print(info.rsplit('|', maxsplit=1))  # 从右往左 只切一次  ['jason|123', 'read']
复制代码

  • 字符串大小写相关
  1. s2 = 'HeLLo Big BAby 666 你过的还好吗'
  2. print(s2.lower())  # hello big baby 666 你过的还好吗
  3. print(s2.upper())  # HELLO BIG BABY 666 你过的还好吗
  4. print(s2.islower())  # 判断字符串中所有的字母是否是全小写  False
  5. print(s2.isupper())  # 判断字符串中所有的字母是否是全大写  False
  6. print('aaa'.islower())  # True
  7. print('AAA'.isupper())  # True
  8. code = 'JaSon666'
  9. print('这是网页给你返回的随机验证码:%s' % code)
  10. confirm_code = input('请输入验证码>>>:')
  11. code_upper = code.upper()  # 将网页返回的验证码转大写
  12. confirm_code_upper = confirm_code.upper()  # 将用户填写的验证码转大写
  13. if code_upper == confirm_code_upper:  # 统一转大写 或者小写 if confirm_code.upper() == code.upper():  # 统一转大写 或者小写 再做比对
  14.         print('验证码正确')
  15. else:
  16.         print('验证码错误')
复制代码

  • 字符串的格式化输出
  1. # 方式1: 等价于%s占位,没有什么优势
  2. res1 = 'my name is {} my age is {}'
  3. print(res1.format('jason', 18))
复制代码
  1. # 方式2: 支持索引取值,并且支持重复使用
  2. res2 = 'my name is {0} my age is {1} {0} {1} {1} {1}'
  3. print(res2.format('jason', 18))
复制代码
  1. # 方式3: 支持关键字取值(按k取值),并且支持重复使用
  2. res3 = '{name} {name} {age} my name is {name} my age is {age}'
  3. print(res3.format(name='jason', age=18))
复制代码
  1. # 方式4:推荐使用(******)
  2. name = 'jason'
  3. age = 18
  4. print(f'my name is {name} my age is {age} {name} {age}')
复制代码

  • 统计字符串中指定字符出现的次数
  1. res = 'sdashdjasdwjjkashdjasdjqwhasjdjahdjwqhdjkasdhwsdaadadadaprint(res.count('j'))
  2. print(res.count('ad'))
复制代码

  • 判断字符串的开头或者结尾
  1. res = 'jason say ha ha ha heiheihei'
  2. print(res.startswith('jason'))
  3. print(res.startswith('j'))
  4. print(res.startswith('b'))
  5. print(res.endswith('heiheihei'))
  6. print(res.endswith('hei'))
  7. print(res.endswith('h'))
复制代码

  • 字符串的替换
  1. res = 'jason jason jason SB SB SB'
  2. print(res.replace('jason', 'tony'))  # 从左往右全部替换
  3. print(res.replace('jason', 'tony', 1))  # 从左往右替换指定个数
复制代码

  • 字符串的拼接

    • 字符串支持加号拼接
    • 字符串支持乘号重复
    • join方法拼接
    • 列表中的数据都必须是字符串类型

  1. res1 = 'hello'
  2. res2 = 'world'
  3. print(res1 + res2)  # 字符串支持加号拼接
  4. print(res1 * 10)  # 字符串支持乘号重复
  5. print(''.join(['hello', 'world', 'hahaha']))  # join方法拼接
  6. print('|'.join(['hello', 'world', 'hahaha']))  # join方法拼接
  7. print('$'.join(['jason', 'say', 666]))  # 列表中的数据都必须是字符串类型  报错!!!
复制代码

  • 判断字符串中是否是纯数字
  1. print('123'.isdigit())  # True
  2. print('123a'.isdigit())  # False
  3. print(''.isdigit())  # False
复制代码

  • 查找某个字符对应的索引值
  1. res = 'hello world jason'
  2. print(res.index('d'))  # 10
  3. print(res.find('d'))  # 10
  4. # index查找索引,如果没有则报错'''
  5. print(res.index('d',0,5))
  6. # find查找索引,如果没有则返回-1'''
  7. print(res.find('d',0,5))  # -1
复制代码

  • 正文相关操作
  1. res = 'my name is jason'
  2. print(res.title())  # My Name Is Jason
  3. print(res.capitalize())  # My name is jason
复制代码
4.列表相关方法

4.1.列表


  • 概念:存储多个数据,能方便获取整体或者局部
  • 关键字:list
4.2.类型转换


  • 能够被for循环的数据类型都可以转换成列表
  1. print(type(list(123)))
  2. print(type(list(123.22)))
  3. print(type(list('123243jasdsad')), list('123243jasdsad'))
  4. print(type(list({'name':"jason",'pwd':123})), list({'name':"jason",'pwd':123}))
复制代码
4.3.需掌握的方法


  • 索引取值
  1. l1 = ['jason', 'kevin', 'oscar', 'tony']
  2. print(l1[0])
  3. print(l1[-1])
复制代码

  • 切片操作
  1. l1 = ['jason', 'kevin', 'oscar', 'tony']
  2. print(l1[0:3])
  3. print(l1[:])
  4. print(l1[-4:-1])
复制代码

  • 间隔/方向
  1. l1 = ['jason', 'kevin', 'oscar', 'tony']
  2. print(l1[::2])
复制代码

  • 统计列表中数据值的个数
  1. l1 = ['jason', 'kevin', 'oscar', 'tony']
  2. print(len(l1))  # 4
复制代码
作业

1.基于字符串充当数据库完成用户登录(基础练习)
data_source = 'jason|123'  # 一个用户数据
获取用户用户名和密码 将上述数据拆分校验用户信息是否正确
2.基于列表充当数据库完成用户登录(拔高练习)  # 多个用户数据
data_source = ['jason|123', 'kevin|321','oscar|222']

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表