gpt4 book ai didi

python - 为什么我收到 TypeError : unsupported operand types for %: 'NoneType and Int

转载 作者:太空宇宙 更新时间:2023-11-04 05:57:12 24 4
gpt4 key购买 nike

我布置了一个作业,将二进制数转换为 8 位二进制数。用户输入一个数字,我必须在转换前验证它。当我输入一个有效数字并且验证工作正常时,代码工作得很好。但是,当我在验证无效数字后尝试转换数字时,我得到了这个 NoneType 操作数错误。谁能解释一下我做错了什么

def testDenary(testValue):
if testValue < int(0):
print("Error: Negative value input. Please try again!")
return False
elif testValue > 255:
print("Error: Input value too high. Please try again!")
return False
else:
return True

def getDenary():
denIn = int(input("Please enter a number between 0 and 255: "))
if testDenary(denIn):
return denIn
else:
getDenary()

def convertToBinary(denaryIn):
x = 0
result = []
for number in range(8):
bit = denaryIn % 2
result.append(bit)
denaryIn = denaryIn // 2
print (type(denaryIn))
result.reverse()
str1 = "".join(str(x)for x in result)
return str1

def main():
denary = getDenary()
answer = convertToBinary(denary)
print ("Binary version = " + answer)
main()

main()

最佳答案

您的函数 getDenary() 不会在 else 子句中返回值,因此当您的函数结束时返回默认返回值 None

以下是更改代码的方法:

def getDenary():
denIn = int(input("Please enter a number between 0 and 255: "))
if testDenary(denIn):
return denIn
else:
return getDenary() # added return

注意:您可以通过执行以下操作将整数转换为其二进制字符串表示形式

"{0:b}".format(your_int)

关于python - 为什么我收到 TypeError : unsupported operand types for %: 'NoneType and Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27092337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com