数据类型 -- String(字符串)

2019-01-01  本文已影响0人  __深蓝__

Python中字符串用单引号 ' 或双引号 " 括起来,使用反斜杠 \ 转义特殊字符。
Python不支持单字符类型,单个字符就是长度为1的字符串。
Python3中,所有的字符串都是Unicode字符串。

创建字符串
var1 = 'Hello World!'
var2 = "Neuedu"
使用字符串

说明:

  • 使用索引值可以访问字符串中的单个字符,索引值从0 ~ length-1,超出范围会报错。
  • 使用头下标和尾下标可以截取部分字符串,范围是头下标 ~ 尾下标-1,超出范围返回空串。
str = 'Neuedu'

>>> print (str)          # 所有字符串
Neuedu
>>> print (str[:])       # 所有字符串
Neuedu
>>> print (str[0])       # 第1个字符
N
>>> print (str[-1])       # 倒数第1个字符
u
>>> print (str[2:5])     # 第3个 ~ 第5个字符
ued
>>> print (str[2:])      # 第3个 ~ 所有字符
uedu
>>> print (str[:3])      # 第1个 ~ 第3个字符
Neu
>>> print (str[0:-1])    # 第1个 ~ 倒数第2个字符
Neued
>>> print (str[-1:-2])    # 空字符

>>> print (str[-4:-2])    # 倒数第4个 ~ 倒数第3个字符
ue
>>> print (str * 2)      # 字符串重复两次
NeueduNeuedu
>>> print (str + "TEST") # 连接字符串
NeueduTEST

使用反斜杠 \ 转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符串

>>> print('XXX\nYYY')
XXX
YYY
>>> print(r'XXX\nYYY')
XXX\nYYY
>>> 

注意:

  • 字符串不能改变,向一个索引位置赋值,比如str[2] = 'U'会导致错误
>>> str = 'Neuedu'
>>> str[2] = 'U'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
字符串运算符

a = 'Hello'       b = 'Python'

操作符 描述 实例
+ 字符串连接 a + b 输出结果: HelloPython
* 重复输出字符串 a*2 输出结果:HelloHello
in 成员运算符
字符串中包含给定的字符返回 True
'H' in a 输出结果 True
not in 成员运算符
字符串中不包含给定的字符返回 True
'M' not in a 输出结果 True
字符串格式化
print("格式串" % 变量1)
print("格式串" % (变量1, 变量2...))

带有占位符的字符串称为 格式串

占位符 替换内容
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
%e 科学计数法表示浮点数
%% 输出 %
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'

在占位符中使用数字限制位宽,位数不足时用空格(默认)或 0 进行填充

>>> "我的学号是 %06d" % 9527
'我的学号是 009527'
>>> "苹果单价 %.02f 元/斤" % 5.123
'苹果单价 5.12 元/斤'
>>> "购买 %.03f 斤" % 4.5
'购买 4.500 斤'
>>> "数据比例是 %.02f%%" % 10
'数据比例是 10.00%'
>>> "数据比例是 %5.2f" % 1.2345
'数据比例是  1.23'
>>> "数据比例是 %05.2f" % 1.2345
'数据比例是 01.23'

使用三引号 ''' 允许一个字符串跨行、包含换行符、制表符以及其他特殊字符。

>>> para_str = """这是一个多行字符串的实例
... 多行字符串可以使用制表符TAB ( \t )。
... 也可以使用换行符 [ \n ]。
... """
>>> print (para_str)

这是一个多行字符串的实例
多行字符串可以使用制表符TAB (    )。
也可以使用换行符 [
 ]。
  • 三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。
  • 一个典型的用例是,当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会非常的繁琐。
errHTML = '''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM>
</BODY></HTML>
'''
cursor.execute('''
CREATE TABLE users (  
login VARCHAR(8), 
uid INTEGER,
prid INTEGER)
''')
字符串内置函数
>>> len('abcdef')
6
>>> len('中文')
2
字符串对象方法
>>> 'abcdef'.upper()
'ABCDEF'
>>> 'ABCDEF'.lower()
'abcdef'
>>> '12345'.isdigit()
True

>>> '-'.join('abcde')
'a-b-c-d-e'

>>> "this is string example".split(' ')
['this', 'is', 'string', 'example']
字符编码
字符 ASCII Unicode UTF-8
A 01000001 00000000 01000001 01000001
x 01001110 00101101 11100100 10111000 10101101




- end -

上一篇 下一篇

猜你喜欢

热点阅读