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