一个python代码,用于将数字从任何基数转换为10的基数,从而产生错误.这段代码有什么问题?

Hic*_*ick 2 python

import math 




def baseencode(number, base):
    ##Converting a number of any base to base10

    if number == 0:
        return '0'

    for i in range(0,len(number)):
        if number[i]!= [A-Z]:
            num = num + number[i]*pow(i,base)
        else :
            num = num + (9 + ord(number[i])) *pow(i,base)
    return num

a = baseencode('20',5)
print a 
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

Traceback (most recent call last):
  File "doubtrob.py", line 19, in <module>
    a = baseencode('20',5)
  File "doubtrob.py", line 13, in baseencode
    if number[i]!= [A-Z]:
NameError: global name 'A' is not defined
Run Code Online (Sandbox Code Playgroud)

eum*_*iro 11

不是int(x, base)你需要的吗?

int('20',5) # returns the integer 10
Run Code Online (Sandbox Code Playgroud)


Ign*_*ams 5

你在混淆Python ...... Perl或者其他什么......

if not ('A' <= number[i] <= 'Z'):
Run Code Online (Sandbox Code Playgroud)

  • 当然,*如果您实际使用的是正则表达式模块*. (5认同)