欢迎访问Python每天3分钟系列。

每天早上8点半(周末要晚点),花3分钟时间,学习或温习一个Python知识点。

图片

今天是第014篇:

写分支语句if..else..最常见的错误

昨天说了快速判断一个程序员逻辑性的一个题目:

问题是:

写一个程序模拟下面这个游戏规则:
一圈人围在一起数数,从1数到100
普通数字直接报数(打印),
如果是3或者3的倍数输出”北京“,
如果是5或者5的倍数输出”杭州“,
如果是3的倍数,也是5的倍数输出”中国“。

期待的结果类似这样:

1,2,北京,4,杭州,...

这样也可以,格式不是关键

1
2
北京
...

标准答案

先给一个错误的答案:

for i in range(1, 101):
  if i%3 == 0:
    print('北京')
  elif i%5 == 5:
    print('杭州')
  elif i%15 == 0:
    print('中国')
  else:
    print(i)

能看到错在哪里吗?

分支的顺序不对,很多人犯了顺序不对的错误。

正确的答案是:

for i in range(1, 101):
  if i%15 == 0:
    print('中国')
  elif i%3 == 0:
    print('北京')
  elif i%5 == 0:
    print('杭州')
  else:
    print(i)

列举一下几个常见的错误:

  1. 根本写不出来,不知道大学怎么上的。

  2. 忘记写最后的else了,也就是只打印了中国,杭州,北京等,没有的打印数字。

  3. 分支的顺序不对。

  4. 还有人成了i%3 and i%5,这个不算错,虽然没有i%15更优。我猜解释器会帮忙优化的,这个就不扣分吧。

你呢?把犯过的错打在评论区。全对打5。

声明:本网站资源来源于网络收集,如有侵权,请联系站长进行删除处理。 分享目的仅供大家学习和交流,请不要用于商业用途,否则后果自负。本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解。本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。反馈邮箱:1159995880@qq.com