实验三 字符类型及其操作(新)

您所在的位置:网站首页 二零二一年国债 实验三 字符类型及其操作(新)

实验三 字符类型及其操作(新)

2023-11-08 18:02| 来源: 网络整理| 查看: 265

第1关:判断回文数 任务描述

本关任务:输入一个整数,判断其是否回文数。 回文数是指该数翻转后也等于该数本身。例如12321就是回文数,12345不是回文数。

相关知识

为了完成本关任务,你需要掌握:1.如何获判断字符串是否都是数字字符,2.如何得到翻转后的字符串。

判断字符串是否数字

str.isnumeric()方法可以判断字符串str是否都是数字字符。若都是数字字符,返回true,否则返回false

字符串翻转

通过字符串[::-1]的切片形式可以得到翻转的字符串 或者 通过循环,按索引从-1到-n(n为字符串长度),将对应的字符一个个连接起来得到翻转的字符串

编程要求

根据提示,在右侧编辑器补充代码,接收用户输入的字符串。 若字符串不是数字字符串,提示不是数字 若字符串x是回文数,显示x是回文数 若字符串x不是回文数,显示x不是回文数

相关课件和视频

相关实践教程

测试说明

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

测试输入:请输入字符串12321; 预期输出: 12321是回文数

测试输入:请输入字符串12345; 预期输出: 12345不是回文数

测试输入:请输入字符串12a; 预期输出: 不是数字

古之立大志者,不惟有超世之才,亦必有坚韧不拔之志。 开始你的任务吧,祝你成功!

x=input("请输入一个数字") #代码开始 if x.isnumeric() == False: print("不是数字"); elif x == x[::-1]: print("{}是回文数".format(x)); else: print("{}不是回文数".format(x)); #代码结束 第2关:凯撒密码解密 任务描述

本关任务:编写一个能对凯撒密码执行解密的小程序。

相关知识

为了完成本关任务,你需要掌握:1.凯撒密码加密的规则,2.字符的编码;3.如何遍历字符串。

凯撒密码加密的规则

凯撒密码是古罗马凯撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符,对应关系如下: 原文:ABCDEFGHIJKLMNOPQRSTUVWXYZ 密文:DEFGHIJKLMNOPQRSTUVWXYZABC

字符编码

每个字符在计算机中可以表示为一个数字,称为编码。 字符串则以编码序列方式存储在计算机中。 目前,计算机采用的重要编码是ASCII编码。 asc码表如图所示

字符A的编码是65,字符B的编码是66,其余字母以此类推 ord(字符)函数可以返回字符的编码 chr(码值)函数可以返回编码对应的字符 例如,chr(65)是'A' ord('D')是68

如何遍历字符串

for 字符变量 in 字符串: 从字符串中逐一提取每个字符,放在字符变量中,对提取到的每个字符执行一次循环体 例如,要统计字符串s中元音字母的个数

s='this is an apple'for ch in s:if ch in "aeoiu":c=c+1print("元音字符个数",c)

相关课件和视频 字符串操作

编程要求

根据提示,在右侧编辑器补充代码,实现凯撒密码解密。 即输入一串采用凯撒密码加密后的字符串(大写字母),输出解密后的字符串

测试说明

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

测试输入:WKLV LV DQ DSSOH; 预期输出: "THIS IS AN APPLE" 提示:大写英文字母才按规则进行解密

长风破浪会有时,直挂云帆济沧海。 开始你的任务吧,祝你成功!

mw = input("") #代码开始 for ch in mw: if "a"5: print(“yes”) 相关课件和视频 字符串操作

测试说明

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

测试输入:3; 预期输出:

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

#打印田字格 x=eval(input()) #代码开始 for i in range(2*x-1): if i in (0,x-1,2*x-2): print("* "*(2*x-1)) else: print("* "+" "*(2*x-4)+"* "+" "*(2*x-4)+"* ") #代码结束

第7关:数字汉字转换

任务描述

