关于#python#的问题

公用用传数,数是4位的整数,在传递过程中是加密的。加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输人的四位整数加密后的值。

def func(n):
    a=[0]*4
    a[0]=n//1000
    a[1]=n//100%10
    a[2]=n//10%10
    a[3]=n%10
    
    for i in range(4):
        a[i]+=5
        a[i]%=10

    n=a[3]*1000+a[2]*100+a[1]*10+a[0]

    return n

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7571729
  • 这篇博客也不错, 你可以看下Python案例89:加密数字,输入四位数字,每位数字都加上5,除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换
  • 你还可以看下python参考手册中的 python- 定义扩展类型:已分类主题- 终结和内存释放
  • 您还可以看一下 董付国老师的Python可以这样学(第四季:数据分析与科学计算可视化)课程中的 补充:散点图实战_商场手机信号强度可视化小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以帮您解决这个问题。这是一个比较简单的加密规则,可以用以下代码实现:

    num = input('请输入一个4位整数:') # 获取输入的数字
    num_list = list(num) # 将数字转换成列表
    for i in range(4):
        num_list[i] = str((int(num_list[i]) + 5) % 10) # 加密规则,每位数字加5,取余数代替原来的数字
    num_list[0], num_list[3] = num_list[3], num_list[0] # 第一位和第四位交换
    num_list[1], num_list[2] = num_list[2], num_list[1] # 第二位和第三位交换
    result = ''.join(num_list) # 将列表转换成字符串
    print('加密后的值为:', result) # 输出加密后的值
    

    上面的代码会提示用户输入一个4位整数,然后按照题目要求进行加密,并输出加密后的值。具体来说,我们首先将输入的数字转换成列表,然后对于每一位数字,都按照加密规则进行加密,并用列表存储加密后的结果。接着,交换第一位和第四位,第二位和第三位,最后用 join 函数将列表转换成字符串,并输出加密后的值。

    当然,如果输入的不是4位整数,那么程序会报错。为了防止这种情况发生,我们可以添加一些输入判断的代码。比如:

    num = input('请输入一个4位整数:') # 获取输入的数字
    if not num.isdigit() or len(num) != 4: # 判断输入是否是4位整数
        print('输入有误,请重新输入!')
    else:
        # 其他加密代码
    

    这样的话,如果用户输入的不是数字,或者数字不是4位,程序会提示输入有误并要求用户重新输入。