Python 字符串

Python  字符串

字符串是Python中最常用的数据类型,使用单引号(‘ ’)或双引号(“ ”)创建字符串,
字符串的创建很简单,给变量分配一个值即可:
Var1="Hello World"

Var2='Runoob'

Python  转义字符

在需要在字符串中使用特殊字符是,Python用反斜杠(\)转义字符。
转义字符:       描述:
\ (在行尾时)  续行符
\\                     反斜杠符号(将转义符不作用,但是显示转义符)  
\'                     单引号
\''                    双引号
\a                    响铃(当我们在标准输出设备输出字符'\a'时,系统自带的扬声器(或蜂鸣器)会发出“叮”的一声)  
\b                    退格(Backspace)
\e                    转义
\000                空
\n                    换行
\v                    纵向制表符(空格)
\t                    横向制表符(空格)
\r                    回车
\f                    换页
\oyy               八进制数,yy代表的字符,例如:\o12代表换行
\xyy               十六进制 ,yy代表的字符,例如:\x0a代表换行
\other            其他字符以普通格式输出



Python  拼接(截取)

python中访问字符串,使用方括号[ ] 来截取字符串(根据字符串的下标,下标从0开始)
例如:
var1 = 'Hello World'
var2 = "Runoob"

print ("var1[0]:",var1[0])#截取下标为0的 字符
#输出结果为:var1[0]: H
print ("var2[1:5]:",var2[1:5])#截取下标在1-5的字符,但不包括最后一位
#输出结果为:var2[1:5]: unoo

在字符串中截取字符串的一部分并与其它字符串拼接,获取字符串的方法中有如下:
#截取字符串
#str="1432682635@qq.com"
#获取单个字符串   下标(从0开始)
# print("第一个字符:"+str[0]);
# print(len(str));#字符总长度
# print("最后一个字符:"+str[16]);
# print("最后一个字符:"+str[len(str)-1]);
# print("最后一个字符:"+str[-1]);
切片方法:
#切片方法 []  [:]  [: :]
#str="5726758635@qq.com"
# #mystr[1:5]截取1-4下标的字符串;
# print(str[:5]); #从0(0可以不写)开始到结束;不包含最后一位下标
# print(str[:]);  #不写表示所有
# print(str[5:]); #丛几开始到结束
# 从后往前;
# print(str[-5:0]);#从-5开始到结尾
# print(str[-5:-2]);#从-5开始到结尾  不包含最后一位

#其中最后一个参数代表步长;(最后一位也可为负数(往后走))
# print(str[::2]);#不写表示所有,2代表步长,每隔两位来一个
# 从后往前  -1-1-1-1-1;一个一个往后走
# print(str[-1:-5:-1]);
# print(str[-1: :-1]);  #倒叙
# print(str[::-1]);     #倒叙

Python  字符串运算符

下实例中 a 值的变量为字符串“Hello”,b 值的变量为字符串“Python”

“   ”:字符串的连接  ;    a+b 输出结果:HelloPython
“  *  ”:重复输出字符串(相当于乘号);    a*2的输出结果为:HelloHello
“ [  ]  ":通过索引值(下标)获取字符串中得字符;    a[2]输出结果为:e
“ [ : ] ”:截取字符串中得一部分;    a[ 1: 4 ]输出结果为:ell
“ in ”  :成员运算符--如果字符串中包含给定的字符范湖Ture(或者1);    H  in  a 输出结果 :1
“ not in ”:成员运算符--如果字符串不包含给定的字符串返回Ture;    M not in a 输出结果为:1
 “ r / R”:原始字符串--让所有的转义值不作用于字符串
 “ % ”:在复杂的表达式中,用最基本的用法将一个值插入到一个有字符串格式符%s 的地方去                                     

以上实例:

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 中")
print('-------------')
print(a,'\n',b)

print(a,r'\n',b)
print(a,R'\n',b)

输出结果为:

a + b 输出结果: Hello Python
a * 2 输出结果: Hello Hello 
a[1] 输出结果: e
a[1:4] 输出结果: ell
H 在变量 a 中
M 不在变量 a 中
-------------
Hello  
 Python
Hello  \n Python
Hello  \n Python

Python  字符串格式化

python 中支持格式化的输出。尽管这样我、肯会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符的%s的字符串中,
例如:
#/usr/bin/python03

print ("我叫 %s 今年 %d 岁!"%('Tom',17))
#输出结果为:
#我叫 Tom 今年 17 岁!
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三引号允许一个字符串跨越多行,字符串中可以包括换行符(\n),制表符(\t空格)等其他特殊字符,
实例如下:
para_str ='''这是一个多行字符串的实例,
多行字符串可以使用制表符
(空'\t'格).
也可以使用换行符[这是'\n'换行符]

'''
print (para_str)

#输出结果为:

