(三)python的字符串使用

举报
野猪佩奇996 发表于 2022/01/23 02:01:29 2022/01/23
【摘要】  1.python的字符串     python内建了一个专门用于处理字符串的库(名为str的类)。 a=3和a='3'不同,后者存字符串3,前者存数字3。    字符串中内容包含单引号或者双引号,要使用他们的转移字符,分别为\' 和 \'' 形式。 另:一个双引号包括的字符串中...

 1.python的字符串

    python内建了一个专门用于处理字符串的库(名为str的类)。

a=3和a='3'不同,后者存字符串3,前者存数字3。

   字符串中内容包含单引号或者双引号,要使用他们的转移字符,分别为\' 和 \'' 形式。

另:一个双引号包括的字符串中可以直接包含单引号,一个单引号包裹的字符串中可以直接包含双引号。

    一个字符串在Python中可以分成多行来写,但是需要每行的末尾加上一个斜杠,如下:


  
  1. a='这个字符串很友好\
  2. 因为它总是每行不会很长\
  3. 你看起来不会觉得累'

    Python的字符串是“不可变”的,即一个字符串被创建后不可以做出任何改变(类似的情况在Java中也是存在的)。因为字符串是不可以被改变的,因为我们在表示一个计算结果的时候,实际上是不断的创建新的字符串。

2.字符串的位置

a='你好呀'+'老伙计'
 

可以用str[1]表示字符“好”,即第二个字符。索引位置从下标0开始,如果访问超出索引位置,python会给出“超出合法范围”的错误。

3.大写与小写


  
  1. a = '我是\n tom'
  2. b = r'我是\nTom'
  3. print(a)
  4. print(b)
  5. print(a.lower())
  6. print(b.upper())

注意:不加r的字符串中 \n 会使得字符串换行(换行的转义字符),加上 r 后的字符串中任何字符串中的转移字符都不会被转义。

结果为 这里的r为row简写,因此我们能看见,在最后的将字符串b转为大写字母输出来的时候\n变成 \N。

4.字符串测试


  
  1. s = 'HelloabcdWord'
  2. print(s.isalpha())
  3. print(s.isdigit())
  4. print(s.startswith('Hello'))
  5. print(s.endswith('World'))

isalpha()判断字符串是否全由字母组成

isspace()判断字符串是否全由空格组成

5.字符串的索引

下标从0开始(左到右)的位置索引,另外还有逆序索引(该字符的位置索引的值-字符串的长度)

如:Hello字符串,位置索引为0的H的逆序索引就是0-5=-5.


  
  1. a='Hello'
  2. print(a[1])
  3. print(a[-4])

上面两句都是输出字符e

6.切取字符串


  
  1. tower = '金木水火土风雨'
  2. print(tower[1:4])
  3. print(tower[3:])
  4. print(tower[:-2])

最后一个print是输出从头到倒数第三个,注意“左开右闭”。

结果为


  
  1. 木水火
  2. 火土风雨
  3. 金木水火土

7.if语句

条件语句的关键字包括 if、elif和else。


  
  1. if a > 0:
  2. c = a
  3. elif a == 0:
  4. c = -1
  5. else:
  6. c = -a

    在条件语句的if下可以有任何类型的值,数值0以及空字符串' '和其他空类型都代表了“假”;数值1代表“真”。

还有一种叫 布尔类型boolean type的值,为False(会被转成整数0来理解)和True(会被转为整数1来理解)。

在Python,比较大小还有>,<,==,<=,>=。(在python中可以只写成if 2<a<13,C语言则不可以)

   对于列表类型,还有一个运算符in,如我们写'a' in list ,如果字符串'a'是list列表的一个元素,就会得到表示真的True,否则False。  另外:几个关键字:或or  与and  不是not。

8.查找与替换


  
  1. weather = '下雨天'
  2. bag = '包里空空的'
  3. if weather.find('雨')!=-1:
  4. bag=bag.replace('空空的','有雨伞')
  5. print(bag)

replace(str1,str2)是用str2替换str1。replace函数会替换所有符合第一个参数定义的子字符串而不是只替换第一个。

9.字符串格式化


  
  1. name = '王母娘娘'
  2. age = 9000
  3. height = 1.73
  4. print(name + '是一位' + str(age) + '岁的老奶奶,她身高' + str(height) +'米')
  5. #这种比较繁琐
  6. print('{0}是一位{1}岁的老奶奶,她身高{2}米'.format(name,age,height))
  7. print('%s是以为%d岁的老奶奶,她身高%g米' % (name,age,height))

两个print的结果相同。字符串中的{}表示字符串中可以嵌入值的占位。而 .format 则用于列出要嵌入到输出中的所有变量和数值,逗号分隔,一一对应。

ps:如果大括号内不写数字,则默认按出现在字符串中的位置与format列出的变量或数值一一对应。

%s 字符串标量    %d 整数变量   %g 浮点数变量

后面%后的括号内,我们按照前面的格式中的占位顺序,依次列出将进行嵌入的变量(%后面的东西是一个“元组”)。

10.批量替换字符串

题目:将字符串中的空格转换成“%20”

样例输入

we are happy
 

样例输出

we%20are%20happy
 

代码如下:


  
  1. def replaceSpace(s):
  2. # write code here
  3. print(s.replace(' ', '%20'))
  4. return
  5. def main():
  6. s=input()
  7. replaceSpace(s)
  8. if __name__ == '__main__':
  9. main()

 

文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。

原文链接:andyguo.blog.csdn.net/article/details/104106782

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。