python-3.x - 缺少位置参数
问题描述
我们被迫使用多个函数来完成一些简单的任务,以了解抽象的好处。然而,我相信这不必要地使事情复杂化(但我知道什么?)。不过,我的主要复合函数调用缺少位置参数。
除了制作函数返回列表而不是元组之外,我没有尝试太多,但无济于事。
import math
def calculations(x1, x2, y1, y2):
difsqx = (x2 - x1) ** 2
difsqy = (y2 - y1) ** 2
return difsqx, difsqy
def square_rooter(difsqx, difsqy):
distance = math.sqrt(difsqx + difsqy)
return distance
def main():
var1 = float(input("Enter an x1 value: "))
var2 = float(input("Enter an x2 value: "))
var3 = float(input("Enter a y1 value: "))
var4 = float(input("Enter a y2 value: "))
print(square_rooter(calculations(var1, var2, var3, var4)))
if __name__ == "__main__":
main()
我期望得到 (x1 & x2), (y1 & y2) 之间的距离,但我收到了这个错误。
Traceback (most recent call last):
File "C:/Users/devon/PycharmProjects/Data Structures/In-Class Work/Cartesian Distance.py", line 31, in <module>
main()
File "C:/Users/devon/PycharmProjects/Data Structures/In-Class Work/Cartesian Distance.py", line 27, in main
print(square_rooter([calculations(var1, var2, var3, var4)]))
TypeError: square_rooter() missing 1 required positional argument: 'difsqy'
请派你训练有素的猴子来协助。
解决方案
您可以使用星号表达式将元组的元素作为单独的参数传递给函数,因为您的square_rooter
函数需要两个参数:
print(square_rooter(*calculations(var1, var2, var3, var4)))
推荐阅读
- angular - 登录按钮不会重定向到仪表板
- haskell - GHC 如何将 Haskell 代码编译为汇编?
- linux - 从文件中消除多个空间并修改原始文件
- react-native-flatlist - react-native flatList 呈现空白屏幕
- javascript - JavaScript Canvas toDataURL 安全注意事项
- rust - 如何声明一个函数而不实现它?
- php - PHP MS SQL,查询未执行,但php返回true
- date - 日期时间格式全球化变化
- c# - 在 C# 中使用 FsCheck.Xunit,在执行完所有测试后如何清理/拆除?
- angular - Angular Httpclient PUT 在参数中设置布尔值和正文