不管是阿拉伯数字(1、2、3……), 还是所谓汉字小写数码(一、二、三……), 由于笔画简单,容易被涂改伪篡。所以一般文书和商业财务票据上的数字都要采用汉字数码大写: 壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、(“万、亿”本身笔画已经比较复杂,使用机会也少,没有必要再用别的字代替)。如“ 3564 元”写作“叁仟伍佰陆拾肆元” 。

任务要求

编写程序,将输入的阿拉伯数字金额转换为汉字数码大写的小程序。假设给定的数字不超过1亿。

提示:除了最后一个数字字符,每个数字字符对应一个数值的汉字和一个权值的汉字,数值的汉字由其大小决定,权值的汉字由其位置决定。 例如12345,1对应数值壹和权值万,2对应数值贰和权值仟,3对应数字叁和权值佰,4对应数值肆和权值拾。

提示:设置两个字符串 hz='零壹贰叁肆伍陆柒捌玖' dw='拾佰仟万拾佰仟'。 对输入字符串(除最后一位)循环,将每位数字对应的数值汉字和权值汉字连接起来。最后再连接最后一位的数字汉字和元即可。

注意:数值为0的情况。

对于if语句,同时需要符合的两个条件,使用and连接。 例如要求x大于10并且y大于5,输出yes If x>10 and y>5: print(“yes”) 对于只要符合一个的情况,使用or连接。 例如只要x大于10或y大于5,输出yes If x>10 or y>5: print(“yes”)

测试说明

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

测试输入:12345 预期输出: 壹万贰仟叁佰肆拾伍元 测试输入:100 预期输出:壹佰元 测试输入:23451000 预期输出:贰仟叁佰肆拾伍万壹仟元 测试输入:1009020 预期输出: 壹佰万玖仟零贰拾元 测试输入: 45689021 预期输出:肆仟伍佰陆拾捌万玖仟零贰拾壹元

提示: 注意对于连续的0值的处理

骐骥一跃,不能十步;驽马十驾,功在不舍;锲而舍之,朽木不折;锲而不舍,金石可镂。 开始你的任务吧,祝你成功!

x=input("") hz='零壹贰叁肆伍陆柒捌玖' dw='拾佰仟万拾佰仟' y="" #代码开始 i=len(x) for c in x[:-1]: if c!="0"or(c=="0"and x[-i+1]!="0"and i!=5and i!=9): y=y+hz[int(c)] if c!='0'or(c=='0'and((i==5and y[-1]!="亿"and y[-1]!="兆")or(i==9and y[-1]!="兆"))): y=y+dw[i-2] i=i-1 if x[-1]!='0': y=y+hz[int(x[-1])] y=y+"元" #代码结束 print(y) 第8关:日期汉字格式转换 任务描述

本关任务: 编写程序,用户输入阿拉伯数字的日期,转换为汉字的日期。 例如,输入2021/2/25,输出二零二一年二月二十五日

相关知识

为了完成本关任务,你需要掌握:如何返回字符c在字符s中的位置

获取字符在字符串的位置

使用str.find(c)方法可以返回字符串str中字符c所在位置的序号。 “2021/2/25“.find(“/“)返回数字4。 str.rfind(c)方法可以返回从尾部起,字符串str中字符c所在位置的序号。 “2021/2/25“.rfind(“/“)返回数字6。

测试说明

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

测试输入:2021/3/18; 预期输出: 二零二一年三月十八日

测试输入:2020/12/1; 预期输出: 二零二零年十二月一日

提示: 将年月日分别截取出来处理 对于月份等于10、大于10和小于10分别处理 对于日号也要分几种情况考虑: 小于10、等于10、10的整数倍和不是10的整数倍

[解题视频]()

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

x=input("") hz="零一二三四五六七八九" #代码开始 nf=x[:x.find("/")] zwnf="" for c in nf: zwnf=zwnf+hz[eval(c)] yf=x[x.find("/")+1:x.rfind("/")] if eval(yf)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3