我正在尝试使此函数起作用,以便它打印字符串的每个字母,其次数与字符串中字母的数量相同。因此,例如,如果字符串为'hi',则函数的输出为:
hh
ii
(每个字母都在上面类似的单独行中) 但是对于上面的示例,我的代码仅显示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'))
答案 0 :(得分:0)
您只返回最后一个字母的结果,请尝试使用所有重复字母的列表,然后使用换行符(\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
答案 1 :(得分:0)
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')
您只需要在代码中进行一些细微调整
答案 2 :(得分:0)
我认为也应该有一项规定,仅从给定的字符串中捕获唯一的字母。在这里,我的解决方案以回文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