簡體   English   中英

計算器中的問題

[英]Issue in the calculator

d = dict([(1,'Addition'),
          (2,'Substraction'),
          (3,'Multiplication'),
          (4,'Division(Integer)'),
          (5,'Division(Float)'),
          (6, 'Exponent')])
print(d)

n =int (input("Enter the Number whose operation u wanna perform :"))
a =int (input("Enter First Number :"))
b =int (input("Enter Second Number :"))
if n == 1:
    if 56 in a and 9 in b:
        print(77)
    else:
        print(a + b)
elif n==2:
     print(a - b)
elif n == 3:
    if 45 in a and 3 in b:
        print(555)
    else:
        print(a*b)
elif n == 4:
    print(a//b)
elif n == 5:
    if 56 in a and 6 in b:
        print(4)
    else:
        print(a/b)
elif n == 6:
    print(a**b)

一切都很好,但是當我輸入另外分配的數字時,如果我分別在ab中輸入 56 和 9,我會收到此錯誤:

 if 56 in a and 9 in b:
TypeError: argument of type 'int' is not iterable

您從輸入中接收整數,因此您必須使用 '==' 而不是 'in' 進行比較

if n == 1:
if 56 == a and 9 == b:
    print(77)
else:
    print(a + b)

可迭代的意思是可以循環的東西 - 一次通過一件事到 go 直到你到達終點。 因此,您可以通過查看in項目的列表來詢問項目列表是否包含某些內容 - 迭代直到找到它。

由於您要詢問 56 是否in a中,並且它不是您告訴 Python 做一些沒有意義的事情的項目列表,它會產生解釋原因的錯誤。

現在使用==含義於是根據其他評論的正確答案-但是您也可以將a放入帶有[a]的列表中-現在in可以工作,而==不會因為一個項目的列表aa不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM