zoukankan      html  css  js  c++  java
  • Python:基础数据类型--字符串

    基础数据类型:字符串

    字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。

    创建字符串很简单,只要为变量分配一个值即可。字符串为不可变类型

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

    python3中,字符前缀
      r'xxx' r/R:    非转义的原始字符串,以r开头的字符,常用于正则表达式,对应着re模块
      b'xxx' b:     BYTE字符串,可以使用encode('utf-8')转换为
      u'xxx' u/U:  表示unicode字符串,不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码。

    字符串:拼接

    使用'+'加号连接两个字符串,可将两个字符串拼接在一起

    s1 = 'foo'
    s2 = 'python'
    print(s1 + s2)
    字符串*数字,通过'*'信号连接,重复该字符串多少次
    print('坚强'*8)

    字符串:切片

    ‘[]’中括号,通过索引获取字符串中字符。第一个字符的索引为0

    s = 'alexwusirritian'
    s1 = s[0]
    print(s1)
    a
    s = 'alexwusirritian'
    s1 = s[-1]
    print(s1)
    n

    截取字符串中的一部分的方法为:s[起始索引:结束索引+1:步长],顾头不顾尾

    反向索引开始为-1,依次类推。

    s = 'alexwusirritian'
    s1 = s[0:4]
    print(s1)
    alex
    s = 'alexwusirritian'
    s1 = s[:4]         #起始索引开始,默认可以不写
    print(s1)
    alex
    s = 'alexwusirritian'
    s1 = s[9:]         #结束索引为末尾,默认可以不写
    print(s1)
    ritian
    s = 'alexwusirritian'
    s1 = s[:5:2]       #:2表示指定步长,默认为1
    print(s1)
    aew
    s = 'alexwusirritian'
    s1 = s[-1:-5:-1]   #从后向前切片,步长为-1
    print(s1)
    nait

    字符串:常用方法

     capitalize() 首字母大写其余字母小写

    s = 'alexWUsir'
    s1 = s.capitalize()
    print(s1)
    Alexwusir

    swapcase() 大小写反转

    s = 'alexWUsir'
    s1 = s.swapcase()
    print(s1)
    ALEXwuSIR

    title() 非字母隔开的每个单词的首字母大写

    s = 'alex wusir*taibai2ritian'
    s1 = s.title()
    print(s1)
    Alex Wusir*Taibai2Ritian

    center() 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格。

    s1 = s.center(30,)
    s2 = s.center(30,'*')
    print(s1)
    print(s2)
    alex wusir
    *taibai2ritian ***alex wusir*taibai2ritian***

    upper(),lower() 全部大写和全部小写

    s = 'alex wusir*taibai2ritian'
    s1 = s.upper()
    s2 = s.lower()
    print(s1)
    print(s2)
    ALEX WUSIR
    *TAIBAI2RITIAN alex wusir*taibai2ritian

    startswith(),endswith() 判断是否以指定字符开头或结尾,是返回True,否返回False

    s1 = s.startswith('a')
    s2 = s.startswith('alex',5,len(s))    #startswith 可以指定匹配的索引范围,默认开始为0,结束为字符串的长度
    s3 = s.endswith('esir')
    print(s1)
    print(s2)
    print(s3)
    True False False

    strip()  默认去除字符串前后的空格,换行符,制表符。lstrip()去除前面   rstrip()去除后面

    s = '   alexWUsir	'
    s1 = s.strip()
    print(s1)
    alexWUsir
    ss = 'abclaonanhaiq'
    ss1 = ss.strip('abqc')   #指定字符串去除
    print(ss1)
    laonanhai


    replace() 替换,默认替换匹配到的全部字符。

    s = 'alex 分甘共苦老地方 alex 风刀霜剑卡乐芙'
    s1 = s.replace('alex', 'SB')
    s2 = s.replace('alex', 'SB',1)     #只替换第一个查找到的字符
    print(s1)
    print(s2)
    SB 分甘共苦老地方 SB 风刀霜剑卡乐芙 SB 分甘共苦老地方 alex 风刀霜剑卡乐芙

    split() 字符分隔,分隔后会产生一个新的列表。 str--->list

    s1 = 'alex wusir taibai ritian'
    s2 = 'alex,wusir,taibai,ritian'
    s3 = 'alexwusirtaibairitian'
    l1 = s1.split()        #默认以空格分隔 
    l2 = s2.split(',')      #指定分隔符为','
    l3 = s3.split('a')      #指定分隔符为'a'
    l4 = s3.split('a',2)        #指定分隔符为'a',并且只分隔前2次
    print(l1)
    print(l2)
    print(l3)
    print(l4)
    [
    'alex', 'wusir', 'taibai', 'ritian'] ['alex', 'wusir', 'taibai', 'ritian'] ['', 'lexwusirt', 'ib', 'iriti', 'n'] ['', 'lexwusirt', 'ibairitian']

     join() 用于将序列中的元素以指定的字符连接生成一个新的字符串。  list ----> str

    l1 = ['alex', 'wusir', 'ritian']
    s1 = ' '.join(l1)         #默认为空格连接
    print(s1,type(s1))
    
    alex wusir ritian <class 'str'>

    find() index() 通过元素找索引。index找不到会报错终止程序,而find找不到返回-1。 推荐使用find

    s = 'alexwausir'
    s11 = s.find('e')
    s12 = s.find('ex')
    print(s11,type(s11))
    print(s12,type(s12))
    
    2 <class 'int'>
    2 <class 'int'>       #多个字符,返回查找到的第一个字符的索引
    s = 'alexwausir'
    s11 = s.find('a',1)   #从下标1开始查找
    print(s11)
    
    3

    isdigit() 检测字符串是否只由数字组成

    str = "123456";  # Only digit in this string
    print str.isdigit();
    
    str = "this is string example....wow!!!";
    print str.isdigit();
    
    
    True
    False

    如何判定字符串是否为空

    str=""
    str2="abc"

    print
    (not str) print(not str2) True False
  • 相关阅读:
    Note/Solution 转置原理 & 多点求值
    Note/Solution 「洛谷 P5158」「模板」多项式快速插值
    Solution 「CTS 2019」「洛谷 P5404」氪金手游
    Solution 「CEOI 2017」「洛谷 P4654」Mousetrap
    Solution Set Border Theory
    Solution Set Stirling 数相关杂题
    Solution 「CEOI 2006」「洛谷 P5974」ANTENNA
    Solution 「ZJOI 2013」「洛谷 P3337」防守战线
    Solution 「CF 923E」Perpetual Subtraction
    KVM虚拟化
  • 原文地址:https://www.cnblogs.com/bailo/p/9031001.html
Copyright © 2011-2022 走看看