最近的博文:

Python基础入门例程27-NP27 朋友们的喜好(列表)-CSDN博客

Python基础入门例程26-NP26 牛牛的反转列表(列表)-CSDN博客

 Python基础入门例程25-NP25 有序的列表(列表)-CSDN博客

 

目录

最近的博文:

描述

输入描述:

输出描述:

示例1

备注:

解答:

解法1:字符串转换为数值,提取数值

解法2:字符串操作提取单个字符

说明:


描述

牛牛和牛妹一起玩密码游戏,牛牛作为发送方会发送一个4位数的整数给牛妹,牛妹接收后将对密码进行破解。

破解方案如下:每位数字都要加上3再除以9的余数代替该位数字,然后将第1位和第3位数字交换,第2位和第4位数字交换。

请输出牛妹破解后的密码。

输入描述:

输入一个四位数的整数。

输出描述:

输出破解后的密码,以四位数的形式。

示例1

备注:

输入不会有前置0,但是输出要保持前置0

解答:

解法1:字符串转换为数值,提取数值

a = int(input())#输入的字符串先转换为数字

qian = a // 1000 #取整除操作
bai = (a % 1000) // 100
shi = ((a % 1000) % 100) // 10
ge = ((a % 1000) % 100) % 10

list1 = [qian, bai, shi,ge] #创建列表
list2 = []#加密后的列表
for i in list1:
    i = (i + 3) % 9
    list2.append(i)
output = list2[2] * 1000 + list2[3] * 100 + list2[0] * 10 + list2[1]#数字替换,并转换为整数
print('%04d' % output) #格式化输出

Python基础入门例程28-NP28 密码游戏(列表)-LMLPHP 

解法2:字符串操作提取单个字符

a = input()#输入
b = []#创建列表用于存放拆分后的数字
for i in range(len(a)):
    number=int(a[i])#取出字符并转换为数字
    x = (number+3)%9#加密变换
    b.append(x)
b[0], b[2] = b[2], b[0]#加密变换
b[1], b[3] = b[3], b[1]#加密变换
for i in b:
    print(i, end="")#自动换行

 Python基础入门例程28-NP28 密码游戏(列表)-LMLPHP

Python基础入门例程28-NP28 密码游戏(列表)-LMLPHP 

说明:

 考查字符串的提取操作。或考查数字的拆分。

格式化输出:print('%10.3f' % pi) #字段宽10,精度3

自动换行: print(i, end="")

运算符:取整除 //

11-05 18:47