python学习之路3--基本数据结构(3)

5.字符串与输入

1.字符串表示

字符串可以用单引号,双引号以及三引号(三个单引号或三个双引号)。

单引号(双引号)中可以出现双引号(单引号),不能包含自身。

特殊地,三引号可以跨行表示字符串。

如果要同时输出单引号和双引号,就要使用转义字符了。

2.转义字符

转义字符

描述

\(在行尾时)

续行符

\\

反斜杠符号

\'

单引号

\"

双引号

\a

响铃

\b

退格(Backspace)

\e

转义

\000

\n

换行

\v

纵向制表符

\t

横向制表符

\r

回车

\f

换页

\oyy

八进制数,y 代表 0~7 的字符,例如:\012 代表换行。

\xyy

十六进制数,以 \x 开头,yy代表的字符,例如:\x0a代表换行

\other

其它的字符以普通格式输出

特殊地,如果想输出一个不加任意转义字符的字符串,可以在前面加一个r,表示raw string(原始字符串),比如:

str2 = r'this \n will not be new line'

print(str2)



# 输出this \n will not be new line

Python字符串运算符

下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python":

操作符

描述

实例

+

字符串连接

>>>a + b 'HelloPython'

*

重复输出字符串

>>>a * 2 'HelloHello'

[]

通过索引获取字符串中字符

>>>a[1] 'e'

[ : ]

截取字符串中的一部分

>>>a[1:4] 'ell'

in

成员运算符 - 如果字符串中包含给定的字符返回 True

>>>"H" in a True

not in

成员运算符 - 如果字符串中不包含给定的字符返回 True

>>>"M" not in a True

r/R

原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

>>>print r'\n' \n >>> print R'\n' \n

%

格式字符串

请看下一章节

4.格式化字符串

第一种类似C语言中的printf的格式化方式:

str1 = '今天是 %d  %d  %d ' % (2000, 10, 27)

str2 = '今天最高气温为 %f 摄氏度' % 26.7

str3 = '今天最高气温为 %.1f 摄氏度' % 26.7

print(str1)

print(str2)

print(str3)

输出:

今天是 2000 年 10 月 27 日

今天最高气温为 26.700000 摄氏度

今天最高气温为 26.7 摄氏度

   符   号

描述

      %c

 格式化字符及其ASCII码

      %s

 格式化字符串

      %d

 格式化整数

      %u

 格式化无符号整型

      %o

 格式化无符号八进制数

      %x

 格式化无符号十六进制数

      %X

 格式化无符号十六进制数(大写)

      %f

 格式化浮点数字,可指定小数点后的精度

      %e

 用科学计数法格式化浮点数

      %E

 作用同%e,用科学计数法格式化浮点数

      %g

 %f和%e的简写

      %G

 %F 和 %E 的简写

      %p

 用十六进制数格式化变量的地址

格式化操作符辅助指令:

符号

功能

*

定义宽度或者小数点精度

-

用做左对齐

+

在正数前面显示加号( + )

<sp>

在正数前面显示空格

#

在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')

0

显示的数字前面填充'0'而不是默认的空格

%

'%%'输出一个单一的'%'

(var)

映射变量(字典参数)

m.n.

m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

第二种方法为字符串的format方法

str1 = '今天是 {}  {}  {} '.format(2000, 10, 27)

str2 = '今天是 {2}  {1}  {0} '.format(27, 10, 2000)

str3 = '今天最高气温为 {:.2f} 摄氏度'.format(26.7)

print(str1)

print(str2)

print(str3)

下表为

数字

格式

输出

描述

3.1415926

{:.2f}

3.14

保留小数点后两位

3.1415926

{:+.2f}

+3.14

带符号保留小数点后两位

-1

{:+.2f}

-1.00

带符号保留小数点后两位

2.71828

{:.0f}

3

不带小数

5

{:0>2d}

05

数字补零 (填充左边, 宽度为2)

5

{:x<4d}

5xxx

数字补x (填充右边, 宽度为4)

10

{:x<4d}

10xx

数字补x (填充右边, 宽度为4)

1000000

{:,}

1,000,000

以逗号分隔的数字格式

0.25

{:.2%}

25.00%

百分比格式

1000000000

{:.2e}

1.00e+09

指数记法

13

{:>10d}

        13

右对齐 (默认, 宽度为10)

13

{:<10d}

13

左对齐 (宽度为10)

13

{:^10d}

    13

中间对齐 (宽度为10)

11

'{:b}'.format(11)

'{:d}'.format(11)

'{:o}'.format(11)

'{:x}'.format(11)

'{:#x}'.format(11)

'{:#X}'.format(11)

1011

11

13

b

0xb

0XB

进制

^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。

+ 表示在正数前显示 +,负数前显示 -;  (空格)表示在正数前加空格

b、d、o、x 分别是二进制、十进制、八进制、十六进制。

此外,我们可以使用大括号 {} 来转义大括号,如下实例:

print ("{} 对应的位置是 {{0}}".format("runoob"))

特别的,字符串在Python中是一个不可变的对象。format方法的本质是创建了一个新的字符串作为返回值,而原字符串是不变的。而这即浪费了空间,也浪费了时间。而在python3.6引入的格式串可以有效解决这个问题。

第三种方法:格式串

 
year = 2000

month = 10

date = 27

temp = 26.7

str1 = f'今天是{year}年, {month}月, {date}'

str2 = f'今天的气温为{temp:2.2f}摄氏度'


print(str1)

print(str2)
 
# 字符串嵌套表达式

a = 1.5

b = 2.5

str1 = f'a + b = {a + b}'



# 字符串排版:^表示是居中,数字是宽度

str2 = f'a:{a:^10}, b:{b:^10}.'



# 指定位数和精度

# 这种新格式化方法可以嵌套使用{}

PI = 3.141926535

precision = 5

str3 = f'PI:{PI:08.{precision}}.'



# 进制转换

str4 = f'int:31, hex:{31:x}, oct:{31:o}'



print(str1)

print(str2)

print(str3)

print(str4)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值