将整数分配给列表

Posted

技术标签:

【中文标题】将整数分配给列表【英文标题】:Assigning an integer to a list 【发布时间】:2018-03-03 17:21:24 【问题描述】:

我想问一个用户: 如果他们抽到一张 A,问他们想要 1 还是 11。 他们回答一个整数,将其设置为 1 或 11 是有意义的。不幸的是,当我运行它时,它仍然是王牌。

import time
import random
from random import *

suits = ["Hearts","Diamonds","Clubs","Spades"]
cards = ["Ace","2","3","4","5","6","7","8","9","10","Jack","Queen","King"]

def drawcard():
    global newcardtype
    global newcardsuit
    global newcard
    newcardtype = cards[randint(0,11)] ##User interface & Console
    newcardsuit = suits[randint(0,3)] ##User interface & Console
    newcard = newcardtype, newcardsuit ##Console to read and understand
    print("You picked up: " + str(newcardtype) + " of " + str(newcardsuit) + ".")

suits[0] = "♡"
suits[1] = "♢"
suits[2] = "♧"
suits[3] = "♤"    

cards[10] = 10
cards[11] = 10
cards[12] = 10

while(True):
    test = input("New card? ")
    if test == "y":
        drawcard()
        if newcardtype == cards[0]:
            acequestion = int(input("You picked up an Ace. Would you like your Ace to be 1 or 11?: "))
            if acequestion == 1:
                cards[0] = int(1)
            if acequestion == 11:
                cards[0] = int(11)
        print(newcardtype)

它处于正常工作状态,但我希望 cards[0] 是“ace”,根据“acequestion”问题的答案等于 1 或 11。

【问题讨论】:

int(1) ??矫枉过正。 @Jean-FrançoisFabre 可能,但我希望安全而不是抱歉。我是 python 新手,我想确保它可以正常工作,所以我不会对错误感到困惑 【参考方案1】:

您将数字 1 或 11 分配给 cards[0],但这不会更改 newcardtype 所指的对象或值,因此它仍然具有值 'ace'。如果您想更改 newcardtype 的值,您还必须为其分配 1 或 11。

【讨论】:

看看 Ned Batchelder 的演讲 Facts and myths about Python names and values。

以上是关于将整数分配给列表的主要内容,如果未能解决你的问题,请参考以下文章

如何动态地将大小分配给 C++ 中的数组?

将多个用逗号分隔的整数分配给 C 中的 int - 为啥会这样?做啥的? [复制]

如果我无法将 Future 函数分配给 onPressed 怎么办?

python怎么将列表中元素分配成三份(无需连续),列举出所有的方案?

将函数分配给变量

将文字数组分配给对象变量