数据类型的内置方法(1)

本文详细介绍了Python中的数据类型及其内置方法,包括整型的进制转换、浮点型的转换、布尔值的转换以及字符串的各种操作,如计数、切割、拼接、大小写转换等。同时,讲解了列表的取值和转换,以及相关方法的使用。通过实例演示了如何进行数据类型的转换和操作。
摘要由CSDN通过智能技术生成

数据类型的内置方法

  • 整型(int)

    • 整型也就是整数,没有内置方法,主要用于计算
    • 整型的类型转换
      # int(需要转换的数据值)
      print(int('123'), type(int('123')))  #  123 <class 'int'> ,纯数字的字符串可以转换
      print(int('123'))  # 报错,包含数字以外的字符串不能转换
      print(int('123.4'))  # 报错,包含小数点的字符串也不行
      print(int(123.8))  # 123, 浮点数可以转换成整数
      
    • 进制的转换
      进制数标识
      二进制0b
      八进制0o
      十六进制0x
      # 我们一般常用的有二进制,八进制,十进制,十六进制
      """进制转换"""
      print(bin(0x32))  # 0b110010,bin() 将其他进制数转换成二进制
      print(oct(0b110010)  # 0o62, oct() 将其他进制数转换成八进制
      print(int(0o62))  # 50,int()将其他进制数转换成十进制
      print(hex(50))  # 0x32,hex()将其他进制数转换成十六进制
      # int除了能自动转换,还能够手动指定进制数
      print(int('0b110010', 2))  #50
      print(int('0o62', 8))  # 50
      print(int('0x32', 16))  # 50
      
  • 浮点型(float)

    • 浮点型和整型一样,也没有内置方法
    • 浮点型的类型转换
      print(float(123))  # 123.0,强制转换整型会在最后加上.0
      	print(float('123'))  # 123.0,同样能转换纯数字的字符串
      	print(float('123a'))  # 报错
      	print(float('123.4'))  # 123.4,能识别一个小数点
      	print(float('123.4.5'))  # 报错
      
  • 布尔值(fool)

    • 布尔值的类型转换
      	print(int(True))  # 1
      	print(float(True))  # 1.0
      	print(str(True), type(str(True)))  # True <class 'str'>
      	print(int(False))  # 0
      	print(float(False))  # 0.0
      	print(str(False), type(str(False)))  # False <class 'str'>
      	print(list(True))  # 报错
      
  • 字符串的相关方法(str)

    作用关键字用法
    计算字符串中字符个数lenlen(string)
    移除字符串首尾的字符stripstring.strip(移除的字符,默认空格)
    移除字符串首部字符lstripstring.lstrip()
    移除字符串末尾字符rstripstring.rstrip()
    按照指定字符切割字符串splitstring.split(指定字符)
    使用指定字符拼接列表中字符串join指定字符.join[list]
    将字符串内字母大写upperstring.upper()
    将字符串内字母小写lowerstring.lower()
    将字符串内每个单词首字母大写titlestring.title()
    将字符串内第一个字母大写capitalizestring.capitalize()
    格式化输出formatstring.format(替换字符)
    统计指定字符出现次数countstring.count(指定字符)
    判断字符的开头starswithstring.starswith(指定字符)
    判断字符的末尾endswithstring.endswith(指定字符)
    替换指定字符replacestring.replace(原字符,替换字符)
    判断字符串中是否是纯数字isdigitstring.isdigit()
    查找指定字符的索引indexstring.index(指定字符)
    查找指定字符的索引findstring.find(指定字符)
    • 字符串的类型转换
      print(str(123), type(str(123)))  # 123 <class 'str'>
      print(str(123.45), type(str(123.45)))  # 123.45 <class 'str'>
      print(str([1, 2, 3]), type(str([1, 2, 3])))  # [1, 2, 3] <class 'str'>
      print(str({'name': 'xiaoming'}), type(str({'name': 'xiaoming'})))  # {'name': 'xiaoming'} <class 'str'>
      # 字符串能转换所有数据类型
      
    • 字符串取值
      """索引取值:单字符"""
      s1 = 'hello word'
      print(s1[0])  # h
      print(s1[-1])  # d,可以使用负数
      
      """ 切片取值:多字符"""
      s2 = 'hello word'
      print(s2[0:3])  # hel,第一个参数对应开始位置,第二个参数对应结束位置,第三个参数默认为1,遵循左闭右开原则
      print(s2[3:0:-1])  # lle,第三个参数可以控制取值方向
      print(s2[0:5:2])  # hlo,第三个参数也可以控制间隔
      print(s2[:])  # hello word,如果不填代表选择所有
      print(s2[-4:])  # word,也可以支持负数取值
      
    • 常用方法
      """计算字符串中字符个数"""
      print(len(s2))  # 10,空格也算字符
      
      """移除字符串首部字符"""
      s3 = '   hello word   '
      print(s3.strip())  # hello word,默认移除空格,在中间的不受影响
      s4 = '$$hello word$$'
      print(s4.lstrip('$'))  # hello word$$,只移除左边的指定字符
      print(s4.rstrip('$'))  # $$hello word,只移除右边的指定字符
      
      """按照指定字符切割字符串"""
      s5 = 'hello$xiaoming$hello$word'
      print(s5.split('$'))  # ['hello', 'xiaoming', 'hello', 'word'],返回一个列表
      print(s5.split('$', maxsplit=2))  # ['hello', 'xiaoming', 'hello$word'],使用maxsplit参数设置切割几次
      
      """拼接字符串"""
      string1 = 'hello'
      string2 = 'word'
      print(string1 + string2)  # helloword,可以使用加号拼接字符串
      print(''.join(['hello', 'word']))  # helloword
      print(''.join(['hello', 'word', 123]))  # 报错,拼接的只能是字符串
      
      """字符串的大小写相关"""
      s6 = 'HeLLo Big BAby 666 你过的还好吗'
      print(s6.upper())  # HELLO BIG BABY 666 你过的还好吗
      print(s6.lower())  # hello big baby 666 你过的还好吗
      print(s6.isupper())  # False,判断字符串内字母是否全大写
      print(s6.islower())  # False,判断字符串内字母是否全小写
      print(s6.title())  # Hello Big Baby 666 你过的还好吗
      print(s6.capitalize())  # Hello big baby 666 你过的还好吗
      
      """格式化输出"""
      # 用法一
      string = 'my name is {} my age is {}'
      print(string.format('duke', 19))  # 和%s类似
      # 用法二
      string = 'my name is {1} my age is {0}'
      print(string.format(19, 'duke'))  # 使用下标取值,可以重复使用
      # 用法三
      string = 'my name is {name} my age is {age}'
      print(string.format(age=19, name='duke'))  # 使用关键字取值,可以重复使用
      # 用法四
      name = 'duke'
      age = 19
      string = f'my name is {name} my age is {age}'  # 使用方便,推荐使用
      
      """统计指定字符出现次数"""
      num = '49495449851523335765'
      print(num.count('4'))  # 4
      print(num.count('49'))  # 3
      
      
      """判断字符串的开头或末尾"""
      string = 'hello word'
      print(string.startswith('h'))  # 判断字符串是不是以h开头
      print(string.startswith('hell'))  # 也可以判断多个字符
      print(string.endswith('d'))  # 判断字符串是不是以d结尾
      print(string.endswith('word'))
      
      """替换指定字符"""
      num = '123444445'
      print(num.replace('4', '6'))  # 123666665
      print(num.replace('4', '6', 3))  # 123666445限制替换次数
      
      
      """判断字符串中是否是纯数字"""
      print('123'.isdigit())  # True
      print('234a'.isdigit())  # False
      print(''.isdigit())  # False,空字符串也不行
      
      
      """查找索引值"""
      string = 'hello word'
      print(string.index('o'))  # 4
      print(string.find('o'))  # 4
      print(string.index('x'))  # 查找不到则报错
      print(string.find('x'))  # -1,查找不到返回-1
      
  • 列表的相关方法(list)

    • 列表的类型转换
      print(list(123))
      print(list(123.45))  # 这两个会报错,只有能被for循环的数据类型才能被转换成列表
      print(list('abcdefg'))  # ['a', 'b', 'c', 'd', 'e', 'f', 'g']
      print(list({'name': 'xiaoming', 'age': 18}))  # ['name', 'age']
      
    • 列表的取值
      和字符串的取值类似
      l1 = ['xiaoming', 'xiaohong', 'xiaowang']
      """索引取值"""
      print(l1[0])  # xiaoming
      print(l1[-1])  # xiaowang
      
      
      """切片取值"""
      print(l1[0:2])  # ['xiaoming', 'xiaohong']
      print(l1[-3:-1])  # ['xiaoming', 'xiaohong']
      print(l1[::2])  # ['xiaoming', 'xiaowang']
      
      
      """统计列表内数据值个数"""
      print(len(l1))  # 3
      

练习

# 1. 
data_source = 'jason|123'
for i in range(3):
    user_name = input('用户名:')
    password = input('密码:')
    if user_name.strip() == data_source.split('|')[0] and password.strip() == data_source.split('|')[1]:
        print('登录成功')
        break
    else:
        print('登录失败')


# 2.
data_source2 = ['jason|123', 'kevin|321', 'oscar|222']
user_name2 = input('用户名:').strip()
for i in data_source2:
    if user_name2 == i.split('|')[0]:
        password2 = input('密码:').strip()
        if password2 == i.split('|')[1]:
            print('登录成功')
            break
else:
    print('登录失败,用户名或密码错误')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值