python - 我在 Python 中面临一个问题,用户说“是”或“否”,无论如何循环仍然执行。为什么会这样?
问题描述
我正在制作一个 python 计算器程序,在完成一次计算后询问用户是否要继续。如果用户说是,则循环应该运行,否则它应该停止。我面临一个问题,用户说是或否,循环仍然执行。为什么会这样???
print("This is a Calculator In Python. !!!")
print("I Can Do Addition, Subtraction, Multiplication and Division.!!")
def addition():
print("Please Don't Enter Float Values Here.")
num1 = int(input("Enter First Number.!!"))
num2 = int(input("Enter Second Number. !!"))
result = num1 + num2
return result
def subtraction():
print("Please Don't Enter Float Values Here.")
num1 = int(input("Enter First Number.!!"))
num2 = int(input("Enter Second Number.!!"))
result = num1 - num2
return result
def multiplication():
print("You Can Enter Float Values Here.")
num1 = float(input("Enter First Number.!!"))
num2 = float(input("Enter Second Number.!!"))
result = num1 * num2
return result
def division():
print("You Can Enter Float Values Here.")
num1 = float(input("Enter First Number.!!"))
num2 = float(input("Enter Second Number.!!"))
result = num1 / num2
return result
print("""1. a for Addition
2. s for subtraction
3. m for multiplication
4. d for Division""")
select = "Yes"
while select:
choice = str(input("You Choose The Operation."))
if choice == "a":
print(addition())
elif choice == "s":
print(subtraction())
elif choice == "m":
print(multiplication())
elif choice == "d":
print(division())
else:
print("Invalid Input")
select=str(input('Continue Yes or No '))
print("Thank you..!")
解决方案
您已将循环定义为while select
,这意味着只要认为 select 不是None
,它将继续循环
在您的循环中,您将用户输入分配给select
,这意味着只要用户输入任何内容,它将始终保持循环。
要解决此问题,您应该让 while 循环检查是否select
为“是”:
while select.lower().strip() == "yes":
choice = input("You Choose The Operation. ")
if choice == "a":
print(addition())
elif choice == "s":
print(subtraction())
elif choice == "m":
print(multiplication())
elif choice == "d":
print(division())
else:
print("Invalid Input")
select = input("Continue Yes or No ")
print("Thank you..!")
此外,input()
返回一个字符串,因此您无需将其包装在str()
调用中。
推荐阅读
- git - 如何使用 git 放弃对某些目录的更改?
- angular - 带参数的角路由
- apama - 使用 Apama HTTP 客户端插件解析 HTTP 响应时出错
- uwp - 如何在桌面转换的应用程序中安装directx-9
- html - 如何修复仅在 ios 而不是 android 上发生的虚线边框错误?
- sql - SQL : 内连接的连接
- sql - 如何在 R 中修复“用户登录失败:XXX”以连接到 SQL?
- javascript - 如何检查某些单词的文本输入更改?
- java - Java 8 组合,Currying 速记
- sql-server - 将连接字符串设置更改为使用 sql 用户时出现“myuser 登录失败”