Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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中的循环在遇到具有特定输入的单元格时跳过循环中的一次迭代?见下文。_Python_Loops_If Statement - Fatal编程技术网

如何让python中的循环在遇到具有特定输入的单元格时跳过循环中的一次迭代?见下文。

如何让python中的循环在遇到具有特定输入的单元格时跳过循环中的一次迭代?见下文。,python,loops,if-statement,Python,Loops,If Statement,我有一个程序,它基本上由一个简单的循环组成,循环通过一组数字,这些数字排列在电子表格的许多其他列中的一列中,它由一组if语句组成,这些if语句检查每个数字是否在一个特定的范围内,并基于它属于哪个范围,它将执行一个特定的任务 然而,问题是,时不时地,列中的一些单元格只包含一个-符号,没有任何数字,程序就停在那里,因为它无法将破折号与我正在进行if语句比较的数字范围进行比较。跳过这些类型的细胞最好的方法是什么?我无法删除这些单元格,因为我有100000多行,电子表格中还有其他对我有用的列。我试着使用

我有一个程序,它基本上由一个简单的循环组成,循环通过一组数字,这些数字排列在电子表格的许多其他列中的一列中,它由一组if语句组成,这些if语句检查每个数字是否在一个特定的范围内,并基于它属于哪个范围,它将执行一个特定的任务

然而,问题是,时不时地,列中的一些单元格只包含一个-符号,没有任何数字,程序就停在那里,因为它无法将破折号与我正在进行if语句比较的数字范围进行比较。跳过这些类型的细胞最好的方法是什么?我无法删除这些单元格,因为我有100000多行,电子表格中还有其他对我有用的列。我试着使用“中断并继续”功能,但由于某种原因,程序无法读取它

 for x in range(1,1000):
    if value[x] == "-":
      break # I tried this with the continue function as well 

这两种方法中的任何一种都会起作用:

for x in range(1,1000):
    if value[x] == "-":
        pass
    else:
        # do work

请注意,缩进对于在正确的时间发生正确的事情至关重要

Python中的break类似于exit for和exit,而不是其他语言;它结束循环,而不是跳过一项

for x in range(1, 1000):
    if value[x] == '-': continue
    doImportantThings ()

我更喜欢它,因为您避免了额外的缩进—每个缩进都会降低代码片段的可读性,片段越长—价值越高—在比较中可能也会出现不完全匹配的问题

即,如果值[x]=-中的字符串,则值[x]=-将为false

试试这个:

for x in range(1,1000):
    # this will be true if there is a '-' in the string at all
    if "-" in value[x]: 
      continue
请注意,如果您的有效单元格恰好包含-,这种方法可能会产生误报

我们应该继续努力。如果没有,我们需要查看更多的代码来找出原因。
for x in range(1,1000):
    if value[x] == "-":
        continue
for x in range(1,1000):
    # this will be true if there is a '-' in the string at all
    if "-" in value[x]: 
      continue