Python-(if/else)额外字符?

Python-(if/else)额外字符?,python,if-statement,Python,If Statement,所以我正在做作业,但我似乎不知道如何在常规语句中添加“额外”字符 我想让这段代码说明,lname只能由字母和“或/和”-“符号组成,不能以”开头。我怎样才能做到这一点?我甚至不知道该搜索或尝试什么。难道没有某种内置的“包含”功能吗?我快绝望了 def perenimi2(): 全局lname lname=perenimi.get() 如果lname.isalpha(): textVar.set(“”) nd2={“Perenimi”:str(lname)} uusclient.update(nd

所以我正在做作业,但我似乎不知道如何在常规语句中添加“额外”字符

我想让这段代码说明,
lname
只能由字母和
或/和
”-“
符号组成,不能以
开头。我怎样才能做到这一点?我甚至不知道该搜索或尝试什么。难道没有某种内置的“包含”功能吗?我快绝望了

def perenimi2():
全局lname
lname=perenimi.get()
如果lname.isalpha():
textVar.set(“”)
nd2={“Perenimi”:str(lname)}
uusclient.update(nd2)
post2()
其他:
textVar.set(“Sissetage korrektne perekonnanimi!”)
我的意思是,我怎样才能做出IF语句,它必须包含字母,也可能包含“-”或/和空格。我想使fname仅为字母和“-”或/和空格。(这适用于也不能以空格开头的名称字段)

如果以前有人问过这个问题,我很抱歉,但我还没有找到解决方案

-----使用张贴答案后的代码------
通过发布的答案,我发现了一个新问题,它现在允许输入或条目为空,而不能为空

我把所有的东西都翻译成英语

导入字符串
###名字
def firstname1():
全局fname
allowed=“-
cantStart=“”
fname=firstname.get()
如果(设置(fname)

(或者只写一行很长的文字)。

欢迎使用Stack Overflow!您可以在此网站顶部、Stack Overflow徽标和“Products”右侧搜索确切的问题欢迎来到这里!虽然我编辑了这篇文章并更好地解释了我的问题,但我仍然无法从论坛中找到解决方案。也许有人可以帮助我。还删除了图片并添加了我的代码。非常感谢,@MarianD!它在我的代码上运行得非常好!我可能不会自己找到这个解决方案。现在我只需要练习一个简单的练习完全理解这一点。非常感谢你的解释。“谢谢你。请考虑投票我的答案(点击旁边的三角形)和/或接受它(点击复选标记),如果它对你有帮助。请看。我没有eNouuh的“信誉”。投票,但我接受了答案!虽然我现在面临另一个问题,但现在我的代码似乎也接受了空答案,这也是一个问题。我尝试了elif fname==“”(空字符串?):但这并没有解决我的问题。我将把我的代码示例添加到原始帖子中。我觉得我需要休息一下(过度思考或根本不思考)重新启动我自己,但最后期限快到了,我需要完成这个。我编辑了我的答案,将
和lname
添加到你的
if
条件中。现在它满足了你的扩展条件。你的
elif
分支不起作用,因为在我以前的答案中,
if
分支中的条件为空字符串满足,太(
set(lname)
在本例中是空的,空的集合是每个集合的子集)。使用我当前的答案(不需要
elif
分支)。
import string

ALLOWED = " -"
CANT_START = " "

if (set(lname) <= set(ALLOWED + string.ascii_letters) 
        and not lname.startswith(CANT_START)
        and lname):
if set(lname) <= set(ALLOWED + string.ascii_letters) \
       and not lname.startswith(CANT_START)          \
       and lname: