Python的字符串

Python的数据类型

  • 基本的数据类型
    整型 int
    浮点型 float
    复数类型 complex
  • 组合的数据类型
    字符串 str
    元组 tuple
    列表 list
    字典 dict
    集合 set

Python中的变量都是指针

Python中所有可赋值的东西,即可以出现在 赋值号“=”左边的东西,都是指针

  • 1.指针即代表内存单元的地址

  • 2.将指针称作“箭头",更容易理解。所有变量都是箭头,指向内存某处

  • 3.对变量进行赋值的本质,就是让该变量(箭头)指向某个地方

is运算符和==的区别

  • x is y 表示x和y是否指向同一个地方
  • == y表示x和y的内容是否相同
  • 对int , float, complex,str, tuple类型的变量a和b,只需关注a ==b是否成立,关注a isb是否成立无意义。 因这些数据本身都不会更改,不会产生a指向的东西改了b指向的东西也跟着变的情况
  • 对list, dict,set类型的变量a和b,a == b和a is b的结果都需要关注。因这些数据本身会改变。改别了a指向的内容,说不定b指向的内容也变了。
 a = [1,2,3,4]                   a —>[1,2,3,4]
 b = [1,2,3,4]                   b —>[1,2,3,4]
print( a == b) #>>True
print( a is b)  #>>False

字符串切片(子串)详解

字符串的切片(也叫子串,即连续的一部分)

a[x:y]表示字符串a里从下标x到下标y那一部分的子串(不包括下标y的那个字符)

a = "ABCD"
print (a[1:2] ) #>>B  区间是左闭右开,终点不算
print (a[0:- -1]) #>>ABC
print (a[-3:- 1] )#>>BC
print (a[2:])#>>CD   终点省略就是一直取到最后一个字符
print (a[:3])#>>ABC    起点省略就是从头开始取
print("abcd" [2:3])#>>c

a[x:y:z]表示,从a[x] 取到a[y] (a[y]不算),每z个字符取一个,最后拼起来。z为负数则代表倒着取
x, y可以省略。x, y全省略表示从头取到尾或从尾取到头

print ("1234"[3:1:-1]) #>>43 
print ("abcde"[: :-1]) #>> redcba   可用于反转字符串
print ("12345678"[1: 7:2]) #>>246
print ("12345678"[7:1:-2]) #>>864

注意:字符串切片的用法也适用于元组和列表 !

字符串的分割

字符串的split函数详解
s. split (x)
用字符串x做分隔符分割字符串s,得到分隔后的列表

两个相邻分隔符之间会被分隔出一个空串

a = "12. .34.5346. . .a"
print(a.split(".."))
#>> ['12', '34.5346',1.a']
print(a.split(".") )
#>> ['12'
.'34'
1 5346'
11
a']
print(a. split("34") )
#>> ['12.. ','.5','6.. .a']

字符串高级分割
➢用多个分隔串进行分割

import re
a = . . 'Beautiful, is; better* than \nugly '
print (re.split(' ;| |,|\*|\n' ,a))  #分隔串用|隔开]
';' ' ',' '*' '\n' 都被看作分隔串
#>> [ 'Beautiful' ,' ','!is','better ''than', 'ugly']

两个相邻的分隔串之间,会隔出一个空串

字符串函数

count() 求子串出现次数

s='thisAAbbAA'
s.count( 'AA' )
#返回2,AA出现2次

len() 字符串长度.

s='1234'
len(s)   #4

upper(), lower()转大写、小写

s=" abc"
print(s.upper () )
#>> ABC .
print(s)
#>> abc .

find(), rfind(), index(), rindex()
在字符串中查找子串,返回找到的位置(下标)。找不到的话,find
返回-1, index引发异常.

s="1234 abc567abc12 "
print(s. find("ab")) #>> 4 "ab"第-次出现在下标4
print(s. rfind("ab")) #>>10
#find从头开始找,rfind从尾巴开始找。返回第一个找到的位置

find 还可以指定查找起点

s="1234 abc567 abc12 "
print(s. find("12" ,4) )
#>>13指定从下标4处开始查找
try :
s. index ("afb") #找不到" afb"因此会产生异常
except Exception as e:
print(e) #>> substring not found

replace()替换

s="1234abc5 67abc12 "
b = s.replace("abc","FGHI") #b由把s里所有abc换成FGHI而得
print (b)
#>> 1234FGHI5 67FGHI12
print(s)
#>> 1234abc567abc12
print(s. replace ("abc", "")) #>> 123456712

isdigit(), islower(, isupper() 判断字符串是否是数,是否全是小写等
startswith, endswith判断字符串是否以某子串开头、结尾。

strip(s), lstrip(s), rstrip(s)
返回除去两端、左端、右端在s中出现的字符后的字符串

print ( "takeab \n" .strip("ba \n") )
#>>take
#去除两端'b', 'a','', '\n'
print ( "cd\t12 34 5" .lstrip("d\tc")) #>>12 34 5
#去除左端'd', '\t', 'c'

字符串格式化

x="He1lo {0} {1:10} ,you get ${2:0.4f}" . format ("Mr. ", "Jack" ,3.2)
print(x) #>> Hello Mr. Jack      ,you get $3.2000
x = "Hel1o {0} {1:>10} ,you get ${2:0.4f}" . format ("Mr." , "Jack" ,3.2)
print(x) #Hello Mr.      Jack,you get $3. 2000

{序号:宽度.精度类型} 宽度可以是0
>:右对齐
<:左对齐
^:中对齐
如{0:>10.4f} 表示第0项是小数,以宽度至少是10字符,右对齐(宽度不足时空格补在左边),保留小数点后面4位的方式输出。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员林戈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值