如果x&>y,Range(x,y)的输出是什么?
问题描述
设x和y为两个整数:
如果在Python中考虑x > y,range(x, y)将如何?
我尝试了以下代码:
for i in range(10, 3):
print(i)
我认为range(10, 3)应该被视为列表[0, 3, 6, 9],但是这部分代码没有呈现任何内容。
解决方案
您有两个选项:
重新排列输入值,
range(0, 10, 3) # => (0, 3, 6, 9)编写包装函数,为您重新排列它们:
def safe_range(a, b): return range(0, max(a,b), min(a,b)) safe_range(3, 10) # => (0, 3, 6, 9)
编辑:再想一想,我明白了;您正在尝试做一些类似
的事情range({start=0,} stop, step)
但如果您只给出两个值,则无法区分该值和
range(start, stop, {step=1})
为解决此歧义,Python语法要求默认值参数只能出现在所有位置参数之后-即,第二个示例是有效的Python,第一个示例不是。
相关文章