【问题标题】:Phrase generator is printing the wrong output短语生成器正在打印错误的输出
【发布时间】:2019-09-23 04:23:31
【问题描述】:

我正在尝试创建一个从 1 到 50 的函数,它在 7 的倍数上打印“John”,在 2 的倍数上打印“Hi”,当倍数同时是 3 和 5 的倍数时打印“Hi John”。但是输出似乎不正确。当 x = 5 时,该函数不应该这样做时打印“Hi”。

def phrase_generator(x):
    if x % 7 == 0:
        print("John")
    elif x % 2 == 0: 
        print("Hi")
    elif (x % 3 == 0 and x % 5 == 0):
        print("Hi John") 

    else: 
        pass

for number in range(1,51):
    print(phrase_generator(number))


【问题讨论】:

  • 它打印 hi 为 4 而不是 5
  • 谢谢。你知道为什么我的输出中有附加值吗?例如,我在 print(phrase_generator(number)) 时得到 > 50 个数字?
  • 因为您要打印两次。将您的短语生成器中的打印语句更改为返回语句。
  • @RobertKearns 哦,我明白了。谢谢! :)

标签: python loops modulus


【解决方案1】:

您的代码大部分是正确的。我做了一些小调整:

  1. 不是在phrase_generator 中打印,而是返回所需的字符串
  2. x 不能被 2、3、5 或 7 整除时返回空字符串
  3. number 与字符串一起打印,以确保一切正常
def phrase_generator(x):
    if x % 7 == 0:
        return "John"
    elif x % 2 == 0:
        return "Hi"
    elif (x % 3 == 0 and x % 5 == 0):
        return "Hi John"
    else:
        return ""

for number in range(1,51):
    print(number, phrase_generator(number))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 2021-01-11
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    相关资源
    最近更新 更多