【发布时间】:2021-10-14 23:07:41
【问题描述】:
我欢迎大家。情况如下 - 在一个值从 0 到 24 的列表中,需要用 'a' 替换 3 位的倍数,用 'b' 替换 4 的倍数,第 3 位和第 4 位的倍数 - 用 ' C'。 简单的解决方案 -
y = list(range(0,25))
def some(x):
decim_3 = 3
decim_4 = 4
for i in x:
if i % decim_3 == 0:
i = 'a'
elif (i % decim_4) == 0:
i = 'b'
elif i % decim_3 == 0 and i % decim_4 == 0:
i = 'c'
else:
i = i
print(i)
解决方案根据前两个条件正确更改值,但不适用于第三个条件
some(y)
a, 1, 2, a, b, 5, a, 7, b, a, 10, 11, a, 13, 14, a, b, 17, a, 19, b, a, 22, 23, a
【问题讨论】:
-
如果
i % decim_3 == 0为真,请考虑采用哪个分支。考虑一下i % decim_4 == 0是否为真是否也很重要。 -
更改顺序。如果先前的
if/elif块被执行,elif将不会被评估 -
请注意,这基本上是一个 FizzBuzz。在Stack Overflow 和其他地方都有... 许多 解决方案和模板可用。