python 第四周作业

跳台阶

一只青蛙一次可以跳上1级台阶,也可以跳上2级。请问该青蛙跳上一个n级的台阶总共有多少种跳法。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入台阶数,输出一共有多少种跳法

def jumpFloor(number):
    a = 1
    b = 1
    for i in range(number):
        a,b = b,a+b 
    return a 

number = eval(input()) 
print(jumpFloor(number))

  汉诺塔

E = eval(input())
count = 0
def hanoi(n,src,dst,mid):    #(圆盘的数量,源柱子,目的柱子,过度柱子)
    global count
    if n == 1:               #如果只有一个圆盘
        print("{} --> {}".format(src,dst))
        count += 1
    else:
        hanoi(n-1,src,mid,dst)        #对n最后一个圆盘移动
        print("{} --> {}".format(src,dst))
        count += 1
        hanoi(n-1,mid,dst,src)
hanoi(E,"A","C","B")

  #0033003200380032003200301587537703035

计算三维空间某点距离原点的欧式距离 

欧几里得度量(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 )

import math
def distance(num1,num2,num3):
    d = math.sqrt(num1**2+num2**2+num3**2)
    return d
x,y,z=input().split(",")
d=distance(float(x),float(y),float(z))
print("{:.2f}".format(d))

  003200301587537765653

验证码较验

用户登录网站经常需要输入验证码,验证码包含大小写字母和数字,随机出现。用户输入验证码时不区分大小写,只要各字符出现顺序正确即可通过验证。
请写一个程序完成验证码的匹配验证,假设当前显示的验证码是'Qs2X'。
如果用户输入验证码正确,输出“验证码正确”,输入错误时输出“验证码错误,请重新输入”
s = input("")
e = {'Q','q'}
r = {'s','S'}
t = {'2'}
y = {'x','X'}
f = list(s)
if s[0] in e:
    if s[1] in r:
        if s[2] in t:
            if s[3] in y:
                print("验证码正确")
else:
    print("验证码错误,请重新输入")

  大小写转换

s = input("")

print(s.swapcase())

  查找指定字符

如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);
否则输出"Not Found"。

a=input()
s=input()
s1=list(s)
if len(a)==1 and 0<len(s)<=80:
    if a in s1:
        print("index =",s.rindex(a))   #rindex()返回子字符串在字符串中最后出现的位置
    else:
        print("Not Found")

  凯撒加密

s = input()
num = eval(input())
t = ""
for c in s:
    if 'a' <= c <= 'z': 
        t += chr( ord('a') + ((ord(c)-ord('a')) + num )%26 )
    elif 'A'<=c<='Z':
        t += chr( ord('A') + ((ord(c)-ord('A')) + num )%26 )
    else:
        t += c
print(t)

  敏感词过滤

import re
s = input("")
s = s.replace('垃圾','*').replace('辣鸡','*').replace('不要脸','*').replace('陷阱','*').replace('内幕','*')
print(s)

  字符串替换

在编辑文档时,对于出现频率很高又难于输入的字符串经常可以用一个特殊的短字符串代替输入,待文档完成时再替换回来。
如:在输入“武汉理工大学”时,可以用"whut"代替,编程完成这种替换。

输入有三行:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

第一行是用于替换的短字符串‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

第二行是需要替换的较长的字符串‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

第三行是输入的文档,以回车结束。

import re
s = input("")
l = input("")
w = input("")
w = w.replace(s,l)
print(w)

  身份证处理

18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期,
第17位代表性别,奇数为男,偶数为女。
用户输入一个合法的身份证号,请输出用户的出生年月日,年龄和性别。(不要求较验输入的合法性)
请先查看下方此题特别说明。
import datetime
ID = input('')
ID_birth=ID[6:14]
ID_sex=ID[14:17]
year=ID_birth[0:4]
month=ID_birth[4:6]
day=ID_birth[6:8]
d = 2020-int(year)
print("你出生于{:.0f}年{:.0f}月{:.0f}日".format(int(year),int(month),int(day)))
print("你今年{:.0f}周岁".format(d))
if int(ID_sex)%2 == 0:
    print("你的性别为女")
else:
    print("你的性别为男")

  

猜你喜欢

转载自www.cnblogs.com/wangyingjie123/p/12752043.html
今日推荐