第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中元音字母的个数


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

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

编程要求

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

测试说明

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

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


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

mw = input("")
#代码开始
for ch in mw:if "a"<=ch<="z":print(chr(ord("a")+(ord(ch)-ord("a")-3)%26),end='')elif "A"<=ch<="Z":print(chr(ord("A")+(ord(ch)-ord("A")-3)%26),end='')else:print(ch,end='')
#代码结束

第3关:简单密码加密

任务描述

某用户在存储自己的密码时(密码由大小写英文字母和数字组成),为了不被别人知晓,将其按下列规则加密 数字字符0用9替换,1用8替换,2用7替换,3用6替换,4用5替换,5用4替换,6用3替换,7用2替换,8用1替换 英文字母a用z替换,b用y替换,c用x替换,d用w替换,e用v替换,f用u替换,g用n替换,以此类推 英文字母A用Z替换,B用Y替换,C用X替换,D用W替换,E用V替换,F用U替换,G用N替换,以此类推 编写程序,输入用户的密码,输出其加密后的密码 例如输入0012xyzM 输出9987cbaN

相关课件和视频

相关实践教程

测试说明

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

测试输入:123asAB; 预期输出: 876zhZY

测试输入:XYZ123abc45; 预期输出: CBA876zyx54


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

p=input("")
#代码开始
dic={}#字典查找
num = [str(i) for i in range(10)]
word1 = [chr(i) for i in range(ord("a"),ord("z")+1)]
word2 = [chr(i) for i in range(ord("A"),ord("Z")+1)]
for i in range(5):dic[num[i]] = num[-i-1]dic[num[-i-1]] = num[i]
for i in range(13):dic[word1[i]] = word1[-i-1]dic[word1[-i-1]] = word1[i]dic[word2[i]] = word2[-i-1]dic[word2[-i-1]] = word2[i]
#代码结束
print(p.translate(str.maketrans(dic)))#翻译表

第4关:信用卡号校验

任务描述

本关任务:编写一个能判断信用卡号是否合法的小程序。

信用卡号必须通过lun算法进行校验,其过程: 1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。 2、从卡号倒数第二位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。 3、将奇数位总和加上偶数位总和,结果应该可以被10整除。 例如,卡号是:5432123456788881 逆向奇数位为 4 2 2 4 6 8 8 1 和 = 35 逆向偶数位乘以2(有些要减去9)的结果:1 6 2 6 1 5 7 7,求和 = 35。 最后 35 + 35 = 70 可以被10整除,认定校验通过。 注意:信用卡的卡号长度是根据输入来确定的。 相关课件和视频 字符类型操作

提示: <字符串>[结尾字符:开始字符:<负整数>] 可以逆序间隔地取字符 例如 x="hello world"x[-1::-2]表示从结尾字符每隔2个字符取子串,即"drwolh"

编程要求

根据提示,在右侧编辑器补充代码,判断信用卡号是否合法。

测试说明

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

测试输入:5432123456788881; 预期输出: 合法卡号

测试输入:955876543; 预期输出: 非法卡号


天行健,君子以自强不息。地势坤,君子以厚德载物。 开始你的任务吧,祝你成功!

cardid=input("请输入信用卡号")
#代码开始
digits = [int(x) for x in reversed(cardid)]
even_digits = [d*2 for d in digits[1::2]]
even_digits = [d//10 + d%10 for d in even_digits]
even_sum = sum(even_digits)
odd_sum = sum(digits[::2])
if(odd_sum + even_sum)%10==0:print("合法卡号")
else:print("非法卡号")
#代码结束

第5关:ISBN校验

任务描述

本关任务: 国际标准书号(ISBN)用10位数字唯一标识的一本书。 最后一位数字为校验位,可以由其他9位数字计算出来,且d1+2d2+3d3+……+10d10必须是11的倍数(di的下标表示从右边起第i个数)。 校验位必须是介于0到10中的一个数字,用字母X表示10. 例如,020131452的校验和是5 10*0+9*2+8*0+7*1+6*3+5*1+4*4+3*5+2*2+1*5为88,是11的倍数

编写一个python程序,将9位整数作为输入,计算校验和并打印isbn号 例如,输入020131452,输出0201314525

测试说明

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

测试输入:711141995; 预期输出: 7111419952

测试输入:730232560; 预期输出: 730232560X


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

x=input("")
#代码开始
def cal(string):S = sum([i*int(j) for i,j in zip(range(10,1,-1),"".join(string.split('-')))])N = 11 - S%11if N == 10:return string + 'X'if N == 11:return string + '0'return string + str(N)
print(cal(x))
#代码结束

第6关:打印田字格

任务描述

本关任务:编写一个能打印田字格的小程序。

输入整数(大于2小于10),输出该整数对应的由星号和空格组成的田字格图形(注意:每一个星号后面有一个空格) 假设输入x,第一行,第x行和第2x-1行输出2x-1个星号空格“* “ 其余行输出星号空格和2x-4个空格和星号空格和2x-4空格和星号空格

相关知识

为了完成本关任务,你需要掌握:1.如何连接和重复字符串,2.如何循环。3.if多条件的组合

连接和重复字符串

字符串的操作符加号+和星号*规则: x+y:连接两个字符串x与y x*nn*x:复制n次字符串x

固定次数循环

固定次数n次的循环 for i in range(n): 循环体

if条件的组合

对于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”) 相关课件和视频 字符串操作

测试说明

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

测试输入: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)<10:zwyf=hz[eval(yf)]
elif eval(yf)==10:zwyf="十"
else:zwyf="十"+hz[eval(yf[-1])]
rh=x[x.rfind("/")+1:]
if eval(rh)<10:zwrh=hz[eval(rh)]
elif eval(rh)==10:zwrh="十"
elif eval(rh)%10==0:zwrh=hz[eval(rh[0])]+"十"
else:if eval(rh)<20:zwrh="十"+hz[eval(rh[-1])]else:zwrh=hz[eval(rh[0])]+"十"+hz[eval(rh[-1])]
#代码结束
print(zwnf+"年"+zwyf+"月"+zwrh+"日")

第9关:输出格式化字符

任务描述

本关任务:输入表示武力、速度、智力、统治的四个整数(10的倍数,小于等于200),输出相应结果(使用format函数) 注意: 输出第一行为 武力是空格30空格空格3星号 输出第三行为 智力是空格110空格11星号 数字前面一个空格 数字后的空格个数与数字位数有关 提示: 是后面有一个固定的空格 数值部分指定4个输出宽度左对齐 *号重复的次数必须为整数 /运算的结果是实数 //运算的结果是整数

相关知识

为了完成本关任务,你需要掌握:格式化字符串

格式化字符串

format()方法的基本使用
<模板字符串>.format(<逗号分隔的参数>) 模板字符串由一系列槽组成(槽用大括号表示), 用来控制修改字符串中嵌入值出现的位置, 将format()逗号分隔的参数按照序号关系替换到模板字符串的槽中。 模板字符串的槽除了包括参数序号,还可以包括格式控制信息。 {<参数序号>: <格式控制标记>} 格式控制标记包括:<填充><对齐><宽度>,<.精度><类型> 6个字段。

相关课件和视频 字符格式化

编程要求

根据提示,输入表示武力、速度、智力、统治的四个整数(10的倍数,小于等于200),输出相应结果(使用format函数)

测试说明

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

测试输入: 请输入武力120 请输入速度80 请输入智力20 请输入统治40 预期输出:


书读百遍,其义自见。 开始你的任务吧,祝你成功!

