鱼C论坛

 找回密码
 立即注册
查看: 4563|回复: 35

[已解决]小白Python练习册(16)【鱼币福利】

[复制链接]
发表于 2020-5-6 21:13:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 WangJS 于 2020-5-6 21:15 编辑

先道个歉
对不起!
按照昨天的题目并不能翻译回来
所以……
我改了下题目

(昨天的答案不用改了,题目我也没变,今天答案改一下就好了)
如果你没做过昨天的题!这边请!!!


要求:
输入一个六位(非0)数字的密码
把输入的密码转换成列表的形式,命名为old_password
然后新建一个空列表,new_password

new_password格式:                                         

第一位:变成old_password的第四位                    
第二位:变成old_password的第六位                    
第三位:变成old_password的第一位和第六位的积
第四位:变成old_password的第三位                    
第五位:变成old_password的二六位的积            
第六位:变成old_password的第五位                    

您要翻译密码还是加密密码(翻译/加密):加密
请输入您要加密的密码(六位数字):265384

加密前的密码是: [2, 6, 5, 3, 8, 4]   
加密后是: [3, 4, 8, 5, 24, 8]        

您要翻译密码还是加密密码(翻译/加密):翻译
请输入加密后的密码,每一位用英文逗号隔开:3, 4, 8, 5, 24, 8
原来的密码是:265384

这是新的题目
编写程序,实现加密和翻译
加油吧
奖励鱼币哟~


回复查看参考答案啊:
游客,如果您要查看本帖隐藏内容请回复


如果喜欢,别忘了评分订阅哟(传送门)!
喜欢别忘了.gif 145241r1h8zhke8yry830p.gif
最佳答案
2020-5-6 22:43:44
本帖最后由 1469396970 于 2020-5-7 09:34 编辑
password=input('请输入一个六位数的密码:')
choice=input('您是要翻译密码还是加密密码(翻译/加密):')

old_password=password
if choice=='加密':
    new_password=[int(old_password[3]),int(old_password[5]),int(old_password[0])*int(old_password[5]),
                  int(old_password[2]),int(old_password[2])*int(old_password[5]),int(old_password[4])]
    print('加密前密码是:',old_password)
    print('加密后密码是:',new_password)
else:
    new_password=input('请输入加密后的密码,每一位用英文逗号隔开:').split(',')
    old_password=[int(new_password[2])/int(new_password[1]),int(new_password[4])/int(new_password[1]),
                  int(new_password[3]),int(new_password[0]),int(new_password[5]),int(new_password[1])]
    print('原密码是:',old_password)

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 21:16:57 | 显示全部楼层

回帖奖励 +2 鱼币

占楼~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 21:17:50 | 显示全部楼层

回帖奖励 +2 鱼币

来咯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 21:23:06 | 显示全部楼层

回帖奖励 +2 鱼币

占楼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 21:24:03 | 显示全部楼层

回帖奖励 +2 鱼币

占个坑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 21:25:25 | 显示全部楼层

回帖奖励 +2 鱼币

占个楼先
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 21:30:59 | 显示全部楼层

回帖奖励 +2 鱼币

本帖最后由 Hello. 于 2020-5-6 22:06 编辑

没会...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 21:32:42 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 21:39:33 | 显示全部楼层

回帖奖励 +2 鱼币

先占个楼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 21:56:05 | 显示全部楼层

回帖奖励 +2 鱼币

先占楼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 21:59:13 | 显示全部楼层

回帖奖励 +2 鱼币

鱼币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 22:24:21 | 显示全部楼层
占楼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 22:43:44 | 显示全部楼层    本楼为最佳答案   
本帖最后由 1469396970 于 2020-5-7 09:34 编辑
password=input('请输入一个六位数的密码:')
choice=input('您是要翻译密码还是加密密码(翻译/加密):')

old_password=password
if choice=='加密':
    new_password=[int(old_password[3]),int(old_password[5]),int(old_password[0])*int(old_password[5]),
                  int(old_password[2]),int(old_password[2])*int(old_password[5]),int(old_password[4])]
    print('加密前密码是:',old_password)
    print('加密后密码是:',new_password)
else:
    new_password=input('请输入加密后的密码,每一位用英文逗号隔开:').split(',')
    old_password=[int(new_password[2])/int(new_password[1]),int(new_password[4])/int(new_password[1]),
                  int(new_password[3]),int(new_password[0]),int(new_password[5]),int(new_password[1])]
    print('原密码是:',old_password)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 23:35:30 | 显示全部楼层
def judge(x): #判断密码是否有误
    if x.isdigit() and '0' not in x and len(x) == 6:
        return True
    else:
        return False
    
def get_password(x): #加密
    if judge(x):
        a = [int(i) for i in x]
        new_password = [ a[3] , a[5] , a[0] * a[5] , a[2] , a[1] * a[5] , a[4]]
        print('加密前的密码是:', a )
        print('加密后是:', new_password)
        print('\n')
    else:
        print('输入有误')
        print('\n')
        return 1
def translate(x): #翻译
    try:
        a = x.split(',')
        b = [int(i) for i in a]
    except ValueError as v: #判断密码是否有误
        print('输入有误',v)
        b = []
    if len(b) == 6:
        old_password = [int( b[2] / b[1] ),int( b[4] / b[1] ),\
                         int( b[3] ) ,int( b[0] ),int( b[5] ),int( b[1] )]
        print('原来的密码是:', end = '')
        for i in old_password:
            print(i,end = '')
        print('\n')
    else:
        print('请按要求输入正确的密码')
        print('\n')
        return 1


    
count = 1
while count:
    a = 1
    answer = input('您要翻译密码还是加密密码(翻译/加密/输入Q退出程序):')
    if answer == '加密':
        while a:
            x = input('请输入您要加密的密码(六位数字):')
            a = get_password(x) #设置了小机关,假如输入有误不需要再重新输入‘加密’,下同
    elif answer =='翻译':
        while a:
            x = input('请输入加密后的密码,每一位用英文逗号隔开:')
            a = translate(x)
    elif answer == 'Q':
        count = 0
挺简单的小程序怎么我好像写的有点复杂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-7 08:03:03 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-7 15:12:10 | 显示全部楼层
def practice():
    pr = input("你选择加密/翻译:")
    if pr == '加密':
        num = input("输入6位数密码:",)
        print('加密前:',list(map(int,list(num))))
        print('加密后:',[int(num[3]),int(num[5]),int(num[0])*int(num[5]),int(num[0]),int(num[2])*int(num[5]),int(num[5])])
    elif pr == '翻译':
        num = input("输入6位数密码:").split(',')
        print('加密后:',list(map(int,list(num))))
        print('加密前:',[int(int(num[2])/int(num[1])),int(int(num[4])/int(num[1])),int(num[3]),int(num[0]),int(num[5]),int(num[1])])
practice()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-8 15:47:52 | 显示全部楼层
本帖最后由 荣耀 于 2020-5-8 15:50 编辑
#-*-encoding:utf-8-*-
def input_pass(Ask='Yes'):
    n = 0
    while True:
        password = input('Please input your digital code:')
        if Ask == 'Y':
            password = password.split(',')
            break
        elif len(password) != 6:
            print('密码必须为6位整数!')
        else:
            break

    old_password = list(password)
    for i in old_password:
        old_password[n] = int(i)
        n += 1
    return old_password
def encryption():
    old_password = input_pass()    
    new_password = []
    new_password.append(old_password[3])
    new_password.append(old_password[-1])
    new_password.append(old_password[0] * old_password[-1])
    new_password.append(old_password[2])
    new_password.append(old_password[1] * old_password[-1])
    new_password.append(old_password[4])
    print(new_password)
def decryption():
    print('\n请输入加密后的密码(每一位用英文逗号隔开)\n')
    new_password = input_pass(Ask='Y')
    old_password = [0,0,0,0,0,0]
    old_password[3] = new_password[0]
    old_password[-1] = new_password[1]
    old_password[0] = new_password[2] // old_password[-1]
    old_password[2] = new_password[3]
    old_password[1] = new_password[4] // old_password[-1]
    old_password[4] = new_password[-1]
    if sum(old_password) == 0:
        print('Error!')
    else:
        print(old_password)

def choice():
    ende = input('您要翻译密码还是加密密码(翻译/加密):')
    if ende == '加密':
        encryption()
    elif ende == '翻译':
        decryption()
    else:
        print('输入 ‘翻译’ 或者 ‘加密’')
        choice()
choice()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-8 16:09:45 | 显示全部楼层
来看看学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-13 23:43:01 | 显示全部楼层
def locker_password():
    password = input('输入一个六位(非0)数字的密码:')
    old_password = []

    for i in password:
        j = int(i)
        old_password.append(j)

    new_password = [old_password[3], old_password[5], old_password[0] * old_password[5], old_password[2], old_password[1] * old_password[5], old_password[4]]
    print('加密前的密码是:', old_password)
    print('加密后的密码是:', new_password)

def de_password():
    password = input('请输入加密后的密码,每一位用英文逗号隔开:')
    old_password = []

    for i in password.split(','):
        j = int(i)
        old_password.append(j)

    new_password = [int(old_password[2] / old_password[1]), int(old_password[4] / int(old_password[1])), old_password[3], old_password[0], old_password[5], old_password[1]]
    print('原来的密码:', new_password)

temp = input('您要翻译密码还是加密密码(翻译/加密):')

if temp == '翻译':
    de_password()
if temp == '加密':
    locker_password()
就简简单单写了下,有些输入错误就没考虑了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 16:09:47 | 显示全部楼层
while True:
    password_way = input('您要翻译密码还是加密密码(翻译/加密):')
    new_password = []
    a, b, c, d, e, f = 0, 0, 0, 0, 0, 0
    if password_way == '加密':
        encryption = input('请输入您要加密的密码(六位数字):')
        old_password = list(map(int, encryption))
        print('加密前的密码是:', old_password)
        for i in range(len(old_password)):
            a = old_password[3]
            b = old_password[5]
            c = old_password[0] * old_password[5]
            d = old_password[2]
            e = old_password[1] * old_password[5]
            f = old_password[4]
            new_password = [a, b, c, d, e, f]
        print('加密后的密码是:', new_password)
    elif password_way == '翻译':
        translate = input('请输入加密后的密码,每一位用英文逗号隔开:')
        a, b, c, d, e, f = map(int, translate.split(','))
        new_password = [a, b, c, d, e, f]
        g = int(new_password[2] / new_password[1])
        h = int(new_password[4] / new_password[1])
        i = new_password[3]
        j = new_password[0]
        k = new_password[5]
        l = new_password[1]
        old_password = [g, h, i, j, k, l]
        print('原始的密码是:', end='')
        for i in old_password:
            print(i, end='')
        break
    else:
        print('输入错误,请重新输入!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 00:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表