如何编写一个程序,要求用户输入2个数字,然后在这些数字之间打印偶数列表?

时间:2012-09-08 01:21:40

标签: python

我正在使用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

2 个答案:

答案 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?)。

所以,如果你想要xy,你只需要将最后一个参数加一:

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]