Python字符串

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.1字符串介绍
5.1.1 什么是字符串
在Python中,字符串属于不可变有序序列,使用单引号、双引号、三单引号或三双引号作为定界符, 并且不同的定界符之间可以互相嵌套。下面几种都是合法的Python字符串:
'abc'、'123'、'中国'、"Python"、'''Tom said,"Let's go"'''。
括号及其里面的字符 (称作格式化字段) 将会被 format() 中的参数替换。 在括号中的数字用于指向传入对象在 format() 中的位置,如下所示:
>>> print('{0} 和 {1}'.format('Google', 'Runoob')) Google 和 Runoob >>> print('{1} 和 {0}'.format('Google', 'Runoob')) Runoob 和 Google
'Python程序设计开发宝典'.encode('cp936').decode('utf8') UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 6: invalid start byte
5.1字符串介绍
Python 3.x完全支持中文字符,默认使 用UTF8编码格式,无论是一个数字、英文
以上实例执行结果为: 这是一个多行字符串的实例 多行字符串可以使用制表符TAB ( )。 也可以使用换行符 [ ]。
5.2字符串的输出和输入
三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的 WYSIWYG(所见即所得)格式的。
最早的字符串编码是美国标准信息交换码 ASCII,仅对10个数字、26个大写英文字母、26个 小写英文字母及一些其他符号进行了编码。ASCII 码采用1个字节来对字符进行编码,最多只能表示 256个符号。
不同编码格式之间相差很大,采用不同的编码格式意味着不同的表示和存储形式,把同一字符存入文件时, 写入的内容可能会不同,在试图理解其内容时必须了解编码规则并进行正确的解码。如果解码方法不正确就无 法还原信息,从这个角度来讲,字符串编码也具有加密的效果。
'Python可以这样学'.encode('utf8').decode('cp936') UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 8: illegal multibyte sequence >>> 'Python程序设计开发宝典'.encode('cp936').decode('utf8') Traceback (most recent call last): File "<pyshell#64>", line 1, in <module>
%g
%f和%e的简写
%G
%f 和 %E 的简写
%p
用十六进制数格式化变量的地址
5.2字符串的输出和输入
格式化操作符辅助指令:
符号 * + <sp> #
0 % (var) m.n.
功能 定义宽度或者小数点精度 用做左对齐 在正数前面显示加号( + ) 在正数前面显示空格 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者 '0X'(取决于用的是'x'还是'X') 显示的数字前面填充'0'而不是默认的空格 '%%'输出一个单一的'%' 映射变量(字典参数) m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。实例如下
5.2字符串的输出和输入
实例(Python 3.0+) #!/usr/bin/python3 para_str = """这是一个多行字符串的实例 多行字符串可以使用制表符 TAB ( \t )。 也可以使用换行符 [ \n ]。 """ print (para_str)
>>> print(姓名)
#输出变量的值
张三
5.1字符串介绍
Python扩展库chardet可以用来检测字节串所采用的编码格式,并提供一个可信度以供参考(有时候可能不准 确),常用来判断文本文件的编码格式。
>>> x = '董付国'.encode() >>> chardet.detect(x) {'confidence': 0.87625, 'encoding': 'utf-8'} >>> x = '董付国'.encode('gbk') >>> chardet.detect(x) {'confidence': 0.73, 'encoding': 'windows-1252'} >>> x = '董付国'.encode('cp936') >>> chardet.detect(x) {'confidence': 0.73, 'encoding': 'windows-1252'}
第5章 字符串
案例导入
小周通过前面的学习,已经了解了python的基本语法和常用语句,实现了简单的数学计算,接下来他想尝试使 用python进行文字的处理,实现查找等功能,并能够规范的输出。要想实现这个功能,必须掌握本章的知识。
如果你是小周,请问:
1、程序如何实现字符串的输入? 2、如何让程序运行,查找到满足要求的字符串? Python支持不同编码的字符串,字符串的格式化输出能让输出更规范,字符串内建函数功能强大。本章主要学 习python的字符串的输入输出以及字符串内建函数的使用。
如果在 format() 中使用了关键字参数, 那么它们的值会指向使用该名字的参数。 >>> print('{name}网址: {site}'.format(name='菜鸟教程', site='www.runoob.com')) 菜鸟教程网址: www.runoob.com
位置及关键字参数可以任意的结合: >>> print('站点列表 {0}, {1}, 和 {other}。'.format('Google', 'Runoob', other='Taobao')) 站点列表 Google, Runoob, 和 Taobao。
5.1字符串介绍
5.1.2 转义字符 在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。如下表:
转义字符
描述
\(在行尾时)
续行符
\\
反斜杠符号
\'
单引号
\"
双引号
\a
响铃
\b
退格(Backspace)
\e
转义
\000

\n
换行
\v
纵向制表符
\t
横向制表符
\r
回车
wenku.baidu.com\f
换页
\oyy
八进制数,yy代表的字符,例如:\o12代表换行
#两位十六进制数对应的字符
A
>>> print('我是\u8463\u4ed8\u56fd')#四位十六进制数表示Unicode字符
我是董付国
为了避免对字符串中的转义字符进行转义,可以使用原始字符串,在字符串前面加上字母r或R表示原始字符串,
其中的所有字符都表示原始的含义而不会进行任何转义。
>>> path = 'C:\Windows\notepad.exe'
5.1字符串介绍
举例如下:
>>> '董付国'.encode('utf8') b'\xe8\x91\xa3\xe4\xbb\x98\xe5\x9b\xbd' >>> '董付国'.encode('cp936') b'\xb6\xad\xb8\xb6\xb9\xfa' >>> '董付国'.encode('cp936').decode('cp936') '董付国' >>> 'Python可以这样学'.encode('utf8').decode('cp936') Traceback (most recent call last): File "<pyshell#63>", line 1, in <module>
>>> # repr() 函数可以转义字符串中的特殊字符 ... hello = 'hello, runoob\n'
>>> hellos = repr(hello)
>>> print(hellos)
'hello, runoob\n' >>> # repr() 的参数可以是 Python 的任何对象 ... repr((x, y, ('Google', 'Runoob')))
我叫 小明 今年 10 岁!
符号
描述
%c
格式化字符及其ASCII码
%s
格式化字符串
%d
格式化整数
%u
格式化无符号整型
%o
格式化无符号八进制数
%x
格式化无符号十六进制数
%X
格式化无符号十六进制数(大写)
%f
格式化浮点数字,可指定小数点后的精度
%e
用科学计数法格式化浮点数
%E
作用同%e,用科学计数法格式化浮点数
Python两种输出值的方式: 表达式语句和 print() 函数。 第三种方式是使用文件对象的 write() 方法,标准输出文件可以用 sys.stdout 引用。 如果你希望输出的形式更加多样,可以使用 str.format() 函数来格式化输出值。 如果你希望将输出的值转成字符串,可以使用 repr() 或 str() 函数来实现。 str(): 函数返回一个用户易读的表达形式。 repr(): 产生一个解释器易读的表达形式。
>>> print(path)
#字符\n被转义为换行符
C:\Windows
otepad.exe
>>> path = r'C:\Windows\notepad.exe' #原始字符串,任何字符都不转义
>>> print(path)
C:\Windows\notepad.exe
5.2字符串的输出和输入
5.2.1 字符串输出
5.2字符串的输出和输入
5.2.2 字符串输入 Python提供了 input() 内置函数从标准输入读入一行文本,默认的标准输入是键盘。 input 可以接收一个Python表达式作为输入,并将运算结果返回。 #!/usr/bin/python3 str = input("请输入:"); print ("你输入的内容是: ", str) 这会产生如下的对应着输入的结果: 请输入:菜鸟教程 你输入的内容是: 菜鸟教程
字母,还是一个汉字,在统计字符串长度 时都按一个字符对待和处理。举例如下:
>>> s = '中国山东烟台'
>>> len(s)
#字符串长度,或者包含的字符个数
6
>>> s = '中国山东烟台ABCDE'# 中文与英文同样对待,
算一个字符
>>> len(s)
11
>>> 姓名 = '张三'
#使用中文作为变量名
Python 支持格式化字符串的输出。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个 值插入到一个有字符串格式符 %s 的字符串中。
在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。
5.2字符串的输出和输入
实例(Python 3.0+) #!/usr/bin/python3 print ("我叫 %s 今年 %d 岁!" % ('小明', 10)) 以上实例输出结果:
"(32.5, 40000, ('Google', 'Runoob'))" str.format() 的基本使用如下: >>> print('{}网址: "{}!"'.format('菜鸟教程', 'www.runoob.com')) 菜鸟教程网址: "www.runoob.com!"
5.2字符串的输出和输入
例如:
>>> s = 'Hello, Runoob' >>> str(s) 'Hello, Runoob' >>> repr(s) "'Hello, Runoob'" >>> str(1/7) '0.14285714285714285' >>> x = 10 * 3.25 >>> y = 200 * 200 >>> s = 'x 的值为: ' + repr(x) + ', y 的值为:' + repr(y) + '...' >>> print(s) x 的值为: 32.5, y 的值为:40000...
\xyy
十六进制数,yy代表的字符,例如:\x0a代表换行
\other
其它的字符以普通格式输出
5.1字符串介绍
转义字符用法如下:
>>> print('Hello\nWorld') #包含转义字符的字符串
Hello
World
>>> print('\101')
#三位八进制数对应的字符
A
>>> print('\x41')
相关文档
最新文档