新来的,希望我可以帮助我。基本上,我的任务是用Python写一个fizzbuzz程序,到目前为止除了我收到的一些反馈之外这么好。
现在我必须确保程序的输出水平,并且不会在新行上垂直打印。根据我的理解和我的讲师提示,我需要转换函数来生成字符串并删除打印语句。
代码如下:
def fizzbuzz1 (num):
for num in range(1, num):
if (num%3 == 0) and (num%5 == 0):
print("Fizzbuzz")
elif ((num % 3) == 0):
print("Fizz")
elif ((num % 5) == 0):
print("buzz")
else :
print (num)
def main ():
while True: #Just to keep my program up and running while I play with it
num = input ("please type a number: ") #
num = int (num)
print ("Please select an type what option you wish to try: A) Is this Fizz or Buzz? B) Count saying fizz/buzz/fizzbuzz")
opt = input ("Please type A or B and press enter: ")
if opt == "A":
fizzbuzz(num)
elif (opt == "a")
fizzbuzz(num)
elif (opt == "B"):
print (fizzbuzz1(num))
elif (opt == "b"):
print (fizzbuzz1(num))
main ()
我尝试过很多东西,而我的讲师似乎对帮助我似乎不太感兴趣。 Womp。如果我玩这段代码,我被建议回顾这个练习:
def func(num):
value = ‘’
for x in range(...):
if .... == .... :
value += str(x) + ‘, ‘
return value[…]# You need to remove the last comma and the space
当我使用此代码时,我会在屏幕上显示数字。但是对于我的生活,我似乎无法将我所写的内容与其中的元素结合起来。我哪里误入歧途?
感谢您提供的任何建议/帮助。如果您确实选择回复,请为我保持尽可能简单。
干杯。
更新:感谢大家的建议,很多我不知道的尝试!
我还在Can't figure out how to print horizontally in python?
找到了一个帖子其中有类似问题的答案。
答案 0 :(得分:1)
你非常接近。我将采用的方法是将结果存储在列表中,然后join
列表的内容以生成输出字符串。这是一个例子:
>>> def fizzbuzz1(num):
... fb = []
...
... # Iterate through the range, then use `fb.append()` to append the
... # new element to the end of the list.
... for n in range(1, num):
... if not (n%3 or n%5):
... fb.append('Fizzbuzz')
... elif not n%3:
... fb.append('Fizz')
... elif not n%5:
... fb.append('Buzz')
... else:
... fb.append(str(n))
...
... return ', '.join(fb)
...
>>> fizzbuzz1(20)
'1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, Fizzbuzz, 16, 17, Fizz, 19'
>>>
答案 1 :(得分:1)
如果使用Python 3.x
,请尝试不使用新行进行打印def fizzbuzz1 (num):
for num in range(1, num):
if (num%3 == 0) and (num%5 == 0):
print("Fizzbuzz ", end="")
elif ((num % 3) == 0):
print("Fizz ", end="")
elif ((num % 5) == 0):
print("buzz ", end="")
else:
print ( str(num) + " ")
print(" ")