当前位置:  开发笔记 > 编程语言 > 正文

为什么连接在这两个样本中的工作方式不同?

如何解决《为什么连接在这两个样本中的工作方式不同?》经验,为你挑选了2个好方法。

我在Python代码中的两个不同的地方引发异常:

holeCards = input("Select a hand to play: ")
try:
    if len(holeCards) != 4:
        raise ValueError(holeCards + ' does not represent a valid hand.')

AND (编辑以纠正提高代码)

def __init__(self, card):
  [...]

  if self.cardFace == -1 or self.cardSuit == -1:
    raise ValueError(card, 'is not a known card.')

出于某种原因,第一个输出像我预期的串联字符串:

ERROR: Amsterdam does not represent a valid hand.

但是,第二个输出了一些奇怪的set和string混合:

ERROR: ('Kr', 'is not a known card.')

为什么"+"运算符在这两种情况下表现不同?

编辑:对init的调用如下所示:

  card1 = PokerCard(cardsStr[0:2])
  card2 = PokerCard(cardsStr[2:4])

Andrew Jaffe.. 8

嗯,我错过了什么,或者你在比较输出

raise ValueError(card, 'is not a known card.')

raise ValueError(card + ' is not a known card.')

???

第二个使用"+",但第一个使用",",它确实应该给你显示的输出!

(在某些情况下,问题是从带有"+"的版本编辑的.也许这个问题应该删除???)



1> Andrew Jaffe..:

嗯,我错过了什么,或者你在比较输出

raise ValueError(card, 'is not a known card.')

raise ValueError(card + ' is not a known card.')

???

第二个使用"+",但第一个使用",",它确实应该给你显示的输出!

(在某些情况下,问题是从带有"+"的版本编辑的.也许这个问题应该删除???)



2> James Orr..:

"card"可能代表一个包含字符串"Kr"的元组.在元组上使用+运算符时,可以创建一个添加了额外项的新元组.

编辑:不,我错了.将字符串添加到元组:

>> ("Kr",) + "foo"

生成错误:

TypeError: can only concatenate tuple (not "str") to tuple

确定"卡片"的类型可能会有所帮助.你知道它是什么类型的吗?如果没有,请尝试输入以下内容:

if len(card) != 2:
    print type(card)
    raise ValueError(card + ' is not a known card.')

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有