第1关:字符串的拼接:名字的组成

任务描述

本关任务是将两个不同的字符串,拼接形成一个字符串,并将新字符串输出来。字符串或串(String)是由数字、字母、下划线组成的一串字符。在 Python 中,字符串用单引号或者双引号括起来。在很多情况下,我们需要将两个字符串拼接起来,形成一个字符串。
例如,一个人的姓名,通常是由“姓氏”+“名字”组成的。在很多程序中,为了方便后续处理,通常将姓氏和名字分别存在两个变量中。然后在显示时,要将姓氏和名字拼接起来,按全名显示。

first_name = 'Zhang'
last_name = 'san'

输出如下:

full_name = 'Zhang san'

相关知识

Python 中使用+来合并两个字符串,这种合并字符串的方法叫做拼接。其基本语法如下:

result_string = source_string1 + source_string2

其中:

source_string1:待合并的第一个字符串;source_string2:待合并的第二个字符串;result_string:合并后的字符串。

注意:如果需要,在两个字符串之间可以增加相应的空格,具体见下面的例子。例如,将姓氏和名字拼接成全名:

输出结果:

Zhang san

如果您想了解更多有关字符串的知识,请参考:【美】 Eric Matthes 著《Python 编程——从入门到实践》第二章。

编程要求

本关的编程任务是补全src/Step1/full_name.py文件中 Begin-End 区间的代码,实现如下功能:

  • 将存放姓氏的字符串变量和存放名字的字符串变量拼接起来,中间用一个空格隔开,并将结果存储在full_name变量中;

  • 打印输出full_name变量。

测试说明:

本关的测试文件是src/step1/full_name.py,测试过程如下:

  1. 学习者将src/Step1/full_name.py中的代码按编程要求依次补充完毕,将然后点击评测,平台将自动编译并运行full_name.py,并以标准输入方式提供测评输入;

  2. 平台获取程序的输出,然后将其与预期输出对比。如果一致,则测试通过,否则测试失败。

以下是平台对src/step1/full_name.py的样例测试集:

测试输入:

# coding=utf-8
# 将姓氏和名字分别保存在两个变量中
first_name = 'Zhang'
last_name = 'san'
# 将姓氏和名字拼接,将结果存储在full_name变量中
full_name = first_name + " " + last_name
print(full_name)

预期输出:

Zhang san

开始你的任务吧,祝你成功!

代码:

# coding=utf-8# 存放姓氏和名字的变量
first_name = input()
last_name = input()# 请在下面添加字符串拼接的代码,完成相应功能
########## Begin ##########
name=first_name+" "+last_name
print(name)########## End ##########

第2关:字符转换

任务描述

本关任务:对给定的字符串进行处理,包括字符串长度计算、大小写转换以及去除字符串前后空格等。
        在字符串处理中,经常需要统计字符串的长度、进行大小写转换以及去除字符串前后空格等操作。例如,在基于关键词的搜索引擎中,要查询关键词是否在文档或者网页中出现,搜索引擎并不需要区分关键词中字符的大小写以及关键词前后的空格等。这时就需要对字符串进行处理,将其中的大写字符都转换为小写,并剔除字符串开头和结尾处的空格,然后再统一进行字符串匹配。

相关知识

Python 标准库提供了一系列关于字符串处理的函数。本关的小目标是让大家学习并掌握 Python 常用字符串方法中的len()lower()strip()函数的用法,并完成相应字符串处理任务。

字符串长度获取

Python 提供了len()函数来计算,并返回字符串的长度,即字符串中单个元素的个数。其基本语法如下:

length = len(target_string)

其中:

target_string: 目标字符串变量;length: 保存字符串长度的变量;len: 获取字符串长度的语法关键词。

下面给出了具体的使用示例:

# coding=utf-8
# 创建一个字符串变量,获取其长度并打印出来
color = 'It is red'
length = len(color)
print (length)
# 直接在len函数中引入字符串内容获得其长度,然后打印出来
print(len('This is a circle!'))

输出结果:

9
17

注意: 从输出结果可以看到,空格也占一个字符元素的位置。

大小写转换

Python 提供了upper()lower()方法,来对字符串进行大小写转换。其中,upper()会将字符串中的所有字符都转换为大写,lower()则将所有字符转换为小写。除此之外,Python 还贴心的提供了title()方法,将字符串所有单词的首字母变成大写,而其他字母依然小写。各个方法的具体语法如下:

