码迷,mamicode.com
首页 > 编程语言 > 详细

Python之字符串

时间:2018-03-02 23:55:56      阅读:371      评论:0      收藏:0      [点我收藏+]

标签:title   ndt   数据   找不到   ogr   replace   cas   就是   完全   

  Python之字符串

  

string(字符串)6个基本操作,joinsplitfind

stripupperlower

字符串一旦创建,不可修改,一但修改或者拼接,都会造成重新生成字符串

a:引号引起来的,就是字符串。

eg: name = “George”

      name = ‘George’

      name = “““George”””

      name = ‘’’George’’’

 

b:加法

eg: n1 = “wang”

      n2 = “George”

      n3 = n1 + n2

 

c:乘法

egn1 = “George”

        n2 = n1 * 10

        print(n2) ===>结果是George打印十次

 

dinput接收的是字符串类型。

 

e:字符和子字符串,子序列

egname = “George”

“George” 字符串

“G”          字符

“Geo”      子字符串,子序列

 

******fupper方法,转大写,isupper()方法判断是否是大写。

egtest = “Alex”

v1 = test.isupper()

v2 = test.upper()

print(v1,v2)

结果,v1是布尔值,v2是大写

 

gcapitalize方法,首字母大写

egtest = “tesla”

v = test.capitalize()

print( v )

 

hcasefold   lower  方法,变小写

egtest = “TesLa”

v1 = test.casefold( )

v2 = test.lower( )

print( v1 )

print( v2 )

 

icenter( ) 方法,ljust()方法,rjust()方法,zfill()方

法,使内容居中,括号中可以加参数。设置宽度。也可以设

置以什么来填充。rL是左右对齐。

egtest = “George”

v = test.center( 20,” * ” )

printv

结果是打印一个占有20个字符宽度的内容,

George居中,左右填充上 “ * ” “ * ” 的位置可

以不填,使其空白,填的话,只能填一个字符。

egtest = “George”

