python第四周作业
-
跳台阶
描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。请问该青蛙跳上一个n级的台阶总共有多少种跳法。
输入台阶数,输出一共有多少种跳法
注意:如果运算超时,请思考有什么办法降低时间复杂度。
输入
示例1:3
输出
示例1:3
def jump(n): if (n==1): return 1; if (n==2): return 2; a=1 b=2 for i in range(3,n+1): c=a+b a=b b=c return c n=eval(input()) print(jump(n))
- 0038003300381586927570496
汉诺塔
描述
古代有一座汉诺塔,塔内有3个座A、B、C,A座上有n个盘子,盘子大小不等,大的在下,小的在上,如图所示。有一个和尚想把这n个盘子从A座移到C座,但每次只能移动一个盘子,并且自移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以利用B座来放盘子。要求输出移动的步骤。
输入格式
输入一个正整数,表示汉诺塔内的盘子个数n(1<=n<=64)。
输出格式
输出移动的步骤,每行一步,如从A座移动到C座,输出“A-->C”。
输入输出示例
输入 输出 示例 1 3 A --> C
A --> B
C --> B
A --> C
B --> A
B --> C
A --> Cdef move(n,a,b,c): if n==1: print(a,'-->',c) else : move(n-1,a,c,b) print(a,'-->',c) move(n-1,b,a,c) n=eval(input()) move(n,'A','B','C')
- 33003000370038003300381586927587184
计算三维空间某点距离原点的欧式距离
题目描述:
欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义。三维空间里点a和b的坐标如果分别为a(x1,y1,z1)、b(x2,y2,z2),则ab的距离的计算机公式是dist(a,b) = √( (x1-x2)^2+(y1-y2)^2+(z1-z2)^2 )
编写函数计算两点的欧式距离,并输出(保留小数点后两位)。
要求:将虚线下的代码复制到答题区域、补充完善后再提交。
-------------------------------------------------------------------------------------------------------------------------
#请在这里定义distance函数,计算点(x,y,z)与原点的距离值并返回
x,y,z=input().split(",")
d=distance(float(x),float(y),float(z))#调用distance函数
print("{:.2f}".format(d))#输出距离值,保留三维小数
#代码区结束
输入格式:
输入是一个点a的三维坐标,以逗号分割,形如:x,y,z ,其中x,y,z都是非负实数。
例如:1.2,1.3,1.4
输出格式:
输出点a与原点的距离(保留小数点后两位)
例如:2.08
输入输出示例:
输入 输出 示例 1 1.0,1.0,1.0 1.73 import math def distance(x,y,z): dist=math.sqrt(x**2+y**2+z**2) return dist x,y,z=input().split(",") d=distance(float(x),float(y),float(z)) print("{:.2f}".format(d))
-
验证码较验
描述
用户登录网站经常需要输入验证码,验证码包含大小写字母和数字,随机出现。用户输入验证码时不区分大小写,只要各字符出现顺序正确即可通过验证。
请写一个程序完成验证码的匹配验证,假设当前显示的验证码是'Qs2X'。
如果用户输入验证码正确,输出“验证码正确”,输入错误时输出“验证码错误,请重新输入”输入格式
输入一个字符串
输出格式
根据较验结果输出 “验证码正确” 或 “验证码错误,请重新输入”
输入输出示例
输入 输出 示例 1 1234
qS2x
验证码错误,请重新输入
验证码正确
s=input() ls=list(s) if (ls[0] and ls[1] and ls[2] and ls[3] in ['q','s','2','x','Q','S','X']): print("验证码正确") else: print("验证码错误,请重新输入")
- 3000370038003300381586927643873
大小写转换
描述
编写程序,用户输入一个字符串,将其中小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出。
注:string.ascii_lowercase 可用于返回所有小写字母,string.ascii_uppercase 可用于返回所有大写字母
输入格式
输入一个字符串
输出格式
如题意
输入输出示例
输入 输出 示例 1 asdHJKL879 ASDhjkl879 import string s = input () list1 = string.ascii_lowercase list2 = string.ascii_uppercase for i in range (len(s)): if s[i] in list1: print(chr(ord(s[i])-32),end='') elif s[i] in list2: print(chr(ord(s[i])+32),end='') else: print (s[i],end='')
-
查找指定字符
描述
编写程序,从用户给定字符串中查找某指定的字符。
输入格式
输入的第一行是一个待查找的字符
第二行是一个以回车结束的非空字符串。
输出格式
如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);
否则输出"Not Found"。
输入输出示例
输入 输出 示例 1 m
programmingindex = 7 m = input () s=input() ls=list(s) if m in s: for i in range(len(s)): if ls[i] ==m: a=i print("index = {}".format(a)) else: print("Not Found")
-
凯撒加密
描述
在密码学中,恺撒密码是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。编程实现恺撒加密,明文和偏移量由用户输入,输出密文。
输入格式
输入包括两行
第一行是一个字符串
第二行是一个正整数
输出格式
一个字符串,内容为用户输入字符串加密的结果
输入输出示例
输入 输出 示例 1 Beautiful is better than ugly.Explicit is better than implicit.
3Ehdxwlixo lv ehwwhu wkdq xjob.Hasolflw lv ehwwhu wkdq lpsolflw. s = input() n=int(input()) for i in s: if ord("a") <= ord(i) <= ord("z"): print(chr(ord('a')+(ord(i)-ord('a')+n)%26),end='') elif ord("A") <= ord(i) <= ord("Z"): print(chr(ord('A')+(ord(i)-ord('A')+n)%26),end='') else: print(i,end="")
-
敏感词过滤
描述
现在基本上所有的网站都需要设置敏感词过滤,编程查找与敏感词列表相匹配的字符串,如果找到以*号替换,最终得到替换后的字符串。
假设敏感词列表由以下词组成:垃圾,陷阱,不要脸,内幕,辣鸡。
输入格式
输入一个字符串
输出格式
替换敏感词后的字符串
输入输出示例
输入 输出 示例 1 你真是个辣鸡,太不要脸了! 你真是个*,太*了! lis = ['垃圾','陷阱','不要脸','内幕','辣鸡'] s = input() for i in lis: if i in s: s = s.replace(i,'*') print(s)
-
字符串替换
描述
在编辑文档时,对于出现频率很高又难于输入的字符串经常可以用一个特殊的短字符串代替输入,待文档完成时再替换回来。
如:在输入“武汉理工大学”时,可以用"whut"代替,编程完成这种替换。
输入格式
输入有三行:
第一行是用于替换的短字符串
第二行是需要替换的较长的字符串
第三行是输入的文档,以回车结束。
输出格式
替换后的字符串
输入输出示例
输入 输出 示例 1 whut
武汉理工大学
我爱whut,whut是一个非常美丽的学校!我爱武汉理工大学,武汉理工大学是一个非常美丽的学校! str1 = input() str2 = input() str3 = input() print(str3.replace(str1,str2))
-
身份证号处理
描述
18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期,
第17位代表性别,奇数为男,偶数为女。
用户输入一个合法的身份证号,请输出用户的出生年月日,年龄和性别。(不要求较验输入的合法性)
请先查看下方此题特别说明。import datetime datetime.datetime.now().year #可用于获得当前年份
输入格式
输入一个合法的身份证号字符串
输出格式
类似以下格式输出:
你出生于1973年05月16日
你今年45周岁
你的性别为男输入输出示例
输入 输出 示例 1 220221197305165535 你出生于1973年05月16日
你今年45周岁
你的性别为男特别说明,
该题目由于涉及时间变化,测试用例需要每年修改一次,而每一次的修改, 会导致前一年前做题的学生答案错误,
例如
2018 年该题正确答案是 20岁。
2019年该题正确答案就应该是 21 岁
2020 年该题答案就应该是22 岁。
import datetime a = datetime.datetime.now().year s = input() y = s[6:10] m = s[10:12] d = s[12:14] x = s[16] if eval(x)%2 == 0: x="女" else: x="男" print("你出生于{}年{}月{}日".format(y,m,d)) print("你今年{}周岁".format(int(a)-int(y))) print("你的性别为{}".format(x))