我对python语言相当陌生,但偶然发现了我发现令人不安的事情。有没有办法将字符串转换为整数?
不,我不是指如何转换像这样的数字的字符串:
int('1')
我很肯定我可以这样做:
foo = 'foo'
foo = 10
int(foo)
但有没有更简单的方法来做到这一点,而不是必须这样做?
在我尝试将其放入的环境中,我试图将卡片的价值(例如杰克)转换为卡牌游戏中的10张。
答案 0 :(得分:1)
从your goal is to map specific cards(如二十一点游戏中)到他们的值,请预先查找dict
:
# 2-10
name_to_value = {str(num): num for num in range(2, 11)}
# Face cards
name_to_value.update(dict.fromkeys(('Jack', 'Queen', 'King'), 10))
# Ace is special
name_to_value['Ace'] = 11 # If it's blackjack, you might want to special case Ace
然后用它来转换,例如:
>>> name_to_value['Jack']
10
>>> name_to_value['9']
9
答案 1 :(得分:0)
根据您的最新评论,我认为您可能希望为字符串键指定一个整数值。为此,您可以使用字典。声明:
>>> cards = {"jack": 10, "queen": 10}
>>> print(cards["jack"])
10
答案 2 :(得分:0)
我试图将卡片的价值(例如杰克)转换为卡片游戏中的10张
您需要检查字符串 - 如果是数字,则转换,否则获取相应的值。
def get_card_value(s):
if s.isdigit() and (1 < int(s) < 10):
return int(s)
elif s.lower() == 'jack':
return 10
elif s.lower() == 'queen':
return 11
elif s.lower() == 'king':
return 12
else:
return -1 # Unknown
相应地修改不同的值和aces
答案 3 :(得分:-3)
不幸的是,这是在Python 3中声明变量类型的唯一方法。您正在做的是将字符串转换为整数。你这样做是最好的方式。