Python 为什么';t`x!=x、 是工作吗?

Python 为什么';t`x!=x、 是工作吗?,python,python-3.x,Python,Python 3.x,我需要做一个循环,提示用户输入有效的数字字符串,并要求用户输入正确的输入 我认为我的想法是正确的,但我不完全确定如何纠正错误的输入 def c(): x = input("Enter a String of Digits") while x != x.isdigit() i = input("enter correct data string") else: print("True") c() str.isdigit()返回一个布尔值(

我需要做一个循环,提示用户输入有效的数字字符串,并要求用户输入正确的输入

我认为我的想法是正确的,但我不完全确定如何纠正错误的输入

def c():
    x = input("Enter a String of Digits")
    while x != x.isdigit()
        i = input("enter correct data string")
    else:
        print("True")

c()
str.isdigit()
返回一个布尔值(真/假),不要将其与
x
本身进行比较,只使用返回值:

def c():
    x = input("Enter a String of Digits")
    while not x.isdigit():
        x = input("enter correct data string")
    print("True")

c()
  • 语法错误已修复:在
    中添加缺少的
    ,而..:
  • i=…
    更改为
    x=…

哦,我明白你的意思了,不要在while循环中只使用X,而是使用布尔值(在本例中为true)。所有关于布尔的东西都是这样吗?@Phizy,我的意思是:
x
是一个字符串,
x.isdigt()
是一个布尔对象。因此,比较它们总是返回
False
;导致while循环体从未执行。@请想象用户输入“abc”。然后是“abc”!=isdigit()正在比较“abc”!=错。“abc”不等于False,任何字符串也不等于False。“123”也不等于False。