# 将源字符串转换为大写并存入upper_string变量
upper_string = source_string.upper()
# 将源字符串转换为小写并存入lower_string变量
lower_string = source_string.lower()
# 将源字符串每个词首字母转换为大写并存入title_string变量
title_string = source_string.title()

其中,source_string为待处理的源字符串。具体使用示例如下:

# coding=utf-8
# 创建一个字符串say_hello
say_hello = 'Dear my Daughter'
# 使用upper()方法对say_hello字符串进行处理
upper_say_hello = say_hello.upper()
# 使用lower()方法对say_hello字符串进行处理
lower_say_hello = say_hello.lower()
# 使用title()方法对say_hello字符串进行处理
title_say_hello = say_hello.title()
# 打印输出四个字符串
print (say_hello+"\n")
print (upper_say_hello+"\n")
print (lower_say_hello+"\n")
print (title_say_hello+"\n")

输出结果:

Dear my Daughter
DEAR MY DAUGHTER
dear my daughter
Dear My Daughter

注意: 由上述打印结果可以看出,上述方法的调用,并不会对原始的 say_hello字符串产生影响,转换后的字符串会存入新的变量中。

去除字符串首尾空格

Python 提供了strip()方法,可以去除字符串两侧(不包含内部)全部的空格。使用该方法,也可以通过指定参数,去除两侧指定的特定字符。

注意:在指定参数时,如果参数是多个字符,则该方法会将多个字符逐个去比对,进行删除(区分大小写),直到首尾两侧没有匹配的字符为止。但是,该方法对字符串中间的字符没有影响。

其基本语法如下:

strip_string1 = source_string.strip()
string_strip2 = source_string.strip(target_char)
其中:
source_string:待处理的源字符串;strip_string1和strip_string2:处理后的字符串;target_char:需要从源字符串首尾去除的特定字符。

具体使用示例如下:

# coding = utf-8
# 创建一个字符串hello_world
hello_world = '  **The world ** is big!*    '
# 利用strip()方法处理hello_world字符串
blank_hello_world = hello_world.strip()
char_hello_world = hello_world.strip('TH *')
# 打印输出转换后的字符串
print(blank_hello_world)
print(char_hello_world)

输出结果:

**The world ** is big!*
he world ** is big!

输出结果分析:

  • 从第一行打印结果可以看到,strip()方法去除了源字符串首尾的所有空格,但是并没有去除字符串中间的空格;

  • 从第二行打印结构可以看出,strip()方法将源字符串首尾所有空格、* 以及字符T去掉了,而源字符串中头部的h因为是小写并没有去除。

编程要求

本关的编程任务是,补全src/Step2/method1.py文件中 Begin-End 区间的代码,实现给定字符串的转换功能,具体要求如下:

  • step1 :将输入的源字符串source_string首尾的空格删除;

  • step2 :将 step1 处理后的字符串的所有单词的首字母变为大写,并打印输出;

  • step3 :将 step2 转换后的字符串的长度打印输出。

测试说明

本关的测试文件是src/Step2/method1.py,测试过程如下:

  1. 学习者将src/Step2/method1.py中的代码补充完毕,然后点击评测。平台自动编译运行method1.py,并以标准输入方式提供测评输入;

  2. 平台获取程序的输出,然后将其与预期输出对比。如果一致,则测试通过,否则测试失败。

以下是平台对src/Step2/method1.py的样例测试集:

测试输入:

Where there is a will,there is a way

预期输出:

Where There Is A Will,There Is A Way
36

开始你的任务吧,祝你成功!

代码:

# coding=utf-8# 获取待处理的源字符串
source_string = input()# 请在下面添加字符串转换的代码
########## Begin ##########
print(source_string.strip().title())
print(len(source_string.strip().title()))########## End ##########

第3关:字符串查找与替换

任务描述

本关的任务是,给定一个字符串,要利用 Python 提供的字符串处理方法,从该字符串中,查找特定的词汇,并将其替换为另外一个更合适的词。例如,给定一个字符串Where there are a will, there are a way,我们发现这句话中存在语法错误,其中are应该为is,需要通过字符串替换将其转换为Where there is a will, there is a way

