首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python中的运行时错误-计算pyth。定理

python中的运行时错误-计算pyth。定理
EN

Stack Overflow用户
提问于 2020-08-19 04:37:07
回答 2查看 107关注 0票数 0

我的程序有一个运行时错误,但我想不出来。问题出在哪里?如果您能帮助我,将不胜感激!:)下面是代码:

P.S.我对蟒蛇有点陌生!谢谢你的帮忙!

代码语言:javascript
运行
复制
import math
n = input()
for a in range(n):
    x, y = input().split()
    num = math.sqrt(x**2+y**2)
print(num)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-19 04:46:15

函数input()返回一个字符串。函数split()返回字符串列表。不能使用字符串执行任何数学操作。在执行任何操作之前,您必须转换为正确的类型。

尝试:

代码语言:javascript
运行
复制
import math
n = input()
for a in range(int(n)):
    x, y = input().split()
    x, y = float(x), float(y) # for example, it can be int as well
    num = math.sqrt(x**2+y**2)
    print(num)
票数 0
EN

Stack Overflow用户

发布于 2020-08-19 04:50:31

你至少有两个错误。

第一个是您的输入被保留为一个字符串。您应该使用n = int(input())n = float(input())来转换它。

第二个问题是,您有一个运行时错误:ValueError: not enough values to unpack (expected 2, got 1),这是您输入的结果。您正在尝试将输入打包到两个独立的值中。但是,再说一遍,你只有一个。

我想你要找的更像这样:

代码语言:javascript
运行
复制
import math
x = float(input())
y = float(input())

num = math.sqrt(x**2+y**2)
print(num)

但可以进一步缩短为:

代码语言:javascript
运行
复制
x = float(input())
y = float(input())

print((x**2+y**2)**.5)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63480062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档