关于python程序的建议

时间:2011-04-29 00:48:10

标签: python

所以我必须编写一个程序,询问用户输入(应该是一个3个字母的字符串),并输出字符串中字母位置变化的六个排列。但是,我的教授希望输出被大括号包围,而我的是一个列表(所以它是方括号)。我该如何解决?另外,如何检查输入中的所有字母是否都重复,以便主程序不断要求用户输入输入并检查错误?

谢谢

6 个答案:

答案 0 :(得分:2)

唯一能够识别{ }的'本机'输出的数据类型是一个字典,这似乎不适用于此处。我只想写一个小函数来以所需的方式输出你的列表

>>> def curlyBracketOutput(l):
        x = ''
        for i in l: x += i
        return '{' + x + '}'

>>> curlyBracketOutput(['a','b','c'])
'{abc}'

答案 1 :(得分:1)

这两个问题的答案都是使用循环。

打印“{”,然后遍历打印它们的所有元素。

但循环中的输入并保持循环直到你得到你想要的东西。

答案 2 :(得分:1)

好吧,首先,正如这里的每个人都说的那样,打印'{'。除此之外,您可以在脚本中使用以下代码来检查重复的单词,

 letterlist = []

 def takeInput(string):
    for x in string:
        if x not in letterlist:
            letterlist.append(x)
        else:
            return 0
    return 1

然后至于你要求输入和检查错误,你可以通过,

来做到这一点
while(True): #or any other condition
    string = input("Enter 3 letter string")
    if len(string)!=3:
        print("String size inadequate")
        continue
    if takeInput(string):
        arraylist = permutation(string) #--call permutation method here
        #then iterate the permutations and print them in {}
        for x in arraylist: print("{" + x + "}")
    else:
        print("At least one of the letters already used")

答案 3 :(得分:0)

圆括号是指dict

我认为

list(set(the_input))

应该给你一个独特的字母列表。检查它们是否出现不止一次 和

theinput.count(one_letter) > 1

应该告诉你是否有一个人。

答案 4 :(得分:0)

>>> chars = ['a','b','c']
>>> def Output(chars):
...     return "{%s}" % ''.join(chars)
... 
>>> print Output(chars)
{abc}
>>> 

答案 5 :(得分:0)

或者只是做一些非常糟糕的事情:

print repr(YourExistingOutput).replace("[", "{").replace("]", "}")