当前位置:脚本大全 > > 正文

python字符串之基本操作小练习(Python数据类型之String字符串实例详解)

时间:2021-10-04 01:47:15类别:脚本大全

python字符串之基本操作小练习

Python数据类型之String字符串实例详解

本文实例讲述了python数据类型之string字符串。分享给大家供大家参考,具体如下:

string(字符串)

1、概述

字符串是以单引号或双引号括起来的任意文本,比如"abc",‘xy'等等,请注意‘'或者""本身只是一种表示方式,并不是字符串的一部分。

a.若字符串内部包含单引号又包含双引号怎么办?

  • ?
  • 1
  • print('i\'m \"ok\"')
  • 表示的字符串内容是:

    i'm "ok"

    注意:转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也需要转义,所以\\表示的字符就是\等等

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • >>>print('i\'m ok.')
  • i'm ok.
  • >>>print('i\'m learning\n python.')
  • i'm leanring
  • python.
  • >>> print('\\\n\\')
  • \
  • \
  • 但是,如果字符串里面很多字符串需要转义,就需要添加很多,为了简化,python还允许用r""(或者r"")表示内部的字符串默认不转义。

  • ?
  • 1
  • 2
  • 3
  • 4
  • >>> print('\\\t\\')
  • \  \
  • >>>print(r'\\\t\\')
  • \\\t\\
  • 如果字符串内部很多换行,用\n写在一行里不好阅读,为了简化,python允许用"'…"'的格式表示多行内容:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • >>> print('''line1
  •   line2
  •   line3''')
  • line1
  • line2
  • line3
  • 2.创建字符串

  • ?
  • 1
  • 2
  • str1 = "hello world"
  • str2 = 'you are good'
  • 3.字符串运算

    3.1字符串连接

    3.1.1 使用加号进行连接

  • ?
  • 1
  • 2
  • 3
  • 4
  • #字符串的连接,通过"+"进行连接
  • s1 = 'welcome '
  • s2 = 'to guangzhou'
  • print(s1 + s2)
  • 输出:

    welcome to guangzhou

    注意:字符串 + 数字,这样会报错,不同类型的不能相加

    3.1.2 使用","进行连接【tuple类型】

  • ?
  • 1
  • 2
  • 3
  • 4
  • s1 = 'hello'
  • s2 = 'world'
  • print(s1, s2)
  • #使用","连接的时候,在","的位置会产生一个空格
  • 输出:

    hello world

    3.1.3 使用%格式化连接

  • ?
  • 1
  • 2
  • 3
  • s1 = 'hello'
  • s2 = 'world'
  • print("%s %s"%(s1, s2))
  • 输出:

    hello world

    3.1.4 使用join函数进行连接

  • ?
  • 1
  • 2
  • 3
  • s1 = ['hello', 'world']
  • print("".join(s1))
  • print("*".join(s1))
  • 输出:

    helloworld
    hello*world

    注意:"".join()函数只需要传递一个参数【字符串、列表、元组、字典(输出无序)、集合(输出无序),其中的元素应该是字符串类型】。

    3.2 重复输出字符串

  • ?
  • 1
  • 2
  • 3
  • #重复输出字符串,通过乘法的方式实现
  • s3 = 'good'
  • print(s3 * 3)
  • 输出:

    goodgoodgood

    3.3 获取字符串中的字符

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • #通过索引的方式实现
  • #索引:给一个字符串中的字符从0开始编号,也称为下标
  • #索引的取值范围:[0,len(str)-1]
  • #访问方式: 变量名称[索引]
  • str3 = 'good'
  • print(str3[0])
  • #索引值还可以从-1开始,-1代表倒数第一个字符
  • print(str3[-1])
  • 输出:

    g
    d

    3.3 截取字符串

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • # 通过下标截取字符串
  • str1 = "hello world"
  • print(str1[3:6])
  • #注意:截取字符串的范围是str[start : end] 它是一个前闭后开的区间[start,end)
  • #如果n的值超过了字符串的最大长度,则仍然截取原下标的长度
  • #从开头截取到指定索引之前[0,5)
  • print(str1[:5])
  • #从指定截取到结尾[4,len(str1))
  • print(str1[4:])
  • #注意在使用str[start : end]来截取字符串的时候,若start不写默认从第一个字符开始
  • #若end不写,则默认到最后一个字符结束。取头去尾。
  • print("012345"[1:-1])
  • 输出:

    lo
    hello
    o world
    1234

    3.5 判断是否包含指定字符

  • ?
  • 1
  • 2
  • 3
  • 4
  • #判断字符串中是否包含某指定字符串
  • str4 = "you are a good boy"
  • print("good" in str4)
  • #若包含有则返回true否则为false
  • 输出:

    true

    3.6 格式化输出

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • #通过%来改变后面的字母或者是符号的含义,%被称为占位符
  • # %s:格式化字符串
  • # %d:格式化整数
  • # %f:格式化浮点数,可指定小数点后的精度
  • age = 18
  • name = "丽丽"
  • weight = 45.5
  • print("my name is %s , i am %d year old and my weight is %.2f kg"%(name, age, weight))
  • #注意:%.nf表示精确到小数点后n位,会四舍五入
  • 输出:

    my name is 丽丽 , i am 18 year old and my weight is 45.50 kg

    4.关于字符串常用函数

    4.1 eval(str)

    功能:将字符串str当成有效的表达式来求值并返回计算结果。

    可以把list,tuple,dict和string相互转化

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • >>>num1 = eval('123')
  • >>>print(num1)
  • 123
  • >>>num2 = eval("[1, 2, 3]")
  • >>>print(num2)
  • [1, 2, 3]
  • >>> num3 = eval("12-3")
  • >>> print(num3)
  • 9
  • 4.2 len(str)

    功能:返回当前字符串的长度(字符的个数)

  • ?
  • 1
  • 2
  • >>> len("you are good")
  • 12
  • 4.3 str.lower()

    功能:返回一个把字符串中的大写字母转换为小写字母 的字符串

  • ?
  • 1
  • 2
  • 3
  • >>> str = "hello world"
  • >>> print(str.lower())
  • hello world
  • 注意:此方法不改变原本的字符

    4.4 str.upper()

    功能:返回一个把字符串中的小写字母转换为大写字母的字符串

  • ?
  • 1
  • 2
  • 3
  • >>> str = "hello world"
  • >>> print(str.upper())
  • hello world
  • 4.5 str.swapcase()

    功能:返回一个把字符串中的大写字母转为小写字母,小写字母转换为大写字母的字符串

  • ?
  • 1
  • 2
  • 3
  • >>> str = "hello world"
  • >>> print(str.swapcase())
  • hello world
  • 4.6 str.capitalize()

    返回一个首字母大写,其他小写的字符串

  • ?
  • 1
  • 2
  • 3
  • >>> str = "hello world"
  • >>> print(str.capitalize())
  • hello world
  • 4.7 str.title()

    返回一个每个单词首字母大写的字符串

  • ?
  • 1
  • 2
  • 3
  • >>> str = "hello world"
  • >>> print(str.title())
  • hello world
  • 4.8 str.center(width[, fillchar])

    功能:返回一个指定宽度的居中字符串,fillchar为填充的字符串,默认使用空格

  • ?
  • 1
  • 2
  • 3
  • >>> str = "hello world"
  • >>> print(str.center(50,"*"))
  • *******************hello world********************
  • 4.9 str.ljust(width[, fillchar])

    功能:返回一个指定宽度的左对齐字符串,fillchar为填充字符。默认使用空格填充

  • ?
  • 1
  • 2
  • 3
  • >>> str = "hello world"
  • >>> print(str.ljust(50,"*"))
  • hello world***************************************
  • 4.10 str.rjust(width[, fillchar])

    功能:返回一个指定宽度右对齐字符串,fillchar为填充字符,默认使用空格填充

  • ?
  • 1
  • 2
  • 3
  • >>> str = "hello world"
  • >>> print(str.rjust(50,"*"))
  • ***************************************hello world
  • 4.11 str.zfill(width)

    功能:返回一个长度为width字符串,原字符串右对齐,前面补0

  • ?
  • 1
  • 2
  • 3
  • >>> str = "hello world"
  • >>> print(str.zfill(50))
  • 000000000000000000000000000000000000000hello world
  • 4.12 str.count(str [,start][, end])

    功能:返回字符串中str出现的次数,可以指定一个范围,若不指定则默认从头到尾,匹配的时候是区分大小写的。

  • ?
  • 1
  • 2
  • 3
  • >>> str = "hello world"
  • >>> print(str.count("hello", 0 , 10))
  • 0
  • 4.13 str.find(str1[, start][, end])

    功能:从左到右检测str1字符串是否包含在字符串中,可以指定范围,默认从头到尾。

    返回的是第一次出现的开始的下标,若未查询到,则返回-1

  • ?
  • 1
  • 2
  • 3
  • 4
  • >>> str = "hello world"
  • >>> str1 = "llo"
  • >>> print(str.find(str1, 0 , 10))
  • 2
  • 4.14 str.rfind(str1[, start][, end])

    功能:类似于str.find(),不过是从右边开始查找

  • ?
  • 1
  • 2
  • 3
  • 4
  • >>> str = "hello world"
  • >>> str1 = "llo"
  • >>> print(str.rfind(str1, 0 , 10))
  • 2
  • 4.15 str.index(str1[, start = 0] ,[ end = len(str)])

    功能:类似于find(),与find() 不同的是,如果str1不存在的时候会报一个异常

  • ?
  • 1
  • 2
  • 3
  • 4
  • >>> str2 = "hello world"
  • >>> str1 = "hello"
  • >>> print(str2.index(str1, 0 , 10))
  • valueerror: substring not found
  • 4.16 str.lstrip()

    功能:截掉字符串左侧指定的字符串,默认为空格

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • >>> str = '**** you are very good'
  • >>> print(str.lstrip())
  • >>> print(str.lstrip())
  • **** you are very good
  • >>> print(str.lstrip("*"))
  •  you are very good
  • 4.17 str.rstrip()

    功能:截掉字符串右侧指定的字符串,默认为空格

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • >>> str = '**** you are good****'
  • >>> print(str.rstrip())
  • **** you are good****
  • >>> print(str.rstrip("*"))
  • **** you are good
  • ?
  • 1
  • 2
  • str1 = "*nih*a*o*"
  • print(str1.strip('*'))
  • 输出:

    nih*a*o

    4.18 string.split(str="", num=string.count(str))

    功能:以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串
    str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。 num – 分割次数

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • >>> str1 = "hello you are good"
  • >>> str1.split()
  • ['hello', 'you', 'are', 'good']
  • >>> str1.split(" ",2)
  • ['hello', 'you', 'are good ']
  • 4.19 str1.splitlines([keepends])

    功能:字符串会按照行(‘\r','\r\n','\n')进行分割,返回一个包含各行作为元素的列表,如果参数keepends的值为false,不包含换行符,如果为true,则保留换行符。参数keepends默认为false。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • str2 = '''how are
  • you ?
  • i am
  • fine
  • !
  • '''
  • list2 = str2.splitlines()
  • print(list2)
  • 标签:

    猜您喜欢