我试图使这个功能,以便它打印字符串的每个字母,字符串中字母数相同的次数。所以例如如果字符串是'hi',那么函数的输出将是:
HH
二
(每个字母在上面的单独行上)但是我的代码只为上面的例子打印'ii',我不知道为什么。
def vertical_strings(string):
"""takes a string and prints each letter on new line repeating each letter for length of word"""
num = len(string)
for char in string:
new = char * num
return new
print(vertical_strings('hi'))
def vertical_strings(string):
"""takes a string and prints each letter on new line repeating each letter for length of word"""
num = len(string)
for char in string:
new = char * num
print new
vertical_strings('hi')
您只需在代码中进行一些小调整即可
你只返回最后一个字母的结果,尝试使用重复的所有字母的列表,然后通过换行符(\n
)加入列表的元素:
def vertical_strings(string):
num = len(string)
new = []
for char in string:
new.append(char * num)
return '\n'.join(new)
print(vertical_strings('hi'))
输出:
hh
ii
我认为还应该有一个规定来捕获仅来自给定字符串的唯一字母。我的解决方案强调一个回文mom
,有两个独特的字符,应该只有两行输出。请检查出来并提供反馈。
def vertical_strings(string):
return [x*len(string) for x in list(set(string))]
[print(x) for x in vertical_strings('mom')]
输出:
mmm
ooo