在大家日常工作使用 Word 编写文档的过程中,经常会遇到一个问题,发现前面写的文档中某个词用错了,需要换为另外一个词来表达。Word 提供了全文查找与替换的功能,可以帮助用户很方便的处理这一问题。那么,这一功能最基础和核心的就是字符替换,如果我们要自己基于 Python 来实现,该怎么做呢?

相关知识

本关的小目标:学习并掌握 Python 中常用的字符串方法,包括字符串查找、字符串切分、字符串替换等。

字符串查找

Python 提供了内置的字符串查找方法find(),利用该方法可以在一个较长的字符串中查找子字符串。如果该字符串中,有一个或者多个子字符串,则该方法返回第一个子串所在位置的最左端索引,若没有找到符合条件的子串,则返回-1find()方法的基本使用语法如下:

source_string.find(sub_string)

其中:

source_string:源字符串;sub_string:待查的目标子字符串;find:字符串查找方法的语法关键字。

例如,在一个字符串中,查找两个单词的位置:

# coding=utf-8
# 创建一个字符串
source_string = 'The past is gone and static'
# 查看"past"在source_string字符串中的位置
print(source_string.find('past'))
# 查看"love"在source_string字符串中的位置
print(source_string.find('love'))

输出结果:

4
-1

字符串替换

Python 提供了replace()方法,用以替换给定字符串中的子串。其基本使用语法如下:

source_string.replace(old_string, new_string)

其中:

source_string:待处理的源字符串;old_string:被替换的旧字符串;new_string:替换的新字符串;replace:字符串替换方法的语法关键词。

例如,在如下字符串中,用small子串替换big子串:

# coding = utf-8
# 创建一个字符串circle
source_string = 'The world is big'
# 利用replace()方法用子串"small"代替子串"big"
print(source_string.replace('big','small'))

输出结果:

The world is small

字符串分割

Python 提供了split()方法实现字符串分割。该方法根据提供的分隔符,将一个字符串分割为字符列表,如果不提供分隔符,则程序会默认把空格(制表、换行等)作为分隔符。其基本使用语法如下:

source_string.split(separator)

其中:

source_string:待处理的源字符串;separator:分隔符;split:字符串分割方法的关键词。

例如,用+/还有空格作为分隔符,分割字符串:

# coding = utf-8
# 待处理字符串source_string
source_string = '1+2+3+4+5'
# 利用split()方法,按照`+`和`/`对source_string字符串进行分割
print(source_string.split('+'))
print(source_string.split('/'))

输出结果:

['1', '2', '3', '4', '5']
['1+2+3+4+5']

编程要求

本关的编程任务是,补全src/Step3/method2.py文件中 Begin-End 区间的代码,实现如下功能:

  • step1 :查找输入字符串source_string中,是否存在day这个子字符串,并打印输出查找结果;

  • step2 :对输入字符串source_string执行字符替换操作,将其中所有的 day替换为time,并打印输出替换后的字符串;

  • step3 :对 step2 进行替换操作后的新字符串,按照空格进行分割,并打印输出分割后的字符列表。

测试说明

本关的测试文件是src/Step3/method2.py,测试过程如下:

  1. 学习者将src/Step3/method2.py中的代码按上述编程要求补充完毕,然后点击评测,平台将自动编译并运行method2.py,并以标准输入方式提供测评输入;

  2. 平台获取程序的输出,然后将其与预期输出对比。如果一致,则测试通过,否则测试失败。

以下是平台对src/Step3/method2.py的样例测试集:

测试输入:

All day is no day when it is past.
预期输出:
4
All time is no time when it is past.
['All', 'time', 'is', 'no', 'time', 'when', 'it', 'is', 'past.']

第一行输出结果即为"day"在source_string字符串中的位置; 第二行输出结果即为将其中所有的 day替换为time后的字符串; 第三行输出结果即为对 step2 进行替换操作后的新字符串,按照空格进行分割后的字符列表。

开始你的任务吧,祝你成功!

代码:

# coding = utf-8
source_string = input()# 请在下面添加代码
########## Begin ##########print(source_string.find('day'))
string=source_string.replace('day','time')
print(string)
print(string.split(' '))########## End ##########

