条件先后问题?
class Solution(object):def fizz_buzz(self, num):
if num == None:
raise TypeError('hahah')
if num < 1:
raise ValueError('heiheih')
result = []
for i in range(1, num+1):
if i % 3 == 0 and i % 5 == 0:
result.append('FizzBuzz')
elif i % 5 == 0:
result.append('Buzz')
elif i % 3 == 0:
result.append('Fizz')
else:
result.append(str(i))
return result
我自己写的是把if i % 3 == 0 and i % 5 == 0:放在第三个位置上了,所以当num能被3和5同时整除的时候只返回了Fizz.
请问判断条件的设置有什么规则吗?
我自己写的是把if i % 3 == 0 and i % 5 == 0:放在第三个位置上了,所以当num能被3和5同时整除的时候只返回了Fizz.
请问判断条件的设置有什么规则吗?
看你具体情况,就具体分析了呀,有些条件你想最先判断,肯定要放优先位置咯 Twilight6 发表于 2020-6-24 11:16
看你具体情况,就具体分析了呀,有些条件你想最先判断,肯定要放优先位置咯
就在这个问题上,我最先想到的就是先判断 i % 3 ==0 可是的出来的结果是错的,在这个问题上判断的先后有影响的呀 比如有3个水龙头(判断条件)连接着一个池子:
水龙头A:如果池子里是水,那就放出;
水龙头B:如果池子里是油,那就放出;
水龙头C:如果池子里是液体,那就自爆掉池子;
这时候判断语句的顺序如果是先A再B再C,那池子里是油的话会在B流出;
如果是先C再B再A,那池子里是油的话就会自爆了;
所以,判断条件的设置并没太多规则,而是根据你想实现什么,你的需求是什么。比如上面的例子,我想实现的是:如果是水或者油的话就流出来,否则自爆掉。那么我一定不能把判断C放到A和B的前面,否则就达不到我的需求了; 白白白白丶白 发表于 2020-6-24 11:20
就在这个问题上,我最先想到的就是先判断 i % 3 ==0 可是的出来的结果是错的,在这个问题上判断的先后有 ...
肯定有先后呀,你的 i % 3 == 0 这个条件是 i % 3 == 0 and i % 5 == 0 这个条件的子集呀,满足 i % 3 == 0
可是不一定满足 i % 3 == 0 and i % 5 == 0 呀,如果你判断i % 3 == 0 或者 i % 5 == 0 在 i % 3 == 0 and i % 5 == 0 之前,那么 这个条件永远不会被执行到
因为在 if-elif 下只要有一个条件成立,其他条件就不在执行 Twilight6 发表于 2020-6-24 11:26
肯定有先后呀,你的 i % 3 == 0 这个条件是 i % 3 == 0 and i % 5 == 0 这个条件的子集呀,满足 i %...
都换了if。答案对了
白白白白丶白 发表于 2020-6-24 11:39
都换了if。答案对了
if 是每个条件都可以进行一次判断的~
而elif 只要同缩进下有一个条件成立就不在判断了
所以你要注意 if 和 elif 的使用哈~~~ Twilight6 发表于 2020-6-24 12:59
if 是每个条件都可以进行一次判断的~
而elif 只要同缩进下有一个条件成立就不在判断了
大佬,有个问题问一下,我是转行的,计算机等级考试需不需要去考一下 白白白白丶白 发表于 2020-6-30 11:00
大佬,有个问题问一下,我是转行的,计算机等级考试需不需要去考一下
证越多越好,不要问为什么,我想转计算机专业现在都不让转了 难受 Twilight6 发表于 2020-6-30 11:16
证越多越好,不要问为什么,我想转计算机专业现在都不让转了 难受
你还是在校学生吗,今年上半年的计算机等级考试是取消了吧, 白白白白丶白 发表于 2020-6-30 11:30
你还是在校学生吗,今年上半年的计算机等级考试是取消了吧,
我还宅在家里呢....学校没开学在家上网课,我也想考 计算机证有机会一定去考掉
页:
[1]