当前位置: 首页 > 面试题库 >

为什么此脚本在输出中显示无关的“无”

钦景胜
2023-03-14
问题内容

我写了一个简单的脚本来帮助我更好地理解使用类。它为游戏生成一个随机角色。我定义了对象,然后在该对象上调用一个函数,该函数打印出生成的字符。在打印块的末尾,有一个无关的“无”,我不确定它来自哪里,也不确定为什么要打印。这是示例输出:

ted
Strength  : 20
Dexterity : 17
Hit Points: 100
Aura      : 100
Weapon    :  
Spell     :  
Item      :  
Element   :  
--------------------
None

在我的代码,最后一行player.stats()就是print "-" * 20这是正上方“无”显示。这是定义对象的代码:

class Player(object):

def __init__(self, name):
    self.name = name
    self.strength = randint(15, 20)
    self.dexterity = randint(15, 20)
    self.hit_points = 100
    self.aura = 100
    self.weapon = " "
    self.spell = " "
    self.item = " "
    self.element = " "

def stats(self):
    print "\n"
    print self.name
    print "Strength  : %d" % self.strength
    print "Dexterity : %d" % self.dexterity
    print "Hit Points: %d" % self.hit_points
    print "Aura      : %d" % self.aura
    print "Weapon    : %s" % self.weapon
    print "Spell      : %s" % self.spell
    print "Item      : %s" % self.item
    print "Element   : %s" % self.element
    print "-" * 20

然后使用以下方法实例化该对象:

name = raw_input("Name your character: ")

player = Player(name)
print player.stats()

如有必要,可以在Pastebin上阅读完整的代码。


问题答案:

print player.stats()

是元凶。 player.stats() == None

您只需要:

player.stats()

您最好为函数命名player.printStats()

另一种选择是使其返回字符串:

def stats(self):
    return '\n'.join([
        self.name
        "Strength  : %d" % self.strength,
        "Dexterity : %d" % self.dexterity,
        "Hit Points: %d" % self.hit_points,
        "Aura      : %d" % self.aura,
        "Weapon    : %s" % self.weapon,
        "Spell     : %s" % self.spell,
        "Item      : %s" % self.item,
        "Element   : %s" % self.element,
        "-" * 20
    ])

然后print player.stats()会表现出预期



 类似资料:
  • 我想将结果发送到。我正在使用AJAX传递我的值。我不确定为什么我数据现在显示在一个按钮中。有谁能帮我解决这个问题吗?如果你们能给我提供如何解决我的问题的代码,那就更好了。提前道谢。 这是我的AJAX代码 编辑问题:我想根据用户当月的输入创建一个excel文件。因此,在用户选择了月份之后,当他们单击按钮时,excel文件将自动下载。我现在的问题是,我现在知道如何将month值传递到页面,在该页面中我

  • NodeJS版本8.11-警告是“此错误源于在没有catch块的情况下抛出异步函数,或者拒绝未用.catch()处理的promise。” 这两个都不是真的,您可以通过检查我的测试用例看出这一点: 翻转标志,查看相同的代码运行时是否有错误。

  • 我正在尝试刮取这个网站,我正在尝试刮取整个表数据并将其存储在一个变量中。 当我尝试查找该表时,它显示 以下是我的代码: 怎么刮网站内容?

  • 使用Windows下的Eclipse Juno,我配置了一个外部工具,该工具调用程序,并将Python脚本文件作为参数运行(后者位于双引号之间,如)。 我还再次检查了外部工具配置窗口中的“Common”选项卡中是否设置了“Allocate Console”选项。

  • 问题内容: 试图在我的GUI窗口上显示来自互联网的图片。 到目前为止,我的代码是: 问题是我得到的只是一个应该显示图片的蓝色框。我该如何解决? 在Windows上使用python 3.3 问题答案: 现在这是一个疯狂的猜测,但是我只记得一个类似的问题。我能够以这种方式重现您的“蓝框”,所以这也可能是您的问题。我将尝试一下。 我假设PhotoImage是在其他某个范围内创建的(可能是一种方法或类似的

  • 我重写了我的代码,以匹配类似问题的其他答案,但它没有修复我的脚本的问题。它发送带有pdf附件的电子邮件,我没有任何错误,但我无法打开文件。我已经尝试了stackoverflow上发布的多个解决方案。 是什么导致pdf在发送后被损坏?我重组了我的网址,但运气不好。 以下是电子表格的url:https://docs.google.com/spreadsheets/d/1wmnw9Nl6B0e8IgVD

  • 我在我的debian系统上创建了一个虚拟环境,并制作了一个脚本来激活它(应该)。 然而,当我执行脚本时,什么都没有显示,甚至没有错误,我猜测它正在不同的shell或其他东西中运行,但我不知道如何解决它。 这是脚本的代码 我已经使用chmod u x更改了权限,所以这不是问题。 当我执行脚本时,什么都没有显示。有什么想法吗???

  • 问题内容: 所以我在这里写了一些代码。它本来应该是一个猜谜游戏,但是无论我输入什么内容,它始终会在输出中显示“请输入数字…”,这与我输入的内容无关。基本上,如果“猜测”大于5,则他们猜到了数字。如果不是,那么他们还没有猜到这个数字。这就是游戏的前提。有人可以帮助我修复我的代码,因此无论如何它都不会输出相同的内容? 问题答案: 给你字符。因此,当您输入“ 1”时,它会给您其char值49。因此您不能