v1 = test.ljust(“#”)

v2 = test.rjust(“%”)

v3 = test.zfill(20)

print(v1)

print(v2)

printv3

 

jcount()方法是去字符串中,寻找子序列出现的个数。

()括号中的参数有子序列,开始查询的

位置,和结束的位置。

egtest = “George”

v = test.count( “ge”, 0,5 )

print( v )

意思是ge子序列在test字符串中,共有几个,从0

的位置开始找,找到第5位,停止。开始和结束的

位置可以不写,不写就就从头找到尾。

 

 

 

kencode()方法

 

 

Ldecode()方法

 

 

mendswith( ) 方法,以什么结尾。

eg: test = “George”

      v = test.endswith(“ge”)

      print( v )

结果是布尔值,true

 

nstartswith()方法,以什么开头。

eg: test = “George”

      v = test.startswith(“Ge”)

      print( v )

结果是布尔值,true

 

oexpandtabs()方法,6个字符一组,检查是否有tab

键,有tab键的,断开6个字符。如果一组

没有tab键,就继续找下一组,如果在一组

中,有tab键,就从“\t”标志前一个开始算空

格。

egtest = “1234578\t9”

v = test.expandtabs( 6 )

print( v, len( v ) )

结果:123456为一组,78”四个空格位“9一组,

expandtab的参数是6个一组,参数可以自定义,

也就是说6个一组,有tab的组用tab补位。

 

******pfind( ) 方法,寻找。从前往后找,找到第一个,获取其索

引值。后面的就不找了

egtest = “george”

v = test.find( “ge”56 )

print( v )

意思:56的意思是开始点和结束点。但是56

是开区间,取头不取尾。

 

qformat()方法,格式化,将一个字符串中的占位符替换

成指定的值。他是按照替换的出现顺序,进行替

换的。

egtest = “I am { name }age { a }”

print( test ) 

v = test.format( name=“george”a=25 )

print( v )

结果是i am Georgeformat方法将George赋予

name25赋予a

 

rformat_map()方法,格式化,和format一样,只不过替

换的形似是字典。

egtest = “I am { name }age { a }”

print( test ) 

v1 = test.format( name=“george”a=25 )

v2 = test.format( {“name”:“wang”,“a”“:25”} )

print( v1 )

print( v2 )

结果是i am Georgeformat方法将George赋予

name25赋予a

 

sindex( )方法。索引值index找不到就报错。

egtest = “George”

v = test.index(“ge”)

print(v)

结果是ge的索引值。

 

tisalnum( )方法,判断字符串中是否只包含字母和数字。

eg: test = “george123”

v = test.isalnum( )

print( v )

结果是布尔值,truefalsev是字母和数字,

so,是true,如果有除字母或数字以外的,结果

就是false

uisalpha()方法,判断字符串是否是字母,汉字。

 

egtest = “george”

v = test.isalpha()

printv

结果是布尔值,如果字符串是全字母或汉字,

true,否则就false

visdecimal()方法和isdigit()方法,isnumeric()。

判断是否是数字,isdigit是判断十进制的,功能上比

isdecimal全。isnumeric( )更全。但都有各自的单独的

用法。

egtest = “123”

v1 = test.isdecimal()

v2 = test.isdigit()

v3 = test.isnumeric( )

printv1

print  ( v2 )

print ( v3 )

egtest = “

v1 = test.isdecimal()

v2 = test.isdigit()

v3 = test.isnumeric( )

printv1

print  ( v2 )

printv3

 

w:字母、数字、下划线:为标识符 def class

eg: a = “def”

v = a.isidentifier()

printv

结果是布尔值true,或false

 

xswapcase()方法,大小写转换

eg test = “georGe”

v = test.swapcase()

print(v)

 

y:正则表达式,是否想要分割的元素

egtest = “geography”

v = test.split( “e” ,2 )

print(v)

 

zsplitlines()方法分割,只能根据,truefalse:是否保

留换行

egtest = “asdfsdf\ndfdfdsfdff\nfgfdgfgfdg”

v = test.splitlines(false) #显示\n

v2 = test.splitlines(true) #不显示\n

print(v)

print(v2)

 

******aaislower()方法,判断是否是小写,lower()方法。转

换成小写。

egtest = “Alex”

v1 = test.islower()

v2 = test.lower()

print(v1,v2)

结果,v1是布尔值,v2是小写

 

abisprinttable()方法,是否存在不可显示的字符

\t   是制表符      \n    是换行符

egtest = “dfdadf\tdfasd”

v = test.isprinttable()

print(v)

结果是布尔值。

 

acisspace()方法。判断是否全部是空格

egtest = “   ”

v = test.isspace()

printv

结果是布尔值

 

adtitle()方法。将字母转大写

egtest = “george”

v = test.title()

print(v)

结果,将首字母g转大写G

 

aeistitle()方法。判断是否是标题

egtest = “Rewrite True if all Casdgf”

v1 = test.istitle( )

print(v1)

v2 = test.tiltle( )

print( )

v3 = v2.istitle()

print(v3)

******afjoin( )方法。将字符串中的每个元素按照指定的分隔符进

行拼接。

egtest = “你是风儿我是沙

printtest

t = “  ”

v = t.join(test)

print(v)

结果,每个字中间加一个空格。t就是空格。也可

以是别的任意东西。

 

******agstrip()方法。去空白。去除\t ,\n ,移除指定字符串,

有限最多匹配。

egtest = “ alex ”

v1 = test.lstrip(“ 可填写左边要去除的东西”)

v2 = test.rstrip(“ 可填写左边要去除的东西”)

v3 = test.strip()

print(v1)

print(v2)

print(v3)

 

 

ahmaketrans()方法和translate()方法。 Maketrans

()是将数据替换成另一组数据,translate()方法就是结

maketrans方法将被替换的数据进行翻译。

egv = “adfsdfsdfsdfsdfasdfasd”

m = str.maketrans(“adfadsfadf”.“1234567890”)

new_v = v.translate(m)

print(new_v)

 

 

 

******ai:字符串分割,partitionrpartitonsplitrsplit

eg test = “dfadfsdfasfdf”

v1 = test.partiton(“s”)   #s进行分割,但只能分

三份,在第一个s

就分完就不分了

v2 = test.rpartition(“s”) #和上面的一样,只是从

右边开始。

v3 = test.split(“s”,2) #可以指定分割几次,但是分

割的元素是拿不到的。不

写次数的话,就全部分割。

v4 = test.rsplit(“s”) #和上面一样,就是从右边开

始。

 

 

ajstartswith()方法。endswith()方法。以什么开头,

以什么结尾。

egtest = “adfasdf 1.1.1.1”

v = test.startswith(“a”)

v2 = test.endswith(“a”)

print(vv2)

结果是布尔值

 

 

 

 

ah:索引获取下标。

egtest = “George”

v = test[ “参数是下标索引值,返回的结果是对应

的数据”]

#获取字符串中的某一个字符。

 

###切片###

v2 = test[ 0:2 ]

v3 = test[ 0:-1 ]

#拿取索引范围,02,前取后不取,就是拿Ge

#v3是拿到倒数第一个,但前取后不取,就是

#Georg

print(v)

printv2

printv3

 

ailen()方法,检测字符串的长度。 有多少个字符。

egtest = “george”

v = lentest

printv

注意:在py3中拿字符

py2中拿字节,一个中文字符三个字节。

py3for循环len是字符。在py2for循环len是字节

 

ajreplace()方法。替换。

egtest = “adfdfafafasfdfasdf”

v = test.replace(“ad” , “66666”)

#ad都换成666666

v2= test.replace(“ad” , “66666”1)

#只替换第一个出现的ad,数字1是指替换前几个

printv2

 

 

Python字符串操作:

 字符串

转义符号

s=‘Let\‘s go‘

 

print(r"\fsdghlfjdk.")

 

字符串的格式化输出

%s:字符串  %d:整型  %f:浮点型

 print("hello %s,%s"%("sb","egon"))

 print("hello %s, his age is %d"%("sb",35))

 print("hello %s, his age is %.4f"%("sb",35.53452345))

 print("hello {0}, his age is {1}".format("alex",34))

 print("hello {0}, his age is {1}".format(34,"alex"))  

 print("hello {name}, his age is {age}".format(age=30,name="wusir")) 

 print("hello {name}, his age is {age}".format_map({"name":"egon","age":1000})) 

 print("".isdecimal())

 print("".isdigit())

 print("".isnumeric())

 print("hello world".capitalize())

 print("hello world".title())

 print("HELLO world".casefold())

 print("HELLO world".lower())

 print("HELLO\tworld")

 print("HELLO world".expandtabs())

 "HELLO world".rsplit()

 print("HELLO\n wor\nld\n".splitlines())

 print("HELLO\n wor\nld\n".split("\n"))

print("HELLo world".zfill(10))

 

  操作的主要方法:

    拼接:拼接次数多用“+”号效率不高。推荐用join方法。 

        # s="hello"+"world"+"I"+"am"+"python"

        # print(s)

        # print(" ".join(["I","am","world!"]))

 

    string

    分割split():括号中的参数是用什么来分割开字符串。 

        # s="hello world".split("l",1)     

        # ["he","lo world"]

        # print(s)

 

    strip()  把字符串开头和结尾的空格及\n   ()中可以加去除的条件,比如是“*”

      s=“   hello\nworld\n”

      s1="  hello\nworld\n".strip()

      s2="  hello\nworld\n****".strip("*")

      print(s)

      print(s1)

      print(s2)

    center:居中显示

 

        # print("hello world".center(50,"*")) 居中对齐

 

        # print("hello world".ljust(50,"*")) 左对齐

    count

    find:查找字符

      # print("hello world".find("a",4))

         # print("hello world".rfind("l"))

         # print("hello world".index("e"))   index方法没有找到对应的索引值会报错。

 

    lower

    casefold

    upper

    join

    split

    endwith

    startwith

    replace:替换

      完全匹配:print(“hello world”.replace("world","python"))

 

    index

  name = "george\tgeorge"

  name2 = "GEORGE"

  name3 = "my name is {0} , i am {1} year old"

  name4 = "my name is {name} , i am {age} year old"

     print(name.capitalize())   #首字母大写

       print(name2.casefold()) #大写变小写 if choice == "Y" or choice == "y"

       print(name.center(50,‘*‘))    长度为多少,不过填充*

     print(name.count(‘e‘,2,5))    统计字符出现的次数。数字的意思是从第几位开始统计到哪里,是个区间。    

      print(name4.ljust(50,"-"))   左对齐,宽度为50 ,不足补齐补“-”。

 

      print(name4.rjust(50,"\"))右对齐,道理和左对齐一样。

 

     print(name.endswith("e"))    以什么结尾

     print(name.expandtabs(3))   #设置\t的长度

       print(name.find("e",3)) #返回找的的第一个值的索引,找不到就返回-1

         print(name3.format("Alex",22))

         print(name4.format(name="george",age=25)) #格式化输出

 

       print(name4.format_map({‘name‘:‘Alex‘,‘age‘:23}))    也可以传字典进去。

     print(name4.index("is"))   返回is的索引值。

 

  join使用:把列表拼接成字符串,将字符串用任意指定的字符隔开。

    print( "\\\\\".join(["george","jack","rain"]) )

 

    

 

    print(name4.lstrip("My name"))   移除左边的元素,“my name”。   默认是换行和空格。

      print(name4.swapcase()) #大小写互换

   

  翻译:

    IN = "abcde"        输入的内容

    OUT = "!@#$%"  输出的内容

      

        in和out 就是翻译表,in中的元素对应翻译成out中的元素,是索引值相对应。

    trans_table = str.maketrans(IN,OUT) #translate =翻译         

    print(name4.translate(trans_table))  #字符翻译   一一对应后,将字符串做一个转换。

 

 

    print(name4.zfill(50))   

    print(name4.replace(‘name‘,‘NAME‘,1))    替换,将原来的值,替换成新的值,数字的意思是替换几次。

        

 

        # s="hello world"

 

        # print(s.replace("world","Python"))

 

        # print(s)

 

 

 

 

    print(name4.lower())   大写变小写

    print(name4.rfind(‘e‘))   从右边开始查找,返回右边的的一个对应元素的索引值。

 

      print(‘aA‘.isalpha()) #是不是字母

      print(‘-a‘.isidentifier())  #identifier 关键字 ,是不是合法的关键字,是不是合法的变量名

      print(‘A‘.islower())     是不是小写

      print(‘A‘.isupper())  是不是大写

        print(‘123.3‘.isnumeric())  纯数字返回true,否则返false 

        print(‘a‘.isprintable())   可否打印

      print(‘ ‘.isspace())   是不是空格

        print(‘Today Headline‘.istitle()) #是不是英文标题

    print(‘a1a‘.isalnum())    #a-z   A-Z   0-9

    print("12342342".isdecimal())    # 是不是一个正整数

Python之字符串

标签:title   ndt   数据   找不到   ogr   replace   cas   就是   完全   

原文地址:https://www.cnblogs.com/george92/p/8495336.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!