Python教程

【2022-06-25】Python数据类型的内置方法

本文主要是介绍【2022-06-25】Python数据类型的内置方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Python数据类型的内置方法

简介

数据类型内置,顾名思义,就是指内部设置的数据类型,是Python语言内部自定义的一些数据类型,它包括了整型、浮点型、列表、字典、字符串、元组、集合的内置方法

数据类型之整型内置方法int

  • 整型的概念,在我们之前讲数据类型的时候已经说过了,其实就是整数,并且整型的关键字是int

  • 而在python中整型int是没有内置方法的,它是用于数值计算的,它可以进行数据的类型转换和进制转换

    数据类型转换
    
    我们之前转换数据类型的方式是:将输入的数据类型通过变量名的方式进行赋值,然后通过int进行数据转换,如下:
    
    name = input()
    name =int(name)
    
    int可以将由纯数字组成的字符串直接转换成整型,若是包含其它非整数的符号,则会报错
    
    # print(type(int('666')))              # <class 'int'>  字符串内部是纯数字可以进行数据类型转换
    # print(type(int('666@1')))                # 存在特殊符号,无法进行数据类型转换,必须是纯数字
    # print(type(int('66.66')))               # 存在小数点,无法进行数据类型转换
    
    进制转换
    
    """
    二进制、八进制、十进制、十六进制之间的转换
    """
    # print(bin(1000))      # bin() 将十进制转换为二进制         0b是二进制的标识     0b1111101000
    # print(oct(1000))      # oct() 将十进制转换为八进制         0o是八进制的标识     0o1750
    # print(hex(1000))      # hex() 将十进制转换为十六进制        0x是十六进制的标识    0x3e8
    
    """
    其他进制转十进制
    """
    
    # print(int(0b1111101000))      # 1000      自动转换进制数
    # print(int(0o1750))            # 1000      自动转换进制数
    # print(int(0x3e8))             # 1000      自动转换进制数
    
    

数据类型之浮点型内置方法float

浮点型关键字float

数据类型转换:

# 数据类型转换之浮点型内置方法

# print(float(12138))               # 12138.0
# print(type(float('12138')))       # <class 'float'>
# print(type(float('dy12138')))     # 无法进行数值转换,存在字母
# print(type(float(12138.66)))        # <class 'float'> 浮点型在转换时只能识别一个小数点
# print(type(float('12138.66.77.88.99.1')))      # 无法转换,直接报错

# 针对布尔值的特殊情况,包含int与float的转换
    print(float(True))    # 1.0
    print(float(False))   # 0.0
    
    print(int(True))      # 1
    print(int(False))     # 0

数据类型之字符串内置方法str

字符串关键字str

数据类型转换:可以转换所有的数据值

print(str(777))                                 # 777
print(str(7.7))                                 # 7.7
print(str([9, 9, 9, ]))                         # [9, 9, 9]
print(str({'username': '张三'}))                 # {'username': '张三'}
print(str(True))                                # True
print(str((6, 6, 6)))                           # (6, 6, 6)
print(str({8, 8, 8, 8}))                        # {8}


print(type(str(777)))                           # <class 'str'>
print(type(str(7.7)))                           # <class 'str'>
print(type(str([9, 9, 9, ])))                   # <class 'str'>
print(type(str({'username': '张三'})))           # <class 'str'>
print(type(str(True)))                          # <class 'str'>
print(type(str((6, 6, 6))))                     # <class 'str'>
print(type(str({8, 8, 8, 8})))                  # <class 'str'>

字符串的内置方法

# 数据类型之字符串内置方法
#
# print(str(777))                                 # 777
# print(str(7.7))                                 # 7.7
# print(str([9, 9, 9, ]))                         # [9, 9, 9]
# print(str({'username': '张三'}))                 # {'username': '张三'}
# print(str(True))                                # True
# print(str((6, 6, 6)))                           # (6, 6, 6)
# print(str({8, 8, 8, 8}))                        # {8}
#
#
# print(type(str(777)))                           # <class 'str'>
# print(type(str(7.7)))                           # <class 'str'>
# print(type(str([9, 9, 9, ])))                   # <class 'str'>
# print(type(str({'username': '张三'})))           # <class 'str'>
# print(type(str(True)))                          # <class 'str'>
# print(type(str((6, 6, 6))))                     # <class 'str'>
# print(type(str({8, 8, 8, 8})))                  # <class 'str'>
#
#


# 1.索引取值:单个字符
# s1 = 'my best friends'
# print(s1[1])                  # y

