首页 > 编程语言 >Python 字符串详解

Python 字符串详解

时间:2023-03-05 17:08:21浏览次数:41  
标签:返回 字符 string Python print 详解 str 字符串


Python访问字符串中的值:
Python访问子字符串,可以使用方括号来截取字符串,如下实例:

#!/usr/bin/python
#coding:UFT-8

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

print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
以上实例执行结果:
var1[0]: H
var2[1:5]: ytho

Python字符串更新 :
你可以对已存在的字符串进行修改,并赋值给另一个变量,如下实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

var1 = 'Hello World!'

print "更新字符串 :- ", var1[:6] + 'Runoob!'
以上实例执行结果
更新字符串 :- Hello Runoob!

Python转义字符:
在需要在字符中使用特殊字符时,python用反斜杠()转义字符。如下表:

转义字符        描述
\(在行尾时) 续行符
\\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000 空
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy代表的字符,例如:\o12代表换行
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出

Python字符串运算符:
下表实例变量a值为字符串”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"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
print r'\n' 输出 \n 和 print R'\n' 输出 \n
% 格式字符串 请看下一章节

实例如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

a = "Hello"
b = "Python"

print "a + b 输出结果:", a + b
print "a * 2 输出结果:", a * 2
print "a[1] 输出结果:", a[1]
print "a[1:4] 输出结果:", a[1:4]

if( "H" in a) :
print "H 在变量 a 中"
else :
print "H 不在变量 a 中"

if( "M" not in a) :
print "M 不在变量 a 中"
else :
print "M 在变量 a 中"
#字符串前加上r或R,编译器将不再将\看做特殊字符,当做原始字符编译
print r'\n'
print R'\n'

解释:
python的字串列表有2种取值顺序:
从左到右索引默认0开始的,最大范围是字符串长度少1
从右到左索引默认-1开始的,最大范围是字符串开头
如果你的实要取得一段子串的话,可以用到变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。
比如:
s = ‘ilovepython’
s[1:5]的结果是love。
当使用以冒号分隔的字符串,python返回一个新的对象,结果包含了以这对偏移标识的连续的内容,左边的开始是包含了下边界。
上面的结果包含了s[1]的值l,而取到的最大范围不包括上边界,就是s[5]的值p。
如下实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

str = 'Hello World!'

print str # 输出完整字符串
print str[0] # 输出字符串中的第一个字符
print str[2:5] # 输出字符串中第三个至第五个之间的字符串,操作: str[star:end:sep]
print str[2:] # 输出从第三个字符开始的字符串
print str * 2 # 输出字符串两次
print str + "TEST" # 输出连接的字符串

以上实例输出结果:
Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST

Python字符串格式化:
Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。
如下实例:

#!/usr/bin/python

print "My name is %s and weight is %d kg!" % ('Zara', 21) # 注意双引号后还要加一个%
以上实例输出结果:
My name is Zara and weight is 21 kg!

python字符串格式化符号:

符 号         描述
%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 是小数点后的位数(如果可用的话)

Python三引号:
如果需要写一个非常长的字符串,需要跨多行,则可以使用三个引号代替普通引号
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。

asd = '''fvdfskvfkljnbkbd
dfbsdbfdbfdbf
fdbdbfdbfdb
dfbdfbfdbfs'''
print asd

