鱼C论坛

 找回密码
 立即注册
查看: 4086|回复: 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 编辑
  1. password=input('请输入一个六位数的密码:')
  2. choice=input('您是要翻译密码还是加密密码(翻译/加密):')

  3. old_password=password
  4. if choice=='加密':
  5.     new_password=[int(old_password[3]),int(old_password[5]),int(old_password[0])*int(old_password[5]),
  6.                   int(old_password[2]),int(old_password[2])*int(old_password[5]),int(old_password[4])]
  7.     print('加密前密码是:',old_password)
  8.     print('加密后密码是:',new_password)
  9. else:
  10.     new_password=input('请输入加密后的密码,每一位用英文逗号隔开:').split(',')
  11.     old_password=[int(new_password[2])/int(new_password[1]),int(new_password[4])/int(new_password[1]),
  12.                   int(new_password[3]),int(new_password[0]),int(new_password[5]),int(new_password[1])]
  13.     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 编辑
  1. password=input('请输入一个六位数的密码:')
  2. choice=input('您是要翻译密码还是加密密码(翻译/加密):')

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

使用道具 举报

发表于 2020-5-6 23:35:30 | 显示全部楼层
  1. def judge(x): #判断密码是否有误
  2.     if x.isdigit() and '0' not in x and len(x) == 6:
  3.         return True
  4.     else:
  5.         return False
  6.    
  7. def get_password(x): #加密
  8.     if judge(x):
  9.         a = [int(i) for i in x]
  10.         new_password = [ a[3] , a[5] , a[0] * a[5] , a[2] , a[1] * a[5] , a[4]]
  11.         print('加密前的密码是:', a )
  12.         print('加密后是:', new_password)
  13.         print('\n')
  14.     else:
  15.         print('输入有误')
  16.         print('\n')
  17.         return 1
  18. def translate(x): #翻译
  19.     try:
  20.         a = x.split(',')
  21.         b = [int(i) for i in a]
  22.     except ValueError as v: #判断密码是否有误
  23.         print('输入有误',v)
  24.         b = []
  25.     if len(b) == 6:
  26.         old_password = [int( b[2] / b[1] ),int( b[4] / b[1] ),\
  27.                          int( b[3] ) ,int( b[0] ),int( b[5] ),int( b[1] )]
  28.         print('原来的密码是:', end = '')
  29.         for i in old_password:
  30.             print(i,end = '')
  31.         print('\n')
  32.     else:
  33.         print('请按要求输入正确的密码')
  34.         print('\n')
  35.         return 1


  36.    
  37. count = 1
  38. while count:
  39.     a = 1
  40.     answer = input('您要翻译密码还是加密密码(翻译/加密/输入Q退出程序):')
  41.     if answer == '加密':
  42.         while a:
  43.             x = input('请输入您要加密的密码(六位数字):')
  44.             a = get_password(x) #设置了小机关,假如输入有误不需要再重新输入‘加密’,下同
  45.     elif answer =='翻译':
  46.         while a:
  47.             x = input('请输入加密后的密码,每一位用英文逗号隔开:')
  48.             a = translate(x)
  49.     elif answer == 'Q':
  50.         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 编辑
  1. #-*-encoding:utf-8-*-
  2. def input_pass(Ask='Yes'):
  3.     n = 0
  4.     while True:
  5.         password = input('Please input your digital code:')
  6.         if Ask == 'Y':
  7.             password = password.split(',')
  8.             break
  9.         elif len(password) != 6:
  10.             print('密码必须为6位整数!')
  11.         else:
  12.             break

  13.     old_password = list(password)
  14.     for i in old_password:
  15.         old_password[n] = int(i)
  16.         n += 1
  17.     return old_password
  18. def encryption():
  19.     old_password = input_pass()   
  20.     new_password = []
  21.     new_password.append(old_password[3])
  22.     new_password.append(old_password[-1])
  23.     new_password.append(old_password[0] * old_password[-1])
  24.     new_password.append(old_password[2])
  25.     new_password.append(old_password[1] * old_password[-1])
  26.     new_password.append(old_password[4])
  27.     print(new_password)
  28. def decryption():
  29.     print('\n请输入加密后的密码(每一位用英文逗号隔开)\n')
  30.     new_password = input_pass(Ask='Y')
  31.     old_password = [0,0,0,0,0,0]
  32.     old_password[3] = new_password[0]
  33.     old_password[-1] = new_password[1]
  34.     old_password[0] = new_password[2] // old_password[-1]
  35.     old_password[2] = new_password[3]
  36.     old_password[1] = new_password[4] // old_password[-1]
  37.     old_password[4] = new_password[-1]
  38.     if sum(old_password) == 0:
  39.         print('Error!')
  40.     else:
  41.         print(old_password)

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

使用道具 举报

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

使用道具 举报

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

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

  7.     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]]
  8.     print('加密前的密码是:', old_password)
  9.     print('加密后的密码是:', new_password)

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

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

  16.     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]]
  17.     print('原来的密码:', new_password)

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

  19. if temp == '翻译':
  20.     de_password()
  21. if temp == '加密':
  22.     locker_password()
复制代码

就简简单单写了下,有些输入错误就没考虑了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 01:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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