当前位置: 首页 > 面试题库 >

Python-如何将任意基数的整数转换为字符串?

万俟炯
2023-03-14
问题内容

Python允许通过给定基数的字符串通过以下方式轻松创建整数

int(str, base). 

我想执行相反的操作:从integer创建一个字符串,即我想要一些函数int2base(num, base),例如:

int(int2base(x, b), b) == x

函数名称/参数顺序不重要。

对于任何数量x和底座b是int()会接受的。

这是一个易于编写的函数:实际上,比在此问题中对其进行描述更容易。但是,我觉得我必须丢失一些东西。

我知道的功能binocthex,但我不能使用他们的几个原因:

这些功能在旧版本的Python上不可用,我需要与这些版本兼容(2.2)

我想要一个通用的解决方案,可以针对不同的基础使用相同的方法

我想允许除2、8、16以外的其他基数


问题答案:

如果您需要与Python的旧版本兼容,则可以使用gmpy(它确实包含快速,完全通用的从int到字符串的转换功能,并且可以针对此类旧版本进行构建-您可能需要尝试使用较旧的版本,因为最近的版本尚未针对过时的Python和GMP版本进行过测试(仅是最新版本),或者为了速度较慢但更加方便,使用Python代码-例如,最简单的方法是:

import string
digs = string.digits + string.ascii_letters


def int2base(x, base):
    if x < 0:
        sign = -1
    elif x == 0:
        return digs[0]
    else:
        sign = 1

    x *= sign
    digits = []

    while x:
        digits.append(digs[int(x % base)])
        x = int(x / base)

    if sign < 0:
        digits.append('-')

    digits.reverse()

    return ''.join(digits)


 类似资料:
  • 问题内容: 有没有人能将不安全的字符串转换为? 该字符串通常回来为:或类似的东西。 在这种情况下,我要。如果我想。我从不希望该方法失败,但是我不愿意尝试,除非通过它只是为了隐藏错误(以防万一发生极端情况)。 问题答案: 在这种情况下,您确实有一种避免/的方法,尽管我不建议这样做(假设您的输入字符串名为,并且您处于必须返回某些内容的函数中): 将在部分就是你回什么是你想要比如说,如果是,空,全空间,

  • 假设你想将一个整数转换为一个二进制和十六进制字符串。例如,将整数 10 转换为十进制字符串表示为 10,或将其字符串表示为二进制 1010。虽然有很多算法来解决这个问题,包括在栈部分讨论的算法,但递归的解决方法非常优雅。 让我们看一个十进制数 769 的具体示例。假设我们有一个对应于前 10 位数的字符序列,例如 convString =“0123456789”。 通过在序列中查找,很容易将小于

  • 问题内容: 我有一个来自MySQL查询的元组,像这样: 我想将所有字符串元素转换为整数,然后将它们放回列表列表中: 我试图用它来实现它,eval但是还没有得到任何体面的结果。 问题答案: 是Python标准的内置函数,用于将字符串转换为整数值。你可以使用包含数字作为参数的字符串来调用它,然后返回转换为整数的数字: 上面的照片2。 如果你知道列表T1的结构(它仅包含列表,仅一个级别),则可以在Pyt

  • 我试图从标准输入中读取一些非常大的数字,并将它们相加。 然而,要添加到BigInteger,我需要使用

  • 我有一个字符串数组,表示二进制数(不带前导零),我想将其转换为相应的10进制数。考虑: 最好的方式是什么?我一直在探索java。lang.number.*没有找到直接的转换方法<代码>整数。parseInt(b)生成一个等于字符串的整数。。。e、 1001变成了1001而不是9。。。而且似乎不包括输出基的参数转换方向错误。我怀疑我需要进行多步转换,但似乎找不到方法或子类的正确组合。我也不确定前导零

  • 问题内容: 我有一个清单说: 如何在不触及字符串的情况下转换预期的数字? 感谢您的帮助。 问题答案: