python如何定义一个变量的初始值_在python中,如何返回在函数中定义和初始化的多个变量?...

所以我的代码是这样的:def parse(info):

"""

'info' is a list made out of data received (info = list(data)). Examples are as follows:

['NEWGAME', '1', 'testbot', 'testbot', '100', '200', '2', '1', '10000.00000']

['NEWHAND', '1', '0', '4c', '5d', '0', '0', '0', '10000.00000']

['GETACTION', '3', '0', '2', 'POST:testbot:1,POST:testbot:2', '3', 'FOLD,CALL,RAISE:4', '10000.0']

['HANDOVER', '0', '0', '0', '3', 'FOLD:bot3001,FOLD:testbot,WIN:testbot:3', '9999.9506']

"""

phase = info[0] # setting board cards to 0

boardCard1 = 0 # 0 means no card

boardCard2 = 0

boardCard3 = 0

boardCard4 = 0

boardCard5 = 0

if phase == "NEWGAME":

gameID = int(info[1]) # Game ID

leftOpp = info[2] # Left Opponent

rightOpp = info[3] # Right Opponent

maxHands = int(info[4]) #Initializing number of hands that will be played

maxStackSize = int(info[5]) # Stack size, also the maximum bet size

bigBlind = int(info[6])

smBlind = int(info[7])

maxTime = float(info[8]) # Initiallizing milliseconds of time allocated for the game

return (phase, gameID, leftOpp, rightOpp, maxHands, maxStackSize, bigBlind, smBlind, maxTime)

if phase == "NEWHAND":

handID = int(info[1]) # The hand number which we're currently at

position = int(info[2]) # Possition, either 0, 1, or 2. 0 = dealer, 1 = smalll blind, 2 = big blind

card1 = info[3] # Card 1

card1Rank = (list(info[3]))[0] # Rank of Card 1

card1Suit = (list(info[3]))[1] # Suit of Card 1

card2 = info[4] # Card 2

card2Rank = (list(info[4]))[0] # Rank of Card 2

card2Suit = (list(info[4]))[1] # Suit of Card 2

hand = [card1, card2] # A list containing the 2 cards in your hand

bankRoll = int(info[5]) # Your bank roll, total amount made (can be negative)

leftOppBank = info[6] # Left Opponent's bankroll

rightOppBank = info[7] # Right Opponent's bankroll

timeLeft = float(info[8]) # Milliseconds of time allocated for the game

boardPhase = "PREFLOP" # Initializing boardPhase

return(boardPhase, phase, handID, position, card1, card1Rank, card1Suit, card2, card2Rank, card2Suit, hand, bankRoll, leftOppBank, rightOppBank, timeLeft)

elif phase == "GETACTION":

potSize = int(info[1])

numBoardCards = int(info[2]) # can be 0,3,4 or 5

boardCardsPacket = 0 # 0 for none, 1 for present

boardCards =[]

if numBoardCards != 0:

boardCardsPacket = 1

boardCards = (info[4]).split(",") # info[4] looks like 'Th,Ad,Js,5h' and split(",") turns it into [Th, Ad, Js, 5h]

boardCard1 = boardCards[0]

boardCard2 = boardCards[1]

boardCard3 = boardCards[2]

try:

boardCard4 = boardCards[3]

try:

boardCard5 = boardCards[4]

except:

pass

except:

pass

numLastActions = int(info[3+boardCardsPacket])

lastActions = []

if numLastActions != 0:

actionsString = info[4+boardCardsPacket] # a string of actions ex: POST:testbot:1,POST:testbot:2

lastActions = actionsString.split(",") # A list of the actions ex: ['POST:testbot:1','FOLD:testbot','WIN:testbot:3']

for i, item in enumerate(actions):

if "DEAL" in item.split(":"):

boardPhase = item.split(":")[1]

numLegalActions = int(info[5+boardCardsPacket])

legalActions = (info[6+boardCardsPacket]).split(",") # List of Legal Actions, ex: ['FOLD', 'CALL', 'RAISE:4']

minBet = "NULL" # it will be NULL if BET is not a legal action.

for i, item in enumerate(legalActions):

if "BET" in item.split(":"):

minBet = item.split(":")[1]

minRaise = "NULL"

for i, item in enumerate(legalActions):

if "RAISE" in item.split(":"):

minRaise = item.split(":")[1]

realLegalActions = []

for item1 in legalActions:

for item2 in item1.split(":"): # this creates realLegalActions which will not include numbers, will look like ['FOLD','CALL', 'RAISE'], makes it easier to check if an action is in legalActions

try:

int(item2)

except:

realLegalActions.append(item2)

timeLeft = float(info[7+boardCardsPacket])

try: # If the boardPhase is still PREFLOP then there is no variable boardPhase to return, so we have an exception for that.

return (realLegalActions, minBet, timeLeft, boardPhase, legalActions, numLegalActions, lastActions, numLastActions, boardCardsPacket,

boardCards, boardCard1, boardCard2, boardCard3, boardCard4, boardCard5, potSize, numBoardCards, minRaise)

except:

return (realLegalActions, minBet, timeLeft, legalActions, numLegalActions, lastActions, numLastActions, boardCardsPacket,

boardCards, boardCard1, boardCard2, boardCard3, boardCard4, boardCard5, potSize, numBoardCards, minRaise)

elif info[0] == "HANDOVER":

bankRoll = int(info[1])

leftOppBank = int(info[2])

rightOppBank = int(info[3])

numLastAction = int(info[4])

LastActions =[]

if numLastAction!=0:

LastActions = (info[5]).split(",")

timeLeft = float(info[6])

return(numLastAction, timeLeft, bankRoll, leftOppBank, rightOppBank, LastActions)

如何使用返回的所有变量?最简单的方法是什么?我是否应该创建一个类(我不太擅长使用类,但是如果有可能的话,我会重新访问我的代码)?在

编辑----

我只想解析字符串,然后返回所有变量,以便在其他类和函数中使用它们。这是导入它的主要功能:

^{pr2}$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值