题解 | #密码游戏#
密码游戏
https://www.nowcoder.com/practice/36641ab168664384aff798ba7ce34bc1
num = int(input()) n_1 = (num // 1000 + 3) % 9 n_2 = (num // 100 % 10 + 3) % 9 n_3 = (num // 10 % 10 + 3) % 9 n_4 = (num % 10 + 3) % 9 n_1, n_3 = n_3, n_1 n_2, n_4 = n_4, n_2 print(f"{n_1}{n_2}{n_3}{n_4}")
有几点收获:
- 从一个四位数中提取个位、十位、百位、千位:
- 交换数字(Python专有的方式):a, b = (b, a) 利用元组,但小括号可省略。 a, b = b, a
- print输出要保持前置的0,因此不能利用乘法把四个数字再组成一个新的四位数。
- 如果按照别的方法,为了让加3再取余9的重复动作在循环里实现。把4个数字放进一个列表中,使用for循环遍历列表的时候要注意:不能使用for n in n_list: 因为即使这样做,循环体中对列表中的数字n进行了操作,但没有方法可以改变列表中保存的值,因此后续输出的还是加3取余9之前的数字。要想修改列表中保存的值,唯一的方法只有 列表名[索引] = ... 这种赋值语句。