关于#python#的问题:#python

#python

img


大一刚选修python,刚刚学到凯撒密码,这是作业请问怎么做

这里提供两种方法,希望能采纳一下哦!

# 法一:
i = input("请输入4位数明文:")
l1 = []
l2 = []
for j in range(len(i)): #将输入的每个值加5放到l1列表
    l1.append(int(i[j]) + 5)
for k in range(len(l1)):
    l2.append((l1[k] % 10)) #然后%10放到l2
for f in range(2):
    l2[f], l2[f+2] = str(l2[f+2]), str(l2[f]) # 下标0和下标2的换下标1和下标3的换
print("".join(l2)) #join方法的参数必须是字符列表,所以上一步换的时候,后面的值转换成str

# 法二:
a = int(input('输入4位数明文: '))
aa = [a % 10, a % 100 // 10, a % 1000 // 100, a // 1000] #这里这样写,已经将数字倒过来了,你也可以在这里翻过来

for i in range(4):
    aa[i] += 5
    aa[i] %= 10
print(aa)
for i in range(2):
    aa[i], aa[i+2] = aa[i+2], aa[i]
for i in range(3, -1, -1): #因为前面我把它倒过来了,所以换完之后这里倒着输出
    print(str(aa[i]), end="")

img

将整形列表转换成字符串列表还可以用map方法。
li = list(map(str,l2))
map方法,第一个参数是要转换的类型,第二个参数是要转换的列表。最后将返回结果转换成list。

有帮助的话采纳一下哦!

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
from sys import stdout
if __name__ == '__main__':
    a = int(raw_input('输入四个数字:\n'))
    aa = []
    aa.append(a % 10)
    aa.append(a % 100 / 10)
    aa.append(a % 1000 / 100)
    aa.append(a / 1000)
 
    for i in range(4):
        aa[i] += 5
        aa[i] %= 10
    for i in range(2):
        aa[i],aa[3 - i] = aa[3 - i],aa[i]
    for i in range(3,-1,-1):
        stdout.write(str(aa[i]))


若有帮助,望采纳捏~

data = input("请输入明文")
# 遍历每个数字,同时将每个数字按规则转换
data = list(map(lambda x: (int(x) + 5) % 10, list(data)))
# 交换指定位置数据
data[0], data[2] = data[2], data[0]
data[1], data[3] = data[3], data[1]
# 将结果拼接输出
print(''.join(list(map(str, data))))
nums = input("四位数:")
num = [str((int(i)+5)%10) for i in nums]
num[0],num[2],num[1],num[3] = num[2],num[0],num[3], num[1]
print("".join(num))

写法如下:

num=int(input("请输入一个四位整数:"))
num=str(num)
List=[]
for i in range(0,len(num)):
    a=(int(num[i])+5)%10
    List.append(a)

List[0],List[2]=List[2],List[0]
List[1],List[3]=List[3],List[1]
print(List[0]*1000+List[1]*100+List[2]*10+List[3])

测试图:

img

如有帮助,还请采纳,谢谢!

i = input("请输入与4位有效整数:")
l1 = []
l2 = []
for j in range(len(i)):
    l1.append(int(i[j])+5)
print(l1)
for k in range(len(l1)):
    l2.append((l1[k]%10))
print(l2)
for f in range(2):
    l2[f],l2[3-f] = l2[3-f],l2[f]
print(l2)

#法二:
a = int(input('输入四个数字:'))
aa = [a % 10, a % 100 // 10, a % 1000 // 100, a // 1000]

for i in range(4):
    aa[i] += 5
    aa[i] %= 10
print(aa)
for i in range(2):
    aa[i], aa[3 - i] = aa[3 - i], aa[i]
for i in range(3, -1, -1):
    print(str(aa[i]), end="")
print(aa)