Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Kaprekar Number-ValueError:以10为基数的int()的文本无效:'';。字符串到整数_Python_Python 3.x - Fatal编程技术网

Python Kaprekar Number-ValueError:以10为基数的int()的文本无效:'';。字符串到整数

Python Kaprekar Number-ValueError:以10为基数的int()的文本无效:'';。字符串到整数,python,python-3.x,Python,Python 3.x,根据,kaprekar数是一个数字,如果它在该基数中的平方表示可以分为两部分,其中第二部分有p个数字,这两个数字相加为原始数字。例如,9*9=81,可以写成8+1。因此,81是kaprekar数 以下函数必须打印p和q范围内给定范围内的kaprekar数。但是,我从第8行r=int(sqr[d:])接收到ValueError 输入:1100 错误: Traceback (most recent call last): File "Solution.py", line 18

根据,kaprekar数是一个数字,如果它在该基数中的平方表示可以分为两部分,其中第二部分有p个数字,这两个数字相加为原始数字。例如,9*9=81,可以写成8+1。因此,81是kaprekar数

以下函数必须打印p和q范围内给定范围内的kaprekar数。但是,我从第8行
r=int(sqr[d:])
接收到
ValueError

输入:1100

错误:

 Traceback (most recent call last):
 File "Solution.py", line 18, in <module>
 result = kaprekarNumbers(p, q)
 File "Solution.py", line 8, in kaprekarNumbers
 r = int(sqr[d:])
 ValueError: invalid literal for int() with base 10: ''
回溯(最近一次呼叫最后一次):
文件“Solution.py”,第18行,在
结果=卡普卡数(p,q)
文件“Solution.py”,第8行,以Kaprekar数字表示
r=int(sqr[d:]
ValueError:基数为10的int()的文本无效:“”

看下面几行:

    d = len(str(i))
    # -- snip --
    r = int(sqr[d:])

这使得假设
str(i)
的长度小于
sqr
的长度。对于输入值0、1、2和3,情况并非如此,因此
sqr[d:][/code>最终将为空,因此会出现错误。

对于输入
p<4
,会发生这种情况。然后
sqr
的值将只是一个单位数字符串,这意味着
sqr[d:://code>的结果将是一个空字符串(并且您不能解析空字符串的整数值)

要解决函数的问题,如果提供的值低于该值,只需手动将
p
的值设置为4即可

def-kaprekarNumbers(p,q):
如果p<4:p=4
...

您能否使用导致错误的示例输入更新您的问题?您的
p
是否小于4?
    d = len(str(i))
    # -- snip --
    r = int(sqr[d:])