python字符串

字符串类型在Python中是最流行的。可以通过在引号包围的字符简单地创建它们。Python使用单引号和双引号来表示字符串是一样的。

创建字符串很简单,只要将值分配给一个变量。例如:

var1 = 'Hello World!'
var2 = "Python Programming"

访问字符串值:

Python不支持字符类型;这些都被视为一个长度的字符串,因此也被认为是一个子串。

要访问子字符串,用方括号随着指数或索引来获得子切片。下面是一个简单的例子:

#!/usr/bin/python

var1 = 'Hello World!'
var2 = "Python Programming"

print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]

当执行上面的代码中,产生以下结果:

var1[0]:  H
var2[1:5]:  ytho

更新字符串:

可以在“更新”现有的由(重新)分配一个变量赋值给另一个字符串的字符串。新的值可以与它以前的值或一个串完全不同。下面是一个简单的例子:

#!/usr/bin/python

var1 = 'Hello World!'

print "Updated String :- ", var1[:6] + 'Python'

当执行上面的代码中,产生以下结果:

Updated String :-  Hello Python

转义字符:

下表是未转义非打印字符的列表,可以用反斜线符号来表示。

转义字符被解释;在一个单引号和双引号字符串。

反斜线 
符号
十六进制
字符
描述
a 0x07 铃声或警报
0x08 退格键
cx
Control-x
C-x
Control-x
e 0x1b 转义
f 0x0c 换页
M-C-x
Meta-Control-x

0x0a 新一行
nn
八进制表示法,其中n的范围为0.7

0x0d 回车
s 0x20 空格

0x09 Tab键
v 0x0b 垂直制表
x
字符x
xnn
十六进制表示法,其中n的范围是从0.9,a.f,或AF

字符串特殊操作符:

假设字符串变量中保存'Hello'和变量b持有'Python':

操作符 描述 例子
+ 串联- 对操作符的两侧值增加 a + b 的值为 HelloPython
* 重复 - 创建新的字符串,链接相同的字符串的多个副本 a*2 的值为 -HelloHello
[] 切片- 从给定的索引字符指定 a[1] 的值为 e
[ : ] 范围切片 - 给定的范围内的字符 a[1:4] 的值为 ell
in 成员 - 如果一个字符存在给定的字符串中,则返回true H in a 结果值为 1
not in 成员 - 如果输入的字符不给定的字符串中不存在,则返回true M not in a 结果值为 1
r/R 原始字符串- 禁止转义字符的实际意义。语法原始字符串是完全一样的普通字符串,除了原始的字符串运算符,字母“r”,这之前的引号。在“r”可以小写(r)或大写字母(R)的,必须立即放置在第一引号前面。 print r'' 打印 并且 print R'' 打印 
% 格式 - 执行字符串格式化 请参阅下一节

字符串格式化操作:

Python最酷的功能是字符串格式运算符%。这种操作是唯一的字符串,弥补了C语言的printf()系列函数功能。下面是一个简单的例子:

#!/usr/bin/python

print "My name is %s and weight is %d kg!" % ('Zara', 21) 

当执行上面的代码中,产生以下结果:

My name is Zara and weight is 21 kg!

下面是完整的,它可以与%符号使用列表:

格式符号 转换
%c 字符
%s 通过str() 字符串转换来格式化
%i 有符号十进制整数
%d 有符号十进制整数
%u 无符号十进制整数
%o 八进制整数
%x 十六进制整数(小写字母)
%X 十六进制整数(大写字母)
%e 索引符号(小写'e')
%E 索引符号(大写“E”)
%f 浮点实数
%g %f和%e 的简写
%G %f和%E的简写

其他支持的符号和功能如下表:

符号 功能
* 参数指定宽度和精度
- 左对齐
+ 显示符号
<sp> 一个正数前留一个空格
# 添加前导零('0')或十六进制前导0x“或”0X“,取决于”x“或”X“是否使用八进制。
0 从键盘左边添加零(而不是空格)
% '%%'给留下一个文字'%'
(var) 映射变量(字典参数)
m.n. m是最小的总宽度和n是数字,显示小数点后的位数(如果appl)

三重引号:

Python三重引号允许字符串跨越多行,包括逐字换行符,制表符和其他特殊字符。

三重引号语法由三个连续的单引号或双引号。

#!/usr/bin/python

para_str = """this is a long string that is made up of
several lines and non-printable characters such as
TAB ( 	 ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [ 
 ], or just a NEWLINE within
the variable assignment will also show up.
"""
print para_str;

当执行上面的代码中,产生以下结果。请注意如何每一个特殊字符被转换到打印形式,一直到最后的换行符之间的字符串“up”结束闭三重引号。还要注意的是发生或者使用显式回车在一行或它的转义代码( n)的尾部的换行:

this is a long string that is made up of
several lines and non-printable characters such as
TAB (    ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [
 ], or just a NEWLINE within
the variable assignment will also show up.

原始字符串不把反斜杠作为一个特殊字符。把一个原始字符串的每个字符保持写的方式:

#!/usr/bin/python

print 'C:
owhere'

当执行上面的代码中,产生以下结果:

C:
owhere

现在利用原始的字符串。我们表达如下:

#!/usr/bin/python

print r'C:
owhere'

当执行上面的代码中,产生以下结果:

C:
owhere

Unicode字符串:

在Python普通字符串在内部存储为8位ASCII,而Unicode字符串被作为16位Unicode存储。这使得一组字符更加多样化,包括大多数语言在世界上的特殊字符。限制处理Unicode字符串,注意以下几点:

!/usr/bin/python

print u'Hello, world!'

当执行上面的代码,产生以下结果:

Hello, world!

正如你所看到的,Unicode字符串使用前缀 u,就像原始字符串使用前缀 r


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值