【发布时间】:2021-07-20 13:09:03
【问题描述】:
class Solution:
a={1:'I',2:'II',3:'III',4:'IV',5:'V',6:'VI',7:'VII',8:'VIII',9:'IX'}
def check(num,s):
if num<=0:
return s
elif num<10:
return check(0,s+a[num])
elif num>=10 and num<50:
if num<=30:
return check(num%10,s+('X'*(num//10)))
else:
return check(num%10,s+'XL')
elif num>=50 and num<100:
if num<=80:
return check(num%10,s+('L'+'X'*(num//10)))
else:
return check(num%10,s+'XC')
elif num>=100 and num<500:
if num<=300:
return check(num%100,s+('C'*(num//100)))
else:
return check(num%100,s+'CD')
elif num>=500 and num<1000:
if num<=800:
return check(num%100,s+('D'+'C'*(num//100)))
else:
return check(num%100,s+'CM')
else:
return check(num%1000,s+'M'*(num//1000))
def intToRoman(self, num: int) -> str:
s = check(num,"")
return s
错误:NameError:未定义名称“检查” s = check(num,"")
它说'检查'功能没有定义。请告诉我如何纠正它。
【问题讨论】:
-
check() 在类中使用 self.check()
-
您的代码在一个类中,但写得像独立函数。我建议你丢掉这门课。
-
我也试过了,但这也给了我错误
-
s = self.check(num,"")
-
TypeError: check() 接受 2 个位置参数,但给出了 3 个 s = self.check(num,"") intToRoman (Solution.py) 中的第 33 行 ret = Solution().intToRoman(param_1 ) _driver (Solution.py) 中的第 53 行 _driver()
(Solution.py) 中的第 64 行
标签: python python-3.x