将整数分配给列表
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 中的 int - 为啥会这样?做啥的? [复制]
如果我无法将 Future 函数分配给 onPressed 怎么办?