我被分配了一项任务,要为一台笔记本电脑写一个程序。第一个程序只是检查输入的数字是否有效,并导入另外两个模块,即逻辑门和全加器。逻辑门没有错误,我确信它是由门(if,else)组成的。这是我的密码:
dec1=int(input("Enter first decimal number: "))
dec2=int(input("Enter second decimal number: "))
def check(dec1,dec2):
if (dec1+dec2)>255:
print ("The decimal number you've entered is invalid. Please enter another number")
dec1=int(input("Enter first number again: "))
dec2=int(input("Enter second number again: "))
return dec1,dec2
elif (dec1+dec2)>+127 and (dec1+dec2)<-127:
print ("The decimal number you've entered is invalid. Please enter your numbers again")
dec1=int(input("Enter first number again: "))
dec2=int(input("Enter second number again: "))
return dec1,dec2
else:
print("Your number is now converted")
return dec1,dec2
print (check(dec1,dec2))
import conversion
lis1, lis2=conversion.bin2dec(dec1,dec2)
import fullAdder
add= fullAdder.fulladder(lis1,lis2)
print (add)
这是我的加法器:
import logicGates
def fulladder(bin1,bin2):
lis1=list(bin1)
lis2=list(bin2)
Cin=0
lisEmp=[]
for i in range(7,-1,-1):
num1=int(lis1[i])
num2=int(lis2[i])
result1=logicGates.XOR(num1,num2)
result2=logicGates.NAND(result1,Cin)
result3=logicGates.OR(result1,Cin)
Sum=logicGates.AND(result2,result3)
result4=logicGates.AND(num1,num2)
result5=logicGates.AND(result1,Cin)
result6=logicGates.NOR(result4,result5)
result7=logicGates.NOT(result6)
Cin=result7
lisEmp.insert(0,Sum)
return lisEmp
这是我的bin2dec代码:
def bin2dec(dec1,dec2):
a=bin(dec1)
b=bin(dec2)
c=a[2:]
d=b[2:]
bin1=c.zfill(8)
bin2=d.zfill(8)
print (bin1)
print (bin2)
这就是我一直犯的错误。你知道吗
Traceback (most recent call last):
File "C:\Python34\main.py", line 26, in <module>
lis1, lis2=conversion.bin2dec(dec1,dec2)
TypeError: 'NoneType' object is not iterable
我认为这样的代码更好:
全加器:
bin2dec公司:
bin2dec
函数不返回值。它打印出值。你知道吗试着把它改成
return bin1, bin2
TLDR
问题是函数
bin2dec
没有return语句。你可以通过添加到
bin2dec
的结尾。你知道吗错误的深入解释
实际上发生了什么,以及为什么会得到“NoneType object is not iterable”,是因为python实际上有一个函数的多个返回值,即使它看起来像这样。相反,返回一个元组,然后解包这个元组。你知道吗
所以,代码中发生的事情与此等价
在这里,由于缺少return语句,我们得到
result
是None
,然后在执行lis1, lis2 = result
的下一行中,您尝试解压一个None
值,这是不可能的,因此抛出一个TypeError
。你知道吗相关问题 更多 >
编程相关推荐