所以我不得不写一个程序,要求用户输入(应该是3个字母的字符串),并输出字符串内字母位置变化的六个排列组合。然而,我的教授希望输出被大括号包围,而我的名单是一个列表(所以它是方括号)。我该如何解决?另外,如何检查输入中的字母是否重复,以便主程序不断询问用户输入输入并检查错误?关于python程序的建议
谢谢
所以我不得不写一个程序,要求用户输入(应该是3个字母的字符串),并输出字符串内字母位置变化的六个排列组合。然而,我的教授希望输出被大括号包围,而我的名单是一个列表(所以它是方括号)。我该如何解决?另外,如何检查输入中的字母是否重复,以便主程序不断询问用户输入输入并检查错误?关于python程序的建议
谢谢
OK,一两件事,因为大家在这里说,打印“{”。除此之外,你可以使用下面的代码在你的脚本来检查重复的单词,
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")
大括号是指dict?
我觉得
list(set(the_input))
应该给你一个独特的字母列表。要检查,如果他们发生不止一次 和
theinput.count(one_letter) > 1
应该告诉你,如果有比铁道部一个。
这两个问题的答案都是使用循环。
打印“{”,然后遍历所有打印它们的元素。
但循环内的输入并保持循环,直到你得到你想要的。
im知道'本机'输出与{ }
唯一的数据类型是一个字典,这似乎并不适用于此。我只想写一个小功能,输出你列出了所希望的方式
>>> def curlyBracketOutput(l):
x = ''
for i in l: x += i
return '{' + x + '}'
>>> curlyBracketOutput(['a','b','c'])
'{abc}'
>>> chars = ['a','b','c']
>>> def Output(chars):
... return "{%s}" % ''.join(chars)
...
>>> print Output(chars)
{abc}
>>>
或者只是做一件非常棒的事:
print repr(YourExistingOutput).replace("[", "{").replace("]", "}")