编写一个程序,在一行代码中打印1到100(含)的整数

时间:2017-05-21 08:58:33

标签: python python-2.x

我是python的新手,想编写一个程序,使用python在 1行中打印1到100(含)的整数,但是:

  • 对于三的倍数,请打印shell(而不是数字)
  • 对于五的倍数,请打印fish(而不是数字)
  • 对于三个和五个的倍数,请打印shellfish(而不是数字)

我可以这样做但不幸的是在一行代码中:

 for i in xrange(1, 101):
    if i % 15 == 0:
        print "shellfish"
    elif i % 3 == 0:
        print "shell"
    elif i % 5 == 0:
        print "fish"
    else:
        print i

如何将此源代码组成一行?

2 个答案:

答案 0 :(得分:3)

要将您的尝试转换为1行,您可以使用*这是python中的重复运算符:

for i in xrange(1,101): print("shell"*(i%3==0) + "fish"*(i%5==0) or i)

答案 1 :(得分:1)

使用条件表达式:true_value if cond else false_value我们得到这个 - 有点无聊 - 解决方案:

for i in xrange(1, 101): print (i if i % 5 else "fish") if i % 3 else ("shell" if i % 5 else "shellfish")