首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python if的行为不像预期的那样

Python if的行为不像预期的那样
EN

Stack Overflow用户
提问于 2015-07-04 16:39:38
回答 1查看 51关注 0票数 1

我在试着做一个蟒蛇计算器。但出于某种原因,它只会输出平方根选项。

我目前在我的iPhone上使用python3.4和3.3模拟器,但在这两种设备上都存在相同的问题。

代码语言:javascript
复制
print("This program is a calculator app \n Creator: AtPython")
print("...")
Print("please choose a       mathematical operation")
Opt = input("square-root. \n addition, \n subtraction, \n multiplication, \n division: ")

if opt == "square-root" or "squareroot":
    num = float(input('Enter a number: '))
    num_sqrt = num ** 0.5
    print('The square root of %0.3f is %0.3f'%(num ,num_sqrt))
    input("Press 'Enter' to exit")

If opt == "addition":
    add_1 = float(input("Please enter a number"))
    add_2 = float(input("Please enter another number")) 
    add_ans = add_1 + add_2
    print(add_ans)
    qus = input("Would you like to add   another number? [y/n]")
    
elif qus == "y":
    add_3 = float(input("Enter a third number"))
    input("Press 'Enter' to exit")
    
else:
    input("Press 'Enter' to exit")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-04 16:50:25

代码语言:javascript
复制
if opt == "square-root" or "squareroot":

这不解析为if opt == "square-root" or opt == "squareroot":,此解析为if (opt == "square-root") or bool("squareroot"),这将返回True,因为调用字符串上的bool总是True,除非字符串是空的。(更多信息请参见链接 )

解决办法是:

代码语言:javascript
复制
if opt == "square-root" or opt == "squareroot":

代码语言:javascript
复制
if opt in ["square-root","squareroot"]:
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31222934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档