我正试图使用用户给出的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]