当前位置: 首页 > news >正文

实验五 Python字符串处理

第1关:逆序输出字符串

任务描述
本关任务:编写程序,将一个字符串中的字符按逆序打印出来。。

程序分析
先输出字符串的最后一个字符,且不换行,然后输出倒数第2个字符,同样不换行,一直到第1个字符。利用for循环控制字符索引编号,循环赋值目标变量从0变化到字符串的长度。取字符串的长度可以利用len()函数。

编程要求
根据提示,在右侧编辑器补充代码,输入一个字符串,将字符串中的字符逆序输出。

测试说明
平台会对你编写的代码进行测试:

测试输入1:Please enter a string:ABCDEF
预期输出1:FEDCBA

测试输入2:Please enter a string:Pyhon123
预期输出2:321nohyP

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

str = input("Please enter a string:") for i in range(len(str),0,-1): print(str[i-1],end="")

第2关:循环输出字符串

任务描述
本关任务:编写程序,输入一个字符串,每次去掉最后面的字符并输出。

程序分析
先求出字符串的长度,使用切片法输出字符串去掉最后一个字符后的字符串;然后对新的字符串采用同样的方法去掉最后一个字符后输出,一直到只剩下原字符串的第1个字符。利用for循环控制字符索引编号,循环赋值目标变量从-1变化到字符串的长度的负数。取字符串的长度可以利用len()函数。

编程要求
根据提示,在右侧编辑器补充代码,输入一个字符串,将字符串中的字符每次去掉最后面的字符并输出。

测试说明
平台会对你编写的代码进行测试:

测试输入1:Please Input:ABCDEF
预期输出1:
ABCDE
ABCD
ABC
AB
A

测试输入2:Please Input:Pyhon123
预期输出2:
Pyhon12
Pyhon1
Pyhon
Pyho
Pyh
Py
P

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

str = input("Please Input:") i = len(str) while i > 0: print(str[0:i-1]) i -= 1

第3关:字符串连接

任务描述
本关任务:编写程序,从键盘输入5个字符串,将它们连接成一个字符串后输出。

相关知识
为了完成本关任务,你需要掌握:字符串的连接方法。

编程要求
根据提示,在右侧编辑器补充代码,将输入的5个字符串连接后输出。

测试说明
平台会对你编写的代码进行测试:

测试输入:
Please enter a string:1
Please enter a string:2
Please enter a string:abc
Please enter a string:3
Please enter a string:xyz

预期输出:
12abcxyz

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

n = 5 str = "" while n: n -= 1 str += input("Please enter a string:") print(str)

第4关:挑选以元音字母开头的单词

任务描述
本关任务:编写程序,从键盘输入5个英文单词,输出其中以元音字母开头的单词。

程序分析
分析:输入一个英文单词,并进行判断,用for循环控制重复执行5次。可以将所有元音字母构成一个字符串s='AEIOUaeiou',遍历该字符串中的各个字符,并判断单词的首字母是否在该字符串中。如果首字母在该字符串中,则是元音,输出单词,否则,不输出。

编程要求
根据提示,在右侧编辑器补充代码,输出以元音字母开头的单词。

测试说明
平台会对你编写的代码进行测试:

测试输入与预期输出:
Please enter a word:a
a
Please enter a word:hello
Please enter a word:every
every
Please enter a word:enter
enter
Please enter a word:key

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

n = 5 s = 'AEIOUaeiou' while n: str = input("Please enter a word:") if str[0] in s: print(str) n -= 1

第5关:翻译密码

任务描述
本关任务:翻译密码。为了保密,常不采用明码电文,而用密码电文,按事先约定的规律将一个字符转换为另一个字符,收报人则按相反的规律转换得到原来的字符。例如,将字母“A”→“F”,“B”→“G”,“C”→“H”,即将一个字母变成其后第5个字母。例如,“He is in Beijing.”应转换为“Mj nx ns Gjnonsl.”。

程序分析
依次取电文中的字符,对其中的字母进行处理,对字母之外的字符维持原样。取字母的ASCII代码,加上5,再按其ASCII码转换为另一个字母。还有一个问题要处理,当字母为“V”时,加5就超过了“Z”,故应使之转换为“A”,同理,“W”→“B”,“X”→“C”,“Y”→“D”,“Z”→“E”。判断一个字符是否为字母可以使用str.isalpha()函数。

