如何修改Python代码使range的stop参数值也被检测奇偶性?
让range的stop参数值参与奇偶性检测的解决方案
我编写了如下Python代码,运行正常,但希望稍作修改,让数值范围中的最后一个数(即range的stop参数值)也被检测是否为偶数。请问能否修改代码,使stop_range值也参与奇偶性检测?
当前代码如下:
counter = list(range(2)) numbers = [] for n in counter: numbers.append(int(input("Enter the number: "))) numbers.sort() print("Range of numbers: ", numbers) even_num = [] for n in range(numbers[0], numbers[1]): if n == 0: pass elif n % 2 == 0: even_num.append(n) else: pass print("Even numbers: ", even_num)
例如输入5和10时,偶数列表仅显示[6, 8],我希望10也能被纳入偶数列表。请问能否通过range函数实现该需求?
当然可以通过修改range的参数实现这个需求。Python的range(start, stop, step)是左闭右开区间,也就是包含start但不包含stop的值。要让stop值也被包含进来,只需要把range的第二个参数改成numbers[1] + 1即可。
修改后的完整代码
counter = list(range(2)) numbers = [] for n in counter: numbers.append(int(input("Enter the number: "))) numbers.sort() print("Range of numbers: ", numbers) even_num = [] for n in range(numbers[0], numbers[1] + 1): if n % 2 == 0: even_num.append(n) print("Even numbers: ", even_num)
简化写法(列表推导式)
你也可以用列表推导式简化代码,让逻辑更清晰:
counter = list(range(2)) numbers = [] for n in counter: numbers.append(int(input("Enter the number: "))) numbers.sort() print("Range of numbers: ", numbers) even_num = [n for n in range(numbers[0], numbers[1] + 1) if n % 2 == 0] print("Even numbers: ", even_num)
这样输入5和10时,range会生成5到10的所有整数(包括10),最终偶数列表会输出[6, 8, 10],完全符合你的需求。
内容的提问来源于stack exchange,提问作者jumi
相关产品推荐
相关产品推荐

