如何在python中的for循环迭代期间生成异常
对于这个问题的简单答案,我先表示歉意,但我似乎不知道如何将如何在python中的for循环迭代期间生成异常,python,python-3.x,if-statement,for-loop,nested,Python,Python 3.x,If Statement,For Loop,Nested,对于这个问题的简单答案,我先表示歉意,但我似乎不知道如何将if\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu:块嵌套到现有的for块中 例如,如何更改此块以迭代I的每个实例,忽略奇数 odds = '1 3 5 7 9'.split() for i in range(x): if i in odds: continue print(i) 如果i==y,则此代码适用于,但我无法使其与一组特定的“y”一起工作,这与嵌套无关。您正在比较苹果和梨,或者
if\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu:
块嵌套到现有的for
块中
例如,如何更改此块以迭代I
的每个实例,忽略奇数
odds = '1 3 5 7 9'.split()
for i in range(x):
if i in odds:
continue
print(i)
如果i==y,则此代码适用于
,但我无法使其与一组特定的“y”一起工作,这与嵌套无关。您正在比较苹果和梨,或者在本例中,尝试在str
对象列表中查找int
因此,if
测试从不匹配,因为列表中没有1
['1','3','5','7','9']
;也没有3
或5
或7
或9
,因为整数与字符串是不同类型的对象,即使该字符串包含的数字在您作为人的眼中看起来像数字
首先将int转换为字符串,或者将字符串转换为整数:
if str(i) in odds:
或
如果你想测试奇数,有一个更好的测试;检查除以2的余数是否为1:
if i % 2 == 1: # i is an odd number
这与筑巢无关。您正在比较苹果和梨,或者在本例中,尝试在
str
对象列表中查找int
因此,if
测试从不匹配,因为列表中没有1
['1','3','5','7','9'];也没有3
或5
或7
或9
,因为整数与字符串是不同类型的对象,即使该字符串包含的数字在您作为人的眼中看起来像数字
首先将int转换为字符串,或者将字符串转换为整数:
if str(i) in odds:
或
如果你想测试奇数,有一个更好的测试;检查除以2的余数是否为1:
if i % 2 == 1: # i is an odd number
如果您希望在偶数范围内进行迭代,那么类似的方法应该可以奏效。X是一个整数。
2
是步骤,因此这将忽略奇数
for i in range(0,x,2):
print(i)
有关更多信息,请查看此处的文档:
我在您提供的代码中遇到了几个问题,continue将直接涉及print语句和赔率中的值,其中chars不是int,这意味着比较失败
创建一个整数列表并使用不在
中而不是在
中使用可以解决这个问题
x = 10
odds = [1, 3, 5, 9]
for i in range(x):
if i not in odds:
print(i)
如果您希望在偶数范围内进行迭代,那么类似的方法应该可以奏效。X是一个整数。2
是步骤,因此这将忽略奇数
for i in range(0,x,2):
print(i)
有关更多信息,请查看此处的文档:
我在您提供的代码中遇到了几个问题,continue将直接涉及print语句和赔率中的值,其中chars不是int,这意味着比较失败
创建一个整数列表并使用不在
中而不是在
中使用可以解决这个问题
x = 10
odds = [1, 3, 5, 9]
for i in range(x):
if i not in odds:
print(i)
赔率
是字符串列表i
是一个整数。我不知道你想打印问题中的偶数还是奇数。您使用的是range,这表明您希望迭代一系列值,而不是列表中的值。你可能需要澄清这一点。我在寻找一种排除我在for循环中的方法。我举这个例子是因为它很简单,而我正在编写的实际程序更复杂。在本例中,我希望迭代每个变量,但只打印evens,因为赔率将命中“continue”语句。赔率
是字符串列表i
是一个整数。我不知道你想打印问题中的偶数还是奇数。您使用的是range,这表明您希望迭代一系列值,而不是列表中的值。你可能需要澄清这一点。我在寻找一种排除我在for循环中的方法。我举这个例子是因为它很简单,而我正在编写的实际程序更复杂。在本例中,我希望迭代每个变量,但只打印evens,因为赔率会命中“continue”语句。