Python IF语句,直接到ELSE

时间:2017-03-28 09:34:31

标签: python if-statement

我的剧本似乎有问题,我希望你们能帮助我。我刚开始编程,所以请耐心等待。我的项目是当有人填写1000-1199之间的任何数字时,它必须显示答案A.如果它在1200-1299之间的任何数字,它必须显示答案B.但IF和ELIF语句不能正常工作。它会跳过它们并直接进入ELSE。

这里的脚本:

import easygui

var1 = range(1000, 1200)
var2 = range(1200, 1300)

input = easygui.enterbox(msg="Fill in your number", title="Input1")

if input == var1:
    easygui.msgbox(msg="Answer A", title="title1")
elif input == var2:
    easygui.msgbox(msg="Answer B", title="title2")
else:
    easygui.msgbox(msg="Nothing", title="Title3")

提前致谢!

问题解决了!谢谢你的所有答案。

3 个答案:

答案 0 :(得分:1)

使用in语句并将输入值解析为整数类型:input = int(input)

import easygui

var1 = range(1000, 1200)
var2 = range(1200, 1300)

input = easygui.enterbox(msg="Fill in your number", title="Input1")
input = int(input)

if input in var1:
    easygui.msgbox(msg="Answer A", title="title1")
elif answer in var2:
    easygui.msgbox(msg="Answer B", title="title2")
else:
    easygui.msgbox(msg="Nothing", title="Title3")

答案 1 :(得分:1)

以下代码可以帮助您。

  1. 不要将python关键字用作行input中的变量。
  2. 当我们从GUI收到输入时,它返回string,因此将其转换为int
  3. 使用in而不是==

    import easygui
    var1 = range(1000, 1200)
    var2 = range(1200, 1300)
    input1 = int(easygui.enterbox(msg="Fill in your number", title="Input1"))
    
    if input1 in var1:
        easygui.msgbox(msg="Answer A", title="title1")
    elif input1 in var2:
        easygui.msgbox(msg="Answer B", title="title2")
    else:
        easygui.msgbox(msg="Nothing", title="Title3")
    
    print type(input1), input1
    

答案 2 :(得分:0)

试试这样:

def randbin(M,N,P):              # function to generate random binary matrix    
    mat = (np.random.rand(M,N)>=P).astype(int)
    return mat  

y = randbin(5,4,0.3)