失落的机器人程序

时间:2017-10-25 14:35:44

标签: algorithm python-3.x

这是ICPC在线回合问题。我检查了样本输入和我自己想象的输入。 This is link to question

这是我的代码。这段代码是用Python编写的。

for _ in range(int(input())):
  x1,y1,x2,y2=map(int,input().split())
  if (x2-x1==y2-y1)or((x2-x1!=0)and(y2-y1!=0)):
    print('sad')
  elif (x2-x1==0 and y2-y1>0):
    print('up')
  elif (x2-x1==0 and y2-y1<0):
    print('down')
  elif (y2 - y1 == 0 and x2 - x1 > 0):
    print('right')
  elif (y2 - y1 == 0 and x2 - x1 < 0):
    print('left')

任何人都可以建议该代码的输入不起作用?如果所有输入的代码都是正确的,那么欢迎任何修改吗?

1 个答案:

答案 0 :(得分:0)

您的代码已经无法正确解析输入。看看:

python /tmp/test.py 
1
0 0 0 1
Traceback (most recent call last):
  File "/tmp/test.py", line 3, in <module>
    x1, y1, x2, y2 = map(int, input().split())
  File "<string>", line 1
    0 0 0 1
      ^

除此之外,它似乎是合乎逻辑的。

但是,您的编码风格是可以改进的。看看我的版本:

for _ in range(int(input())):
  x1, y1, x2, y2 = map(int, input().split())
  if x1 != x2 and y1 != y2:
      print('sad')
  elif x1 == x2 and y1 < y2:
      print('up')
  elif x1 == x2 and y1 > y2:
      print('down')
  elif y1 == y2 and x1 < x2:
      print('right')
  elif y1 == y2 and x1 > x2:
      print('left')

我唯一改变的是改善条件。此外,我删除了底部的冗余条件。

作为NWERC和ACM-ICPC的前参与者,我只能建议关注可读代码。它不像生产代码库那么重要,但是当你必须调试打印代码时它会有很大的帮助,就像真正的竞争对手一样。