# 2.切片取值:多个字符              # 索引切片的位置默认是从左往右的,如果是负数取值,可以通过参数:来控制
# print(s1[0:4])                # my b 从索引0的位置开始取值,到索引4结束,顾头不顾尾

# 3.支持负数取值
# print(s1[-1])                 # s  -1就是最后一位
# print(s1[-1:-3:-1])           # sd 可以通过第三个参数的+-1来控制方向
# print(s1[-4:-1])              # end

# 4.间隔取值
# print(s1[:])                    # my best friends 取值所有
# print(s1[::2])                  # m etfins 针对整个字符串,隔一个取一个
# print(s1[0:5:1])                  # my be 默认1可以不写
# print(s1[0:5:2])                  # m e

# 5.统计字符串中字符的个数
# print(len(s1))                  # 15 字符串里,空格也算字符

# 6.移除字符串首尾指定的字符
# username = input('username>>>:')
# if username == '张三':
#     print('登录成功')
# else:
#     print('登录失败')

# username = ' lisa '
# print(len(username))  # 6
# print(username.strip(), len(username.strip()))  # lisa 4  strip默认移除字符串首尾的空格
# cd = username.strip()
# print(username, len(username))  # lisa  6  字符串在调用内置方法时,不是改变源数据,而是产生了新的数据
# print(cd, len(cd))              # lisa 4   可以添加一个变量名并进行赋值
# desc1 = '##zhangsan##'
# print(desc1.strip('#'))           # 移除字符串首尾出现的#号
# print(desc1.lstrip('#'))          # 移除字符串左边出现的#号
# print(desc1.rstrip('#'))          # 移除字符串右边出现的#号
# 用户登录优化
# username = input('username>>>:').strip()  # 先获取用户输入,然后立刻移除首尾的空格,最后绑定给变量名username
# if username == 'zs':
#     print('a')
# else:
#     print('b')

# 7.按照指定的字符切割字符串
# info = 'my|hobby|running'
# 当字符串中出现了连续的特征符号|,应该考虑切割
# a = info.split('|')
# print(a, type(a))                # ['my', 'hobby', 'running'] <class 'list'>  split按照指定的字符切割字符串后,结果是一个列表
# aa, bb, cc, = info.split('|')      # 1、针对字符串,按照|切割产生一个列表,2、添加3个变量解压赋值依次获取列表里的数据值
# print(info.split('|', maxsplit=1))   # ['my', 'hobby|running']    从左往右,切割一次
# print(info.rsplit('|', maxsplit=1))  # ['my|hobby', 'running']    从右往左,切割一次

# 8.字符串大小写
# s2 = 'My Name Is Jack 777 Are You Ok'
# print(s2.lower())   # my name is jack 777 are you ok  字母全部转换成小写
# print(s2.upper())   # MY NAME IS JACK 777 ARE YOU OK  字母全部转换成大写
# print(s2.islower())   # False  判断字符串中所有的字母是否全是小写
# print(s2.isupper())   # False  判断字符串中所有的字母是否全是小写
# print('aaa'.islower())  # True
# print('AAA'.isupper())  # True
# code = 'T9UE33R'
# print('这是网页返回的随机验证码:%s' % code)
# xxx_code = input('请输入验证码>>>:')
# if xxx_code.upper() == code.upper():       # 统一转为大写或者小写,再做比对
#     print('ok')
# else:
#     print('no')

# 9.字符串的格式化输出
# 方式一:等价于%s占位,没有什么优势
# info = 'my name is {} my age is {}'
# print(info.format('le', 32))         # my name is le my age is 32
# 方式二:支持索引取值,并且支持重复使用
# info = 'my name is {0} my age is {1}'
# print(info.format('le', 32))           # my name is le my age is 32  同一份数据可以支持多次使用
# 方式三:支持关键字取值,可以看成是按K取值,也支持重复使用
# info = 'my name is {name} my age is {age}'
# print(info.format(name='le', age=23))    # my name is le my age is 23
# 方式四:推荐使用,更加方便,可以重复使用,格式化输出就用这个
# name = 'lla'
# age = 17
# print(f'my name is {name} my age is {age}')          # my name is lla my age is 17

# 10.统计字符串中指定字符出现的次数
# info = 'eeeddfsffgaggafadsfhiaf'
# print(info.count('g'))            # 3 功能类似于for循环 可以是多个字符

# 11.判断字符串的开头或者结尾
# info = 'baby is best'
# print(info.startswith('b'))         # True 判断字符串是不是字母b开头的
# print(info.endswith('t'))           # True 判断字符串是不是字母t结束的