实验四,字符串的基本操作(Python,头歌)相关推荐

  1. 湖南大学python头歌实训-分支语句

    文章目录 第二章-Python语言基础-2.2条件分支(一) 第1关:顺序结构 第2关:选择结构:if-else 第3关:选择结构 - 三元操作符 第4关:选择结构-入门实训 第二章-Python语言 ...

  2. Python头歌答案入门基础代码60例

    头歌60道题目,代码,输入输出和解析      

  3. 实验一 顺序与选择结构(Python 头歌)

    第1关:顺序结构 任务描述 程序最基本的结构就是顺序结构,顺序结构就是程序按照语句顺序,从上到下依次执行各条语句. 本关要求学习者理解顺序结构,并对输入的三个数changeone.changetwo. ...

  4. 湖南大学python头歌实训-循环语句

    文章目录 第二章-Python语言基础-2.3循环(一) 第1关:While循环与break语句 第2关:for循环※ 第3关:for循环与continue语句 第4关:循环嵌套 第5关:迭代器 第二 ...

  5. python头歌--文件翻转

    1. 第一关 编程要求 根据提示,在右侧编辑器补充代码,输出文件"出塞.txt"全部字符.文件路径和文件名为:'/data/bigfiles/出塞.txt' 测试说明 平台会对你编 ...

  6. 湖南大学python头歌实训-函数

    文章目录 第二章-Python语言基础-2.5函数(一) 第1关:内置函数的使用 第2关:函数的调用 第3关:函数基础训练 第二章-Python语言基础-2.5函数(二) 第1关:函数的参数使用 第2 ...

  7. 四、分支结构(头歌实践平台)

    第1关:Java分支结构之 if-else 任务描述 本小节需要你完成一个判断学员成绩等级的小程序,效果如下: 相关知识 生活中,我们经常需要先做判断,然后才决定是否要做某件事情.例如,如果考试成绩大 ...

  8. 湖南大学python头歌实训-matplotlib

    第1关: 线图的制作 本关任务:寒冷冬天两块不同金属都加热到500度,在空气中放置,温度会不断降低,在接下来的十小时内,现每隔半小时测量一次,测量得到金属块一的温度是500,470,450,400,3 ...

  9. python头歌第1关:评委打分

    任务描述 本关任务:编写一个评委打分. 相关知识 为了完成本关任务,你需要掌握:1.文件打开,2.文件读取,3.文件关闭. 编程要求 文件score.txt中存储了歌手大奖赛中10名评委给每个歌手打的 ...

  10. Python头歌实训之函数

    1.定义判断质数的函数 def isprime(a):for i in range(2, a):if a%i == 0:return Falsebreakelse:return True #代码开始 ...

最新文章

  1. 昌邑机器人_上下料机器人昌邑机器人生产工厂
  2. exchange 2010备份及恢复
  3. sql优化之物理优化
  4. java堆栈信息 linux_java - Java程序无法从Linux服务器远程读取文件 - 堆栈内存溢出...
  5. 【AITISA 第11次标准会议新一代人工智能产业技术创新战略联盟——AI标准工作组】神经网络压缩组会议
  6. CentOS中安装mysql
  7. Hulu 视频QoS优化策略
  8. linux java获取文件创建时间_Linux查看文件的最初创建时间
  9. Ubuntu 中改变文件的默认打开方式(转)
  10. 埋点测试-移动端/PC端
  11. 问题 K: 输出月历 山东科技大学OJ
  12. L1-045 宇宙无敌大招呼-PAT团体程序设计天梯赛GPLT
  13. python3安装步骤-Mac安装python3的方法步骤
  14. UITextfiled 的属性注释简介
  15. unity之制作二维码扫描
  16. 成神之路——实施工程师
  17. 关于23届大数据岗实习总结
  18. 抖音养号教程技巧,做抖音怎么养号上热门
  19. ECMAScript - 字符串的部分使用方法
  20. 拯救rm-rf删库事故

热门文章

  1. 个人记事本(idea插件与实用软件)
  2. 揭秘信用卡套现三种方法 手续费为套现额的10%
  3. GPT分区下安装win7_64位系统
  4. matlab向量机保存模型,【2017年整理】基于Matlab的支持向量机工具箱.pdf
  5. 纯CSS实现海浪效果
  6. 化合物不知道怎么用?达咩!| MedChemExpress
  7. linux只输入wc命令,Linux系统中wc命令的用法详解
  8. mysql怎么创建数据库创建表空间_mysql怎么创建表空间
  9. 完全用Linux工作(转载)
  10. mysql字符串不等于怎么优化_MySQL 数据类型优化(二:字符串) | 剑花烟雨江南...