一、字符串特点

  • 内容不可修改
password='' #内容不可修改

二、字符串常用方法

1、.strip()方法

  • 去字符串两边的空格和换行符
print(password.strip()) #去掉字符串两边的空格和换行符
password='\n\n\n123456\n7890 '
print(password.strip())
#结果:
#
#
#中间的空格和换行符不去掉
  • 不传内容,默认去掉空格和换行符,传入内容,就去掉内容
password='.jpg123456.jpg'
print(password.strip('.jpg'))
#结果:
#

2、.lstrip()方法

  • 只去掉左边的空格和换行

3、.rstrip()方法

  • 只去掉右边的空格和换行

4、.upper()方法

  • 使字符串全部转成大写
password='.jpg123456.jpg'
print(password.upper())
#结果:
#.JPG123456.JPG

5、.lower()方法

  • 使字符串全部转成小写
password='.JPG123456.jpg'
print(password.lower())
#结果:
#.jpg123456.jpg

6、.capitalize()方法

  • 使字符串首字母转成大写
password='agcPG123456.jpg'
print(password.capitalize())
#结果:
#Agcpg123456.jpg

7、.count()方法

  • 统计内容在字符串里出现的次数
password='agcPG123456.jpg'
print(password.count('g'))
#结果:
#

8、.replace()方法

  • 将旧内容替换为新内容
password='agcPG123456.jpg'
print(password.replace('','上山打老虎'))
#结果:
#agcPG上山打老虎6.jpg
  • 如果旧内容不存在,使用该方法也不报错,还是之前的字符串
password='agcPG123456.jpg'
print(password.replace('hhh','上山打老虎'))
#结果:
#agcPG123456.jpg

去掉字符串中间的空格,可以使用该方法

names='小红 小军 小黄    小兰'
print(names.replace(' ',''))
#结果:
#小红小军小黄小兰

9、.endswith()方法

  • 判断是否以内容为结尾
  • 当内容存在时,返回为True;不存在时,返回为False
password='agcPG123456.jpg'
print(password.endswith('jpg'))
#结果:
#True
print(password.endswith('mp3'))
#结果:
#False

例子:

filename='a.mp4'
if filename.endswith('.mp3'):
pass
else:
print('不以.mp3结尾')
#结果:
#不以.mp3结尾

10、.startswith()方法

  • 判断是否以内容为开头
password='agcPG123456.jpg'
print(password.startswith('.'))
#结果:
#False

11、.format()方法

  • 格式化输出,用{}包裹,可将内容输出
print('{name},{age}'.format(name='lrx',age=18))
#结果:
#lrx,18

12、.split()方法

  • 以内容为分隔符进行分割,分割后是list里的每一个元素
  • 将字符串变成list
names='小红,小军,小黄,小兰'
print(names.split(','))
#结果:
#['小红,小军,小黄,小兰']
  • 如果分隔符不存在,仍然把字符串变成list,整个字符串是list里的一个元素
names='小红 小军 小黄    小兰'
print(names.split(','))
#结果:
#['小红 小军 小黄 小兰']

13、.join()方法

  • 将list转成字符串
  • 以规定的内容为分隔符进行连接
  • 只要是循环的,都可以使用该方法,比如:字符串、列表、元组
user=['abc','','&*^']
res='.'.join(user)
print(res)
#结果:
#abc.123.&*^

14、.zfill()方法

  • 自动补零:比如内容里写3,则个位数前补2个零,十位数前补1个零
a=1
b=80
a1=str(a).zfill(3)
b1=str(b).zfill(3)
print('a1='+a1+',b1='+b1)
#结果:
#a1=001,b1=080

15、.find()方法

  • 找下标
  • 如果无此内容时,使用该方法不会报错,会返回-1

16、.index()方法

  • 找下标
  • 如果无此内容时,使用该方法会报错
s='abcdef'
print(s.find('a'))
print(s.index('a'))
print(s.find('g'))
#结果:
#
#
#-1
print(s.index('g'))
#结果:
#ValueError: substring not found

