目录

前言

字符串

拼接字符串

字符串索引

字符串切片

 字符串不可变性

 字符串大小转换方法

 字符串分割、组合与移除

 字符串定位与替换方法

总结






前言

字符串是 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

python 3.0 字符串输入 python输入字符串代码_python 3.0 字符串输入

 正向索引是从 0 开始计数,而反向索引则是从 -1 开始计数。

一般我们采取“就近原则”来决定使用正向索引还是反向索引——即访问靠前的元素用正向索引,靠后的元素用反向索引。

字符串切片

字符串是有序的序列(关于什么是序列,序列有哪些,后续章节再进行阐述),都可以使用 len() 函数获取元素个数,本节本节的重点——分片。

str = 'Hello World'
# 下面两个效果一样
print(str[6:])  # 输出:World
print(str[-5:])  # 输出:World

 

python 3.0 字符串输入 python输入字符串代码_bc_02

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

 注意事项:

  1. 分片是半闭半开区间,即包含前面索引位置的元素,不包含后面索引位置的元素。比如:string[m:n] 获取的是字符串 string 中索引为 m 到 n-1 之间的元素(包括 m 和 n-1);
  2. 分片中前后索引的值是可以省略的,前索引省略默认为 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'

 字符串分割、组合与移除

split() 用于通过指定分隔符对字符串进行分割,最终产生一个列表序列。

split() 方法有两个可选参数,第一个参数为分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。第二个参数为最大分割次数,默认为 -1,即不限次数。

'张 三 李 四'.split() # ['张', '三', '李', '四'] '张 三 李 四'.split('') # ['张', '三', '李', '四'] '张 三 李 四'.split(' ') # ['张', '三', '李', '四'] '张-三-李-四'.split('-') # ['张', '三', '李', '四'] '张三李四'.split('三李') # ['张', '四'] '张 三 李 四'.split(' ', 1) # ['张', '三 李 四']

join()用于将序列中的元素以指定的字符连接生成一个新的字符串。

join() 方法接收一个序列(列表、元组、字符串等)作为参数,. 前面的字符串用于连接符。(关于列表、元组等序列后续章节进行阐述)

# 列表 ''.join(['张', '三', '李', '四']) # 张三李四 '-'.join(['张', '三', '李', '四']) # 张-三-李-四 # 元组 '-'.join(('张', '三', '李', '四')) # 张-三-李-四 # 字符串 '-'.join('张三李四') # 张-三-李-四

strip()用于移除字符串开头和结尾指定的字符(默认为空字符)或字符序列。

当传入一个字符串时,会将传入字符串中每个字符依次移除。

' 张三李四 '.strip() # '张三李四' '~~张三李四~~'.strip('~') # '张三李四' '~~张三~~李四~~'.strip('~') # '张三~~李四' '_~_张三李四_~~'.strip('~_') # '张三李四'

补充:

python 3.0 字符串输入 python输入字符串代码_python 3.0 字符串输入_03

 字符串定位与替换方法

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'


总结

以上就是今天要叙述的内容,本文仅仅简单介绍了一些字符串的基本用法,以及一些常用的用法。

写的不好,多多指教。