# 12.字符串的替换
# info = 'hua hua wei NB'
# print(info.replace('hua', 'xun'))        # xun xun wei NB  从左往右依次全部把hua替换为wei
# print(info.replace('hua', 'xun', 1))     # xun xun wei NB  从左往右指定个数把hua替换为wei

# 13.字符串的拼接
# info1 = 'hua'
# info2 = 'wei'
# print(info1+info2)          # huawei  字符串支持+号进行拼接  适用于字符串量小
# print(info1 * 5)            # huahuahuahuahua 也支持乘号拼接
# print(''.join(['hua', 'wei', '666']))     # huawei666  字符串join方法拼接  适用于字符串量大
# print('|'.join(['hua', 'wei', '666']))    # hua|wei|666
# print(''.join(['hua', 'wei', 666]))         # 列表中的数据必须全是字符串类型,否则会报错

# 14.判断字符串中是否是纯数字
# print('123'.isdigit())        # True
# print('123a'.isdigit())       # False
# print(''.isdigit())           # False
# age = input('age>>>:')
# # 先判断是不是纯数字
# if age.isdigit():
#     age = int(age)
#     print('ok')
# else:
#     print('你是不是傻')

# 15.查找某个字符对应的索引值
# info = 'hua wei NB'
# print(info.index('i'))           # 6
# print(info.find('i'))            # 6
# index查找索引,如果没有则直接报错
# print(info.index('i', 0, 5))
# find查询索引,如果没有则会返回-1
# print(info.find('i', 0, 5))        # -1

# 16.正文相关操作
# info = 'my name is hony'
# print(info.title())                # My Name Is Hony  将所有的英文首字母大写
# print(info.capitalize())           # My name is hony  将第一个英文的首字母大写

数据类型之列表内置方法list

列表数据类型转换:

# 数据类型转换:

# print(type([list(999)]))   # 数字无法转换为列表
# print(type(list(999.9)))   # 小数无法转换为列表
# print(type(list('666kong')), list('666kong'))  # <class 'list'> ['6', '6', '6', 'k', 'o', 'n', 'g']  列表
# print(type(list({'name': 'huawei', 'pwd': 666})), list({'name': 'huawei', 'pwd': 666}))   # <class 'list'> ['name', 'pwd']  字典
# 能够被for循环的数据类型都可以转换成列表

# 需要掌握的方法
# l1 = ['huawei', 'alibb', 'ten', 'hengda']
# 1.索引取值
# print(l1[0])                     # huawei  取第一个值
# print(l1[-1])                    # hengda  取最后一个值
# 2.切片操作
# print(l1[0:3])                     # ['huawei', 'alibb', 'ten']  取前3个值
# print(l1[:])                       # ['huawei', 'alibb', 'ten', 'hengda']  取所有的值
# 3.间隔/方向
# print(l1[::2])                     # ['huawei', 'ten'] 隔一个取一个
# 4.统计列表中数据值的个数
# print(len(l1))                     # 4

课题演练

# 1.基于字符串充当数据库完成用户登录(基础练习)
# 	data_source = 'jason|123'  # 一个用户数据
#   	获取用户用户名和密码 将上述数据拆分校验用户信息是否正确

"""
主体功能是用户登录功能  先获取用户名和密码  然后在进行数据比对
"""

# 1.先定义一个类似于数据库的数据
data_source = 'huawei|666'
# 2.获取用户输入的用户名和密码
username = input('username>>>:').strip()    # 获取用户名,并移除输入内容首尾的空格
password = input('password>>>:').strip()    # 获取密码,并移除输入内容首尾的空格
# 3.切割数据库的数据得到正确的用户名和密码,然后再进行比对
correct_name, correct_password = data_source.split('|')
# 按照字符串内置方法split'|'切割字符串,切割完成后得到一个列表,获取到的是['huawei','666'],使用解压赋值依次把列表里的数据赋值给变量名correct_name, correct_password
# 4 比对用户名和密码
if username == correct_name:                    # 如果输入的用户名和密码与数据库里的一致,那么打印登录成功
    if password == correct_password:
        print('登录成功')
    else:
        print('密码输入错误,登录失败')             # 如果比对不一致,则无法登录,并通过if嵌套告知用户,具体是用户名错误还是密码错误
else:
    print('用户名输入错误,登录失败')
    
  	






这篇关于【2022-06-25】Python数据类型的内置方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!