【问题标题】:The output prints none and is not enclosed with ''输出打印 none 并且没有用 '' 括起来
【发布时间】:2018-04-11 02:30:22
【问题描述】:
def isWordGuessed(secretWord, lettersGuessed):
    for char in secretWord:

        if char not in lettersGuessed:
            print('_',end=' ')
        else:
            print(char,end=' ')

print(isWordGuessed('apple', ['e', 'i', 'k', 'p', 'r', 's']))

输出为_pp_eNone

我希望我的输出为_pp_e,同时仍使用打印函数调用该函数。

我该怎么办?

【问题讨论】:

  • 对所有的混乱感到抱歉。我确实在 30 秒前加入了这个网站。
  • 好的,我为你修好了。当我现在运行代码时,我得到_ p p _ e。你期待不同的东西吗?
  • 你是怎么做到的。另外我想知道你是否可以在使用 print(isWordGuessed('apple', ['e', 'i', 'k', 'p', 'r', 's']))

标签: python python-3.x function printing return


【解决方案1】:

您可以简单地将其修改为:

def isWordGuessed(secretWord, lettersGuessed):
     for char in secretWord:
         if char not in lettersGuessed:
             print("_", end="")
         else:
             print(char, end="")
     return ""

print(isWordGuessed('apple', ['e', 'i', 'k', 'p', 'r', 's']))

None 是你循环完 for 循环后的隐式返回值。

【讨论】:

  • 谢谢。但是有没有其他方法可以解决这个问题。
  • 是的,当然。您可以在循环后添加return ""。这将解决您完成 for 循环后返回 None 的问题。
【解决方案2】:

由于您的函数 isWordGuessed 没有任何 return 关键字,因此声明

isWordGuessed('apple', ['e', 'i', 'k', 'p', 'r', 's']) 将返回 None

现在在 print 方法中调用它,所以 None 将返回到 print 函数并打印出来。

它发生在secretWord 末尾的原因是由于在isWordGuessed 内的print 语句中使用了end 参数

附: 在python中,变量名应该是小写字母,下划线分隔。参考this

【讨论】:

    猜你喜欢
    • 2022-12-03
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多