2

我是一个尝试学习 Python 的初学者。第一个问题。

试图找到一种方法让用户只输入字母。写了这个,但是不行!它返回True然后跳过其余部分,然后继续该else子句。 break也不行。

有人能指出为什么吗?我认为这是非常基本的,但我被困住了,如果有人能把我拉出来,我会很感激。

while True:
    n = input("write something")
    if print(n.isalpha()) == True:
        print(n)
        break
    else:
        print("Has to be in alphabets only.")
4

4 回答 4

1

您的问题是print功能。 print不返回任何内容,因此您的if语句始终NoneTrue.

while True:
    n = input("write something")
    if n.isalpha():
        print(n)
        break
    else:
        print("Has to be in alphabets only.")
于 2021-06-03T05:14:36.027 回答
1

你的陈述应该是if n.isalpha() == True:print不会返回任何东西,因此值为None. 然后,您正在NoneTrue

while True:
    n = input("write something")
    if n.isalpha() == True:
        print(n)
        break
    else:
        print("Has to be in alphabets only.")
于 2021-06-03T05:14:46.973 回答
0

我已经修复了这个错误,下面是更新的代码:

while True:
    n = input("write something: ")
    if n.isalpha() == True:
        print(n)
        break
    else:
        print("Has to be in alphabets only.")
于 2021-06-03T05:18:32.640 回答
-1

不要使用print(n.isaplha()),它将永远是 True 。删除 print() 并仅使用n.isalpha()
试试这个: -

while True:
    n = input("write something")
    if print(n.isalpha()) == True:
        print(n)
        break
    else:
        print("Has to be in alphabets only.")
于 2021-06-03T05:22:48.143 回答