为了账号安全,请及时绑定邮箱和手机立即绑定

尝试将输入转换为列表

尝试将输入转换为列表

烙印99 2023-12-29 10:32:11
我正在尝试从用户那里获取 2 个点的输入并输出距离。我陷入了将输入转换为输出列表的困境。我可能以错误的方式思考它,任何帮助我走向正确方向的帮助都是值得赞赏的。import mathp1 = input("please enter x1 and y1: ")p2 = input("please enter x2 and y2: ")x1y1 = p1.split(',')x2y2 = p2.split(',')distance = math.sqrt( ((x1y1[0]-x2y2[0])**2)+((x1y1[1]-x2y2[1])**2) )print(distance)
查看完整描述

5 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

您可以使用列表理解将输入转换为ints,然后进行解构赋值以将它们分配给两个不同的变量:


from math import sqrt


[x1, y1] = [int(n) for n in input("please enter x1 and y1: ").split()]

[x2, y2] = [int(n) for n in input("please enter x2 and y2: ").split()]


print(f"Distance: {sqrt((x1-x2)**2+(y1-y2)**2)}")


查看完整回答
反对 回复 2023-12-29
?
偶然的你

TA贡献1841条经验 获得超3个赞

首先将每个元素转换为 int:


p1 = input("please enter x1 and y1: ")

p2 = input("please enter x2 and y2: ")


x1y1 = [int(x) for x in p1.split(',')]

x2y2 = [int(y) for y in p2.split(',')]


查看完整回答
反对 回复 2023-12-29
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

这可以帮助:


from math import sqrt

xi, yi = [int(i) for i in input().split()]

xf, yf = [int(i) for i in input().split()]

print(math.sqrt((xf-xi)**2 + (yf-yi)**2))


查看完整回答
反对 回复 2023-12-29
?
守着一只汪

TA贡献1872条经验 获得超3个赞

import math

p1 = input("please enter x1 and y1: ")

p2 = input("please enter x2 and y2: ")


x1y1 = [int(num) for num in p1.split(',')]

x2y2 = [int(num) for num in p2.split(',')]

distance = math.sqrt( ((x1y1[0]-x2y2[0])**2)+((x1y1[1]-x2y2[1])**2) )


print(distance)

Str 应转换为 int。


查看完整回答
反对 回复 2023-12-29
?
心有法竹

TA贡献1866条经验 获得超5个赞

您可以使用map()轻松转换为int


import math

p1 = input("please enter x1 and y1: ")

p2 = input("please enter x2 and y2: ")


x1y1 = list(map(int, p1.split(',')))

x2y2 = list(map(int, p2.split(',')))


distance = math.sqrt( ((x1y1[0]-x2y2[0])**2)+((x1y1[1]-x2y2[1])**2) )


print(distance)


查看完整回答
反对 回复 2023-12-29
  • 5 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信