如果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,第一个示例不是。
相关文章