python入门2——基础语法2——字符串详解

目录

前言

字符串

拼接字符串

字符串索引

字符串切片

 字符串不可变性

 字符串大小转换方法

 字符串分割、组合与移除

 字符串定位与替换方法

总结




前言

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

 注意事项:

  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('~_')  # '张三李四'

补充:

 字符串定位与替换方法

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,Python 计算思维训练——字典和字符串(一)。 在Python中,字典(dictionary)是一种非常有用的数据结构,它可以存储键值对(key-value pairs),并且可以根据键快速地查找相应的值。字典的键必须是不可变的类型,比如字符串、整数或元组等,而值可以是任意类型。字典的语法使用花括号 {},并且键值对之间用冒号 : 分隔。 例如,下面的代码创建了一个简单的字典,其中包含了三个键值对。 ``` info = {'name': '张三', 'age': 18, 'gender': '男'} ``` 你可以通过以下方式访问字典中的值: ``` print(info['name']) # 输出:张三 print(info['age']) # 输出:18 print(info['gender']) # 输出:男 ``` 如果字典中不存在指定的键,则会抛出 KeyError 异常。你可以使用字典的 get() 方法来避免这种异常,该方法在键不存在时会返回一个默认值(默认值为 None)。 ``` print(info.get('address')) # 输出:None ``` 另外,你可以使用 in 关键字来检查一个键是否存在于字典中。 ``` print('name' in info) # 输出:True print('address' in info) # 输出:False ``` 除了创建字典,还可以通过字典推导式来创建字典。字典推导式的语法与列表推导式类似,只不过使用花括号 {} 来表示字典。 例如,下面的代码创建了一个简单的字典,其中包含了前五个自然数的平方。 ``` squares = {x: x**2 for x in range(1, 6)} print(squares) # 输出:{1: 1, 2: 4, 3: 9, 4: 16, 5: 25} ``` 接下来,我们来看一下字符串(string)的相关操作。字符串Python 中最常用的数据类型之一,它可以用来表示文本或字符序列。Python中的字符串是不可变的,也就是说,一旦创建了一个字符串,就不能修改它的内容。 你可以使用单引号、双引号或三引号来创建一个字符串。如果字符串中包含了单引号或双引号,则需要使用转义字符 \ 来表示。 例如,下面的代码分别创建了三个字符串,分别使用了单引号、双引号和三引号。 ``` s1 = 'Hello, world!' s2 = "Python is awesome!" s3 = """This is a multi-line string that spans multiple lines.""" ``` Python中的字符串支持许多常用的操作,比如字符串拼接、字符串截取、字符串替换、字符串查找等等。在后面的训练中,我们会逐一介绍这些操作。 好了,以上就是本次的 Python 计算思维训练,主要介绍了字典和字符串的基本使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值