如何在 python 中从范围中排除数字?



我是编码新手,我使用 for 循环和范围编写了一个程序来检查该范围内的数字是奇数还是偶数。但是我想排除数字 0

for num in range (0, 11):
if num %2 == 0:
print (num,' is an even number!')
else:
print (num,' is an odd number!')

我期望输出所有数字,但不是 0。 有人可以帮助我吗?

正如答案已经提到的,range(1, 11)将根据要求产生1 2 3 4 5 6 7 8 9 10。但是,您可以通过执行以下操作来排除特定数字:

all_numbers = range(0, 11)
exclude_set = {0}  # a set containing the value 0
numbers = (num for num in all_numbers if num not in exclude_set)

如果您有一组知道是错误的数字,但除此之外有一个连续的范围,这可能会很有用。

"""Represent retail stores in a chain"""
store_numbers = range(1, 51)
# stores 14, 17, and 32 have been closed, so
closed_stores = {14, 17, 32}
valid_stores = (store for store in store_numbers if store not in closed_stores)

如果要排除 0,请将范围更改为 (1,11(。范围的工作方式是下限是包含的,而上限是排除的。

文档以了解有关范围的更多信息:https://docs.python.org/3/library/functions.html#func-range

在不相关的说明中,如果您的下限为 0,则无需包含下限并将其写为 range(11(,这与 range(0,11( 相同。

范围包含第一个参数,但不包括第二个参数。范围内的第一个数字应该是您要开始的数字。

将代码更改为

for num in range(1, 11):
if num % 2 == 0:
print(num, ' is an even number!')
else:
print(num, ' is an odd number!')

最新更新