在python中将变量放在引号内

时间:2013-02-25 19:34:31

标签: python string variables quotes

我刚开始学习Python。我试图让用户输入一个数字基数和一个数字,并将其转换为十进制。

我一直在尝试使用内置的int函数:

base = raw_input("what number base are you starting with?  \n")
num = raw_input("please enter your number:  ")
int(num,base)

我的问题是,当你使用那个int函数时,转换所需的数字必须是引号,如下所示:int('fff',16)

我在使用变量时如何实现这一目标?

4 个答案:

答案 0 :(得分:5)

不需要引用。引号不是字符串的一部分。

>>> int('fff',16)
4095
>>> da_number = 'fff'
>>> int(da_number, 16)
4095

但是,您需要将基数转换为整数。

>>> base = '16'
>>> int(da_number, base) # wrong! base should be an int.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: an integer is required
>>> int(da_number, int(base)) # correct
4095

答案 1 :(得分:3)

raw_input()的结果将是一个字符串,我认为您的问题实际上是base仍然是一个字符串,当您需要它是一个整数时。

尝试以下方法:

base = raw_input('base? ')
num = raw_input('num? ')
print int(num, int(base))

例如:

>>> base = raw_input('base? ')
base? 16
>>> num = raw_input('num? ')
num? fff
>>> print int(num, int(base))
4095

答案 2 :(得分:2)

问题不是引用。问题出在数据 types 上。带有基数的int需要整数基数字符串数。因此,在您的情况下,您将使用:

int(num,int(base))

这将获取从raw_input返回的字符串,它会从base字符串构造一个合适的字符串,同时将num保留为字符串所需的字符串。 int函数。

答案 3 :(得分:1)

引号告诉Python这些字符应该被解释为String的内容,而不是语言语法。

当你有一个变量时,Python已经知道内容是一个字符串。你不仅不需要引号,而且添加它们会让Python误以为你想要一个包含变量名称的字符串。

所以,这两个:

int('fff',16)

和此:

someNumber = 'fff'
int(someNumber,16)
int()函数而言,

正在做同样的事情。

所有这一切,int()可以为该值使用字符串或数字,但必须有一个数字作为基数。所以,由于raw_input总是返回一个字符串,你需要做更多的事情:

base = raw_input("what number base are you starting with?  \n")
num = raw_input("please enter your number:  ")
int(num,int(base))