2020-07-10 字符串以及数字类型内置函数

1.用途:记录描述性质的状态,例如名字,性别,国籍等

2. 定义方式:在引号('',"",''' ''',""" """)内包含一串字符串

 s='hello'  #s=str('hello')

str功能可以把任意类型转换成str类型

 res=str([1,2,3]) #"[1,2,3]"

 print(type(res))

3.常用操作加内置方法

===========================》优先掌握

1.按索引取值(正向取,反向取):只能取 不能改

s='hello word'

print(s[0],type(s[0]))  #'h'

print(s[-1])

非法操作

s[1]='E'  #不能修改  会报错

s[222]

s[11]='A'

2.切片  (顾头不顾尾,步长)===》属于拷贝操作

s='hello word'

new_s=s[1:7]

print(new_s)

print(s)



new_s=s[1:7:2]  #1 3 5

print(new_s)

print(s)


new_s=s[:7:2]

new_s=[::2]    #0 2 4 6 8 10

print(new_s)  #h l o w r d

print(s)



new_s=s[::]  #完整拷贝,只留一个冒号就可以

print(new_s)

print(s)

s='hello word'

s1=s[1::-1]  # 不显示取值  会将所有的值都取完

print(s1)        # eh


print(len(s))

s2=s[9:7:-1]  #字符串长度为10 最后一个字符的索引为9

print(s2)    #d r

统计字符串的长度len

s='hello word'

print(len(s))



res=print('sfd')

print(res)#None

4.成员运算 in 和not  in

s='hello word'

print('hel' in s )

print('egon' not in s )#语义明确,推荐使用

print(not 'egon' in s )

5.移除空白strip()  碰到不属于strip()里面的字符停下来,默认()内是空格,再从右边开始

s='\n          hello      \t '

print(id(s))      #2171590232784

new_s=s.strip()

print(new_s)

print(id(s))    #2171590232784        没有改变原字符串

去除左右两边非空白字符

s='hh#$%^&*hello word^&'.strip('h#o$%worfde^&ll*')

print(s)    打印出来是空格

6.切分split:把字符串按照某个分隔符切成一个列表

userinfo='egonn123n18n3n1:'

res=userinfo.split('n')

print(res)

res='a'


res=res.split('a')

print(res)

纯字符串组成的列表 (把列表按照某个格式切分成一个字符串)

p=['11','22','33','44','55']

res=':'.join(p)

print(res)

print('a a a a a'.split('a'))




res='my name is {x}{x}{y} my age is {y}{y}'.format(x=name,y=age)

print(res)

======================>需要掌握的操作

1.strip,lstrip,rstrip

print('*****hello****'.strip("*"))

print('*****hello****'.rstrip("*"))  #去除右边的字符

print('*****hello****'.lstrip("*"))  #去除左边的字符

2.lower,upper

msg='FGfFgjhjhFGfG'

res=msg.lower()    #全部变小写

res1=msg.upper()  #全部变大写

print(res,res1)

res=msg.swapcase()  #大小写互相转换

print(res)

3.startswith,endswith  判断一个字符是否为另一个字符串的首位或者末尾

msg='zhikun is Dsb'

print(msg.startswith('sb'))

print(msg.startswith('zhi'))

print(msg.endswith('sb'))

4.format的三种玩法

4.1 %s的方式

name='egon'

age=18

res1='my name is %s my age is %s'%(name,age)

print(res1)

4.2 formate的方式

name='egon'

age=18

res1='my name is {} my age is {}'.format(name,age)        根据位置一一对应

res2='my name is {0}{0}{0} my age is {0}{0}{0}{0}{0}{1}'.format(name,age)  根据索引对应

res3='my name is {x} my age is {y}'.format(x=name,y=age)  根据变量名一一对应

print(res1,res2,res3)

4.3 f''

name='egon'

age=18

res1=f'my name is {name} my age is {age}'  在引号内的花括号可以直接引用变量名来实现格式化输出

print(res1)

了解:f搭配{}可以执行字符串中的代码

res=f'{len("hello")}'

print(res)

f'{len("hello")}'  相当于eval 都可以去运行字符串中的代码

res1=eval('len("hello")')

print(res1)

f包含的字符串可以放到多行

name='egon'

age=18

res1=f'my name is {name}' \

      f' my age is {age}'

print(res1)

在{}内不能有\以及#

print(f'my name is {{egon}}')  #想要打印后加上{} 可以再外面再套一个花括号,不能用转译符和#


print('胜率是%s%%' %70)    #想要打印百分比符号 需要在%后再加一个%取消前一个%的功能

5.split,rsplit

zhikun_dsb='zhikun:123:18'

print(zhikun_dsb.split(":"))    #以:为切割符 将字符串切割为字典 不指定切割次数 默认从左到右全部切割

print(zhikun_dsb.split(":",1))  #以:为切割符,指定从左到右切割一次

print(zhikun_dsb.rsplit(":",1))  #以:为切割符,指定从右到左切割一次

6.join  将纯字符串的列表按照某种格式拼接为一个大字符串,

如果join内为字符串,则会在字符串的每个子字符串后加入拼接的字符。

l=['zhukun_dsb','baobao_dsb','qiqi_dsb']

yangyang='='.join(l)

yangyang1='='.join('sdaweqr')

print(yangyang)

print(yangyang1)

 o=l[1]

y=l[2]

y=list(y)

print(y)

yangyang='>'.join('qiqi_dsb')#q>i>q>i>_>d>s>b

print(yangyang)

l=['zhukun_dsb']

 res='>'.join(l)

print(res)

name='egon'

age='18'

7.replace  指定将字符串中的子字符替换成新的子字符,产生了一个新的字符串。

msg = "***egon hello***"

res=msg.replace('*','').replace(' ','')

res=msg.strip('*').replace(' ','')

print(res)

s="lxx hahah wocale lxx sb 666"

res=s.replace('lxx','sb')

 res=s.replace('lxx','sb',1)

print(res)

print(s)

8.isdigit:判断字符串是否由纯数字组成

print("asdasdjsdkf54654".isdigit())    False

print('5454564546'.isdigit())          True


了解

1.find rfind index rindex count

1.1 find :从指定范围内查找子字符串的其实索引值,找到返回该数字的索引值,找不到返回数字-1

msg='tony say hello'

print(msg.find('m'))

print(msg.find('s'))

find还可以指定查找索引的范围

print(msg.find('s',0,5))  #找不到返回数字-1

print(msg.find('s',0,6))  #找不到返回数字5

1.2 index : 与find一样 功能都是查找子字符串在字符串中的索引值,但是找不到会报错,所以一般推荐用find

print(msg.index('s'))

print(msg.index('m'))

也可以指定查找范围

print(msg.index('s',0,6))

print(msg.index('s',0,5))

1.3 rfind rindex  作用是从右到左查找子字符串在字符串中的位置,输出结果与find index 结果相同

print(msg.rfind('s'))    # 5

print(msg.rindex('s'))    #5

1.4 count 作用是统计子字符串在字符串中出现的次数

msg='tony say hello'

print(msg.count('x'))  #0

print(msg.count('l'))  #2

print(msg.count('l',0,-1))  #也可以指定查找范围

2.center ljust rjust zfill

2.1  center  作用是指定字符串的打印长度,并且字符串居中显示,不够的可以用指定的字符填充

name='tony'

print(name.center(30,'*'))  #*************tony*************      总长度为30个字符

2.2 ljust 作用是指定字符串的打印长度,并且字符串左对齐,不够的用指定字符填充

print(name.ljust(20,'='))  #tony================ 总长度为20个字符

2.3 rjust 作用是指定字符串的打印长度,并且字符串右对齐,不够的用指定字符填充

print(name.rjust(10,'&'))  #&&&&&&tony  总长度为10字符

2.4 zfill  作用是指定字符串的打印长度,并且字符串右对齐,不够的用0填充

print(name.zfill(20))  # 0000000000000000tony  总长度为20

3.expandtabs  作用是修改制表符代表空格数  疑问:制表符代表多少空格

name1='hello\tword'

print(name1)    #'hello    word'

print(name1.expandtabs(1))  #hello word

4.capatalize swapcase  title

4.1 captalize 首字母大写

name='egoN read'

print(name.capitalize())  #Egon read

4.2 swapcase  作用是将字符串的大小写转换过来

print(name.swapcase())  #EGOn READ

4.3 title  每个单词的首字母大写

print(name.title())  #Egon Read

5.is 数字系列

在python3中

num1=b'4'

print(num1)    #bytes

num2=u'4'

print(num2)  #unicode,在python3中无需加u就是Unicode

num3='四' #中文数字

print(num3)

num4='Ⅷ' #罗马数字

print(num4)

num9='III'

print(num4==num9)   False

5.1 isdigit 判断字符串是否由纯数字组成

print(num1.isdigit())

print(num2.isdigit())

print(num3.isdigit())  #False

print(num4.isdigit())  #False

5.2  isdecimal判断字符串是否为Unicode类型bytes类型无isdecimal方法

print(num2.isdecimal())  #True

print(num3.isdecimal())  #False

print(num4.isdecimal())  #False

5.3 isnumberic 判断字符串是否为unicode 中文数字 罗马数字(百度教你打的罗马字符是错误的) (bytes类型无isnumberic方法)  

print(num2.isnumeric())  #True

print(num3.isnumeric())  #True

print(num4.isnumeric())  #False

三者都无法判断浮点型

num5='4.3'

print(num5.isdigit())

print(num5.isdecimal())

print(num5.isnumeric())

全部为False

总结:最常用的是isdigit,可以判断bytes和Unicode类型,这也是最常见的数字应用场景

如果要判断中文数字或罗马数字,则需要用到isnumeric。

6 is其他

name='tony123'

print(name.isalnum())    #字符串中既可以包含数字也可以包含字母

# True

print(name.isalpha())    #字符串是否只包含字母

# False

print(name.isidentifier())  #       ???

# True

print(name.islower())    #字符串是否为纯小写

print(name.isupper())    #字符串是否为纯大写

print(name.isspace())    #字符串是否全为空格

print(name.istitle())    #字符串中的单词首字母是否全为大写

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,919评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,567评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,316评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,294评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,318评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,245评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,120评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,964评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,376评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,592评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,764评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,460评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,070评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,697评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,846评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,819评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,665评论 2 354