嗨嗨嗨~
这节课开始字符串的学习!
主要有这些内容:
字符串的三种定义方式
字符串的拼接
字符串的内置函数
以及 一些练习题
下面呢就开始这节课的内容:
三种定义方式
字符串的定义有三种定义方式,分别是:- 单引号定义法: name=‘门村中学’
- 双引号定义法:name=“门村中学”
- 三引号定义法:name=“”“门村中学”“”
三引号定义法 和多行注释的写法一样,同样支持换行操作,
使用变量接受它,他就是字符串
不使用变量接受它,就可以作为多行注释使用
如果想要定义的字符串本身,是包含:单引号、双引号自身的应该如何写?
- 单引号定义法,可以内含双引号
- 双引号定义法,可以内含单引号
- 可以使用转移字符( \ )来将引号解除效用,变成普通字符串
# 在字符串内包含双引号 用单引号定义法
school = '"门村中学"'
# 在字符串内包含单引号 用双引号定义法
school = "'门村中学"
# 使用转义字符 \ 解除\符号后面的引号的效用
school = "\"门村中学"
school = '\'门村中学'\'
下面我们在pycharm中跑一下来看一下输出:
字符串的拼接
如果有两个字符串字面量,可以通过 + 将其拼接成一个字符串
例:
print("我"+"是学生")
# 输出结果:我是学生
一般的,拼接会用于字面量和变量或变量和变量之间:
school = "初中"
print("我是一名来自" + school + "的学生")
下列代码是否能正常输出呢?
name = "学生"
school = "初中"
tel = 4006189090
print("我是:"+name+",我的学校是:"+school+",我的电话是:"+tel)
我们在编译器中运行代码之后可以看到,编译器给出了一个报错,这些代码并不能正常输出
在这里,这些代码不能正常输出是因为:
字符串的拼接只能用于字符串类型之间无法用于字符串和其他类型之间
字符串的内置函数
字符替换函数:replace(old,new)
将字符串中的的某些字符替换成另外的字符
例:将str1 = “I come from China"字符串中的"China”,修改为"USA"
str2 = str1.replace("China","USA")
由于 replace 是字符串变量 var1 的内建函数,调用的方式是“.”
调用字符串变量中的内建函数
格式:字符串变量 .replace(查找字符串,换字符串)*
需要特别注意的是 replace 并不会修改原来的字符串,而是返回
一个新的替换后的字符串,所以需要用 var2 接收替换后的结果。
下面是我们在Python中常用的内置函数
序号 | 函数名 | 功能 |
---|---|---|
1 | capitalize() | 将字符串的第一个字符转换为大写 |
2 | find(str,beg=0 end=len(string)) | 检测str是否包含在字符串中,如果指定范围beg和end,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1 |
3 | len(string) | 返回字符串长度 |
4 | lower() | 转换字符串中所有大写字符为小写 |
5 | upper() | 转换字符串的小写字母为大写 |
更多Python中的内置函数:http://www.runoob.com/python3/python3-string.html
这节课的内容就是这些,下面是一道例题和两道习题来练练手
巩固一下这节课学到的知识
例题:整理药名
医生在书写药品名的时候经常不注意大小写,格式比较混乱。现要求你写一个程序
将医生书写混乱的药品名整理成统一规范的格式,即药品名的第一个字符如果是字母
要大写,其他字母小写。如将 ASPIRIN、aspirin 整理成 Aspirin
输入:
第一行一个数字 n,表示有 n 个药品名要整理,n 不超过 100。
接下来 n 行,每行一个单词,长度不超过 20,表示医生手书的
药品名。药品名由字母、数字和-组成
输出:
n 行,每行一个单词,对应输入的药品名的规范写法
样例输入:
4
AspiRin
cisapride
2-PENICILLIN
Cefradine-6
样例输出:
Aspirin
Cisapride
2-penicillin
Cefradine-6
#由于要有多条药名字符串,需要用列表进行存储
#定义 medicine 空列表用于存储药名
medicine=[]
#定义变量 n,存储药名数量
n=int(input())
#循环 n 遍,读取 n 个药名
for i in range(1,n+1):
#每次循环读取一个药名,存于变量 temp
temp=input()
#将 temp 追加到 medicine 列表尾部
medicine.append(temp)
#输入结束
#再来一个循环,遍历每一个药名,进行格式化处理
for i in range(0,n):#第一个药名存储在列表中索引为 0 的位置
#将一个药名存放于变量 temp
temp=medicine[i]
#将当前药名 temp 先字母全部小写后,存回 temp
temp=temp.lower()
#将当前药名 temp 首字母大写后,存回 temp
temp=temp.capitalize()
#输出修改后的当前药名
print(temp)
练习
一、字符替换
在应用计算机编辑文档的时候,我们经常遇到替换任务。如把文
档中的“电脑”都替换成“计算机”。现在请你编程模拟一下这个操
作。
输入两行内容,第 1 行是原文(长度不超过 200 个字符),第 2 行
输入要查找的字符串 a,第 3 行输入要替换的字符串 b,请将原文中
所有的字符串 a 都替换成字符串 b。
输入样例:
I love China. I love Beijing.
I
You
输出样例:
You love China. You love Beijing.
这道题呢就还是从我们刚学的字符串的内置函数中找能解决这一题的内置函数
#获得原文字符串
yuanwen=input()
#获得查找字符串
chazhao=input()
#获得替换字符串
tihuan=input()
#进行查找替换,注意 replace 函数会修改原来字符串
#会返回一个新的替换之后的字符串,需要另找变量存储
xinwen=yuanwen.replace(chazhao,tihuan)
#输出替换后的字符串
print(xinwen)
二、变换大小写
给定一个字符串,将其中所有的小写字母转换成大写字母。
输入:
输入一行,包含一个字符串(长度不超过 100,可能包含空格)。
输出:
输出转换后的字符串。
样例输入:
helloworld123Ha
样例输出:
HELLOWORLD123HA
这道题呢就更加简单了,只需要用到将字符串中的小写字母全部变为大写字母的函数
也就是upper
# 先创建一个变量来接受一下从键盘读入的字符串
str = input()
# 调用一下内置函数,将字符串中的小写字母转换为大写字母
str = str.upper()
print(str)
来看一下输出:
OK完工啦!
-------------------------------------------------------------------------------------End------------------------------------------------------------------------------------------