我正在使用JES。下面的函数将适用于我想要它做的事情,但它在答案中不包括 x 和 y。例如,如果我输入的第一个数字是 2,第二个数字是 8,则它只打印 4 和 6。我希望它打印 2、4、6、8。请帮忙!谢谢!
def main():
x=input("Enter the first number:")
y=input("Enter the second number:")
i=0
for i in range (x,y):
if i%2==0:
print i
很简单,问题在于,在 Python(以及扩展的 JES(中,range(x, y)
从 x
到 y-1
的步骤,包括。这允许它自然地模仿[]
列表运算符的切片语法,即 [l[a] for a in range(x, y)]
与l[x:y]
列表相同。(至于为什么切片和range
都这样做,请参阅为什么范围(开始,结束(不包括结束?
因此,如果您希望x
包含y
,您只需将最后一个参数提高一个:
for i in range(x, y+1):
它应该打印出您想要的数字。
附言循环前的i=0
是不必要的。for
循环将初始化(并在必要时创建(变量i
。
print ",".join([str(i) for i in range(int(raw_input("Enter #1:")),
int(raw_input("Enter #2:"))+1) if not i%2])
我想我做对了那些括号
或者,使用input
较短但存在巨大的安全漏洞,通常应避免
print ",".join([str(i) for i in range(input("Enter #1:"),
input("Enter #2:")+1) if not i%2])
和最短的(感谢nneonneo(
print str([x for x in range(input('1'), input('2')+1) if not x%2])[1:-1]