有没有可能有一个带有排列的if/else语句

2024-04-20 04:30:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我的程序很简单,你输入你的名字,你选择你想要输入的名字数量,然后打印出所有的组合。。。我唯一的问题是不能在这两行代码周围添加if语句,这样用户就不能输入重复的名称或在名称中使用任何数字。我试过几种方法,但记不清确切的代码

    names = []

for i in range(n):names.append(raw_input("Enter name "+str(i+1)+": "))

count = 0

def perm(a,k=0):
global count
if(k==len(a)):
    print a

    count += 1
else:
    for i in xrange(k,len(a)):
        a[k],a[i] = a[i],a[k]
        perm(a, k+1)
        a[k],a[i] = a[i],a[k]

我的整个代码都可以找到here如果你想粘贴它并运行它,这很有趣。换言之,如果有人能帮我解决在哪里或如何完成这个if/else语句的问题

(raw_input("Enter name "+str(i+1)+": "))

代码行。提前谢谢大家


Tags: 代码namein名称forinputrawif
1条回答
网友
1楼 · 发布于 2024-04-20 04:30:40
names = []

while len(names) < n:
    name = raw_input("Enter name "+str(len(names)+1)+": ")
    if validate_name(names, name):
        names.append(name)

def validate_name(names, name):
    return re.match("^[Sa-zA-Z]*$", name) and not name in names

相关问题 更多 >