Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.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 str()未在我的函数中返回字符串_Python_String_Int - Fatal编程技术网

Python str()未在我的函数中返回字符串

Python str()未在我的函数中返回字符串,python,string,int,Python,String,Int,所以我定义了一个递归函数numToBaseB,它将以10为基数的给定数字转换成2到10之间的任何其他基数。所需的输出是一个字符串,但由于某种原因,我一直得到一个int def numToBaseB(num, b): if num == 0: return '' elif b > 10 or b < 2: return "The base has to be between 2 and 10" else: retu

所以我定义了一个递归函数numToBaseB,它将以10为基数的给定数字转换成2到10之间的任何其他基数。所需的输出是一个字符串,但由于某种原因,我一直得到一个int

def numToBaseB(num, b):
    if num == 0:
        return ''
    elif b > 10 or b < 2:
        return "The base has to be between 2 and 10"
    else:
        return numToBaseB(num // b, b ) + str(num % b)
def numToBaseB(num,b):
如果num==0:
返回“”
如果b>10或b<2:
return“基数必须在2到10之间”
其他:
返回numToBaseB(num//b,b)+str(num%b)
所以对我来说:
numToBaseB(4,2)
将返回

一百

而不是期望的输出:

“100”


您的程序正在按设计工作:

>>> numToBaseB(1024,2)
'10000000000'
>>> numToBaseB(4,2)
'100'

当然,如果执行
打印(numToBaseB(4,2))
,则不会显示引号。

如果希望使用引号,则始终可以执行以下操作:

print (" ' "+numToBase(4,2)+" ' ")
但在程序中,若您无论如何使用str(),它将被视为字符串

:)


编辑:在电话上键入,很抱歉出现这种疯狂:(

这是不可能的。如果你要打印出结果,那么这就是你想要的行为,因为引号只显示在控制台中,以帮助你看到变量是什么。是的,蒂姆·皮茨克指出了同样的事情,谢谢!我不确定最初的设计是否包含将
0
转换为基的功能n空字符串而不是
“0”
。它按编码方式工作,但它们总是这样:-这是它的一部分,感谢您确保!您可以使用
repr()
,它在字符串周围添加引号:)@mnunberg woah!完全忘记了那个O.O