17、.isdigit()方法

  • 判断字符串是否是正整数,是正整数返回True,不是返回False
n='123.243'
n2='-123'
n3=''
print(n.isdigit())
print(n2.isdigit())
print(n3.isdigit())
#结果:
#False
#False
#True

18、.islower()方法

  • 判断字符串是否都是小写字母

19、.isupper()方法

  • 判断字符串是否都是大写字母
s='abCdef'
print(s.isupper())
print(s.islower())
s1='AGSDGS'
s2='sdsdg'
print(s1.isupper())
print(s2.islower())
print(s1.islower())
print(s2.isupper())
#结果:
# False
# False
# True
# True
# False
# False

20、.isalpha()方法

  • 判断字符串中是否只有字母,如果只有字母,返回True,否则返回False

21、.isalnum()方法

  • 判断字符串中是否有字母或者数字
print('abcd123'.isalpha()) #判断字符串里面是否只有英文
print('abc23454'.isalnum()) #判断字符串是否里面有英文或者由数字
print('abc'.isalnum())
print(''.isalpha())
# False
# True
# True
# True

22、.isspace()方法

  • 判断字符串是否是空格,只包含空格
print('sdfs '.isspace())
print(' '.isspace())
#结果:
# False
# True

23、.splitlines()方法

  • 以换行符分割字符串
s='abdc\nsdfsd'
print(s.splitlines()) #以换行符分割字符串
#结果:
#['abdc', 'sdfsd']

24、string模块

(1)string.ascii_letters:所有的大写、小写字母

(2)string.ascii_uppercase:所有的大写字母

(3)string.ascii_lowercase:所有的小写字母

(4)string.digits:所有的数字

(5)string.punctuation:所有的符号

import string
print(string.ascii_letters)
print(string.ascii_uppercase)
print(string.ascii_lowercase)
print(string.digits)
print(string.punctuation)
#结果:
# abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
# ABCDEFGHIJKLMNOPQRSTUVWXYZ
# abcdefghijklmnopqrstuvwxyz
#
# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

三、字符串操作

1、字符串循环

  • 利用元素下标进行循环

words='中秋节要上课'

for w in words :
print('每次打印的',w)

Python中的循环内置了下标,因此只用一个变量p就可以,p就是每次取下标时对应的元素值。

  • 使用enumerate()枚举函数

使用enumerate()函数,会自动将字符串的下标和元素都显示出来:


words='中秋节要上课'
for index,w in enumerate(words):
print('每次打印的',index,w)

2、切片

字符串也有下标,使用上跟在列表中一致:

words='中秋节要上课'
print(words[0])
print(words[::-1])

3、存址方式

1)现象:

a='tanailing'
b=a
a='niuniu'
print(b)#结果为tanailing
print(a)#结果为niuniu

2)原因:

  • 字符串是直接开辟新的内存空间,不会共用一块内存空间,因此修改了a的内容后,b不会变。

四、面试题

#判断一个字符串是否是回文,即:字符串和它反转后的字符串是否相等,如果相等就是回文。
s='上海自来水来自海上'
# 1232321
# 1111
# 回文算法,反过来倒过去都一样 for i in range(10):
s = input('请输入一个字符串:')
if len(s)<2:
print('字符串长度必须大于2')
elif s==s[::-1]:
print('是回文')
else:
print('不是回文')

Python之字符串操作的更多相关文章

  1. python中字符串操作--截取,查找,替换

    python中,对字符串的操作是最常见的,python对字符串操作有自己特殊的处理方式. 字符串的截取 python中对于字符串的索引是比较特别的,来感受一下: s = '123456789' #截取 ...

  2. Python中字符串操作

    #Python字符串操作 '''1.复制字符串''' #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sStr2 = sStr1 sStr1 = 'strcpy2' pri ...

  3. python基础--字符串操作、列表、元组、文件操作

    一.变量及条件判断 1.字符串.布尔类型.float.int类型,None都是不可变变量 2.字符串是不可变变量,不可变变量就是指定义之后不能修改它的值 3.count +=1和count=count ...

  4. Python中字符串操作函数string.split('str1')和string.join(ls)

    Python中的字符串操作函数split 和 join能够实现字符串和列表之间的简单转换, 使用 .split()可以将字符串中特定部分以多个字符的形式,存储成列表 def split(self, * ...

  5. 「Python」字符串操作内置函数

    目录: capitalize casefold center count encode decode endswith expandtabs find format format_map index ...

  6. Python:字符串操作总结

    所有标准的序列操作(索引.分片.乘法.判断成员资格.求长度.取最小值最大值)对字符串同样适用,且字符串是不可变的. 一.字符串格式化 转换说明符 [注]: 这些项的顺序至关重要 (1)%字符:标记转换 ...

  7. 关于python的字符串操作

    字符串的判断操作: str = "fahaf asdkfja\t \r \n fjdhal 3453" print(str.isspace()) # 如果str中只包含空格,则返回 ...

  8. python常用字符串操作

    #!/usr/bin/env python name='cunzhang' print(name.capitalize())#首字母大写 print(name.count('n'))#统计字符有几个 ...

  9. Python的字符串操作和Unicode

    字符串类型 str:Unicode字符串.采用''或者r''构造的字符串均为str,单引号可以用双引号或者三引号来代替.无论用哪种方式进行制定,在Python内部存储时没有区别. bytes:二进制字 ...

随机推荐

  1. Linux实时查询GPU使用命令

    查看显存使用情况的命令: $ nvidia-smi 周期性地查看GPU使用情况则使用命令: $ watch -n nvidia-smi 其中数字10表示每十秒刷新一次GPU使用状态. 具体如下所示:重 ...

  2. 网站出现403 Forbidden

    1, 你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了 2, 网站域名解析到了空间,但空间未绑定此域名 3, 你的网页脚本文件在当前目录下没有执行权限 4, 服务器繁忙,同一IP ...

  3. PXE 自动安装物理机 (DHCP服务由路由提供, 不能再配置)

    目录 1. PXE 自动安装物理机 (DHCP服务由路由提供, 不能再配置) 1.1. 需要的软件 1.2. 启动 proxy dhcp 服务 1.3. 关键的几个配置文件 PXE 自动安装物理机 ( ...

  4. nginx配置tomcat负载均衡,nginx.conf配置文件的配置

  5. ZooKeeper典型应用场景概览

    ZooKeeper是一个高可用的分布式数据管理与系统协调框架.基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题.网上 ...

  6. Doc2vec实现原理

    论文来源:https://www.eecs.yorku.ca/course_archive/2016-17/W/6412/reading/DistributedRepresentationsofSen ...

  7. [CQOI2014]和谐矩阵

    嘟嘟嘟 遇到这种(看似)构造的题,我好像一般都做不出来-- 然而这题正解是高斯消元解异或方程组-- 首先我们容易列出式子a[i][j] ^ a[i - 1][j] ^ a[i + 1][j] ^ a[ ...

  8. 【转】iOS开发笔记--识别单击还是双击

    在视图上同时识别单击手势和双击手势的问题在于,当检测到一个单击操作时,无法确定是确实是一个单击操作或者只是双击操作中的第一次点击.解决这个问题的方法就是:在检测到单击时,需要等一段时间等待第二次点击, ...

  9. 破解windows版idea

    近期使用idea的时候提示已过试用期,需要购买,否则只能使用半小时 网上破解方法很全,记录一下 1.下载破解补丁 百度网盘:https://pan.baidu.com/s/15Wq9-c4SVwg_2 ...

  10. 20175310 《Java程序设计》第7周学习总结

    20175310 <Java程序设计>第7周学习总结 本周博客: https://www.cnblogs.com/xicyannn/p/10705376.html 教材学习内容总结 这周学 ...