我试图解决这段代码,但是我仍然坚持这一点。 这是我要附上的问题场景的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))
答案 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提示
您应该阅读以下内容。