- 字符串
1.方法详细内容
- 方法
- 强制转换
1.大小写转换
-
Value.upper() / value.lower()
new_value=value.upper() print(new_value) #验证码 check_code = "uuueY" mess = input("请输入验证码%s:"%(check_code,)) if mess.lower() == check_code.lower(): print("登陆成功")
2.判断字符串是否为数字:isdigit()
-
num.isdigit(): 判断是否是数字得到bool值
#人工服务,只能输入数字 num=input("请输入服务:“) flag=num.isdigit() #print(flag) "1"-->True "asdf"-->False if flag: num=int(num) print(num) else: print("请输入数字") -------------------------------- #计算字符串中的数字多少个 str1="alellr838jdjje939" str_len=len(str1) index=0 count=0 while True: val=str1[index] flag=val.isdigit() # print(flag) if flag: count+=1 index += 1 if index==str_len: break print(count)
3.除空格:strip()
-
user.rstrip(): 去掉右边的空格/换行\n / 制表符 \t
user.lstrip(): 左边
user.strip(): 去除两边的空白
v="gao " print(v.strip) v="gao\n" print(v.strip) v="gao\t ok" print(v.strip)
-
去掉两边指定的字符
v1="gao" print(v1.strip("g"))
4.替换关键字: replace("","",1)
- mess.replace("被替换的字符/子序列“,”要替换的内容“,1)
mess="我来自南方"
data=mess.replace("南方“,”**“)
data=mess.replace("南方“,”**“,1)
print(data)
#从左到右找到第一个则替换 数字:表示替换几个
5.字符串切割:split(",",2):得到list数据类型
- mess.split("根据什么内容进行分割", "分割几次")
- mess.rsplit("")
mess="床前明月光,疑是地上霜,举头王明月"
result=mess.split(" ,")
print(result)
#["床前明月光"," 疑是地上霜"," 举头王明月"]
result=messs.split(",",1)
print(result)
#只拆分一个
#["床前明月光"," 疑是地上霜,举头王明月"]
6.startswith/endswith
#判断字符串是否已"al"开头
#方案一 二
str1="already"
print(str1.startswith("al"))
#True
7.format()
#字符串格式化
name="我叫{0},年龄:{1}".format("gao",73)
print(name)
#”我叫gao,年龄:73“
8.encode():读到内存后的编码格式,默认是按照unicode编码
#读到内存后的编码格式,默认是按照unicode编码
name="Gao"
v1=name.encode('utf-8')#内存中按照utf-8编码方式 字符串转换成二进制
print(v1)
9.”连字符“.join(users): join会循环users里面的内容然后连接———>join可以循环 (列表,元祖,字符串)
#1.
name="alex"
result="_".join(name)#循环每个字符,并且在字符和字符之间加入连接字符
print(result)
#a_l_e_x
#2.连接列表的内容
users=["Gao","Kou","123"]
val=",".join(users)
print(val)
#Gao,Kou,123
#
li=[1,2,3,4,5,5]
li=str([1,2,3,4])
#li="[1,2,3,4]" 整个列表必须都转换为字符串
li="_".join(li)
print(li,type(li))
#[_1_,_ _2_,_ _3_,_ _4_] <class 'str'>
10.isupper()/islower():判断大小写
-
casefold():字符串变小写 可将拉丁字母变小写
-
isdecimal: 判断是否是十进制 的数 1—>True "二"—>False "②"—>False
-
isnumeric:1—>True "二"—>True "②"—>True
-
Isdigit: 1—>True "二"—>False "②"—>True
-
Isalnum:是否是字母数字
-
isalpa:是否字母
-
isprintable:是否能打印
-
isspace:是否是空白
-
istitle: 是否首字母大写
-
capitalize:首字母大写
-
center:居中
v='gao'
v1=v.center(20,"*")#指定v为20长度 空白处以*填充
- ljust/rjust(20,"*"):左右边空白填充
- count("a"):计算子序列个数
- find("a"):找索引位置,不存在返回-1
- index:找索引位置,不存在返回-1
- Format_map():传字典
- partition:
v="jdjjkf3hfjf"
v2=v1.split("3")#不会包括3 会一直分割
print(v2)
v2=v1.partition("3")#按照3 分为三份 会包括3
-
translate
-
Maketrans
##6.公共方法
-
len()
num.len(value) :计算字符长度
value="test"
number=len(value)
print(number)
#4
-
索引 arr[index]
arr="oldboy" v1=arr[0]#从前往后取数据 #o v2=arr[-1] #从后往前取数据 倒数第一个位置开始取 #y
-
切片: v[2:3] 2<=index<3 前开后闭
v="oldboy" v1=v[2:3] #2<=index<3 print(v1) #d v1=v[3:6]/[3:] #boy v1=v[:-1] #从第一个位置开始到取数字 直到取到 倒数第一个位置 #oldbo #取最后两个字符 #方案一: data=input("请输入:") v=data[-2:] #从倒数第二个开始取 print(v) 方案二 data_len=len(data) v=data[data_len-2:data_len]
-
切片步长 : v[0,8,step]
- step=2>0 :往右走两次 (隔一个一取) index0=index0+2
- step=-2<0: 往左走 index1=index1-2
- v[1,8]: 默认向右
#通过对s切片形成字符串s5 = "ba2" #sequence[starting_index:ending_index:step] s = "123a4b5c" s6=s[-3:-8:-2] print(s6) '''
name="alex" #value[index0:index2:step] #step > 0 :往右边开始取值 #step < 0 :往左边开始取值 #1.val=name[0:-1:2]#从0到倒数第一个值,每取一次index+2,即就是隔一个取一个 print(name) #ae #2.val=name[1::2]#从1 到 正无穷 按照step=2向右边取值 #3.val=name[-1:0:-2]#从倒数第一个到0位置处,按照step=-2向左取值 #笔试题:将字符串反转 val=name[::-1] print(val)
-
for 循环:
- for in:循环打印字符串的每个字符
name="Gao" for item in name: print(item) #G #a #o
-
break/continue依然有效
name="Gao" for item in name: print(item) break print("123") #G #a #o
-
for i in range(1,11):
#请打印1-10 for i in range(1,11):# 1<=range<11 print(i) #打印1-10 除了7以外
注意:
for和while应用场景:for:有穷时候优先
while:无穷
-
修改,删除 (无)
注意:
字符串没有 ""修改删除""方法
练习:split/strip()/isdigit
1.用户输入很多数字或者字母,相加(可能带空格,字母)
5+9 +A+10+ 1 +99.。。。
val=input("请输入几个数相加:")
val=val.split("+")
for ele in val:
item=ele.strip()#一定要除空格 不然带空格的数字字符串不会被识别为数字
if item.isdigit():
sum=sum+int(item)
print(sum)
2.将字符串反转
#2.val=name[1::2]#从1 到 正无穷 按照step=2向右边取值
#3.val=name[-1:0:-2]#从倒数第一个到0位置处,按照step=-2向左取值
#笔试题:将字符串反转
val=name[::-1]
print(val)
2.字符串强制转换
-
str(整型)==>字符串 "999"
-
str(bool)==>"True"/"False"
-
str(列表)==>
li=[1,2,3,4,5,5] li=str([1,2,3,4]) #li="[1,2,3,4]" 整个列表都转换为字符串 li="_".join(li) print(li,type(li)) #[_1_,_ _2_,_ _3_,_ _4_] <class 'str'> li=[1,2,3,4,5,5] li1=str(li) #li="_".join(li) print(li1,type(li1)) #[1, 2, 3, 4, 5, 5] <class 'str'>
-
str(元组)
li=(1,2,3,4,5,5) li1=str(li) print(li1,type(li1)) #(1, 2, 3, 4, 5, 5) <class 'str'>