这是一个多行字符串的实例,
多行字符串可以使用制表符
(空'	'格).
也可以使用换行符[这是'
'换行符]

Python  中(Unicode字符串)

在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。
使用语法是在字符串前面加上前缀u,
在Python中 ,所有字符串都是Unicode字符串

Python  的字符串内建函数

python 中的字符串常用的内建函数如下:


  • Mystr=”hello”

    Len(mystr)字符串的长度

    count(sub,start=0,end=len(string)):mystr.count(“o”)返回有几个字符,如果指定范围(beg或者end)则返回制定范围内str出现的次数

    Capitalize():mystr.capitalize()将字符串的第一个字符转换为大写(单词组的第一个字母)

    Title():将每一个单词的首字母大写;每个单词的首字母

    Find(str,beg=0,end=len(string)):mystr.find(“l”)找字符串,返回找到的字符串的下标 范围beg=0,end之间

    Rfind(str,beg=0,end=len(string))从右边开始找beg-end指定的一个范围

    Index():和find()一样,找存在的下标,如果包含子字符串返回开始的索引值,否则发出异常

    Rindex():从右边开始找

    Find()vs index():如果找不到,index()产生异常,find()则返回-1

    Replace():mystr.replace(“ll”,”LL”),但是原字符串不会被改变

     

    Split(str=””,num=string.count(str)):mystr.split(“”):如果split()什么都不写,就是通过\t和空格进行拆分,num=分割几次

      Startswith():以xx结尾  返回bool类型

    Lower():

    Upper():忽略大小写的地方  全部转换为大写  小写

    Ljust(int num,str=””),rjust(),center():字符串输出时怎样对齐,括号里面填大小 达到一个新高度 以什么填充

    Ljust()右对齐  往左填充

    Rjust()左对齐  往右填充

    Center()居中   左右填充

    去除空格

    Strip()去除两端空格,

    lstrip()去除右边空格,

    rstrip() 去除左边空格

     

     

    Partition():mystr.partition(“xxx”)以字符串为节点拆分返回头,分割符,尾三个部分  返回头,尾两个孔元素的3个元祖。

    ***

    Splitlines(bool keepends):按照换行符拆分,如果字符串中有“\n”,结果里是否去掉换行符(‘\r’,’\r\n’,’\n’,默认为false,不包含换行符,如果为true,则保留换行符

    Isalpha():判断字符串是否是全是字母/文字(汉字)非特殊字符(符号)  返回bool类型

    Isalnum():判断字符串是否是数字/字母/文字(汉字)非特殊字符(符号)   返回bool类型

    Isdigit():判断字符串是否全是数字    返回bool类型

     

    Join(sequence):将列表组成新的字符串,mystr.join(“”)sequence要拼接列表 mystr链接项



笔记:

字符串截取的补充:
# 0 , a,b为参数,从字符串指针为a 的地方开始截取字符,到b 的前一个位置(因为不包含b)
var1 ="hello world"
print(var1[3:7]);
#输出结果为:
#lo w

#1,如果a,b均不填写,则默认去全部的字符,即下面打印都一样:
print(var1[: ])
print(var1)
#输出结果为:
# hello world
# hello world

#2,如果a 填写, b 不写,(或者填写的值比总值大),则默认从a 开始截取,到字符串的最后一位:
print(var1[3: ])
#输出结果为:
#lo world

#3,如果a 不填写,b 填写,默认从0位置开始截取,至b 的前一个位置
print(var1[ :8])
#输出结果为:
# hello wo

#4,如果a 为负数,则从尾部指定的位子,开始向后截取
print(var1[-4: ])
#输出结果为:
# orld

#5,如果a>=b,默认输出为空
print(var1[14:4])
------------------------------------------------------------------------------------------

Python中,字符串格式符号%f 可以指定小数点后的精度:

num=14.23434
print('%.3f'%num )
#输出结果为:14.234
------------------------------------------------------------------------------------------
字符串的截取补充:
[ : :2]  表示的是从头到尾,步长为2,第一个冒号的两侧的数字是指截取字符串的范围,第二个冒号后面是指截取的步长。
a=['h','e','l','l','o','p','y','t','h','o','n']
print (a[::3])
#输出结果为:['h', 'l', 'y', 'o']
使用负数从字符串的右边末尾向左边反索引时,最右侧的索引值是 -1:
str="runoor"
print (str[-4:5])
#输出结果为:noo
--------------------------------------------------------------------------------------------

字符串的分割还有partition()这种方式,
partition(sep)  -->   (head,sep,tail)
从左边像右边遇到分隔符把字符串分割成两部分,返回头(head),分割符(sep),尾部(tail)三部分的三元组,如果没有找到分隔符,就返回头,尾两个空元素的三元组

s1="Im a good sutdent."
#以‘good’为分割符,返回头,分割符,尾三部分
s2=s1.partition('good')
#没有找到分割符‘abc’,返回头,尾两个空元组
s3=s1.partition('abc')

print(s1)
print(s2)
print(s3)
#输出结果为:
Im a good sutdent.
('Im a ', 'good', ' sutdent.')
('Im a good sutdent.', '', '')



















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值