收录于话题
#Python入门
27个
基础入门的知识一直没有更新完,今天小张接着给大家带来入门级的字符串的常用操作。本文适合刚入门的小白,大佬们请绕过。
一、定义
字符串的意思就是“一串字符”,比如“Hello,Charlie”是一个字符串,“How are you?”也是一个字符串。
Python 要求字符串必须使用引号括起来,使用单引号也行,使用双引号也行,只要两边的引号能配对即可。
简单说下几个特点:
-
1.字符:即单一的文字符号,
-
2.字符串:即是有序的字符组成的序列,其中用 \’、 \” 、 \’\’\’ 、\”\”\”、 括起来的内容
-
3.索引:一排数字反映第某个位置的字符,索引的下表是从0 开始的,使用 中括号 [ ] 来获取数据,反向的话是从-1开始的
例如 :
1s = \"刘德华很帅但是张国荣更\"
2print(s[-4] +s[2] +s[1] + s[0])
3# 结果
4张 华 德 刘
二、常用操作
切记, 字符串是不可变的对象, 所以任何操作对原字符串是不会有任何影响的,即有返回值
-
1.upper() 转换成大写 ,忽略小写的时候用 与之对应的是lower()
1while True:
2 content = input(\"请输入你要喷的内容(输入Q退出):\")
3 if content.upper() == \'Q\': # 当用户输入q或者Q的时候退出. 这里要忽略大小写
4 break
5 print(content)
-
2.strip() 去掉左右两端的空白,包括括号及\\n 和\\t,用户内容输入有空白时用
1username = input(\"请输入用户名:\").strip()
2password = input(\"请输入密码:\").strip()
3if username == \"xiaozhang\" and password == \"123\":
4 print(\"成功\")
5else:
6 print(\"失败\") #假如用户输入 xiaozhang 时,前面或者后面有空格 不好判断,此时可以这样用,能保证用户正确登陆
-
3.replace(\”old\”,\”new\”)字符串 替换
1s = \"xiaozhang is a handsome man\"
2s1 = s.replace(\"handsome\",\"nice\")
3s2 = s.replace(\"a\",\"AB\",2) #将a 替换成AB,替换2次
4print(s1) #xiaozhang is a nice man
5print(s2) # xiABozhABng is a handsome man
-
4.split(\”以那个切割\”,次数) 字符串切割 结果是list(列表),默认以空白切割
1s = \"xiaozhang_qq_niannian\"
2s1 = s.split(\"_\") # 以哪个切割,哪个就要丢失
3s2 = s.split(\"xiaozhang_qq_niannian\") #切割的内容在边上. 会出现空字符串
4s3 = s.split(\"x\",1) # 结果为[\'\', \'iaozhang_qq_niannian\']
5print(s1) # 结果为[\'xiaozhang\', \'qq\', \'niannian\']
6print (s2) # 结果为 [\'\', \'\']
与之对应的还有rsplit()
string.rsplit(separator, max)
方法从右侧开始将字符串拆分为列表。
如果未指定 \”max\”,则此方法将返回与 split() 方法相同的结果。
注释:若指定 max,列表将包含指定数量加一的元素。
-
5.startswith(\”以哪个开始\”) 判断是否以xxx开头 与之对应的是endswith 输出结果为False和True
1s = \"今天的内容非常简单.你们信吗? 作业也很容易. 就是整理不太好\"
2print(s.startswith(\"今天\")) #True
3print(s.endswith(\"太好\")) #True
-
6. find() 查找变量出现的位置,显示索引,如果查不到为-1,如果是index查找,没有的话程序会报错
1s = \"小张学Python公众号值得推荐\"
2print(s.find(\"哈哈\")) # 如果找不到返回-1
3print (s.find (\"小\")) # 结果为0 找到了 显示索引号码 0
-
7. isdigit() 判断是否是数字组成(整数) 结果为False 和True 同理 isupper(判断是否是大写) islower(判断是否为小写) .isalpha(是否为字母)
1s = \"1234\"
2print (s.isdigit()) # 显示 True,如果字符串中有字母或者标点符号即为False
-
8. len() 求长度. 内置函数
1s = \"小张学Python公众号值得推荐\"
2print(len(s)) # 16 返回给你字符串的长度
-
9.count(\”\”) 计数
1s = \"小张学Python公众号值得推荐!推荐!推荐!\"
2print(s.count(\"推荐\")) # 计数 显示 3
3s = \"小张学Python公众号值得推荐!推荐!推荐!\"
4print(s.count(\"推荐\",0,20))# 结果显示 2
-
10.center() 居中
1a = \"小张学Python\"
2print (a.center(20,\"*\"))
3#结果:
4*****小张学Python******
-
11.rjust() 右对齐
1print (a.ljust(20,\"*\"))
2#结果:
3***********小张学Python
-
12.ljust() 左对齐
1print (a.ljust(20,\"*\"))
2#结果:
3小张学Python***********
-
13.迭代
格式:
1for 变量 in 可迭代对象:
2 代码块 #可迭代对象中的每一个元素,分别赋给前面的变量,,可以将迭代对象遍历.
字符串就是可迭代的对象
记住报错: TypeError: \’int\’ object is not iterable int对象是不可迭代的
例子:
1ss = \"小张学Python公众号值得推荐\"
2for cc in ss:
3 print(cc) #以此打印每个字符
4#或者利用while方法
5count = 0
6while count < len(ss):
7 print(ss[count])
8 count += 1
-
14 切片
格式:
srt[start:end:step]
从start开始截取,到end结束,但不包括end,step不写的话默认是1且从左往右切,step正数从左往右,如果是负数,从右往左,每n个取1个例如:
1s = \"刘德华很帅但是张国荣更\"
2print(s[1:]) # 从第一个索引打印到结尾 德华很帅但是张国荣更
3print(s[:4]) # 从开头打印到第三个 即 结果为 刘德华很
4print(s[:]) #打印全部 刘德华很帅但是张国荣更
5print(s[::-1]) #更荣国张是但帅很华德刘
6print (s[:-1]) # 把最后一个字符去掉 即刘德华很帅但是张国荣
-
15.利用切片判断是否为回文的案列:
定义:把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环。
1n = input(\"输入回文\")
2if n == n[::-1]:
3 print(True)
4else:
5 print(False)
6#例如输入
7上海自来水来自海上,则打印True