Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
输入的基本python条件检查,始终设置为输入1_Python_Eclipse_Pydev - Fatal编程技术网

输入的基本python条件检查,始终设置为输入1

输入的基本python条件检查,始终设置为输入1,python,eclipse,pydev,Python,Eclipse,Pydev,编辑: 我试图根据允许的输入数组检查用户输入,以获得要执行的if语句,如果输入'y'或'yes'或1则代码将运行,我认为我使用了错误的结构:( 我有一段非常简单的代码,用于在预定义数组中针对多种可能的条件运行用户输入: from spiders import test run_test_spider = 0 condition = [1, 'yes', 'Yes', 'YES', 'y', 'Y'] x=-1 def spiders(): for run_test_spider in

编辑: 我试图根据允许的输入数组检查用户输入,以获得要执行的if语句,如果输入
'y'或'yes'或1
则代码将运行,我认为我使用了错误的结构:(

我有一段非常简单的代码,用于在预定义数组中针对多种可能的条件运行用户输入:

from spiders import test

run_test_spider = 0
condition = [1, 'yes', 'Yes', 'YES', 'y', 'Y']
x=-1
def spiders():

    for run_test_spider in condition:
        global x
        x=x+1
        if run_test_spider == condition[x]:
            test.main()
            print 'gotcha!'
        print 'running.......'
    print run_test_spider
    print 'hello'



print 'hello would you like to run a test spider?'
print '1,yes,y = Yes I do!!!'
print '0,no,n  = Nope!'
run_test_spider = raw_input(': ')

spiders()
我在eclipse中运行了调试器(pydev),一旦我输入字符串
n
以获得失败的条件检查,调试器会告诉我输入自动变为
1
,这会导致代码始终执行spider

有人知道为什么我的输入都变成了
1

1
业务是eclipse在其变量字段中显示的,当我输入输入时(一旦我将调试器升级到该点)

此外,控制台还显示:当我在调试期间输入输入时:

Traceback (most recent call last):
  File "C:\Program Files\eclipse\plugins\org.python.pydev.debug_2.5.0.2012040618\pysrc\pydevd_comm.py", line 755, in doIt
    result = pydevd_vars.evaluateExpression(self.thread_id, self.frame_id, self.expression, self.doExec)
  File "C:\Program Files\eclipse\plugins\org.python.pydev.debug_2.5.0.2012040618\pysrc\pydevd_vars.py", line 384, in evaluateExpression
    result = eval(compiled, updated_globals, frame.f_locals)
  File "<string>", line 1, in <module>
NameError: name 'n' is not defined
回溯(最近一次呼叫最后一次):
文件“C:\Program Files\eclipse\plugins\org.python.pydev.debug_2.5.0.2012040618\pysrc\pydevd_comm.py”,第755行,在doIt中
结果=pydevd_vars.evaluateExpression(self.thread_id、self.frame_id、self.expression、self.doExec)
evaluateExpression中的文件“C:\Program Files\eclipse\plugins\org.python.pydev.debug_2.5.0.2012040618\pysrc\pydevd_vars.py”,第384行
结果=eval(编译、更新的\u全局、frame.f\u局部)
文件“”,第1行,在
NameError:未定义名称“n”
意味着run_test_spider将在每个元素处于状态时初始化。 因此,您实际上要检查
条件
的每一项是否都在其中

编辑:这是您的支票:

condition = [1, 'yes' 'y']

def spiders():

    if run_test_spider.lower() in condition:
        test.main()
        print 'gotcha!'
意味着run_test_spider将在每个元素处于状态时初始化。 因此,您实际上要检查
条件
的每一项是否都在其中

编辑:这是您的支票:

condition = [1, 'yes' 'y']

def spiders():

    if run_test_spider.lower() in condition:
        test.main()
        print 'gotcha!'
  • 您不会将用户的输入发送到要在其中使用它的命令。要使用它,请将run_test_spider作为输入传递给spider命令,并声明该命令以接受输入

  • 不要在for循环中重新分配run\u test\u spider

  • 为了方便地检查一个项目是否在列表中,您只需使用结构
    if a in b:

  • 最后,正如@Tisho所指出的,原始输入返回一个字符串,因此将代码中的
    1
    设置为字符串:
    '1'

  • 因此,代码变成:

    条件=['1','yes','yes','yes','y','y']

    def spider(run_test_spider):
       if run_test_spider in conditions:
                # do something
       else:
                # do something else
    
    run_test_spider = raw_input(':')
    spider(run_test_spider)
    
  • 您不会将用户的输入发送到要在其中使用它的命令。要使用它,请将run_test_spider作为输入传递给spider命令,并声明该命令以接受输入

  • 不要在for循环中重新分配run\u test\u spider

  • 为了方便地检查一个项目是否在列表中,您只需使用结构
    if a in b:

  • 最后,正如@Tisho所指出的,原始输入返回一个字符串,因此将代码中的
    1
    设置为字符串:
    '1'

  • 因此,代码变成:

    条件=['1','yes','yes','yes','y','y']

    def spider(run_test_spider):
       if run_test_spider in conditions:
                # do something
       else:
                # do something else
    
    run_test_spider = raw_input(':')
    spider(run_test_spider)
    

    因此,您正在检查
    条件
    的每一项是否都处于
    条件
    ?Opps,一些代码的切块,调试器视图有点小:)您实际上从未使用输入值..我正在尝试检查,如果用户输入y、yes或1,则if语句中的代码将执行,或者至少是我正在尝试的do@Tisho真正地那太尴尬了。我是否误用了for循环?因此您正在检查
    条件
    的每一项是否都在
    条件
    中?Opps,一些代码的切块,调试器视图有点小:)您实际上从未使用过输入值..我试图检查,如果用户输入y、yes或1,则if语句中的代码将执行,或者至少这就是我想说的do@Tisho,真的,那太尴尬了。我是否误用了for循环?run_test_spider只是一个输入变量,它需要一个字符串。项目是什么变量?我的变量x?伙计,非常感谢<代码>如果运行测试蜘蛛在条件:正是我所需要的。它工作得很好。我在
    condition
    中制作了
    1
    字符串,一切都很好。干杯伙伴:)run_test_spider只是一个输入变量,它需要一个字符串。项目是什么变量?我的变量x?伙计,非常感谢<代码>如果运行测试蜘蛛在条件:正是我所需要的。它工作得很好。我在
    condition
    中制作了
    1
    字符串,一切都很好。干杯,伙计:)