python密码游戏

一、要求

描述
牛牛和牛妹一起玩密码游戏,牛牛作为发送方会发送一个4位数的整数给牛妹,牛妹接收后将对密码进行破解。
破解方案如下:每位数字都要加上3再除以9的余数代替该位数字,然后将第1位和第3位数字交换,第2位和第4位数字交换。
请输出牛妹破解后的密码。
输入描述:
输入一个四位数的整数。
输出描述:
输出破解后的密码,以四位数的形式。

二、代码编写

num=input()
Num=[]
i=0
while(1):
    if i <= 3:
        mima=(int(num[i])+3)%9
        Num.append(mima)
        i +=1
    else:
        break
#print(Num)
temp=str(Num[2])
Num[2]=str(Num[0])
Num[0]=temp
#等价于Num[0],Num[2]=Num[2],Num[0]

temp=str(Num[3])
Num[3]=str(Num[1])
Num[1]=temp
n=''.join(Num)
print(n)

三、更优解
方法一:

# 获取输入的4位数字
num = int(input())
# 获取4位整数中的每一位的值
first = num//1000
second = (num//100)%10  
third = (num//10) % 10  
fourth = num % 10       
# 创建临时数组arr,存储每一位的数值
arr = [first,second,third,fourth]
# 使用for循环对每一位的数值进行“加上3再除以9的余数代替该位数字”的操作
for i in range(len(arr)):
    arr[i] = (arr[i] + 3) % 9
# 将第1位和第3位数字交换
arr[0],arr[2] = arr[2],arr[0]
# 将第2位和第4位数字交换
arr[1],arr[3] = arr[3],arr[1] 
# 以四位数的形式 输出破解后的密码
print(arr[0],arr[1],arr[2],arr[3],sep='') # 6745

方法二:

num = input()
str1= str()
for i in range(len(num)):
    str1 += str((int(num[i])+3)%9)
print(str1[2],str1[3],str1[0],str1[1],sep='')

四、总结:
1、可以使用不同位数整除获取不同位数上的数字。
2、交换列表中两个元素的位置,可以使用list[0],list[3]=list[3],list[0]
也可以直接换位输出:print(str1[2],str1[3],str1[0],str1[1],sep='')
使用sep''可以取消空格
3、循环取字符串中的字符:

for i in range(len(num)):
	mima =(int(num[i])+3)%9
    Num.append(mima)

4、将数字强制类型转换为字符串,可使用str()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值