python - 在另一个函数中使用一个函数中的变量然后调用它
问题描述
# Write a function inCircle that takes a point and a radius as a parameter.
# The function should return True if the point is inside the circle and False otherwise.
import math
# Function for distance equation
def pointCalc(x1, y1, x2, y2):
distance = math.sqrt(((x2 - x1) ** 2) + ((y2 - y1) ** 2))
# Function for whether or not coordinate points are in the in/on the circle
def inCircle(point, radius):
"""Function that returns whether point is inside a circle"""
if pointCalc.distance >= radius:
print(f"Point ({pointCalc.x1},{pointCalc.x2}) is not in circle with radius {radius}")
else:
print(f"Point ({pointCalc.x1},{pointCalc.x2}) is in circle with radius {radius}")
# Prompt user for inputs on coordinate points, center, and radius
print("Enter coordinate points:")
print("---------------------------------------------")
point_x = float(input("Enter a x-coordinate point: "))
point_y = float(input("Enter a y-coordinate point: "))
print("\nEnter coordinate points for the center:")
print("---------------------------------------------")
center_x = float(input("Enter a x-coordinate point for the center: "))
center_y = float(input("Enter a y-coordinate point for the center: "))
r = float(input("\nEnter radius for the circle: "))
# Call functions
pointCalc(point_x, point_y, center_x, center_y)
inCircle(radius=r)
- 从本质上讲,我比要求的更极端,因为我只是喜欢复杂的东西,它让我学得更好。
- 但我想提示用户输入坐标点 (x, y),然后让他们输入圆心的坐标点。然后我希望他们定义一个半径。
- 毕竟,我想通过计算距离的“pointCalc”函数运行坐标点和中心的坐标点。
- 然后我想使用位于“pointCalc”函数中的“距离”变量并将其插入到“inCircle”函数的 if/else 语句中,以查看“半径”是否大于、小于、等于等...并打印出 if/else 语句中的消息。
- 我知道当我调用“inCircle”的函数时,我需要使用第一个参数“point”。我只是不知道如何绕过它,当我尝试在调用时定义它时它不起作用。
解决方案
所以本质上你想将一个函数中计算的变量传递给另一个函数?
那么正确的方法(在大多数编程语言中)是return
从函数中获取值。您没有return
在函数中使用,并且无法通过以下语法访问另一个函数内部的变量func.variable
- 函数不是对象(某种),并且一旦函数终止,它声明的变量就会被销毁。
所以在你的情况下:
# Function for distance equation
def pointCalc(x1, y1, x2, y2):
return math.sqrt(((x2 - x1) ** 2) + ((y2 - y1) ** 2))
# Function for whether or not coordinate points are in the in/on the circle
def inCircle(distance, radius):
"""Function that returns whether point is inside a circle"""
if distance >= radius:
print(f"Point ({pointCalc.x1},{pointCalc.x2}) is not in circle with radius {radius}")
else:
print(f"Point ({pointCalc.x1},{pointCalc.x2}) is in circle with radius {radius}")
# ...
# Call functions
d = pointCalc(point_x, point_y, center_x, center_y)
inCircle(distance=d, radius=r)
推荐阅读
- c# - 构建失败,因为我杀死 vhost.exe 后无法复制 DLL
- python - 如何从立体获取深度图 - KITTI 数据集
- android - Android 房间数据库 - LiveData - 更新/插入/删除,跳过观察者(回调)
- .net - .NetCore SignalR + React - CORS 调用不起作用
- qlikview - 使用 PPtxgen 将 HTML 表格转换为 PPT
- azure - Azure devops powershell 在同一查询中给出与本地 powershell 不同的结果
- excel - 有没有办法完全限定 VBA 函数的使用?
- python - 根据它们的总和沿轴合并numpy数组值
- android - 何时建立 BLE 连接?通过调用建立连接()?还是在它之后调用第一个特征?
- assembly - 如何通过 PC BIOS 调用更改像素颜色?