数据类型的内置方法
数据类型的内置方法数据类型的内置方法简介
数据类型的内置方法相当于数据类型所拥有的独特的功能,可能这些功能相似也可能不相似,好比个人的特长是可能不一样的。
数据类型内置方法基本方式:
数据类型.(点)方法名()数据类型的内置方法
整型(int)
1.整型就是,整数,数字一般是用于算术运算,整型没有内置方法。
2.类型转换:int(要转换的变量名或数据)
3.int可进行类型转换,当输入字符串时只能是纯数字且为整数才可以转换
# 类型转换
print(type(int('222')))# <class 'int'>
print(type(int('-222')))# <class 'int'>
print(type(int('22.2')))# 报错
print(type(int('222w')))# 报错
4.进制转换
可以将整型的数值进行进制转换,整型中的整数本身就是十进制,可转换为二进制、八进制、十六进制。
bin() 将十进制(整数)转二进制
oct() 将十进制(整数)转八进制
hex() 将十进制(整数)转十六进制
# 进制转换
print(bin(213))# 0b11010101 0b开头的为二进制
print(oct(213))# 0o325 0o开头的为八进制
print(hex(213))# 0xd5 0x开头的为十六进制
# 默认十进制前没有任何标志
# python可自动识别进制数
print(int(0b11010101))# 213
print(int(0o325)) # 213
print(int(0xd5)) # 213
# 可指定进制数转化
print(int('0b11010101', 2)) # 213
print(int('0o325', 8)) # 213
print(int('0xd5', 16)) # 213
5.针对布尔值
可将布尔值转换为对应的数值
print(int(True)) # 1
print(int(False)) # 0浮点型(float)
1.类型转换
输入的字符型为整数可转换为为浮点型,后面加了.0;只能转换含有一个小数点的数值。
print(float('222')) # 222.0
print(float('-222')) # -222.0
print(float('22.2')) # 22.2
print(float('222w')) # 报错
print(float('222.222.222')) # 报错
2.针对布尔值
可将布尔值转换为对应的数值后面加.0
print(float(True)) # 1.0
print(float(False)) # 0.0
3.补充说明
python对数字的敏感度不高,有些数值进行计算时会出错。
print(23.0 * 3.2) # 73.60000000000001字符型(str)
1.索引取值
[]中只有一个数值只能从左到右取单个字符,且空格也算一个字符,若带有符号则代表反向索取即从右往左
s1 = 'hello word'
print(s1) # l
print(s1[-3]) # o
2.切片取值
[:]中有两个数值且用:隔开,左边数字代表第一个索引的字符,右边的数值代表最后一个索引的字符,若两个数值都为负数代表反向取值,但是还是从左往右切,且负数小的在左负数大的在右。
s1 = 'hello word'
print(s1) # llo
print(s1[-2:-6]) # 无
print(s1[-6:-2]) # o wo
[::]中三个数值且用:隔开,左边数字代表第一个索引的字符,中间的数值代表最后一个索引的字符,右边的数值代表可差/隔几个取值,从左向右取值。
s1 = 'hello word'
print(s1) # el od
'''[::],若想反向取值必须要三个数值都为负数,且从右往左取值'''
s1 = 'hello word'
print(s1) # 无
print(s1[-1:-3:1]) # 无
print(s1[-1:-3:-1]) # dr
3.间隔方向
[:]代表取字符串内所有的值
[::]左边数字代表第一个索引的字符,中间的数值代表最后一个索引的字符,最右边的数值代表间隔数也叫差数,若要反向取值时,都要为负数,且负数大的在左负数小的在右。
s1 = 'hello word'
print(s1[:]) # hello word
print(s1[::3]) # hlwd
print(s1) # ello wo
print(s1) # el o
print(s1) # 无
print(s1[-1:-8:-1]) # drow ol
print(s1[-8:-1:-1]) # 无
4.统计字符串中的个数
len(要统计的变量名或字符串)
字符串(引号)内的空格、标点符号、特殊符号都算一个字符
s1 = 'In the future, you will thank you for your efforts'
print(len(s1))# 50
5.移除字符串首尾字符的个数
字符串或变量名.strip(要移除的字符) # 移除首尾的字符
字符串或变量名.lstrip(要移除的字符) # 移除左边的字符
字符串或变量名.rstrip(要移除的字符) # 移除右边的字符
'''注意的是只能移除首尾,中间不可移除'''
s1 = ' hello word '
print(s1, len(s1)) # hello word 16
print(s1.strip(), len(s1.strip()))# hello word 10
s2 = '$$$hahahha$wowowo$$$'
print(s2.lstrip('$')) # hahahha$wowowo$$$
print(s2.rstrip('$')) # $$$hahahha$wowowo
'''字符串调用内置方法,不是改变原数据值,而是产生了新的数据值'''
s2 = '$$$hahahha$wowowo$$$'
s2.strip('$')
print(s2) # $$$hahahha$wowowo$$$
print(s2.strip('$')) # hahahha$wowowo
应用eg:
# username = input('username>>>:')
# username = username.strip()# 等同于 username = input('username>>>:').strip()先获取用户输入,然后移除首尾空格,再赋值给变量名
# if username == 'orange':# 'orange' == 'orange'
# print('登录成功')
# else:
# print('登录失败')
6.按照指定的字符切割字符串
按照指定的字符将字符串切割成几个字符串,以列表的方式输出
字符串或变量名.split(要切割的字符) # 要切割所有的字符
字符串或变量名.split(要切割的字符, maxsplit=整数) # 要切割从左到右的第几个的字符
字符串或变量名.rsplit(要切割的字符, maxsplit=整数) # 要切割从右到左的第几个的字符
'''切割字符串后打印输出的就列表'''
s1 = '今天下雨了*我不喜欢下雨*但是我又讨厌热'
print(s1.split('*')) # ['今天下雨了', '我不喜欢下雨', '但是我又讨厌热']
print(type(s1.split('*'))) # <class 'list'>
info1, info2, info3 = s1.split('*') # info1, info2, info3 = ['今天下雨了', '我不喜欢下雨', '但是我又讨厌热']
print(info1, info2, info3) # 今天下雨了 我不喜欢下雨 但是我又讨厌热
print(s1.split('*', maxsplit=1)) # ['今天下雨了', '我不喜欢下雨*但是我又讨厌热']
print(s1.rsplit('*', maxsplit=1)) # ['今天下雨了*我不喜欢下雨', '但是我又讨厌热']
7.字符串大小写
可以判断字符串中的字母是否大小写,只能对字母有效果,应用字母验证码
字符串或变量名.lower() # 将字母都转换成小写
字符串或变量名.upper() # 将字母都转换成大写
字符串或变量名.islowwer() # 判断字母是否小写
字符串或变量名.upper() # 判断字母是否大写
s1 = 'HELLO WORD 8888'
s2 = 'hello word 8888'
s3 = 'Hello word 8888'
print(s1.lower()) # hello word 8888
print(s2.upper()) # HELLO WORD 8888
print(s3.lower()) # hello word 8888
print(s3.upper()) # HELLO WORD 8888
print(s1.isupper()) # True
print(s1.islower()) # False
print(s2.isupper()) # False
print(s2.islower()) # True
print(s3.islower()) # False
print(s3.isupper()) # False
应用eg:
# code = 'XwQc198'
# print('随机验证码:%s' % code)
# confirm_code = input('请输入验证码:')
# code_upper = code.upper()# 将验证码转大写
# confirm_code_upper = confirm_code.upper()# 将输入的验证码转大写
# if code_upper == confirm_code_upper:# 统一转换大写或者小写。再判断是否相同
# if confirm_code.upper() == code.upper():# 统一转换大写或者小写,再判断
# print('验证码正确')
# else:
# print('验证码错误')
8.格式化输出
format()
方式1:等价于%s占位,利用{}
s1 = 'my name is {}, my age is {}'
print(s1.format('orange', 22)) # my name is orange, my age is 22
方式2:支持索引取值,并可重复使用,利用{索引值}
s2 = '{0} {1} my name is {0}, my age is {1} {0} {1}'
print(s2.format('orange', 22)) # orange 22 my name is orange, my age is 22 orange 22
方式3:支持关键字取值,相当于按K取值,并且支持重复使用,利用{变量名},用赋值的方式给值
s3 = '{name} {age} my name is {name}, my age is {age} {name} {age}'
print(s3.format(name='orange', age=22)) # orange 22 my name is orange, my age is 22 orange 22
方式4:先定义好变量然后用{变量名}占位(必记,重点!!!)
字符串的外面要加上'f',首先要定义好变量,利用{变量名}
name = 'orange'
age = 18
print(f'{name} {age} my name is {name}, my age is {age} {name} {age}')# orange 22 my name is orange, my age is 22 orange 22
9.统计字符串中指定字符出现的次数
count()
字符串或变量名.count(指定的字符)
相当于利用循环查询指定字符的次数
s1 = 'I want to See Sea'
print(s1.count('e'))# 3
10.判断字符串的开头或者结尾
字符串或变量名.startswith(指定的字符) # 判断指定字符是否在开头
字符串或变量名.endswith(指定的字符) # 判断指定字符是否在结尾
s1 = 'I want to See Sea'
print(s1.startswith('I')) # True
print(s1.startswith('a')) # False
print(s1.endswith('I')) # False
print(s1.endswith('a')) # True
11.字符串的替换
字符串或变量名.replace(原来的字符(老字符),指定的字符(新字符),数值) # 将指定的字符替换成原来的字符,数值代表替换的个数
从左向右替换,没有从右向左替换
s1 = 'I want to see sea sea sea'
print(s1.replace('sea', '大海', 2)) # I want to see 大海 大海 sea
12.字符串的拼接
拼接的字符.join(要被拼接的字符)
可使用某些符号:+、*、|、$、@...用列表将要拼接的内容放入列表中,但是列表中的数据必须是字符串
使用加号在拼接字符串的量不大时使用,否则会消耗内存,如果字符串量大推荐使用join
print('girl' + 'friend') # girlfriend
print('go' * 6) # gogogogogogo
print(''.join(['girl', 'friend', 'you'])) # girlfriendyou
print('@'.join(['girl', 'friend', 'you'])) # girl@friend@you
print('$'.join(['girl', 'friend', 'you'])) # girl$friend$you
print('$'.join(['girl', 'friend', 'you', 8888])) # 报错
13.判断字符串中是否是纯数字
字符串或变量名.isdigit()
print('123'.isdigit())# True
print('123a'.isdigit())# False
print(''.isdigit())# False
14.查找某个字符对应的索引值
index(查找字符,首索引,尾索引)
find(查找字符,首索引,尾索引)
index在进行索引查找时,从左向右找,如果没有查找到对应的索引值则会报错
find在进行索引查找时,从左向右找,如果没有查找到对应的索引值则会返回数值-1
s1 = 'I want to See'
print(s1.index('s')) # 10
print(s1.find('s')) # 10
print(s1.index('s', 0, 6)) # 报错从索引0找到索引6
print(s1.find('s', 0, 6)) # -1
15.正文相关操作
字符串或变量名.title()
将字符串的中单词的首字母大写,针对英文单词,对中文无效
s1 = 'i want to see'
print(s1.title()) # I Want To See
s2 = '我想要回家'
print(s2.title()) # 我想要回家 列表相关方法list()
1.类型转换
能够被for循环的数据类型都可以转换成列表,比如字典,元组,集合,字符串
print(list('222aaa'))
print(list({'name': 'orange', 'age': 22}))
这里我误以为整型可以循环,数和集合是两个概念,可以遍历集合但是不能遍历整数,因为整型是不可重复反馈的活动的对象,即不是可迭代对象。如整型和字符型。
2.索引取值
若索引为整数表示从左往右取,若索引为负数,代表反向取从右往左
s1 = ['name', 'age', 22, 33]
print(s1) # age
print(s1[-2]) # 22
3.切片操作
list[左:右],左边的数值代表第一个索引,右边的数值代表最后一个索引,可去这之间的数据值,若想反向取值可加符号,但是负数小的在左边负数大的在右边。
s1 = ['name', 'age', 22, 33]
print(s1) # ['age', 22]
print(s1[:]) # ['name', 'age', 22, 33]
print(s1[-1:-2]) # [] 取不到
print(s1[-2:-1]) #
4.间隔/方向
list[左:中:右],左边的数值代表第一个索引,中边的数值代表最后一个索引,右边的数值代表间隔几索取的值,若为负数则代表反向取值,且负数小的在左负数大的在右,但是从左向右取值。
s1 = ['name', 'age', 22, 33]
print(s1) # ['name', 22]
print(s1[-1:-3:1])# [] 无
print(s1[-3:-1:1]) # ['age', 22]
5.统计列表个数
统计列表个数是以统计列表中逗号隔开数据值的个数
s1 = ['name', 'age', 22, 33]
print(len(s1)) # 4作业
1.基于字符串充当数据库完成用户登录(基础练习)
data_source = 'jason|123'# 一个用户数据
获取用户用户名和密码 将上述数据拆分校验用户信息是否正确
# 1.先将字符串进行切割,切割除去‘|’并绑
# 2.字符串切割后是列表
# 3.可索引取列表中的值
# 4.判断索引取值后的数据与用户登录所输入的数据是否相等
data_source = 'jason|123'
info = data_source.split('|')# 切割除去'|'绑定给info
username = info# 解压赋值,我理解为索引取值
password = info
name = input('请输入你的用户名:')
pwd = input('请输入你的密码:')
if username == name and password == pwd: # 判断用户名是否正确
print('登录成功')
else:
print('登录失败')2.基于列表充当数据库完成用户登录(拔高练习)# 多个用户数据
data_source = ['jason|123', 'kevin|321','oscar|222']
# 1.先循环列表,循环获取列表中的值,则按照索引可别分出各个数据值
# 2.将循环取出的各个数据值进行切割,切割除去‘|’并绑定给info,info是列表
# 3.将切割后的小列表进行索引取值
# 4.将取出的值进行判断
data_source = ['jason|123', 'kevin|321', 'oscar|222']
name = input('请输入你的用户名:')
pwd = input('请输入你的密码:')
for i in data_source: # 循环获取列表中的值
info = i.split('|') # 切割小列表中的字符串
username = info # 解压赋值
password = info
if username == name and password == pwd:
print('登录成功')
break
else: # 注意,这句的位置,先循环并判断列表中的用户名是否存在,然后不存在输出登录失败
print('登录失败')
# 1.先循环列表,循环获取列表中的值,则按照索引可别分出各个数据值
# 2.将循环取出的各个数据值进行切割,切割除去‘|’并绑定给info,info是列表
# 3.将切割后的小列表循环进行索引取值
# 4.将取出的值进行判断
data_source = ['jason|123', 'kevin|321', 'oscar|222']
name = input('请输入你的用户名:')
pwd = input('请输入你的密码:')
for i in data_source: # 循环获取列表中的值
info = i.split('|')
for v in info: # 循环获取每个小列表中的值,其实不用循环,多余的一步
username = info
password = info
if username == name and password == pwd:
print('登录成功')
break
else: # 注意,这句的位置
print('登录失败')
这题作业我的问题首先多用了一个循环,无论是否写循环都不会影响最后的结果,写上多余,并且我一直把最后登录失败打印'登录失败'的语句位置放错,这个是我最大的问题,并且我是问了同学才知道'登录失败'应该放在哪里,对循环语句先后执行还是模糊。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]