python - 在 python 中使用返回的变量

标签 python function return

为什么下面的代码不允许我在函数返回后使用 os 变量? os 模块没有被导入,所以这根本不是问题。当我调用 Begin() 函数并在函数完成后打印 os 变量时,python 说该变量未定义。

def Begin():
    os = raw_input("Choose your operating system:\n[1] Ubuntu\n[2] CentOS\nEnter '1' or     '2': ")
    if os != '1' and os != '2':
        print "Incorrect operating system choice, shutting down..."
        time.sleep(3)
        exit()
    else:
        return os

Begin()
print os

最佳答案

您必须将返回的结果分配给实际变量。函数中的os只存在于函数作用域内,不能在函数作用域外使用。

result = Begin()
print result

正如@nneonneo 提到的,os 是标准库的一部分,是一个常用的模块,使用os 作为变量名会使读者感到困惑,并且如果 os 被导入,将覆盖它。

另一个建议:

if os != '1' and os != '2':

可以更简洁地写成

if os not in ('1', '2'):

当您要进行更多类似比较时,这也会让事情变得更容易。

关于python - 在 python 中使用返回的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15308161/

相关文章:

function - 如何以或方式组合两个 bool 函数?

java - 计算一些方程

MYSQL 查询跨数据库连接返回 NULL

python - getaddrinfo 无法解析主机

python - 检查 pandas.Timestamp 是否在 pandas.Period 中

python - 我如何记录 IPython 的输出,而不是在每次加载时都显示丑陋的 7 行日志记录信息?

Python:将二维数组插入 MySQL 表

c++ - 数论的C++代码问题

javascript - 调用函数和返回函数有什么区别?

c++ - 报告功能故障哪家学校好