如何将字符串转换为整数python

时间:2016-12-07 23:10:20

标签: python string integer

我对python语言相当陌生,但偶然发现了我发现令人不安的事情。有没有办法将字符串转换为整数?

不,我不是指如何转换像这样的数字的字符串:

int('1')

我很肯定我可以这样做:

foo = 'foo'
foo = 10
int(foo)

但有没有更简单的方法来做到这一点,而不是必须这样做?

在我尝试将其放入的环境中,我试图将卡片的价值(例如杰克)转换为卡牌游戏中的10张。

4 个答案:

答案 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中声明变量类型的唯一方法。您正在做的是将字符串转换为整数。你这样做是最好的方式。