《python小白入门系列教程》 专栏 • 第04篇
字符串是 字符的序列 。字符串基本上就是一组单词。我几乎可以保证你在每个Python程序中都要用到字符串,所以请特别留心下面这部分的内容。下面告诉你如何在Python中使用字符串。
1. 字符串定义
使用单引号 “ 你可以用单引号指示字符串,就如同”这是一句话”这样。
<code class="language-python"><a href="https://www.gaodaima.com/tag/str" title="查看更多关于str的文章" target="_blank">str</a> = "这是一句话" print( str )</code>
www#gaodaima.com来源gaodai.ma#com搞##代!^码网搞代码
使用双引号 “ 在双引号中的字符串与单引号中的字符串的使用完全相同,例如”What”s your name?”。
<code class="language-python">str = "What"s your name?" print( str )</code>
使用三引号(”””或”””) 利用三引号,你可以指示一个多行的字符串。你可以在三引号中自由的使用单引号和双引号。
<code class="language-python">str =""" 这是一个多行文本. 这是第一行.这是第二行. "你的名字是," 我问到。他会答"我的名字是木木" """ print(str)</code>
转义符 假设你想要在一个字符串中包含一个单引号(”),那么你该怎么指示这个字符串?
例如,这个字符串是What”s your name?。
你肯定不会用”What”s your name?”来指示它,因为Python会弄不明白这个字符串从何处开始,何处结束。所以,你需要指明单引号而不是字符串的结尾。可以通过 转义符 来完成这个任务。
你用”来指示单引号——注意这个反斜杠。现在你可以把字符串表示为”What”s your name?”。
另一个表示这个特别的字符串的方法是”What”s your name?”,即用双引号
<code class="language-python">str1 = "What"s your name?" str2 = "What"s your name?" print(str1) print(str2)</code>
2. 索引(即下标)
<code class="language-python">s = "ABCDEFGHIJKLMN" s1 = s[0] print("s[0] = " + s1) #s[0] = A print("s[3] = "+ s[3]) #s[3] = D print("倒数第三个数为:" + s[-3]) #倒数第三个数为:L print("最后一个数为:" + s[-1]) #最后一个数为:N</code>
<code class="language-html"> </code>
3. 切片:顾头不顾尾(截取一部分字符串)
<code class="language-python">s = "ABCDEFGHIJKLMN" s2 = s[0:3] print("s[0:3] = " + s2) #s[0:3] = ABC print("整个字符串如下:" + s[:]) #整个字符串如下:ABCDEFGHIJKLMN print("整个字符串如下:" + s[0:]) #整个字符串如下:ABCDEFGHIJKLMN print("前两个字符:" + s[:2]) #前两个字符:AB</code>
4. 跳取 s[首:尾:步长]
<code class="language-python">s3 = "ABCDEFGHIJKLMN" print(s3[0:6:2]) #ACE print(s3[::2]) #ACEGIKM print(s3[4:0:-1]) #倒着取:EDCB print(s3[3::-1]) #DCBA print(s3[-1::-1]) #NMLKJIHGFEDCBA</code>
5. 字符串的操作
1)首字母大写
<code class="language-python">s = "alexWUsir" s4_1 = s.capitalize() #首字母大写 print(s4_1) #Alexwusir</code>
2)全部大写
<code class="language-python">s = "alexWUsir" s4_2 = s.upper() #全部大写 print(s4_2) #ALEXWUSIR</code>
3)全部小写
<code class="language-python">s = "alexWUsir" s4_3 = s.lower() #全部小写 print(s4_3) #alexwusir</code>
4)大小写互换
<code class="language-python">s = "alexWUsir" s4_4 = s.swapcase() #大小写互换 print(s4_4) #ALEXwuSIR</code>
6. 居中(用空白/其他字符填充)
<code class="language-python">#center(self, width, fillchar=None)s = "alexWUsir" s5_1 = s.center(20,"%") #用%填充 s5_2 = s.center(15,"*") #用*填充 s5_3 = s.center(20) #空白填充 print(s5_1) #%%%%%alexWUsir%%%%%% print(s5_2) #***alexWUsir*** print(s5_3) # alexWUsir</code>
<code class="language-html"> </code>
7. 每个用特殊字符或数字隔开的单词首字母大写
<code class="language-python">s = "xc——gx*zs_shy+hihn9bbklv yiu" s7 = s.title() print(s7) #Xc——Gx*Zs_Shy+Hihn9Bbklv Yiu</code>
应用实例:
<code class="language-python">print("------------验证码的检验问题(先转化为全部大写,再核对) --------------") s_str = "aBcD1s" you_input = input("请输入验证码,不区分大小写") while s_str.upper()!= you_input.upper(): print("验证码错误") you_input = input("请重新输入") print("输入成功")</code>
运行结果:
8. 查找
<code class="language-html">#s.find通过元素找索引,找到返回索引,找不到返回-1 #s.index通过元素找索引,找到返回索引,找不到返回error </code>
<code class="language-python">s = "alexWUsir" s8_11 = s.find("W") s8_12 = s.index("W") s8_21 = s.find("WU") s8_22 = s.index("WU") s8_31 = s.find("A") s8_32 = s.index("A") print(s8_11,type(s8_12)) #4 <class "int"> print(s8_21 ,type(s8_22)) #4 <class "int"> print(s8_31 ,type(s8_32)) #报错:ValueError: substring not found----未找到子字符串</code>
应用实例:
<code class="language-python">print("----------------检验非法(敏感)字符-------------------") s = "gcu木木gckhb" if "木木" in s: print("您的评论有敏感字符")</code>
9. 删除字符串前后的空格/字符
<code class="language-python">s = " alexW%Usir %2% " s9_1 = s.strip() #删除字符串前后的空格 print(s9_1) #alexW%Usir %2% ss = "% alexW%Usir %2% %" s9_2 = ss.strip("%") #删除字符串前后的% print(s9_2) # alexW%Usir %2% </code>
应用举例:
<code class="language-python">username = input("请输入名字:").strip() if username == "辛辰": print("你好呀 主人") 运行结果:</code>
10. 计算字符串中某字符/字符串的个数
<code class="language-python">s = "alexaa wusirl" s10 = s.count("a") print("此字符串中有" + s10 + "个a") #报错:TypeError: must be str, not int print("此字符串中有" + str(s10) + "个a") #此字符串中有3个a</code>
<code class="language-html"> </code>
11. 分割:用空格(默认)/固定字符分割字符串(相当于str—>list)
<code class="language-python">s = "alex wusir taibai" s1 = "ale:x wus:ir :taibai" s11_1 = s.split() print(s11_1) #["alex", "wusir", "taibai"] s11_2 = s1.split(":") print(s11_2) #["ale", "x wus", "ir ", "taibai"]</code>
12. 三种格式化输出format
<code class="language-python">s12_1 = "我叫{},今年{}岁,爱好{},再说一下我叫{}".format("辛辰",23,"学习","辛辰") print(s12_1) #我叫辛辰,今年23岁,爱好学习,再说一下我叫辛辰 <p>s12_2 = "我叫{0},今年{1}岁,爱好{2},再说一下我叫{0}".format("辛辰",23,"学习")<br> print(s12_2)</p> <h1 id="我叫辛辰今年23岁,爱好学习再说一下我叫辛辰">我叫辛辰,今年23岁,爱好学习,再说一下我叫辛辰</h1> <p><br> s12_3 = s1 = "我叫{name},今年{age}岁,爱好{hobby},再说一下我叫{name}".format(name = "辛辰",age = 23,hobby = "学习")<br> print(s12_3)</p> </code><h1 id="我叫辛辰今年23岁,爱好学习再说一下我叫辛辰-2"><code class="language-python">我叫辛辰,今年23岁,爱好学习,再说一下我叫辛辰</code></h1>
<code class="language-html"> </code>
13. replace 字符串的替换
<code class="language-python">s13_1 = "辛辰,哈喽你好,我是辛辰" s13_2 = s13_1.replace("辛辰","陈欣") s13_3 = s13_1.replace("辛辰","陈欣",1) print(s13_1) #辛辰,哈喽你好,我是辛辰----原来文本 print(s13_2) #陈欣,哈喽你好,我是陈欣----全都替换 print(s13_3) #陈欣,哈喽你好,我是辛辰----只替换第一个</code>
<code class="language-html"> </code>
14. is系列
<code class="language-python">s14 = ""print(s14.isdigit()) #是否由数字组成 print(s14.isalpha()) #是否由字母组成 print(s14.isalnum()) #是否由字母或数字组成 s14_1 = "zxcs" s14_2 = "123546" s14_3 = "c1d21c4" print("----------s14_1----------") print(s14_1.isdigit()) #False print(s14_1.isalpha()) #True print(s14_1.isalnum()) #True print("----------s14_2----------") print(s14_2.isdigit()) #True print(s14_2.isalpha()) #False print(s14_2.isalnum()) #True print("----------s14_3----------") print(s14_3.isdigit()) #False print(s14_3.isalpha()) #False print(s14_3.isalnum()) #True</code>
判断字符串是否全是空格
<code class="language-python">s14_4 = " n " s14_5 = "" s14_6 = " " print(s14_4.isspace()) #False:有除空格外的其他字符 print(s14_5.isspace()) #False:空 print(s14_6.isspace()) #True:全是空格 </code><p><code class="language-python"></code></p>
15. 有限循环for(while是无限循环)
<code class="language-python">s = "xinchen" for i in s: print(i)</code>
<code class="language-html">#举例: </code>
<code class="language-python">s = "fhdsklfds" if "sk" in s: print("非法") print("------------------------") if "skk" not in s: print("合法")</code>
IT入门 感谢关注
练习地址:www.520mg.com/it