一个有趣的python用法:FizzBuzz问题

今天看到了一个非常有趣的问题,用python解决起来非常简洁。

问题描述:

写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。

python解决方案:

for x in range(1, 101):
    print('fizz'[x%3*len('fizz')::] + 'buzz'[x%5*len('buzz')::] or x)

解释:
先看第一部分'fizz'[x%3*len('fizz')::],如果 x 是3的倍数,就变成了'fizz'[::] = 'fizz';否则x%3至少为1,也就是'fizz'[len('fizz')::] = ''
后面'buzz'的处理同理,所以如果即是3的倍数又是5的倍数,就会输出'fizzbuzz'了。
如果既不是3的倍数又不是5的倍数,就输出 x 。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值