相关知识
常见的字符串类型测试函数:字符串类型测试函数返回的都是逻辑值,假设有字符串s,则有:
s.isalnum():是否全是字母和数字,并至少有一个字符
s.isalpha():是否全是字母,并至少有一个字符
s.isdigit():是否全是数字,并至少有一个字符
s.isspace():是否全是空格,并至少有一个字符
s.islower():s中的字母是否全是小写
s.isupper():s中的字母是否便是大写
s.istitle():s是否是首字母大写

编程要求
根据提示,在右侧编辑器补充代码,实现对输入的电文加密。

测试说明
平台会对你编写的代码进行测试:

测试输入1:He is in Beijing.
预期输出1:Mj nx ns Gjnonsl.

测试输入2:China
预期输出2:Hmnsf

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

str_input = input() str_output = '' for i in range(0, len(str_input)): if str_input[i].isalpha(): ascii_code = ord(str_input[i]) if str_input[i].islower(): new_ascii_code = ascii_code + 5 if new_ascii_code > ord('z'): new_ascii_code -= 26 else: new_ascii_code = ascii_code + 5 if new_ascii_code > ord('Z'): new_ascii_code -= 26 str_output += chr(new_ascii_code) else: str_output += str_input[i] print(str_output)

第6关:Python的标识符

任务描述
本关任务:Python的标识符以字母或下划线(_)开头,后接字母、数字或下划线组成,从键盘输入字符串,判断它是否Python的标识符。编写程序实现标识符是否正确的判断,要求至少输入两个字符,否则提示input error。

相关知识
Python中的字符串常量
使用字符串常量,应导入string模块,即要使用import string
下面是一些常用的Python字符串常量
string.digits:包含0-9的字符串
string.letters:包含所有大小写字母的字符串
string.lowercase:所有小写字母
string.printable:包含所有可以打印字符的字符串
string.punctuation:包含所有标点的字符串
string.uppercase:包含所有大写字母的字符串

字母字符串常量与地区有关,比如string.letters,也就是说,其具体值取决于python所配置的语言,如果确认自己使用的是ascii,那么可以在签名加上ascii_前缀。例如:string.ascii_letters

使用python内置函数判断字符串是否为关键字
示范代码如下:
import keyword
keyword.iskeyword("str")

其中:
str为要检查的字符串
如果是关键字返回True,不是返回False
例如:int 是整数类型转换函数的函数名,不是关键字所以返回False

任务分析
为了完成本关任务,你可以按如下方式操作:利用string模块中的常量,包括string.digits(数字0~9)、string.ascii_letters(所有大小写字母)、string.ascii_lowercase(所有小写字母)、string.ascii_uppercase(所有大写字母)。先输入字符串,再分别判断首字符和中间字符,并给出提示。判断中间字符利用for循环遍历字符串。

编程要求
根据提示,在右侧编辑器补充代码,对输入的字符串进行判断,显示效果仿照IDLE编辑器的输出效果。

当输入的字符少于2个字符时,输出input error
当输入的字符串是关键字时,则输出*** is a keyword,其中 ***为您输入的字符串,下同
当输入的字符串不是以下划线或字母开头,则输出invalid: first symbol must be alphabetic
当输入的字符串以字母或下划线开头,但是包含字母、数字、下划线以外的字符时(暂不考虑中文等其他字符),则输出invalid:identifier symbols must be alphanumeric
当输入的字符串是合法标识符时,输出*** is a valid identifier
测试说明
平台会对你编写的代码进行测试:

测试输入:Please Input Identifier:a
预期输出:input error

测试输入:Please Input Identifier:_abc
预期输出:_abc is a valid identifier

测试输入:Please Input Identifier:if
预期输出:SyntaxError: if is a keyword

测试输入:Please Input Identifier:123a
预期输出:invalid: first symbol must be alphabetic

测试输入:Please Input Identifier:abc:
预期输出:invalid:identifier symbols must be alphanumeric

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

import string import keyword n = input("Please Input Identifier:") digits = string.digits letters = string.ascii_letters punctuation = string.punctuation Underline = '_' lenth = len(n) if lenth >= 2: if n[0] in letters or n[0] in Underline: for i in range(1,lenth): if n[i] in digits or n[i] in letters or n[i] in Underline == True: fact = True continue else: fact = False break if fact == True: if keyword.iskeyword(n)==True: print('SyntaxError: {} is a keyword'.format(n)) else: print('{} is a valid identifier'.format(n)) else: print('invalid:identifier symbols must be alphanumeric') else: print('invalid: first symbol must be alphabetic') else: print('input error')

第7关:求数字之和

任务描述
本关任务:编写程序,实现如下功能:从键盘输入几个数字,用逗号分隔,求这些数字之和。要求输出结果保留2位小数。

程序分析
输入的数字当作一个字符串来处理,首先分离出数字串,再转换成数值,这样就能求和。

相关知识
为了完成本关任务,你需要掌握:str.split()函数的使用。

编程要求
根据提示,在右侧编辑器补充代码,计算并输出输入的字符串中的数字之和。

输入语句建议格式:input('请输入几个数字(用逗号分隔)')
要求输出结果保留2位小数。
测试说明
平台会对你编写的代码进行测试:

测试输入:4,91,51,2,32
预期输出:sum=180.00

测试输入:5,1,1.51,12.3,22,100.24
预期输出:sum=142.05

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

str = eval(input("请输入几个数字(用逗号分隔)")) str = list(str) sum = 0 for i in range(len(str)): sum += float(str[i]) print('sum=%.2f' % sum)
http://www.jsqmd.com/news/642169/

相关文章:

  • 视觉语言模型部署“最后一公里”攻坚:FP16量化失真补偿、跨模态缓存对齐、动态视觉token剪枝——奇点大会TOP3开源方案深度对比
  • 突破某音新版SSL Pinning:无需Frida的SO层Patch方案
  • # 发散创新:基于Rust的内存安全防御机制实战解析在现代软件开发中,**内存安全漏洞**(如缓冲区溢出
  • 2026年4月,企业出海如何优选?深度解析香港及海外公司注册服务商五强格局 - 2026年企业推荐榜
  • 前端 WebSocket 新方法:别再用传统轮询了
  • Comsol弱解法在三维光子晶体能带计算中的应用
  • 【仅限首批参会者获取】:2026奇点大会VQA开源工具链提前泄露版(含3个工业级微调模板+标注规范白皮书)
  • 2026年当下,如何选择评价高的财务审计服务?五大品牌深度解析与选购指南 - 2026年企业推荐榜
  • 2025届最火的降重复率平台推荐
  • AI安全进阶:AI对抗性攻击的类型与防御策略
  • Go语言怎么做端到端测试_Go语言E2E端到端测试教程【实用】
  • IAR开发GD32必看:TCMSRAM的另类用法——解决FreeRTOS+LwIP项目内存不足问题
  • 2025届学术党必备的五大降AI率网站横评
  • 多模态幻觉即刻拦截方案:轻量级MoE-Guard插件(<300ms延迟,支持HuggingFace一键集成)
  • NZXT 及其合作伙伴支付 345 万美元和解租赁欺诈诉讼,9 月或完成赔偿减免
  • 前端国际化新方法:别再用传统 i18n 了
  • 内容规划:别让灵感在混乱中迷路
  • 别再硬算大数幂了!用C++实现重复平方乘,搞定RSA加密核心运算
  • 2026年4月大理GEO搜索优化服务商专业测评与费用解析 - 2026年企业推荐榜
  • 2026年当下,广东市场带颈平焊法兰五强服务商深度评估与选型指南 - 2026年企业推荐榜
  • 多模态大模型可解释性不是“能不能看”,而是“敢不敢用”:金融风控、自动驾驶、临床辅助三大高危场景的5项强制性XAI交付标准
  • 2025届毕业生推荐的降AI率网站解析与推荐
  • [架构演进解析] UNet++:从跳跃连接到嵌套稠密连接,如何重塑医学图像分割精度
  • 从RCE到数据库接管:一次完整的Confluence CVE-2022-26134实战利用与权限维持记录
  • openEuler服务器没网怎么办?保姆级教程:从系统依赖到Python虚拟环境的全离线部署实录
  • 2026年最新杨梅酒生产厂家综合评测:口碑与实力兼具的品牌推荐 - 2026年企业推荐榜
  • 2026年至今内蒙古地区优质球冠形封头供应商综合评估与选型指南 - 2026年企业推荐榜
  • 2026年市政广场扫地机服务公司深度解析与选型指南 - 2026年企业推荐榜
  • Flink CDC 3.0.0 同步Oracle 19c数据,我踩过的那些坑(时区、字符集、权限)
  • 如何用3分钟告别网盘限速:八大平台直链下载助手终极指南