所以我正在制作一个视频播放器,根据一些加权概率自动选择下一个视频。当视频进入时,它会从csv读取所有元标记,然后在概率滚动后查找下一个匹配项。我有各种各样的metatag检查与if语句和for循环一起编程,但是客户端刚刚要求为每个过滤器打开和关闭开关,而我无法绕过最有效的方式绕过接近这个问题。
我对Python仍然相当绿,所以我想在尝试以最糟糕的方式做事之前我会问。我想知道(如果没有办法做到这一点我还不知道)如果最好让on和off开关中断并在它们到达这一点之前改变变量,那么例如,当on开关打开时,每个可能颜色的列表将被分配给变量颜色,因此它总是通过,并且没有视频从颜色中被拒绝,从而保持相同的基本格式。
为了便于阅读,下面是我正在进行的简化版本。在它之前,程序从csv获取它需要的所有变量,并且在最终打印之后,通过的那些变量被添加到随机拉出的良好选择列表中:
for eachrow in table:
Answer = False
for eachcell in eachrow:
if color == req_color:
if speed == req_speed:
if exclusion == req_exclusion:
print ('No pass!')
else:
Answer = True
print ('All attributes match')
if Answer:
print ('This passes')
干杯!
答案 0 :(得分:2)
也许您正在寻找continue
?
continue语句用于告诉Python跳过当前循环块中的其余语句并继续循环的下一次迭代。
答案 1 :(得分:0)
听起来你想使用continue。 Continue有点像break,除非break终止循环,继续只是跳过当前循环的其余部分并启动下一个循环。
我无法确切地告诉你要做什么,但你可以尝试这样的事情:
testsToRun = ['speed','color']
for row in table:
Answer = False
for cell in row:
if cell['color'] == color and 'color' in testsToRun:
print ('No pass!')
continue
if cell['speed'] == speed and 'speed' in testsToRun:
print ('No pass!')
continue
if cell['exclusion'] == exclusion and 'exclusion' in testsToRun:
print ('No pass!')
continue
Answer=True
print ('All attributes match')
if Answer:
print ('This passes')
答案 2 :(得分:0)
感谢大家的建议。我通过回到定义变量的位置解决了这个问题。我设置它,以便当它关闭时,它将所有可能的变量发送到if,以便它总是通过,如果它关闭。这样当开关打开并且它接受用户输入时,它选择性地传递信息。我想到了其他选择,但由于这个原型必须快速转换时间,这似乎是最好的选择。
再次感谢!