c++转换成字符串不显示引号_学python第十六节:字符串类型及操作

76ae72df01a4c22cdfeb6a86d6ca2bdd.png

字符串是由0个或多个字符组成的有序字符序列。

今天的学习的内容如下:

12544884ed3346b13e9850ed8d35f4b0.png

第一:字符串类型的表示,字符串是字符的序列表示,可以由一对单引号'x'或双引号"x"或三引号'''x'''构成,使用总结如下表:

4812f35052ca392b9c6d54d7d46b827f.png

我们输入一段代码来展示:

print('1单行,两边可以是单或双引号')
print("2单行,两边可以是单或双引号")
print('3单行,中间有"单或双"引号')
print("4单行,中间有'单或双'引号")
print('''5单行,中间有'单引号',"双引"号''')
print('''6多行输入,
字符串用三"引号"表示''')
'''7字符串没有被使用,
三引号还可以当做多行注释使用'''

输出结果如下:

d9349c2c0eed7225b83de3d6c25e137d.png

最后一句为什么没有被输出呢?

是因为最后一句的字符串没有被定义,当做注释使用。以上是官方给的规定,我们再试试单引号或双引号可不可以换行呢:

输入代码测试:

print('1多行输入
      可以是单或双引号')
print("2多行输入
   试试可不可以")

41f1a084f0f21b6f302c77f3ae36054d.png

输出结果是错误,看来不行,换种方式再试一次,代码如下:

print('1多行输入'
      '可以是单或双引号')
print("2多行输入"
      "试试可不可以")

输出结果如下:

e15a8efb93783982b3989c7c67531ecf.png

代码输出结果可以看出,使用单双引号可以实现分行写,一行前后必须有单或双引号,输出结果仍然是单行显示。

字符串类型还具有索引功能,索引字符串的序列表示,它还包括两种序号体系,正向递增序号和方向递减序号。

1c52d2d2da52f6408b4b4ebdfe87c478.png

我们之间已经学过这方面的知识,现在概述一下:

字符串采用[M:N]格式,表示字符串中从N到M(不包括M)的子字符串,其中,N和M为字符串的索引序号,可以混合使用正向递增序号和反向递减序号,如果表示中M或N索引缺失,则表示字符串把开始或结束索引值设为默认值。通常索引与切片混合使用。

索引:返回字符串种单个字符,<字符串>[M]

切片:返回字符串中一段字符子串,<字符串>[M:N]

索引和切片的高段位玩法如下:

<字符串>[M:N] #M到N-1的索引,M缺失表示至开头,N缺失表示至结尾

<字符串>[M:N:K] #根据步长K对字符串切片,[::-1]字符串逆序排列

7794b8b3004ff5a092b4082937c4bce7.png

另外,字符串还有个特殊字符,叫转义符

转义符表达特定字符的本意(格式化控制符),可以形成一些组合,表达一些不可打印的含义。

(在行尾时)续行符n换行
反斜杠符号v纵向制表符
'单引号t横向制表符
"双引号r回车
a响铃f换页
b退格(Backspace)oyy八进制数,y 代表 0~7 的字符,例如:012 代表换行。
e转义xyy十六进制数,以 x 开头,yy代表的字符,例如:x0a代表换行
000other其它的字符以普通格式输出
(在行尾时)续行符n换行
反斜杠符号v纵向制表符
'单引号t横向制表符
"双引号r回车
a响铃f换页
b退格(Backspace)oyy八进制数,y 代表 0~7 的字符,例如:012 代表换行。
e转义xyy十六进制数,以 x 开头,yy代表的字符,例如:x0a代表换行
000other其它的字符以普通格式输出

编写代码如下:

print("1使用转义符"")
print("2使用转义符空格n换行了")
print("3使用转义符空000")

f79569d11bcde12d5deafc0b1a0600c6.png

字符类型的表示学习完了,接下来学习基本的字符串操作符,内容简单,但是在编程中会经常遇到,格式如下:

fbb70cce135bee9f789dc275844bb983.png

我们编写个程序,在动物园中,每个动物有自己的编号。假设输入数字1-6,自动输出对应的动物(字符串)名称,代码如下:

zoo="小鸭子小狐狸大老虎大狮子小青蛙小猴子"  #字符串
num=eval(input("输入动物编号"))   #输入数字并去掉双引号
max=(num-1)*3          #输入的数字乘以3,确定对应动物最大的字符串位置
print(zoo[max:max+3])   #输出动物园的动物名称

070da96c563523a688ad3e286bb799b1.png

是不是很简单呢,接下来进入字符串处理函数的学习。Python解释器提供了一些内置函数,共5个,如下图所示:

e470656078c552d06a1480235cb6d0df.png

这些只是需要记忆,没有复杂的要求,举例如下:

print(len("一二三四五")) #计算字符串的元素个数
print(str(1234))  #将1234(任意类型)转换成字符串
print(chr(1004))  #将Unicode中的1004对应的字符输出
print(ord("真"))  #将字符串对应的Unicode值输出
print(hex(72))  #将十进制72转换成十六进制
print(oct(10))  #将十进制10转换成八进制

输出的结果如下图所示:

b50cb105466266b4d36f1654b0af52ee.png

小知识:每个字符在计算机中可以表示一个数字,叫做编码,通常用的是ASCII码,主要用在英文字符,很多国家的字符都没有收录,这时提出了建立Unicode码,涵盖了几乎所有的字符。

有趣的字符串处理函数学习完毕,进入字符串处理方法的学习中,在python中,所有数据类型都封装成一个类,字符串也是一个类,在面向对象中,称这类函数为“方法”,表达式为<a>.<b>(),内置方法有43个,现在把最最常用的展示出来,以后遇到其他的再学习(str代表字符串或变量)

a30c1f72f2bc5fccefb63fb346101fc9.png

这些该怎么用呢?很简单,我们编写个小程序展示一下:

print("伟大的祖国".split())  #字符串输出为列表
print("伟大的祖国".center(15,'*'))
#字符串居中显示,定义为15个字符,不够的用*添加,
print("伟大的祖国".zfill(10))
#定义为10个字符,字符串不够,在之前以0添加
print("*".join("伟大的祖国")) #在每个字符串后加*

输出结果如下:

8e0d7b8f00321b43c96cc98d0087cc8c.png

到了最后环节,重点学习一下内置的字符串处理方法的format(),字符串格式化用于解决字符串和变量同时输出时的格式安排。格式如下:

e7267b9e7c4e3229d38f8c82d2dab755.png

模板字符串由一系列槽组成,用来控制修改字符串嵌入值出现的位置,就是将format()方法中的逗号分隔的参数按照序号关系替代到模板字符串的槽中,槽用{}表示,如果大括号中没有序号,则按照出现顺序排列。

8a82b5583197884b4f771217a7a69618.png

e5b4437d20c745ff0c0702f4839e8111.png

cb398b97a2740dddcc334f68a06bd300.png

具体使用方法举例如下:

print('{} and {}'.format('hello','world'))  # 默认左对齐
print('{:10s} and {:>10s}'.format('hello','world'))  # 取10位左对齐,取10位右对齐
print('{:^10s} and {:^10s}'.format('hello','world'))  # 取10位中间对齐
print('{} is {:.2f}'.format(1.123,1.123))  # 取2位小数
print('{0} is {0:>10.2f}'.format(1.123))  # 取2位小数,右对齐,取10位

输出结果如下图:

0106c5bf6e13f43c9c8a9222eb4b02af.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值