请问有没有懂Python的大神可以指导一下这两个问题怎么实现吗

img

这两个任务很简单,按照提示来就行,不用心急。

1、第一个问题

def BMI():
    m = eval(input('请输入您的体重(单位:公斤 kg)\n>>[').strip())
    h = eval(input('请输入您的身高(单位:米 m)\n>>[').strip())
    bmi = m / h ** 2
    if bmi < 18:
        judge = '偏瘦'
    elif 18 <= bmi <= 24:
        judge = '健康'
    else:
        judge = '偏胖'
    return round(bmi,2), judge

上面的函数可以实现两个功能:计算BMI指数和作出身体胖瘦水平判断。
这一点可以从return语句中清晰地发现,变量bmi用于储存计算好的BMI指数,变量judge用于储存身体状况。(使用round函数保留bmi值的两位小数,以便用户识别)
函数没有参数输入,取而代之的是input函数输入。

下面这两行是对BMI函数的调用。可以让使用者清晰地知道计算结果。

bmi, judge = BMI()
print(f'经过计算,您的BMI指数为 {bmi} 。\n您可能的身体状况为 {judge} 。')

2、第二个问题

def trans(intab, outab, word): #intab与outab是长度相等、一一对应的明文、密文
    tab = str.maketrans(intab, outab) #使用maketrans方法获取密表
    code = word.translate(tab) #对输入的明文进行加密
    return code

使用上面的函数对明文加密。其方法是maketrans函数和translate函数,其原理是通过用户指定的一一对应的明文与密文创建密表(加密表),再识别和替换给定文字。
如果需要解密同一类型的密码,则将明文与密文交换即可,如下所示:

def de(intab, outab, code):
    tab = str.maketrans(outab, intab)#在这一步中将之前加密时使用的明文与密文交换
    word = code.translate(tab)
    return word

或者直接在调用函数时将明文与密文交换。
调用与输出示例:

#调用加密函数的语句
print(trans('abcd','1234','aabbccdddcbaabcd'))
#对应输出为:1122334443211234

#调用解密函数的语句
print(de('1234','abcd','1122334443211234'))
#对应输出为:aabbccdddcbaabcd

使用上面的两个函数需要自定义密文和对应明文,并且注意,明文与密文一一对应,长度相等,每一个密文字符只对应唯一的明文字符,否则会出现译文错误。

另附:吐槽一下,其实maketrans和translate方法只适合初探密码的新手,加密过于单一和简单,解密也极容易受干扰。但这两个方法可以带给初学者加密和解密最初的感受,不失为一种有趣的体验。

没啥好指导的吧~题目说得这么直白了。加密方式还是自定义的😂