gl=eval(input("请输入武力"))
sd=eval(input("请输入速度"))
zl=eval(input("请输入智力"))
tzl=eval(input("请输入统治"))
#代码开始
print('武力是 {0:<4}'.format(gl)+"*"*(int(gl)//10))
print('速度是 {0:<4}'.format(sd)+"*"*(int(sd)//10))
print('智力是 {0:<4}'.format(zl)+"*"*(int(zl)//10))
print('统治是 {0:<4}'.format(tzl)+"*"*(int(tzl)//10))
#代码结束

实验三 字符类型及其操作(新)相关推荐

  1. 北理乐学计算机实验三,北理工大学计算机实验三-字符编码与信息交换.docx

    北理工大学计算机实验三-字符编码与信息交换.docx 实验报告实验名称学号 姓名 班级 实验时间 年 月 日实验报告表3-1 西文字符显示过程编码记录表输入字符ASCII码(十进制数)内存信息(二进制 ...

  2. 1.2字符类型及操作

    1.字符查找与替换 本关任务:给定一个字符串,其中存在语法错误,are应该为is,统计有几处错误,找出第1个错误出现的位置,最后输出正确形式. 为了完成本关任务,你需要掌握:1.字符串概念,2.常用的 ...

  3. 实验三在git上操作遇到的一些问题

    笔者因为是写了两份(一份没changed,一份changed后的),本来想在master和change分支都push同一份,然后写个readme搞一下完事的,但在push完master,转到chang ...

  4. 达梦数据库实验三:DMDBMS表查询操作

    目录标题 实验三 DMDBMS表查询操作 一.实验目的: 二.实验要求: 三.实验重点和难点: 四.实验内容: 五.实验步骤与结果: 1. 表创建 2. 数据填充 3. 数据查询 3.1查出选修了20 ...

  5. python文件操作实验报告_20193120 实验三《Python程序设计》实验报告

    实验三 (一)实验内容 创建服务端和客户端,服务端在特定端口监听多个客户请求.客户端和服务端通过Socket套接字(TCP/UDP)进行通信. (二)实验要求 (1)创建服务端和客户端,选择一个通信端 ...

  6. 离散数学实验三则(关系元算,集合运算与操作,最短路)

    前言 前段时间才做了离散实验的实验报告,为防止在本地遗失,所以上传到CSDN上一份,欢迎大家一起学习 实验1 关系元算 实验报告内容 一.实验目的 熟悉掌握命题逻辑中的联结词.真值表.主范式等,进一步 ...

  7. 将计算机系成绩置零,实验三数据更新操作_计算机软件及应用_IT计算机_专业资料...

    实验三数据更新操作_计算机软件及应用_IT计算机_专业资料 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 杭州电子科技大学实验报告实验 ...

  8. 定义一个DataType(数据类型)类,能处理包含字符型、整型、浮点型三种类型的数据,给出其构造函数。

    实验思路: DataType类内的私有类型要包含字符型.整型.浮点型三种类型的数据,构造函数要分别写出有字符型.整型.浮点型的形参来初始化. #include <iostream> usi ...

  9. 实验三 图的操作与实现

    前言 记录实验,同时也是记录常见数据结构算法的实现. 广州大学学生实验报告 开课实验室:计算机科学与工程实验(电子楼416A) 学院 计算机科学与网络工程学院 实验课程 数据结构实验 实验项目 实验三 ...

最新文章

  1. [设计模式]外观模式
  2. hihoCoder1040 矩形判断
  3. android全面屏系统哪个版本开始,Android全面屏
  4. python打印log重复问题
  5. linux fedora自带终端字体间距过大问题解决
  6. 【uni-app】动态计算图片高度
  7. php 面向过程分页,无JS,完全php面向过程,数据分页
  8. sklearn自学指南(part1)--Machine Learning in Python
  9. 判定重大风险有哪几种_安全风险识别和评估的方法有哪些?
  10. tomcat,Jboss,weblogic区别与比较
  11. SQL Server Management Studio –分步安装指南
  12. 阿里云,CentOS下yum安装mysql,jdk,tomcat
  13. vue+echarts 实时跟新数据 仪表盘多个渲染
  14. Java快速排序算法
  15. 利用Python实现财务分析/经营分析自动化
  16. php 创建zip,如何使用PHP ZipArchive创建zip文件并下载?
  17. UEditor ASP.NET 版使用教程
  18. 计算机专业博士阶段研究方向,国内计算机专业博士研究方向
  19. 博客群建,SEO多用户博客群建-skycc多用户博客群建系统
  20. 使用 Learner Lab 建立 WordPress 网站 (EC2)

热门文章

  1. 解决steam下载速度过慢的问题
  2. 如何用CSS实现2D与3D的转换效果(transform)
  3. 【ruby】ruby语言的几个特性总结
  4. 统计建模与R软件 第三章课后习题 不包含星图,调和曲线
  5. CSS3图像和背景的学习
  6. 送你九年经验,我的Java学习之路你也可以复制
  7. “公域流量”与“私域流量”
  8. 如何选择,没有方向,下面来看看马云说未来五年最赚钱的行业。
  9. 搬运:您的安全设置不允许将此应用程序安装到您的计算机上
  10. 2020年手机处理器排行榜