python - 目前在列表、字符串和整数方面遇到问题
问题描述
我试图通过编写纸牌游戏 21 的版本来挑战自己,但我在字符串和整数方面遇到了麻烦。我的柜台也不起作用,这超出了我的范围
我尝试将所有内容定义为整数
定义
cardnum1 = " "
cardnum2 = " "
print("the dealer shuffles the cards and deals the first hand")
import random
list = ["2","3","4","5","6","7","8","9","10","Jack","Queen","King","Ace"]
#1st card
card1 = random.choice(list)
print("your first card is ",card1)
#numbers
if card1 == ["2","3","4","5","6","7","8","9","10"]:
card1=int(cardnum1)
elif card1 == "Jack":
cardnum1=int(10)
elif card1 == "Queen":
cardnum1=int(10)
elif card1 == "King":
cardnum1=int(10)
elif card1 == "Ace":
cardnum1=input("do you want your Ace to be a 1 or a 11?")
card2 = random.choice(list)
print("your second card is ",card2)
#numbers 1 - 10
if card2 == ["2","3","4","5","6","7","8","9","10"]:
card1=int(cardnum1)
#special cards
elif card2 == "Jack":
cardnum2=int(10)
elif card2 == "Queen":
cardnum2=int(10)
elif card2 == "King":
cardnum2=int(10)
elif card2 == "Ace":
cardnum2=input("do you want your Ace to be a 1 or a 11?")
print ("your cards combined are ",cardnum1 + cardnum2)
我正在尝试随机获得 2 张卡,并让程序告诉我距离 21 岁还有多远,以及我是否破产。cardnum1 和 cardnum2 似乎没有正确添加。
我收到错误消息:
TypeError: can only concatenate str (not "int") to str
解决方案
提到的错误是由于在某些情况下,其中一个变量是字符串,另一个是整数。
其实你有几个错误的事情:
list
是python内置的,不要用wordlist
作为变量。if card1 == ["2","3","4","5","6","7","8","9","10"]
是错的。要检查变量是否在列表中,请执行以下操作if card1 in ["2","3","4","5","6","7","8","9","10"]
:请注意,in
而不是==
.card1=int(cardnum1)
cardnum1
如果is没有意义" "
。您可能已将它们切换:cardnum1 = int(card1)
.cardnum1=int(10)
没错,但10已经是一个整数了。这int()
是多余的,完全不需要。cardnum2=input("do you want your Ace to be a 1 or a 11?")
我想在这里您希望用户输入 1 或 11。如果您使用的是 python3,请input
始终返回一个字符串,因此您必须将其转换为整数:cardnum2=int(input("do you want your Ace to be a 1 or a 11?"))
。如果您使用的是 python2 就可以了。
推荐阅读
- powershell - 如何将 System.Array 更改为 System.Object?
- python - 创建一个抽象枚举类
- python - 熊猫用不同大小的块替换行块
- python - Django-autocomplete-light 显示空下拉列表而不是自动完成小部件
- python - 将分类管道应用于数据集的子集
- firebase - Flutter StreamBuilder 从 Firestore 返回 null
- c# - 为什么我动态添加的事件处理程序没有持续触发
- html - 显示模态时模糊div中的内容?
- amazon-dynamodb - 为什么 dynamoose 只在很短的时间内存储数据?
- javascript - 浏览器自动完成的字段不更新 Angular 绑定变量