【问题标题】:Check if input is int and also if in range of 2 numbers - Python检查输入是否为 int 以及是否在 2 个数字的范围内 - Python
【发布时间】:2021-10-12 10:45:50
【问题描述】:

我正在尝试构建一个井字游戏,

我想检查输入是否在 1-3 之间,以及输入是否为 int 仅通过使用 while、for 和 if 语句。

第二次测试进展顺利,但如果输入例如 4 我收到了这个错误:

AttributeError: 'int' 对象没有属性 'isdigit'

**

    X = input("Pick row between 1-3: ")
    while X not in range (1,4):
        if X.isdigit()==False:
            print ("Wrong input, try again!")
            X = input("Pick row between 1-3: ")
        else:
            X=int(X) 
    Y = input("Pick colum between 1-3: ")
    while Y not in range (1,4):
        if Y.isdigit()==False:
            print ("Wrong input, try again!")
            Y = input("Pick colum between 1-3: ")
        else:
            Y=int(Y)

**

【问题讨论】:

  • 你的错误:X=int(X) 然后你调用 isdigit
  • 从我可以看出你想要的是如果 Y 介于 1 和 3 之间。所以你应该做Y = int(Y) 然后检查1 <= Y and Y<=3

标签: python input while-loop


【解决方案1】:

也许这对你有帮助:

def pick_num_btwen_1to3():
    X = input("Pick row between 1-3: ")
    while X not in range (1,4):
        if (type(X) == int) and (X>3) :
            print ("Wrong input, try again!")
            X = input("Pick row between 1-3: ")
        else:
            if X.isdigit() == False:
                print ("Wrong input, try again!")
                X = input("Pick row between 1-3: ")
            else:
                X=int(X) 
    return X

X = pick_num_btwen_1to3()
print("X : ",X)
Y = pick_num_btwen_1to3()
print("Y:", Y)

输出:

Pick row between 1-3: 4
Wrong input, try again!
Pick row between 1-3: 'm'
Wrong input, try again!
Pick row between 1-3: 2
X :  2
Pick row between 1-3: 5
Wrong input, try again!
Pick row between 1-3: m
Wrong input, try again!
Pick row between 1-3: 1
Y: 1

【讨论】:

    【解决方案2】:

    让我们保持简单。我认为这是您要解决的问题:

    X = input("Pick row between 1-3: ")
    if int(X)<1 or int(X)>3:
        print ("Wrong input, try again!")
        X = input("Pick row between 1-3: ")
    Y = input("Pick colum between 1-3: ")
    if int(Y)<1 or int(Y)>3:
        print ("Wrong input, try again!")
        Y = input("Pick row between 1-3: ")
    

    【讨论】:

      猜你喜欢
      • 2014-04-08
      • 2015-11-28
      • 2017-12-25
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多