如何限制用户仅在Python中输入字母?

如何限制用户仅在Python中输入字母?,python,loops,break,restrict,isalpha,Python,Loops,Break,Restrict,Isalpha,我是一个试图学习Python的初学者。第一个问题 试图找到一种让用户只输入字母的方法。 写了这个,但它不工作! 它返回True,然后跳过其余部分,然后继续执行else子句。 break也不起作用 有人能指出原因吗? 我想这很简单,但我被卡住了,如果有人能把我拉出来,我会很感激的 while True: n = input("write something") if print(n.isalpha()) == True: print(n)

我是一个试图学习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.")

这里的问题是
打印
功能
print
不会返回任何内容,因此您的
if
语句总是将
None
True
进行比较

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

如果n.isalpha()==True:,则您的语句应该是
print
不会返回任何内容,因此值为
None
。然后,将
None
True

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

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

while True:
    n = input("write something: ")
    if n.isalpha() == True:
        print(n)
        break
    else:
        print("Has to be in alphabets only.")
不要使用
打印(n.isaplha())
,它总是正确的。删除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.")

如果n.isalpha()为真:
(或者如果n.isalpha():)。您检查
print
的返回值,它是
None
print
返回
None
(正如大多数其他答案所指出的那样)。它并不总是正确的(这意味着什么?),它不会返回任何结果。试试看:
a='Hi'
print(a.isalpha())
,它不返回true吗?对不起,如果我仍然错了,我的意思是:
a=print(“某物”)
,那么
a是None
。您在示例中打印的是
isalpha
的返回值(实际上是
bool
),谢谢!我现在解放了。。。在几个小时的挠头之后!谢谢。这个代码和问题中的代码有何不同?哇!太快了,太棒了!它起作用了!非常感谢你!最欢迎@ZaneThank你!我没想到在这么短的时间内会得到这样的帮助!谢谢,谢谢!我已经为此挣扎了好几个小时了。太高兴了!这可以通过删除
==True
部分进行优化。if条件可以写成
if n.isalpha():