简单打印问题

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

for x in range(101):
    print("fizz"[x%3*4::]+"buzz"[x%5*4::]or x)
  • 解析:
    print后面分为两部分,第一部分是”fizz”[x%3 * 4::]+”buzz”[x%5 * 4::],第二部分是x。两部分使用逻辑或连接。如果第一部分为空,则最终结果为第二部分的结果。如果第一部分非空,则最终结果为第一部分。第一部分由两个字符串连接而成,第一个字符串为”fizz”[x%3 * 4::],如果x是3的倍数,则x%3=0,那么”fizz”[x%3 * 4::]=”fizz”[0::]=”fizz”;如果x不是3的倍数,则x%3=1或2,那么”fizz”[x%3 * 4::]=”fizz”[4::]或”fizz”[8::]=”"。第二个字符串为”buzz”[x%5 * 4::],如果x是5的倍数,那么”buzz”[x%5 * 4::]=”buzz”[0::]=”buzz”;如果x不是5的倍数,那么x%5=1,2,3,4,那么”buzz”[x%5 * 4::]=”buzz”[4::]或”buzz”[8::]或”buzz”[12::]或”buzz”[16::]或”buzz”[20::]=”"。由此,如果x是3的倍数,第一部分为”fizz”;如果x是5的倍数,第一部分为”buzz”;如果x既是3的倍数,又是5的倍数,则第一部分为”buzzfizz”,如果既不是3的倍数,也不是5的倍数,则第一部分为”"。

你可能感兴趣的:(简单打印问题)