无论如何有这样的地图参考?

时间:2019-04-16 04:40:29

标签: python

我试图解决这段代码,但是我仍然坚持这一点。 这是我要附上的问题场景的file

import math


def calculateDistance(x1, y1, x2, y2):
    dist = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)
    return dist

l_array = []
while True:
    input_string = input("Enter trip map references: ")
    if not input_string:
        exit()
    l_array = input_string.split()
    print(l_array)
    array_length = len(l_array)

    for i in range(array_length):
        if not (l_array[i].isupper()):
            print("bad reference", l_array[i])

    print(calculateDistance(x1, y1, x2, y2))

1 个答案:

答案 0 :(得分:0)

在此任务中,您有严格的从属任务。

检查输入的有效性

必须满足输入限制。通常,它必须由一系列由一个空格分隔的坐标组成。每个坐标必须遵循一个大写字母的形式,后跟一个整数。

A1 A2 R50

与这些限制的任何区别都将中止该过程并打印出错误消息。

转换输入

由于输入不是数字形式,因此必须对其进行转换。字母可以与字母中的数字匹配,从而得到数字表示。

A := 1
B := 2

计算距离

到目前为止,您已经拥有它。


总体流程

从下面的psedocode中可以看到整个程序的一种解决方案。

refs := input()  // Follows the pattern
dist := 0

if ( !checkRef(refs[0]) )
  return "ERROR"

ref0 := transformRef(refs[0])

for ref_i in refs[1:end]
  if ( !checkRef(ref) )
    return "ERROR"

  ref := transformRef(ref_i)
  dist += calcDist(ref0, ref)
  ref0 <- ref

return dist

Python提示

您应该阅读以下内容。

  • str.split->可以分割整个输入字符串
  • ord->返回字符的ASCII表示形式的索引
  • int->可以将仅包含数字的字符串转换为数字对象