我如何正确地使 for 循环位于一行中,用逗号且没有空格
how do i properly make a for loop sit on one line, with commas and no spaces
我是编码新手,目前有点沮丧,因为我必须在输出“1,2,fizz,4,buzz,fizz,7,8,fizz,buzz, 11,fizz,13,14,fizzbuzz,16,17,fizz,19,buzz" 不,我不能使用打印。
代码:
import sys
num1=int(input('Enter your number range: '))
for x in range(1,num1+1):
if x % 3 == 0:
print("Fizz",end=" ")
if x % 5 == 0:
print('Buzz',end=" ")
if x % 3 != 0 and x % 5 != 0:
print(str(x),end=" ")
结果:"enter your number range?"(假设是 20)
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 Fizz Buzz 16 17 Fizz 19 Buzz
所以你可以在同一行看到它,但我不想要空格,我希望每个数字和字母之间的逗号接受数字 15 应该在的位置,我希望它是一个词 "FizzBuzz",如示例所示:
1,2,fizz,4,buzz,fizz,7,8,fizz,buzz,11,fizz,13,14,fizzbuzz,16,17,fizz,19,buzz
这与我回答 here. If you look at the documentation for print 的问题基本相同,它说您打印了可变数量的对象(文档中的 *objects
)。 print
采用 sep
关键字,这是您要用来分隔打印对象的字符。
如果您稍微修改一下代码,先将要打印的项目收集到一个列表中,然后一次全部打印:
num1=int(input('Enter your number range: '))
items = list()
for x in range(1,num1+1):
if x % 3 == 0:
items.append("Fizz")
if x % 5 == 0:
items.append('Buzz')
if x % 3 != 0 and x % 5 != 0:
items.append(str(x))
print(*items, sep=',')
当你运行它时:
Enter your number range: 10
1,2,Fizz,4,Buzz,Fizz,7,8,Fizz,Buzz
对于 *objects
-syntax 你可以看看这个 SO-question.
考虑可同时被 3 和 5 整除的数字:
num1=int(input('Enter your number range: '))
items = list()
for x in range(1,num1+1):
if x % 5 == 0 and x % 3 == 0:
items.append('FizzBuzz')
elif x % 3 == 0:
items.append("Fizz")
elif x % 5 == 0:
items.append('Buzz')
else:
items.append(str(x))
print(*items, sep=',')
不要使用打印格式,而是简单地连接不同的字符串元素。
在解释器中输入:
','.join([ 'FizzBuzz' if not(i%15)
else 'Fizz' if not(i%3)
else 'Buzz' if not(i%5)
else str(i)
for i in range(1,a+1)
])
或者将上面一行放在打印语句中
我是编码新手,目前有点沮丧,因为我必须在输出“1,2,fizz,4,buzz,fizz,7,8,fizz,buzz, 11,fizz,13,14,fizzbuzz,16,17,fizz,19,buzz" 不,我不能使用打印。
代码:
import sys
num1=int(input('Enter your number range: '))
for x in range(1,num1+1):
if x % 3 == 0:
print("Fizz",end=" ")
if x % 5 == 0:
print('Buzz',end=" ")
if x % 3 != 0 and x % 5 != 0:
print(str(x),end=" ")
结果:"enter your number range?"(假设是 20)
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 Fizz Buzz 16 17 Fizz 19 Buzz
所以你可以在同一行看到它,但我不想要空格,我希望每个数字和字母之间的逗号接受数字 15 应该在的位置,我希望它是一个词 "FizzBuzz",如示例所示:
1,2,fizz,4,buzz,fizz,7,8,fizz,buzz,11,fizz,13,14,fizzbuzz,16,17,fizz,19,buzz
这与我回答 here. If you look at the documentation for print 的问题基本相同,它说您打印了可变数量的对象(文档中的 *objects
)。 print
采用 sep
关键字,这是您要用来分隔打印对象的字符。
如果您稍微修改一下代码,先将要打印的项目收集到一个列表中,然后一次全部打印:
num1=int(input('Enter your number range: '))
items = list()
for x in range(1,num1+1):
if x % 3 == 0:
items.append("Fizz")
if x % 5 == 0:
items.append('Buzz')
if x % 3 != 0 and x % 5 != 0:
items.append(str(x))
print(*items, sep=',')
当你运行它时:
Enter your number range: 10
1,2,Fizz,4,Buzz,Fizz,7,8,Fizz,Buzz
对于 *objects
-syntax 你可以看看这个 SO-question.
考虑可同时被 3 和 5 整除的数字:
num1=int(input('Enter your number range: '))
items = list()
for x in range(1,num1+1):
if x % 5 == 0 and x % 3 == 0:
items.append('FizzBuzz')
elif x % 3 == 0:
items.append("Fizz")
elif x % 5 == 0:
items.append('Buzz')
else:
items.append(str(x))
print(*items, sep=',')
不要使用打印格式,而是简单地连接不同的字符串元素。 在解释器中输入:
','.join([ 'FizzBuzz' if not(i%15)
else 'Fizz' if not(i%3)
else 'Buzz' if not(i%5)
else str(i)
for i in range(1,a+1)
])
或者将上面一行放在打印语句中