python科学计算生态-003-String

python科学计算生态-003-String

字符串的简介

Textual data in Python is handled with str objects, or strings. Strings are immutable sequences of Unicode code points.
Python中的文本数据是通过str对象或字符串来处理的,字符串是由一系列Unicode码位(code point)所组成的不可变序列。`
Unicode 暂时可以看作一张非常大的地图,这张地图里面记录了世界上所有的符号,而码位则是每个符号所对应的坐标。

字符串不可变

s = 'abc'
s[0] = 'd'
# 会报错 TypeError: 'str' object does not support item assignment

字符串的创建

3种方式创建字符串字面量:
单引号:‘allows embedded “double” quotes’
双引号:“allows embedded ‘single’ quotes”
三引号:’’‘Three single quotes’’’ “”“Three double quotes”""
其中,三引号创建的字符串可以跨越多行,其中的空白(例如每行的换行符以及行首或行末的空格)会被包含进所创建的字符串字面量。
Python允许空字符串’’,它不包含任何字符但完全合法。空字符串是其他任何字符串的子串。
字符串字面量是一个单独的表达式,如果多个字符串字面量中间仅包含空白,则它们将被隐性地转换为一个单一的字符串字面量。所以,(“spam” “eggs”) == “spameggs”。
另外还有str构造器

# 简单创建
string = 'string'
# 单双引号之间的问题
string = 'say:"hello"'
# '''的使用 -- 多行or大段的字符串
'''string''' # 'string'
'''this
    is   
a
long
long
string''' # 'this\n    is   \na\nlong\nlong\nstring'   # 转译字符也会被显示出来
# 空字符串是任何字符串的子串
''in''  # true 
# 只含空格的多个字符串在一起会被既然拼接、和单双引号没有关系哦
s = 'a''b' # print(s) ab
s = 'a'"b" # print(s) ab
# str构造器
str(98.2) # '98.2'
str(True)  # 'True'

字符串的转义字符\

常见的转义符:\n(换行符)、\t(Tab制表符)、’(单引号)、"(双引号)、\(反斜线)
很简单就不举例了

字符串的内建函数

input()获取用户输入
chr()接受一个整数,返回对应的unicode字符
ord()chr()功能相反

字符串方法

用法:string_object.method(arguments)
字符串方法比较多,可以通过help(str)或者dir(str)获取帮助。
以下是一些常用的方法:
split() 基于分隔符将字符串分割成由若干子串组成的列表,如果不指定分割符,默认使用空白字符进行分割。
join() 与split()功能相反,将包含若干子串的列表分解,并将这些子串通过指定的粘合用的字符串合并成一个完整的大的字符串。
find() 查找返回字符串中第一次出现子串的位置(偏移量),失败时返回-1。
index() 与find()类似,但是查找失败时将触发ValueError异常。
rfind() 与find()类似,但返回最后一次子串出现的位置。
startswith() 判断字符串是否以特定前缀开头。
endswith() 判断字符串是否以特定后缀结尾。
count() 统计子串在字符串中出现的次数。
is* 判断字符串中字符是否符合某种类型或者规则。
strip() 返回移除开始和结尾空白字符的字符串,如果指定参数,将在字符串的开始和结尾移除参数中所包含的字符。
upper() lower() swapcase() 分别将字符串所有字母转换成大写、转换成小写、大小写转换。
title() 将字符串中所有单词的开头字母变成大写。
capitalize() 将字符串首字母变成大写。
center() ljust() rjust() 分别将字符串根据指定长度居中对齐、左对齐、右对齐。
replace() 进行简单的子串替换,需要传入的参数:需要被替换的子串,用于替换的新子串,以及需要替换多少处。

name = 'Lily Lucy Meimei Lilei'
# split把字符串进行分割成列表
name.split() # ['Lily', 'Lucy', 'Meimei', 'Lilei']
# 把列表组合成字符串
' '.join(name) # 'Lily Lucy Meimei Lilei'
' '.join('abc') # 'a b c'
story = '''This is a story
a story for python
this is the end of the story'''
# 字符串的切片功能
story[:10] # 'This is a '
# len获取字符串长度
len(story) # 63
# startswith判断字符串以...开头
story.startswith('Thi') # True
# endswith判断字符串以...结尾
story.endswith('story') # True
# find寻扎第一次出现的首字母的下标,找不到返回-1
story.find('story') # 10  # 第一次出现
# find寻扎最后一次出现的首字母的下标,找不到返回-1
story.rfind('story') # 58  # 最后一次出现
# count函数数总共出现了几次
story.count('story') # 3
# 方法检测字符串是否由字母和数字组成。
story.isalnum() # False 
#  返回移除开始和结尾空白字符的字符串,如果指定参数,将在字符串的开始和结尾移除参数中所包含的字符。
setup.strip('.') # 'this is.. a story'
# 将字符串首字母变成大写。
setup.capitalize() # 'This is.. a story...'
# 将字符串中所有单词的开头字母变成大写。
setup.title() # 'This Is.. A Story...'
# 大写
setup.upper() # 'THIS IS.. A STORY...'
# 小写
setup.lower() # 'this is.. a story...'
# 大小写转换
setup.swapcase() # 'THIS IS.. A STORY...'
# 居中处理
setup.center(30) # '     this is.. a story...     '
# 右居中
setup.rjust(30) # '          this is.. a story...'
# 进行简单的子串替换,需要传入的参数:需要被替换的子串,用于替换的新子串,以及需要替换多少处。
story.replace('story','poem',10) # 'This is a poem\na poem for python\nthis is the end of the poem'

猜你喜欢

转载自blog.csdn.net/qq_42906486/article/details/105264524
今日推荐