• 【Python编程】四、python字符串


    CSDN21天学习挑战赛
    在这里插入图片描述

    欢迎加入【Linux C/C++/Python社区】一起探讨和分享Linux C/C++/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。



    ☞什么是字符串

    字符串是 Python 中最常用的数据类型。我们一般使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。

    a = 'hello world'
    b = "abcdefg"
    print(type(a))
    print(type(b))
    
    • 1
    • 2
    • 3
    • 4

    控制台显示结果为, 即数据类型为str(字符串)。

    字符串的特征主要有以下几个:

    • 一对引号字符串
    name1 = 'Tom'
    name2 = "Rose"
    
    • 1
    • 2
    • 三引号字符串
    name3 = ''' Tom '''
    name4 = """ Rose """
    a = ''' i am Tom, 
            nice to meet you! '''
    
    b = """ i am Rose, 
            nice to meet you! """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    注意:三引号形式的字符串支持换行。

    ☞字符串的输入输出

    #字符串的打印
    print('hello world')
    
    name = 'Tom'
    print('我的名字是%s' % name)
    print(f'我的名字是{name}')
    
    #字符串输入
    name = input('请输入您的名字:')
    print(f'您输入的名字是{name}')
    print(type(name))
    
    password = input('请输入您的密码:')
    print(f'您输入的密码是{password}')
    print(type(password))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    ☞索引与切片

    索引也叫做下标,通过索引可以快速的找到对应数据。
    在这里插入图片描述
    切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。切片语法如下

    序列[开始位置下标:结束位置下标:步长]
    
    • 1

    注意:

    1. 不包含结束位置下标对应的数据, 正负整数均可;
    2. 步长是选取间隔,正负整数均可,默认步长为1。

    ☞字符串常用方法

    • capitalize() 首字母大写 → string.capitalize()

    • lower() 全部转为小写,只能转换英文字符

    • casefold() 转为小写,可以处理特殊字符,比如α

    • center(wid, “char”) 把str宽度设置为wid并把字符串居中,两侧用字符char来填充,只能是一个字符。

    • ljust() 填充字符串,把原字符串居左

    • rjust() 填充字符串,把原字符串居右

    • zfill() 用0填充

    • count(“str”) 计算子序列在字符串中出现的次数
      count(“str”, num1, num2) 从num1到num2位置范围内子序列出现的次数,可以没有num2,也可以没有num1和num2

    • encode()

    • decode()

    • replace() 替换,可以通过参数指定替换个数

    • expandtabs() 断句 \t 空格补全

    tabl = "username\temail\tpassword\nsu\t.com\t11\nsu\t.com\t11"
    tabl_new = tabl.expandtabs(20)
    print(tabl_new)
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    • endswith(“str”) 字符串是否以str结尾
      startswith()

    • find(“str”, start, end) 在[start, end)范围内寻找子串,返回子串第一次出现的位置

    • format() 格式化,将字符串中的占位符替换为指定值,C语言sprintf

    string = "I am {name}, age {ag}"
    print(string)
    string_new = string.format(name="hello", ag=17)
    print(string_new)
    
    string2 = "I am {0}, age {1}"
    print(string2)
    string_new2 = string.format(name="hello", ag=17)
    print(string_new2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    • format_map() 格式化,只能以{“name”:”hello”, “ag”:17}形式
    string = "I am {name}, age {ag}"
    print(string)
    string_new = string.format_map({"name": "hello", "ag": 17})
    print(string_new)
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    • index() 寻找,找不到报错 →一般用find不用index

    • isalnum() 判断字符串是否只包含字母和数字,是返回True否则False

    • isalpha() 判断是否全是字母(包括汉字)

    • isdigit() 判断是否全是数字,包括特殊数字,类似于②,不支持中文数字

    • isidecimal() 判断是否全是数字,十进制小数(应用更多,因为我们一般判断数字并用于运算)

    • isnumeric() 判断是否全是数字,支持中文数字,比如六

    • isidentifier() 是否是标识符(字母数字下划线组成,不能以数字开头)

    • isprintable() 如果字符串中所有的字符在打印时都是可见的,则返回True,比如\t \n在打印时都是看不见的,返回False

    • isspace() 是否全是空格

    • istitle() 是否是标题(每一个单词首字母都大写)

    • title() 转换为标题

    • join() 将字符串中的每一个元素按照指定分隔符进行拼接

    在这里插入图片描述

    • islower() 是否小写

    • lower() 转为小写

    • isupper() 是否大写

    • upper() 转为大写

    • lstrip() 从左往右,最多匹配,去除字符。不加参数去掉左边空格、\n、\t等,加参数则去掉参数所表示的字符(如果参数是字符串则匹配字符串与原字符串,匹配到的字符被去掉)。

    • rstrip() 从右往左,最多匹配,去除字符。不加参数去掉右边空格、\n、\t等,加参数则去掉参数所表示的字符(如果参数是字符串则匹配字符串与原字符串,匹配到的字符被去掉)

    • strip() 不加参数去掉两边空格、\n、\t等,加参数则去掉参数所表示的字符(如果参数是字符串则匹配字符串与原字符串,匹配到的字符被去掉)

    • maketrans()
      translate()

    在这里插入图片描述

    • partition() 按指定字符将字符串分割为子串,只能分割为三份(匹配第一个字符,也就是从左往右匹配)
      rprtition() 从右往左匹配

    • split() 按指定字符将字符串分割为子串,默认匹配一次,可以通过参数指定分割匹配次数,但是匹配的字符丢失;
      rsplit() 指定匹配次数时,从右往左匹配;
      splitlines() 根据换行符分割字符串,参数True表示保留\n;

    在这里插入图片描述

    • startswith() 判断字符串是否以参数指定的字符串开头

    • endwwitch()

    • swapcase() 大小写转换

    • [index] 通过索引(下标)从字符串获取序号为index的字符 -索引

    • [start:end] 获取[start, end)范围内的子串,end=-1表示到结尾 –切片

    • len() 字符串中包含多少字符(字符而不是字节,python2获取的是字节数),也可以计算列表中有几个元素

    • for循环巧用(可用于字符串、索引、切片)

    string = "hello world"
    for i in string:
        print(i)
    
    • 1
    • 2
    • 3
    • range() 创建连续的数字,也可以指定步长
    v = range(100) #python2立即创建,python3在循环时创建
    
    for item in v #python3在此时才创建(python2中的xrange)
    
    print(item)
    
    # 可以通过for循环迭代取值的叫做可迭代对象iterable
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 字符串一旦在内存中创建,不可修改,如果修改实际上是在内存中创建了一个新的字符串,因为假如你有一个字符串”abc”,它只有3个字符,假如说你把b改成bb,那么它原本的一个字节空间存不下2个字节。所以字符串一旦创建,如果修改或拼接都是重新生成一个新的字符串。
    v1 = “ascdvgblmeewn”
    v1.replace(‘d’,*)
    v1.replace(‘a’,+)
    print(v1)
    
    v2 = “ascdvgblmeewn”
    v2 = v2.replace(‘d’,*)
    v2 = v2.replace(‘a’,+)
    print(v2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述
    在这里插入图片描述


  • 相关阅读:
    微前端学习(下)
    shiro 框架使用实例
    C语言--每日五道练习题--Day16
    MySQL锁机制&事务
    jmeter遇到连接数据库的问题
    商业智能BI与业务管理决策思维之四:业务成本分析
    大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
    C语言:结构体——关于内存字节对齐图文详解
    ES系列二之常见问题解决
    JUC 并发编程学习笔记(总)
  • 原文地址:https://blog.csdn.net/qq_43471489/article/details/126279261