相关疑难解决方法(0)

input()error - NameError:name'...'未定义

我尝试运行这个简单的python脚本时收到错误:

input_variable = input ("Enter your name: ")
print ("your name is" + input_variable)
Run Code Online (Sandbox Code Playgroud)

让我说我输入"dude",我得到的错误是:

line 1, in <module>
input_variable = input ("Enter your name: ")
File "<string>", line 1, in <module>
NameError: name 'dude' is not defined
Run Code Online (Sandbox Code Playgroud)

我正在运行Mac OS X 10.9.1,我正在使用安装python 3.3附带的Python Launcher应用程序来运行脚本.

编辑:我意识到我用2.7运行这些脚本.我想真正的问题是我如何使用3.3版运行我的脚本?我想如果我将我的脚本拖放到我的应用程序文件夹中的Python 3.3文件夹内的Python Launcher应用程序之上,它将使用3.3启动我的脚本.我想这个方法仍然用2.7启动脚本.那么我如何使用3.3?

python input nameerror python-2.7

193
推荐指数
8
解决办法
60万
查看次数

使用unittest.mock在Python 3中修补input()

你如何使用@patch装饰器来修补内置的input()函数?

例如,这是我要测试的question.py中的一个函数,它包含对input()的调用:

def query_yes_no(question, default="yes"):
""" Adapted from http://stackoverflow.com/questions/3041986/python-command-line-yes-no-input """

    valid = {"yes": True, "y": True, "ye": True, "no": False, "n": False}
    if default is None:
        prompt = " [y/n] "
    elif default == "yes":
        prompt = " [Y/n] "
    elif default == "no":
        prompt = " [y/N] "
    else:
        raise ValueError("invalid default answer: '%s'" % default)

    while True:
        sys.stdout.write(question + prompt)
        choice = input().lower()

        if default is not None and choice == '':
            return valid[default]
        elif choice in valid: …
Run Code Online (Sandbox Code Playgroud)

python unit-testing input mocking python-3.x

10
推荐指数
2
解决办法
7140
查看次数

区分假和0

我有一个愚蠢但问题.假设我有一个包含不同值的列表.像这样:

[1,2,3,'b', None, False, True, 7.0]
Run Code Online (Sandbox Code Playgroud)

我想迭代它并检查每个元素是否都不在某些禁用值的列表中.例如,这个列表是[0,0.0].

当我检查是否为假时,[0,0.0我得到了True.我知道python会False转到0这里.但我怎么能避免它并使这个检查正确 - 该False值不在[0,0.0]列表中?

python

8
推荐指数
2
解决办法
3104
查看次数

Python是/否def

我正在使用以下示例:

APT命令行界面 - 是/否输入?

我想按照概述制定它自己的定义,然后根据需要调用它,如下所示:

def log_manager():  
    question = "Do you wish to continue?"  
    choice = query_yes_no_quit(question, default="yes")  
        if choice == 'y':  
            print ("you entered y")  
        else:     
            print ("not working")  
Run Code Online (Sandbox Code Playgroud)

无论我输入什么,总是打印"不工作".任何指导都会非常感激!

python prompt

1
推荐指数
1
解决办法
7364
查看次数