您的位置:首页 > 其它

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

2016-11-13 23:09 1061 查看
有一道题是这样的:写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。

用Python只需要60个字符解决

for x in range(101):print”fizz”[x%3*4::]+”buzz”[x%5*4::]or x

是这样理解的:for x in range(101)生成一个1-100的序列,然后在这个序列中满足条件就会print,即print后分为两个部分—— 1.“fizz”[x%3*4::]+”buzz”[x%5*4::] 为第一部分,当x为3的整数时,x%3*4=0,即“fizz”[0::]=”fizz”,当x%3=1或=2时,x%3*4=4或=8,因为”fizz”一共有4个字符,所以fizz[x%3*4::]=”“。同理,当x若为5的倍数是,x%5*4=0,”buzz”[0::]=”buzz”,当x不为5的倍数时,”buzz”[x%5*4::]=”“,所以当x为3和5共同的倍数时,”fizz”[x%3*4::]+”buzz”[x%5*4::]=fizzbuzz。 2.第二部分为x,和第一部分间用逻辑关系 or 来连接,当前一部分为空时,输出后面的部分,即打印这个数本身。

表示真的是学到了,在此标记一下,免得以后忘掉。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