标签:info 25 06 my 数据类型 字符串 str print type
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('用户名输入错误,登录失败')
标签:info,25,06,my,数据类型,字符串,str,print,type 来源: https://www.cnblogs.com/dy12138/p/16412503.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。