初学者扑克程序:回溯和断言错误

2024-04-18 23:28:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试让这个扑克程序工作,这是我的第一个Python程序。。我很难理解我得到的两个错误,因为代码看起来是正确的。在

使用Eclipse/PyDev

> Traceback (most recent call last):
  File "C:\Documents and Settings\****\workspace\xfz\src\Unit1.py", line 98, in <module>
    print test()
 File "C:\Documents and Settings\****\workspace\xfz\src\Unit1.py", line 86, in test
    assert card_ranks(sf) == "TC 9C 8C 7C 6C"
AssertionError

代码:

^{pr2}$

Tags: and代码inpytest程序srcsettings
2条回答
    assert card_ranks(sf) == "TC 9C 8C 7C 6C"

计算结果为False,因为

^{pr2}$

您运行的函数称为test(),它使用assert进行测试,以确保测试的语句为真。Assert抛出一个AssertionError,并在其中任何一个为False时存在程序。在

你的下一行也是假的:

    >>> poker([sf, fk, fh])
    [['6C', '7C', '8C', '9C', 'TC']]
    >>> sf
    ['6C', '7C', '8C', '9C', 'TC']
    >>> poker([sf, fk, fh]) == sf
    False

提示:对文件运行find/replace,并将assert替换为print

更改:

assert card_ranks(sf) == "TC 9C 8C 7C 6C"
assert card_ranks(fk) == "9D 9H 9S 9C 7D"
assert card_ranks(fh) == "TD TC TH 7C 7D"

收件人:

^{pr2}$

因此,检查错误的一个简单方法是放一些打印语句。从根本上说,看看你在做什么。card_ranks()函数在注释中表示它返回一个列表,但您仍将其与字符串进行比较。在编写代码之前,请仔细考虑一下。节省调试时间。在

相关问题 更多 >