如何分割用户输入坐标并在计算中使用



我正试图使用用户给出的2个点来计算圆的半径
该程序使用这样一个简单的单个整数项。。。

x1 = int(input("enter x1"))
y1 = int(input("enter y1"))

但我想以一种允许用户输入这样一个点的方式编写输入。。。

2,5

下面是该程序的代码,它将接受用户
输入的x1,y1和x2,y2,但计算结果为0.0。

我错过了什么?

import math
def distance (x1,y1,x2,y2):
dis = math.sqrt((x2-x1)**2 + (y2-y1)**2)
return distance
def radius (x1,y1,x2,y2):
rad = distance(x1,y1,x2,y2)
return rad
def main():
coordinate_1 = input("enter x1 and y1")
coordinate_1 = coordinate_1.split(",") 
x1 = int(coordinate_1[0])
y1 = int(coordinate_1[1])
coordinate_2 = input("enter x2 and y2")
coordinate_2 = coordinate_2.split(",") 
x2 = int(coordinate_1[0])
y2 = int(coordinate_1[1])
rad = radius(x1,y1,x2,y2)
print("the radius is:", rad)
main()

您尚未共享完整的工作代码,但如果您的输出为0.0,则是因为以下代码行:

x2 = int(coordinate_1[0])
y2 = int(coordinate_1[1])

您使用的是x2和y2的第一个输入坐标,因此它们之间的距离为0.0。

您应该将以上行更新为:

x2 = int(coordinate_2[0])
y2 = int(coordinate_2[1])

下面我分享了经过修改的完整代码,并在解决错误后(在您的原始代码上(,这是有效的:

import math
def calc_distance(x1,y1,x2,y2):
dis = math.sqrt((x2-x1)**2 + (y2-y1)**2)
return dis
def calc_radius(x1,y1,x2,y2):
rad = calc_distance(x1,y1,x2,y2)
return rad
coordinate_1 = eval(input("enter x1 and y1"))
x1 = int(coordinate_1[0])
y1 = int(coordinate_1[1])
print(x1, y1)
coordinate_2 = eval(input("enter x2 and y2"))
x2 = int(coordinate_2[0])
y2 = int(coordinate_2[1])
radius = calc_radius(x1, y1, x2, y2)
print("the radius is:", radius)

您可以这样使用来获得坐标的列表

input1='2,5'
a = input1.split(',')
a=list(map(int,a))
print(a)
# [2, 5]

最新更新