Это небольшая программа, которая работает как арифметический калькулятор. Здесь я прочитал предыдущие вопросы, но все еще есть сомнения. В моем коде я использовал 'is' и not == в моем цикле while, но мой цикл не останавливается. Это неожиданно, потому что запрос переменной присваивается новым объектом, если пользователь нажимает «n» при запросе ввода. Буду признателен, если кто-то может взглянуть на код и помочь.Дополнительная информация о «==» и «is» в Python
def Add(x,y):
add = x+y
print("Answer:",add)
def Sub(x,y):
sub = x-y
print("Answer:",sub)
def Mult(x,y):
product = float(x*y)
print("Answer:",product)
def Div(x,y):
if y!=0:
div=float(x/y)
print("Answer:",div)
else:
print("Invalid input!")
ask='y'
while(ask is 'y' or 'Y'):
x=float(input("\nEnter x:"))
y=float(input("Enter y:"))
print("\nCALCULATOR:")
print("\nPlease select any of the following options:")
print("1.Add")
print("2.Subtract")
print("3.Multiplication")
print("4.Division")
opt=int(input("\nYour option:"))
if(opt is 1):
Add(x,y)
elif(opt is 2):
Sub(x,y)
elif(opt is 3):
Mult(x,y)
elif(opt is 4):
Div(x,y)
else:
print("Invalid option!")
ask=input("\nDo you want to continue?(y/n or Y/N)")
это время цикла не останавливается, потому что 'что-нибудь или«y'' всегда 'true'. См. Здесь: http://stackoverflow.com/q/15112125/1639625 –
Я верю, что 'while (ask in ['y', 'Y'])' это то, что вы ищете. Я считаю, что ваш текущий оператор оценивается: '(ask is 'y') или 'Y'', который всегда' True', за @tobias_k –