Python 如何防止用户在用户输入中输入胡言乱语,并防止他们使用所有大写或小写字母?

Python 如何防止用户在用户输入中输入胡言乱语,并防止他们使用所有大写或小写字母?,python,Python,我正在尝试进行一种输入,以防止用户输入类似于“QWERTY”、“QWERTY”或“QW3RTY”的输入 输入的是姓名,因此我想确保用户的姓名“John”开头必须有大写字母,而不是“John” 我试着用while True来循环这个问题:试着尝试使用.isalpha和.title,但我似乎无法让它工作 while True: try: name = input(str("What is your name? ")) if name is not name.isalp

我正在尝试进行一种输入,以防止用户输入类似于“QWERTY”、“QWERTY”或“QW3RTY”的输入 输入的是姓名,因此我想确保用户的姓名“John”开头必须有大写字母,而不是“John”

我试着用while True来循环这个问题:试着尝试使用.isalpha和.title,但我似乎无法让它工作

while True:
    try:
        name = input(str("What is your name? "))
    if name is not name.isalpha:
        print("Please Enter a Valid name")
        continue
    if name is not name.title:
        print("Please have a capital letter at the start of your name!")
        continue
    else:
        break

我希望if语句能正常工作,但它的语法无效。

您的逻辑有问题。。。但是您已经复制了它,即使第一个
if
失败。一次解决一个问题,而不是一次编写整个程序

name
是一个字符串<代码>名称。isalpha是一个函数。
字符串永远不能与函数相同

我想你想要的是

if name.isalpha():
另外,
try
需要一个
except
子句来捕获异常。同样,单独添加程序功能。这样,当您遇到错误时,您将只修复该错误


查看这个可爱的博客寻求帮助。

一次实现一个功能比一次捕获所有内容要好得多。此外,请确保调用您的函数,否则,它们将是真实的:

如果str:
打印(“真!”)
其他:
打印(“假!”)
真的!
#相比
如果str():
打印(“真!”)
其他:
打印(“假!”)
假的!
函数是对象,不会有错误的行为

为True时:
name=input(“你叫什么名字?”)#这里不需要str函数
#你可以把这整件事用一个袋子包起来
#尝试/除了ValueError
尝试:
如果name.isupper()或name.islower()与否name==name.title():
提高价值错误(“请包括适当的资本化”)
elif不是name.isalpha():
raise VALUE ERROR(“请仅使用字母字符”)
其他:
打破
除ValueError为e外:
打印(e)

您在
isalpha()
title()
中忘记了
()
。和
尝试:
需要
除了:
输入不需要包装为
str
,因为它将始终生成
str