3. 字符串
字符串,我们平时会用他来表示文本信息。例如:姓名、地址、自我介绍等。
3.1 定义
v1 = "包治百病"
v2 ='包治百病'
v3 ='"包"治百病'
v4 = "包'治百病'"
V5 = """
吵架都是我的错,
因为大家打不过。
"""
# 三个引号,可以支持多行/换行表示一个字符串,其他的都只能在一行中表示一个字符串。
I
3.2 独有功能
# 基本的格式: "xxxx".功能(...)
V1 = "xxx"
v2.功能(...)
1.判断字符串是否以XX开头?得到一个布尔值
v1 = "人生就是一场豪赌,就看你敢不敢赌"
result = v1.startswith("人生") # .startswith判断这个字符串是不是以...开头
print (result)
# 结果输出:True
v2 = input ("请输入您的地址:")
if v2.startswith("北京市") :
print ("北京人口")
else :
print ("非北京人口")
2.判断字符串是否以XX结尾?得到一个布尔值
v1 = 人生就是一场豪赌,就看你敢不敢赌"
result = v1.endswith("敢不敢") # .endswith判断这个字符串是不是以...结尾
print (result)
# 结果输出:False
v2 = input ("请输入您的地址:")
if v2.endswith("村") :
print ("农业户口")
else :
print ("非农业户口")
3.判断字符串是否为十进制?(是否为整数)得到一个布尔值
v1 = "122234756"
result = v1.isdecimal() # .isdecimal判断这个字符串是否为十进制,是否为整数
print (result)
# 结果输出:True
v2 = "122234756f"
result = v2.isdecimal() # .isdecimal判断这个字符串是否为十进制,是否为整数
print (result)
# 结果输出:False
v3 = input ("第一个数字,请输入数值:")
v4 = input ("第二个数字,请输入数值:")
if v3.isdecimal() and v4.isdecimal():
data = int(v3) + int(v4)
print (data)
else :
print ("请正确输入数字")
4.去除字符串两边的空格、换行符、制表符(Tab健),得到一个新的字符串
data = " lin z ai "
print (data) # 输出的结果前后和中间都有空格,结果为" lin z ai "
data1 = data.strip()
print(data1) #.strip表示将data两边的空格去掉,得到"lin z ai"
data2 = data.lstrip()
print(data2) #.lstrip表示将data左边的空格去掉,得到"lin z ai "
data3 = data.rstrip()
print(data3) #.rstrip表示将data右边的空格去掉,得到" lin z ai"
补充:括号内没有内容表示去除空格、换行符和制表符
# 案例
code = input("请输入四位验证码:")
code = code.strip()
if code == "FA9b" :
print ("验证码正确") # " FA9b "
else :
print ("验证码错误")
补充:括号内有内容表示去除字符串两边制定的内容
data = "前面是一条弯曲的河流前"
data1 = data.strip("前")
print(data1) #.strip()表示将data两边的指定内容去掉,得到"面是一条弯曲的河流"
data2 = data.lstrip("前面")
print(data2) #.lstrip()表示将data左边的指定内容去掉,得到"是一条弯曲的河流前"
data3 = data.rstrip("前")
print(data3) #.rstrip()表示将data右边的指定内容去掉,得到"前面是一条弯曲的河流"
5.字符串变大写,得到一个新的字符串
name = "my name is linzai"
data = name.upper() # .upper把字符串变成大写
print(data) # MY NAME IS LINZAI
print(name) # my name is linzai
# 案例
data = input("请输入四位验证码:")
data1 = data.upper()
data2 = data1.strip()
# data2 = data.upper().strip()
if data2 == "FB89" :
print("验证码正确")
else :
print("验证码错误")
6.字符串变小写,得到一个新的字符串
name = "MY NAME IS LINZAI"
data = name.lower() .lower把字符串变成小写
print(data) # my name is linzai
print(name) # MY NAME IS LINZAI
7.字符串内容的替换,得到一个新的字符串
data = "身体健康是第一位,要保护好自己的身体"
new_data = data.replace("身体", "心理")
print(data) # 身体健康是第一位,要保护好自己的身体
print(new_data) # 心理健康是第一位,要保护好自己的心理
# 案例1
video = "鸡毛飞上天.mp4"
name_video = video.replace(".mp4",".avi")
name_video1 = name_video.replace("鸡毛","梦想")
name_video2 = video.replace("鸡毛","梦想")
print(video) # 鸡毛飞上天.mp4
print(name_video1) #梦想飞上天.avi
print(name_video2) #梦想飞上天.mp4
# 案例2
content = "你是一个草包"
content = content.replace("草","**")
print (content) # 你是一个**包
8.字符串切割,得到一个新的列表
data = "linzai|正在花园里|欣赏|含蕾待放的玫瑰"
result = data.split("|") # 根据特定字符切开之后保存在列表中,方便以后的操作
result1 = data.split("|", 1) # 根据特定字符从左到右切几个
result2 = data.split("|", 2)
print(data) # linzai|正在花园里|欣赏|含蕾待放的玫瑰
print(result) # ['linzai', '正在花园里', '欣赏', '含蕾待放的玫瑰']
print(result1) # ['linzai', '正在花园里|欣赏|含蕾待放的玫瑰']
print(result2) # ['linzai', '正在花园里', '欣赏|含蕾待放的玫瑰']
# 案例 判断用户名密码是否正确
info = "linzai,root" # 备注:字符串中储存了用户名和密码
user_list = info.split(",") # 得到了一个包含两个元素的列表["linzai, root"]
# user_list[0] 列表的第一个元素
# user_list[1] 列表的第二个元素
user = input("请输入用户名:")
pwd = input("请输入密码:")
if user == user_list[0] and pwd == user_list[1] :
print("登录成功")
else:
print("用户名或密码错误,登录失败")
# 扩展
# .split默认从左往右切,.rsplit是从右往左切
data = "linzai|正在花园里|欣赏|含蕾待放的玫瑰"
result = data.split("|") # 默认从左往右
result1 = data.rsplit("|", 1) # 从右往左
print(result) # ['linzai', '正在花园里', '欣赏', '含蕾待放的玫瑰']
print(result1) # ['linzai|正在花园里|欣赏', '含蕾待放的玫瑰']
# 应用场景
file_path = "123/456/789/999.mp4"
data_list = file_path.rsplit(".",1) #帮忙找出文件的扩展名
v1 = data_list[0]
v2 = data_list[1]
print(data_list) # ['123/456/789/999', 'mp4']
print(v1) # 123/456/789/999
print(v2) # mp4
9.字符串拼接,得到一个新的字符串
data_list = ["linzai","正在吃","烧饼"] #list这个列表中有三个字符串
v1 = "*".join(data_list) # 用*将上面的字符串连接起来,也可是其他的连接符
v2 = "-".join(data_list)
v3 = "".join(data_list) #可以什么都不加直接连接起来
print (v1) # linzai*正在吃*烧饼
print (v2) #linzai-正在吃-烧饼
print (v3) #linzai正在吃烧饼
10.格式化字符串,得到一个新的字符串
name = "{0}习惯干很多专业,例如有:{1}、{2}等"
data = name.format("linzai", "医生", "科学家") # .format占位符
print(data) # linzai习惯干很多专业,例如有:医生、科学家等
name1 = "{}习惯干很多专业,例如有:{}、{}等"
data1 = name.format("linzai", "医生", "科学家") # .format占位符
print(data1) # linzai习惯干很多专业,例如有:医生、科学家等
name2 = "{name}习惯干很多专业,例如有:{v1}、{v2}等"
data2 = name2.format(name="linzai",v1="医生",v2="科学家") # .format占位符
print (data2) # linzai习惯干很多专业,例如有:医生、科学家等
11.字符串转化成字节类型
data = "姐姐" # unicode,字符串类型
v1 = data.encode('utf-8') # utf-8,字节类型
v2 = data.encode('gbk') # gbk,字节类型
print (v1) # b'\xe5\xa7\x90\xe5\xa7\x90'
print (v2) # b'\xbd\xe3\xbd\xe3'
12.将字符串内容居中,居左和居右
data = "林妹妹"
v1 = data.center(20,"*") # 居中字符串,然后两边用*凑成20个字符
v2 = data.ljust(20,"-") # 字符串居左,然后两边用-凑成20个字符
v3 = data.rjust(20,"&") # 字符串居右,然后两边用&凑成20个字符
print (v1) # ********林妹妹*********
print (v2) # 林妹妹-----------------
print (v3) # &&&&&&&&&&&&&&&&&林妹妹
13.用 zfill 自动填充0
data = "林妹妹"
v1 = data.zfill(10) # .zfill自动将字符串在前面填充0,使其长度为10
print (v1) # 0000000林妹妹
# 应用场景:处理二级制
num = "101"
v2 = num.zfill(8) # 将二进制凑成制定的八位
print (v2) #00000101
标签:name,05,linzai,数据类型,字符串,v2,print,data,day
From: https://www.cnblogs.com/linzaidehouhuayuan/p/18048728