我是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
如何将此源代码组成一行?
答案 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")