用到了numpy来求平方根,可以用math等代替。里面包含了异常处理等功能,如果认为代码有冗余可以删去。
数学公式:
接下来就好办了,将坐标记录好之后平方,相加,开方即可。
代码实现:
import numpy as np
# 计算函数
def calculate(a, b):
while True:
try:
x_position = pow(a[0] - b[0], 2) # 平方运算
y_position = pow(a[1] - b[1], 2)
result = np.sqrt(x_position + y_position) # 相加并开方
except Exception as e: # 异常处理
print(e)
continue
else: # 输出结果
print(f'A到B点的距离为: {result}')
return result
finally:
print(f'\n{"-"*15}\ncalculate finished')
# 主函数
def main():
flag = 'y'
count = 0
while flag == 'y':
try: # 用户输入
x_1, y_1 = eval(input('输入A点坐标(英文输入法的逗号隔开):'))
a_position = (x_1, y_1)
x_2, y_2 = eval(input('输入B点坐标(英文输入法的逗号隔开):'))
b_position = (x_2, y_2)
except Exception as e: # 异常处理
print(f'{e}\n请重新输入\n{"-"*15}')
continue
else: # 再来一次
print(f'begin calculate\n{"-"*15}\n')
calculate(a_position, b_position)
count += 1
flag = str(input("\n重来吗(y/n): ")).lower()
print(f'\n共计计算{count}次,欢迎下次使用')
if __name__ == '__main__':
main()
注意:输入时要以英文输入法的逗号隔开,否则将触发异常。
结果展示: