zoukankan      html  css  js  c++  java
  • (一)字符串

    七个函数

    string.join(seq):以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

    str = '*'
    seq = 'abcasdasd'
    print(str.join(seq))

    结果:a*b*c*a*s*d*a*s*d

    string.split(str="", num=string.count(str)):以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串

    str = 'b'
    a = 'abcasbasd'
    print(a.split(str))

    结果:['a', 'cas', 'asd'] ----- 返回的数组中不包含分隔符,区别于partition()

    string.find(str, beg=0, end=len(string)):检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1

    str = 'b'
    a = 'abcasbasd'
    print(a.find(str))

    结果:1

    string.strip([obj]):删除 string 字符串前面和末尾的空格;当obj不为空,可以移除指定字符串,包括\t \n等

    a = '    abca sbasd   '
    print(a.strip())

    结果:abca sbasd

    string.replace(str1, str2,  num=string.count(str1)):把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次

    a = 'abcasbcasd'
    print(a.replace('ca','xxx'))

    结果:abxxxsbxxxsd

    string.upper()与string.lower()转换 string 中的小写字母为大写/大写字母为小写


    五个要点

    for循环:

    for 变量名 in 字符串

    a = 'asdas'
    for n in a:
        print(n)

    等价于while循环:

    a = 'asdas'
    n = 0
    while n < len(a):
        print(a[n])
        n += 1

    索引,下标:

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

    a = 'asdas'
    print(a[3])

    结果:a

    切片:

    语法表达式为[start_index : end_index : step],其中:

    •   start_index表示起始索引
    •   end_index表示结束索引
    •   step表示步长,步长不能为0,且默认值为1

    支持切片操作的数据类型有listtuplestring等

    a = 'asdasasda'
    print(a[1:8:3])

    结果:ssd

    len()

    获取当前字符串中由几个字符组成

    a = 'asdasasda'
    print(len(a))

    结果:9

    range()

    帮助创建连续的数字,通过设置步长来指定不连续

    for a in range(0,100,5):
        print(a)

    结果:0,5,10....95

    字符串格式化(两种方式)

    ① 百分号拼接

    print('i am %s , my age is %d'%('xulan',20))
    print('i am %s , my age is %.2f'%('xulan',20))
    print('i am %s , my age is %.2f%%'%('xulan',20))
    print('i am %(name)s , my age is %(age)d '%{'name': 'xulan','age':20})

    结果:i am xulan , my age is 20
       i am xulan , my age is 20.00
       i am xulan , my age is 20.00%
       i am xulan , my age is 20

     ②format字符串格式化

    print(('my name is {} , my age is {}').format('xulan',20))
    结果:my name is xulan , my age is 20      按顺序取值
    print(('my name is {1} , my age is {0}').format('xulan',20))
    结果:my name is 20 , my age is xulan      按下标取值
    print(('my name is {1} , my age is {0}').format(*['xulan',20]))
    结果:my name is 20 , my age is xulan      *表示参数是列表或元组,*['xulan',20]将被转变为 'xulan',20
    print(('my name is {a} , my age is {b}').format(a='xulan',b=20))
    结果:my name is xulan , my age is 20      按key取value的值
    print(('my name is {a} , my age is {b}').format(**{'a':'xulan','b':20}))
    结果:my name is xulan , my age is 20      **表示参数是字典,**{'a':'xulan','b':20}将被转变为 a='xulan',b=20
    print(('my name is {0[1]} , my age is {0[0]}').format([1,2],[11,22]))
    结果:my name is 2 , my age is 1           按下标找到对应的列表,再按列表的下标取值
    print("i am {:s}, age {:d}".format("xulan",20))
    结果:i am xulan, age 20                   :b二进制 :o八进制 :d十进制 :x16进制(小写) :X16进制(大写) :%显示百分比(默认显示小数点后六位)
    print("numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623))
    结果:numbers: 1111,17,15,f,F, 1587.623000%

    切记:

    字符串一旦创建,不可修改, 一旦修改或者拼接,都只会重新生成字符串
    即对字符串的任何操作不会改变原对象,而是重新生成了一个新的对象

  • 相关阅读:
    程序猿初出茅庐之一:学习方法
    Winform实现鼠标可穿透的窗体镂空效果
    HashMap源码分析(上)
    Java Integer常量池——IntegerCache内部类
    find the Nth highest salary(寻找第N高薪水)
    分布式理论:深入浅出Paxos算法
    smash:一个类unix内核
    【官网翻译】如何在VSCode中使用代码片段功能(snippets)?
    JavaScript与魔数检测
    给你一个团队,你能怎么管-读后感-凝聚力和执行力(1)
  • 原文地址:https://www.cnblogs.com/xulan0922/p/9079170.html
Copyright © 2011-2022 走看看