python 定义1个函数 将字符串从 m 进制转换为十进制的函数
下面是一个 Python 函数,它将一个字符串从 m 进制转换为十进制:
python
def convert_to_decimal(num_str, basepython教程字符串函数): | |
""" | |
将字符串从 m 进制转换为十进制 | |
参数: | |
num_str (str): m 进制的数字字符串 | |
base (int): m 进制的基数 | |
返回: | |
int: 转换后的十进制数 | |
""" | |
# 初始化十进制数为0 | |
decimal_num = 0 | |
# 从右到左遍历字符串,每个字符乘以对应的基数次幂 | |
for i, digit in enumerate(reversed(num_str)): | |
# 将字符转换为对应的数字 | |
digit_val = int(digit, base) | |
# 计算该数字的十进制值并加到总数中 | |
decimal_num += digit_val * (base ** i) | |
return decimal_num | |
请注意,此函数假定 num_str 中的每个字符都是有效的 m 进制数字,并且 base 的值在 2 到 36 之间(因为 Python 的 int() 函数可以处理从二进制(基数为2)到三十六进制(基数为36)的转换,三十六进制中包括数字 0-9 和字母 a-z)。
另外,此函数在转换字符串时没有考虑字符的大小写,所以如果字符串中包含大写字母,它可能会抛出 ValueError。如果需要处理这种情况,可以在将字符转换为数字之前,使用 str.lower() 将字符串转换为小写。
然后你可以像下面这样调用这个函数:
python
print(convert_to_decimal('1010', 2)) # 输出: 10 | |
print(convert_to_decimal('A', 16)) # 输出: 10 | |
print(convert_to_decimal('12', 8)) # 输出: 10 | |
注意,当基数大于10时,字符串中的数字将使用字母来表示,例如十六进制中的 'A' 表示 10,'B' 表示 11,以此类推,直到 'F' 表示 15。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论