三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的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)
''')

Unicode 字符串:
Python 中定义一个 Unicode 字符串和定义一个普通字符串一样简单:

>>> u'Hello World !'
u'Hello World !'

引号前小写的”u”表示这里创建的是一个 Unicode 字符串。如果你想加入一个特殊字符,可以使用 Python 的 Unicode-Escape 编码。如下例所示:

>>> u'Hello\u0020World !'
u'Hello World !'

被替换的 \u0020 标识表示在给定位置插入编码值为 0x0020 的 Unicode 字符(空格符)。

python的字符串内建函数:

来源:​​http://www.runoob.com/python/python-strings.html​

#!/usr/bin/python
#coding:UFT-8

string = '2121ddqweq'

# 把字符串的第一个字符大写
string.capitalize()

#返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
string.center(width)

#返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
string.count(str, beg=0, end=len(string))

#以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 ,
#除 非 errors 指 定 的 是 'ignore' 或 者'replace'
string.decode(encoding='UTF-8', errors='strict')

#以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,
#除非 errors 指定的是'ignore'或者'replace'
string.encode(encoding='UTF-8', errors='strict')

#检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,
#返回 True,否则返回 False.
string.endswith(obj, beg=0, end=len(string))

#把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。
string.expandtabs(tabsize=8)

#检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,
#如果是返回开始的索引值,否则返回-1
string.find(str, beg=0, end=len(string))

#跟find()方法一样,检测 str 是否包含在 string 中,只不过如果str不在 string中会报一个异常.
string.index(str, beg=0, end=len(string))

#如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
string.isalnum()

#如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
string.isalpha()

#如果 string 只包含十进制数字则返回 True 否则返回 False.
string.isdecimal()

#如果 string 只包含数字则返回 True 否则返回 False.
string.isdigit()

#如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,
#则返回 True,否则返回 False
string.islower()

#如果 string 中只包含数字字符,则返回 True,否则返回 False
string.isnumeric()

#如果 string 中只包含空格,则返回 True,否则返回 False.
string.isspace()

#如果 string 是标题化的(见 title())则返回 True,否则返回 False
string.istitle()

#如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,
#则返回 True,否则返回 False
string.isupper()

#以 string 作为分隔符,将 seq(元素序列)中所有的元素合并为一个新的字符串
string.join(seq)

#返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
string.ljust(width)

#转换 string 中所有大写字符为小写.
string.lower()

#截掉 string 左边的空格
string.lstrip()

#maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,
#表示需要转换的字符,第二个参数也是字符串表示转换的目标。
string.maketrans(intab, outtab])

#返回字符串 str 中最大的字母。
max(str)

#返回字符串 str 中最小的字母。
min(str)

#有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成
# 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中
#不包含str 则 string_pre_str == string.
string.partition(str)

#把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.
string.replace(str1, str2, num=string.count(str1))

#类似于 find()函数,不过是从右边开始查找.
string.rfind(str, beg=0,end=len(string) )

#类似于 index(),不过是从右边开始.
string.rindex( str, beg=0,end=len(string))

#返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
string.rjust(width)

#类似于 partition()函数,不过是从右边开始查找.
string.rpartition(str)

#删除 string 字符串末尾的空格.
string.rstrip()

#以 str 为分隔符切片 string为字符串列表,如果 num有指定值,则仅分隔 num 个子字符串
string.split(str="", num=string.count(str))

#按照行分隔,返回一个包含各行作为元素的列表,如果 num 指定则仅切片 num 个行.
string.splitlines(num=string.count('\n'))

#检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,
#则在指定范围内检查.
string.startswith(obj, beg=0,end=len(string))

#在 string 上执行 lstrip()和 rstrip()
string.strip([obj])

#翻转 string 中的大小写
string.swapcase()

#返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
string.title()

#根据 str 给出的表(包含 256 个字符)转换 string 的字符,要过滤掉的字符放到 del 参数中
string.translate(str, del="")

#转换 string 中的小写字母为大写
string.upper()

#返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0
string.zfill(width)

#检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。
string.isdecimal()


标签:返回,字符,string,Python,print,详解,str,字符串
From: https://blog.51cto.com/sdwml/6101495

相关文章

  • Python 文件处理方法详解
    打开和关闭文件:open函数:打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。语法:fileobject=open(file_name[,access_mode][,buffering])#各个参数的细节......
  • Linux crontab使用详解
    crontab执行的命令文件等都要用绝对路径文件位置:位置一般在/var/spool/cron/下,如果你是root用户,那下面有个root文件,建议日常备份,避免误删除导致crontab文件丢失;常用命令......
  • Linux shell使用详解
    shell用于解释用户输入的命令,将命令解释为二进制代码,并将结果返回到命令终端上。语法:文件:xxx.sh#!/bin/bash#comments,命令注释具体命令...具体命令执行.sh文件方式:#......
  • python操作mysql
    1、mysql查询操作:#!/usr/bin/python#-*-coding:UTF-8-*-importMySQLdb#打开数据库连接db=MySQLdb.connect("localhost","root","111111","analysis2")#使用cursor......
  • python beautifulsoup 安装教程
    linux版:pipinstallbeautifulsoup4windows版:下载beautifulsoup安装包下载地址:​​​http://www.cr173.com/soft/109251.html​​​下载解压后,将文件夹放到C:/Pyth......
  • Linux awk命令详解
    awk命令作用:文本处理输出格式化的文本报表执行算数运算执行字符串操作运行系统命令等等AWK的程序结构:BEGIN语句块BEGIN语句块的语法BEGIN{awk-commands}BEGIN语句块在程序......
  • python装饰器
    装饰器本质上是一个Python函数(其实就是闭包),它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。装饰器用于有以下场景,比如:插......
  • 在线图书借阅网站( Python +Vue 实现)
    功能介绍平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。整个平台包括前台和后台两个部分。前台功能包括:首页、图书详情页、用户中心......
  • python 循环结构 for循环 输出1到100的数值
    """for循环语法:foriinrange(起点包含,终点不包含):要重复做的事情"""foriinrange(1,101):print(i)......
  • Java 类加载时机(动态、静态) 与 类加载过程 详解
    (目录)类加载动态加载和静态加载反射机制是java实现动态语言的关键,也就是通过反射实现类动态加载。静态加载:编译时加载相关的类,如果没有则报错,依赖性太强动态......