Python字符串类型及格式化

来自CloudWiki
跳转至: 导航搜索

字符串类型及其格式化

字符串类型的表示

  • 字符串是字符的序列,表示有一对单引号,双引号或三引号构成。
>>> name = 'abc'
>>> print(name)
 abc
  • 其中单引号和双引号表示单行字符串,三引号表示多行字符串。
  • 打印字符串的python程序,运行结果如下,注意其中的引号部分。
>>> print('这是“泉城”济南')
这是“泉城”济南
>>> print("这是'泉城'济南")
这是'泉城'济南
>>> print('''这是'泉城'济南,
一座美丽的城市。''')
这是'泉城'济南,
一座美丽的城市。
  • input( )函数将用户输入的内容当作一个字符串类型,这是获得用户输入的常用方式。
  • print( )函数可以直接打印字符串,这是输出字符串的常用方式。如:
>>> name = input("请输入名字: ")
请输入名字: Python语言
>>> print(name)
Python语言
>>>

转义字符

  • 反斜杠字符是一个特殊字符,在字符串中表示转义,即该字符与后面相邻的一个字符共同组成了新的含义。
  • 用\"可表示在字符串内部使用引号。
>>> print("这是\"泉城\"济南")


http://c.biancheng.net/view/2176.html

常用转义字符:

\n	换行符,将光标位置移到下一行开头。
\r	回车符,将光标位置移到本行开头。
\t	水平制表符,也即 Tab 键,一般相当于四个空格。
\a	蜂鸣器响铃。注意不是喇叭发声,现在的计算机很多都不带蜂鸣器了,所以响铃不一定有效。
\b	退格(Backspace),将光标位置移到前一列。
\\	反斜线
\'	单引号
\"	双引号
\	在字符串行尾的续行符,即一行未完,转到下一行继续写。

字符串的索引

字符串是一个字符序列:字符串最左端位置标记为0,依次增加。

对字符串中某个字符的检索被称为索引。索引的使用方式如下:

  <字符串或字符串变量>[序号]
  • 字符串包括两种序号体系,正向递增序号和反向递减序号。
  • P1-105.jpg
  • 如果字符串长度为L,正向递增,序号以最左侧字符序号为零,向右依次递增,最右侧字符序号为L-1。反向递减虚号,以最右侧字符序号为-1,向左依次递减,最左侧字符序号为-L.

字符串以Unicode编码存储,字符串的英文字符和中文字符都算作1个字符。

>>>"青青子衿,悠悠我心。"[-5]
'悠'
>>>s = "青青子衿,悠悠我心。"
>>>s[5]
'悠'

字符串切片

  • Python字符串也提供区间访问方式,采用[N:M]格式,表示字符串中从n到m不包含m的子字符串。如果表示中M或者N索引缺失,则表示字符串把开始或结束索引值设为默认值。

原创:

>>> s="世上有朵美丽的花,那是青春吐芳华"
>>> s[4]
'美'
>>> s[-2]
'芳'
>>> s[4:6]
'美丽'
>>> s[-5:-3]
'青春'
>>> s[4:]
'美丽的花,那是青春吐芳华'
>>> s[:4]
'世上有朵'
>>> s[:]
'世上有朵美丽的花,那是青春吐芳华'

练习:

1.从以下文字中提取引号中的话:

 文学评论家张炯在评价毛泽东诗词时说过:“他的诗词创作和有关见解,不仅影响一代诗风,使中国的旧体诗词和新诗得以在当代并行不悖地存在和发展,而且作为一种诗美的范式,获得了世界上许多国家读者的欣赏。”

2.将以下字符串打印出来,并尝试提取其中第3个字段IMAGE ID

REPOSITORY\tTAG\tIMAGE ID\tCREATED\tSIZE

格式化输出

format()方法的基本使用

Python推荐使用.format()格式化方法,其使用方式如下:

<模板字符串>.format(<逗号分隔的参数>)

其中,模板字符串是一个由字符串和槽组成的字符串模板,用来控制字符串和变量的显示效果。

参考文档:https://www.runoob.com/python/att-string-format.html

槽用大括号({})表示,对应format()方法中逗号分隔的参数。

>>> print("{}曰:学而时习之,不亦说乎。".format("孔子"))
孔子曰:学而时习之,不亦说乎。

如果模板字符串有多个槽,且槽内没有指定序号,则按照槽出现的顺序分别对应.format()方法中的不同参数。

>>> print("{}曰:学而时习之,不亦{}。".format("孔子","说乎"))
孔子曰:学而时习之,不亦说乎。

常用的format()方法格式控制信息:

%c 	字符
%s 	字符串
%i或%d 	有符号十进制整数
%o 	八进制整数
%x 	十六进制整数(小写)
%X 	十六进制整数(大写)
%e	索引符号(小写e)
%E	索引符号(大写E)
%f 	十进制浮点数(小写)
%F	十进制浮点数(大写)
%g	浮点数或指数(%f或%e)
%G 	浮点数或指数(%F或%E)

输出浮点数

print("{:.2f}".format(3.1415926))#输出小数点后2位

>>> print("{:+>30.2f}".format(12345678.9))

+++++++++++++++++++12345678.90

例:

>>> price =3.1415
>>> print("商品的价格为:{}".format(price))
商品的价格为:3.1415
>>> print("商品的价格为:{:.2f}".format(price))
商品的价格为:3.14
>>> price,sum=3.1415,98.5876
>>> print("商品的价格为:{:.2f},商品的总价为:{:.2f}".format(price,sum))
商品的价格为:3.14,商品的总价为:98.59

输出字符串

print("{}曰:学而时习之,不亦{}。".format("孔子","说乎"))

print("{:.5s}".format("这是一个很长的字符串"))#输出字符串的前5位

居中并填充

>>> print("{:-^10}".format("PYTHON"))# 居中并填充
--PYTHON--
>>> print("{:-<10}".format("PYTHON"))
PYTHON----
>>> print("{:->10}".format("PYTHON"))

----PYTHON



试一试,怎样输出下面的输出效果 ?

PYTHON+++++++++++++++++++
+++++++++PYTHON++++++++++
+++++++++++++++++++PYTHON

想一想:若希望程序输出如下内容,你会怎么做?

电脑Mac:IP地址为192.168.1.12,端口为8888

format()方法的详细使用

format()方法中模板字符串的槽除了包括参数序号,还可以包括格式控制信息。

{<参数序号>: <格式控制标记>} 

其中,格式控制标记用来控制参数显示时的格式 。

格式控制标记包括:<填充><对齐><宽度>,<.精度><类型>6个字段,这些字段都是可选的,可以组合使用,