Python需要一个整数
好的,这是我的代码,它是一个基本计算器,可以毫无问题地将基本转换为基本,但一旦答案超过9,我希望数字表示为一个字母,就像在基数16中,10表示“a”,所以我一直在想,我如何使用Ascii表来实现这一点。现在代码运行良好,如果我键入1011,base2,我想转换为base16。所以输出结果是11,这是正确的,但我希望它是'b'Python需要一个整数,python,Python,好的,这是我的代码,它是一个基本计算器,可以毫无问题地将基本转换为基本,但一旦答案超过9,我希望数字表示为一个字母,就像在基数16中,10表示“a”,所以我一直在想,我如何使用Ascii表来实现这一点。现在代码运行良好,如果我键入1011,base2,我想转换为base16。所以输出结果是11,这是正确的,但我希望它是'b' number = input("what's your number: ") o_base = int(input("what is your oringal base:
number = input("what's your number: ")
o_base = int(input("what is your oringal base: "))
base = int(input("what's the base you want to convert: "))
answer = ""
total = 0
for i, d in enumerate(reversed(number)):
total = total + int(d) * o_base ** i
while (total != 0):
answer += str(total % base)
total //= base
print (answer)
Python可以首先使用
int(number,base)
将数字转换为Python整数。接下来,您需要做的就是将其转换为您的目标库。这通常是通过将两个数进行除法并将其余数转化为一个函数来实现的
要将每个数字转换为正确的数字或字母,最简单的方法是创建一个按顺序包含所有所需符号的字符串,然后使用索引将其转换为所需的数字,例如,数字[0]
此处将返回0
,而数字[10]
将返回A
import string
number = input("What's your number: ")
o_base = int(input("What is your original base: "))
base = int(input("What is the base you want to convert to: "))
number = int(number, o_base)
digits = string.digits + string.ascii_uppercase # 0 to 9 + A to Z
output = []
while number:
number, remainder = divmod(number, base)
output.insert(0, digits[remainder])
print(''.join(output))
此示例适用于基数36(即0到9和A到Z)。显然,您可以扩展数字
,为更高的基数提供更多符号
使用列表创建输出可以避免重复的字符串连接,这不是很有效。我打赌int()中没有名为
answer
的关键字参数。你想做什么?你想做什么?这应该是一个语法错误的书写方式。我猜您希望answer=int(chr(I))I
在您的案例中实际上是一个str
类型,因此您得到的是您提到的“TypeError:需要一个整数(得到str类型)”。但是,如果i
是一个整数,它将引发TypeError
aboutanswer
作为int
函数的无效键参数。。那么,你到底想做什么呢。请提供一个更好的答案。@AbidHasan它将引发一个类型错误
。只需创建一个字符串,这样每次我都会将剩余的数字输入“answer”