TypeError:+:'function'和'str'

时间:2016-05-21 08:58:38

标签: python function

我对Python很陌生,所以我正在尝试编写一个程序来模拟Texas Hold Em Poker对抗计算机对手以帮助我学习。我正在尝试创建一个函数'Turn',它将打印Flop +一个新的列表,其中一张卡称为'turn',它将在一个变量'Board'中。但我收到标题中的错误,不知道如何解决它。到目前为止,这是我的代码。

import random


def Deal():
    RANKS = ['2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', 'A']
    SUITS = ['Diamond', 'Club', 'Spade', 'Heart']

    DECK = []
    your_HAND = []
    for j in RANKS:
        for i in SUITS:
            card = [j]+[(i[0:1])]
            DECK.append(card)

    random.shuffle(DECK)
    your_HAND.append(DECK.pop(1))
    your_HAND.append(DECK.pop(2))


    your_new_HAND = your_HAND[0][0]+your_HAND[0][1].lower()+your_HAND[1][0]+your_HAND[1][1].lower()
    print('You have been dealt {}'.format(your_new_HAND))
    Flop(DECK)

def Flop(DECK):
    FLOP = []
    random.shuffle(DECK)
    FLOP.append(DECK.pop(1))
    FLOP.append(DECK.pop(2))
    FLOP.append(DECK.pop(3))
    Flop = FLOP[0][0]+FLOP[0][1].lower()+FLOP[1][0]+FLOP[1][1].lower()+FLOP[2][0]+FLOP[2][1].lower()
    print('Board reads: {}'.format(Flop))
    Turn(DECK, FLOP)

def Turn(DECK, FLOP):
    TURN = []
    random.shuffle(DECK)
    TURN.append(DECK.pop(1))
    Turn = TURN[0][0]+TURN[0][1].lower()
    Board = Flop + Turn
    print('Board reads: {}'.format(Board))

错误从转弯

开始

2 个答案:

答案 0 :(得分:1)

您正在尝试使用字符串添加函数,消息非常明确:

Turn = TURN[0][0]+TURN[0][1].lower()
# Turn is a string

Board = Flop + Turn
# Flop is a function

有可能让变量FlopFLOP混淆了。但是你不应该给变量赋予与函数相同的名称,这是一种不好的做法。

答案 1 :(得分:0)

将变量名称与函数名称混合绝不是一个好主意,并且您无法在python中将函数对象添加到字符串对象Flop + Turn不可行。