目录
前言
字符串
拼接字符串
字符串索引
字符串切片
字符串不可变性
字符串大小转换方法
字符串分割、组合与移除
字符串定位与替换方法
总结
前言
字符串是 Python 中最常用的数据类型。我们可以使用引号 ( ' 或 " ) 来创建字符串。
在开始字符串详细介绍前,先介绍python中两个很重的函数,输入函数——input()和输出函数——print(),还有一个比较特殊的函数——eval()
input():是获取用户输入的函数
input()函数使用格式:
<变量> =input(<提示信息字符串>)
用户输入的信息以字符串类型保存在<变量>中
name=input('请输入张三的名字:')
print():是获取用户输出结果的函数(也可以理解成print
()函数
会将括号里的内容直接输出出来,并打印到屏幕上)print()函数使用格式:
print(<内容>)
print(635) # 输出:635 print(1135 - 635) # 输出:500 print('1135-635') # 输出:1135-635 #注意1:第三个print()函数,若函数里面的内容是字符串,输出结果不带引号 #注意2:print()函数括号里面内容还可以是其他数据类型,后面章节再进行叙述。
字符串eval():是一种去掉参数最外侧引号并执行余下语句的函数
eval()函数的基本使用格式:
eval(<字符串或字符串变量>)
print(eval("1")) #输出:1,eval去掉参数里最外层引号后,结果是整数1,print(1)的结果还是1 print(eval("1+2")) #输出:3,eval去掉参数里最外层引号后,结果是整数表达式1+2,print(1+2)的结果是3 #注意:print函数自带计算器功能 print(eval('"1+2"')) #输出:1+2,eval去掉参数里最外层引号后,结果是"1+2",print("1+2")的结果还是1+2 print(eval("'1+2'")) #输出:1+2,eval去掉参数里最外层引号后,结果是'1+2',print('1+2')的结果还是1+2
怎样打印多行文字
方法1:使用一对三引号(''' 或 """)来包裹多行字符串,我们使用三行字符串来打印一首小诗。
poetry = '''我怎么能够把你来比作夏天? 你不独比它可爱也比它温婉: 狂风把五月宠爱的嫩蕊作践, 夏天出赁的期限又未免太短:''' print(poetry) # 输出: # 我怎么能够把你来比作夏天? # 你不独比它可爱也比它温婉: # 狂风把五月宠爱的嫩蕊作践, # 夏天出赁的期限又未免太短:
方法2:除了使用多行字符串来实现多行文本外,使用 \n 也能达到一样的效果。\n 被称为 换行符,用于文本间的换行。
poetry = '日暮苍山远,天寒白屋贫。\n柴门闻犬吠,风雪夜归人。' print(poetry) # 输出: # 日暮苍山远,天寒白屋贫。 # 柴门闻犬吠,风雪夜归人。
拼接字符串Python 中的字符串是使用一对英文单引号(')或英文双引号(")包裹的任意文本。无论是用单引号还是用双引号,它俩的效果都是一样的,但需要保持前后引号的统一
#下列常见几种错误 # 前后不统一 name1 = '张三" name2 = "张三' # 使用了中文引号 name1 = ‘张三’ name2 = “张三”
通过 + 可以将两个字符串拼接,得到一个新的字符串
str1 = '海草'
str2 = str1 + str1 + str1
print(str2)
# 输出:海草海草海草
字符串索引
str = 'Hello World'
print(str[6]) # 输出:W
print(str[-5]) # 输出:W
字符串切片正向索引是从 0 开始计数,而反向索引则是从 -1 开始计数。
一般我们采取“就近原则”来决定使用正向索引还是反向索引——即访问靠前的元素用正向索引,靠后的元素用反向索引。
字符串是有序的序列(关于什么是序列,序列有哪些,后续章节再进行阐述),都可以使用 len() 函数获取元素个数,本节本节的重点——分片。
str = 'Hello World'
# 下面两个效果一样
print(str[6:]) # 输出:World
print(str[-5:]) # 输出:World
string = 'Hello World'
# 从索引 0 开始,到索引 3 为止,不包括索引 3
print(string[0:4]) # 输出:Hell
# 如果第一个索引是 0,可以省略
print(string[:4]) # 输出:Hell
print(string[4:11]) # 输出:o World
# 如果分片到末尾,后面也可以省略
print(string[4:]) # 输出:o World
# 如果都省略,则是复制一个一样的字符串
print(string[:]) # 输出:Hello World
注意事项:
- 分片是半闭半开区间,即包含前面索引位置的元素,不包含后面索引位置的元素。比如:string[m:n] 获取的是字符串 string 中索引为 m 到 n-1 之间的元素(包括 m 和 n-1);
- 分片中前后索引的值是可以省略的,前索引省略默认为 0,后索引省略默认为序列长度。
字符串不可变性#小提示: string = 'Hello World' print(string[0:100000]) #结果:Hello World
分片超出范围是不会报错的。你可以把字符串想象成一根绳子,分片就是用刀将绳子切分开来。在字符串长度内分片相当于在绳子上切割,而超出范围相当于一刀砍到了空气,对于绳子来说没有影响。
然而索引超出范围则会报错,如下所示:
string = 'Hello World' print(string[100000]) #IndexError: string index out of range(索引错误:字符串索引超出范围)的报错。
字符串一旦创建后是不可改变的,这个属性和元组类似,通过索引来改变字符串中元素就会报错:
name = '鹿班七号'
name[0] = '鲁'
print(name)
# 报错:TypeError: 'str' does not support item assignment on line 2
字符串大小转换方法要修改字符串内容,则进行如下 *** 作:
name = '鹿班七号' new_name = '鲁' + name[1:] print(new_name) # 输出:鲁班七号
字符串分割、组合与移除upper()用于将字符串中的小写字母转为大写字母。
'abcd'.upper() # 'ABCD' 'aBcD'.upper() # 'ABCD'
lower()用于将字符串中的大写字母转为小写字母。
'ABCD'.lower() # 'abcd' 'aBcD'.lower() # 'abcd'
capitalize()用于将字符串的第一个字母变成大写,其他字母变小写。首字符如果是非字母则不变,其他字母变小写。
'ABCD'.capitalize() # 'Abcd' 'aBcD'.capitalize() # 'Abcd' '1abcd'.capitalize() # '1abcd' '1aBcD'.capitalize() # '1abcd'
title()用于返回“标题化”的字符串——即所有单词的首字母转为大写,其余字母均为小写。
'this is an example string'.title() # This Is An Example String '5g is coming'.title() # 5G Is Coming #注意:非字母后的第一个字母将转为大写字母。
swapcase()用于对字符串的大小写字母进行互相转换。
'abcd'.swapcase() # 'ABCD' 'aBcD'.swapcase() # 'AbCd'
字符串定位与替换方法s
plit()
用于通过指定分隔符对字符串进行分割,最终产生一个列表序列。
split()
方法有两个可选参数,第一个参数为分隔符,默认为所有的空字符,包括空格、换行(\n
)、制表符(\t
)等。第二个参数为最大分割次数,默认为-1
,即不限次数。'张 三 李 四'.split() # ['张', '三', '李', '四'] '张 三 李 四'.split('') # ['张', '三', '李', '四'] '张 三 李 四'.split(' ') # ['张', '三', '李', '四'] '张-三-李-四'.split('-') # ['张', '三', '李', '四'] '张三李四'.split('三李') # ['张', '四'] '张 三 李 四'.split(' ', 1) # ['张', '三 李 四']
join()用于将序列中的元素以指定的字符连接生成一个新的字符串。
join()
方法接收一个序列(列表、元组、字符串等)作为参数,.
前面的字符串用于连接符。(关于列表、元组等序列后续章节进行阐述)# 列表 ''.join(['张', '三', '李', '四']) # 张三李四 '-'.join(['张', '三', '李', '四']) # 张-三-李-四 # 元组 '-'.join(('张', '三', '李', '四')) # 张-三-李-四 # 字符串 '-'.join('张三李四') # 张-三-李-四
strip()用于移除字符串开头和结尾指定的字符(默认为空字符)或字符序列。
当传入一个字符串时,会将传入字符串中每个字符依次移除。
' 张三李四 '.strip() # '张三李四' '~~张三李四~~'.strip('~') # '张三李四' '~~张三~~李四~~'.strip('~') # '张三~~李四' '_~_张三李四_~~'.strip('~_') # '张三李四'
补充:
count()用于统计字符串中某个字符串出现的次数。
第一个参数为要统计次数的字符串,后两个可选参数为在字符串搜索的开始与结束索引。
'aabbcccd'.count('a') # 2 'aabbcccd'.count('ab') # 1 'aabbcccd'.count('e') # 0 'aabbcccd'.count('a', 2, 6) # 0 # 等同于 'bbcc'.count('a') 'aabbcccd'.count('c', 2, 6) # 2 # 等同于 'bbcc'.count('c')
find()用于检测字符串中是否包含子字符串。
如果包含子字符串返回第一次出现的索引值,否则返回 -1。第一个参数为要查找的子字符串,后两个可选参数为在字符串搜索的开始与结束索引。
'abc'.find('b') # 1 'abcabc'.find('b') # 1 'abcabc'.find('d') # -1 'abcbcdabc'.find('bcd') # 3 'abcabc'.find('b', 1, 2) # 1 'abcabc'.find('b', 2, 3) # -1
replace()用于将字符串中的指定字符串替换成别的字符串。
第一个参数为被替换字符串,第二个参数为替换字符串,第三个可选参数为替换的最多次数,默认为无限次。
'abcd'.replace('b', 'e') # 'aecd' 'abbbcbd'.replace('b', 'e') # 'aeeeced' 'abbbcbd'.replace('bb', 'e') # 'aebcbd' 'abbbcbd'.replace('b', 'e', 2) # 'aeebcbd'
总结
以上就是今天要叙述的内容,本文仅仅简单介绍了一些字符串的基本用法,以及一些常用的用法。
写的不好,多多指教。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)