在Python中将变量放入引号中
我刚开始学习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 个回答
2
问题不在于引号,而在于数据的 类型。int
函数需要一个 整数基数 和一个 字符串数字。所以,在你的情况下,你应该使用:
int(num,int(base))
这段代码会把从 raw_input
返回的 字符串 处理成合适的基数,同时保持 num
作为字符串,这样就符合 int
函数的要求了。
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
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