python - 调用函数:NameError 需要定义
问题描述
如何在函数外部定义 userMiles 以便能够在不将 userMiles = float(input()) 置于函数外部的情况下调用它?
def MilesToLaps(userMiles):
"""Convert miles to laps."""
userMiles = float(input())
userLaps = userMiles/0.25
return userLaps
if __name__ == '__main__':
print(MilesToLaps(userMiles))
解决方案
我不确定您在这里追求什么,所以我会尝试多个答案,希望其中一个能满足您的需求。
当您在定义函数时将变量放在括号中时,您正在将数据传递给该函数,因此基本上您可以在函数外移动一行。
def MilesToLaps(userMiles):
"""Convert miles to laps."""
userLaps = userMiles/0.25
return userLaps
userMiles = float(input())
if __name__ == '__main__':
print(MilesToLaps(userMiles))
如果您不想将任何参数传递给函数,您可以使用全局变量。
def MilesToLaps():
"""Convert miles to laps."""
global userMiles
userLaps = userMiles/0.25
return userLaps
userMiles = float(input())
if __name__ == '__main__':
print(MilesToLaps())
我希望我已经为您提供了您正在寻找的答案,或者至少让您深入了解了可以用来解决此问题的不同方法。
一切顺利。
推荐阅读
- azure - 连接到在 azure 上运行的 jenkins 容器
- redis - 为什么 redis pubsub 工作独立于数据库?
- html - 为什么这个“res.redirect()”不重定向?
- arrays - 为什么我不断收到数组索引必须为正的错误?
- sql - ORACLE SQL 重写查询
- python - python会接受-(破折号)作为`open()`的文件名以写入标准输出吗?
- javascript - Angular/Node 验证用户
- c# - LineRenderer 对齐不面向 Vuforia ARCamera
- swift - 修改结构模型时将数据传回控制器
- python - 试图通过在打印语句中使用标识运算符来获取布尔值。但它给了我错误的价值观如何解决?