我正在使用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
答案 0 :(得分:2)
很简单,问题在于,在Python(以及扩展名为JES)中,range(x, y)
从x
步入y-1
,包括在内。这允许它自然地模仿[]
列表运算符的切片语法,即[l[a] for a in range(x, y)]
与l[x:y]
是相同的列表。 (至于为什么切片和range
执行此操作,请参阅Why does range(start, end) not include end?)。
所以,如果你想要x
到y
,你只需要将最后一个参数加一:
for i in range(x, y+1):
它应该打印出你想要的数字。
P.S。循环之前的i=0
是不必要的。 for
循环将初始化(并在必要时创建)变量i
。
答案 1 :(得分:1)
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]