【发布时间】:2012-10-27 07:38:42
【问题描述】:
对于长度小于 min_length 的任何名称,将列表中的该项替换为包含原始名称的新字符串,并在右侧添加空格以达到最小长度
示例: min_length = 5 /// 更改后的 'dog' = 'dog'
并返回列表中最初超过 min_length 的名称数量
def pad_names(list_of_names, min_length):
'''(list of str, int) -> int
Return the number of names that are longer than the minimum length.
>>> pad_names(list_of_names, 5)
2
'''
new_list = []
counter = 0
for word in list_of_names:
if len(word) > min_length:
counter = counter + 1
for word in list_of_names:
if len(word) < min_length:
new_list.append(word.ljust(min_length))
else:
new_list.append(word)
return(counter)
我目前在此功能上遇到 5 个错误:
所有错误都是#incorrect返回值
test_02:pad_names_one_name_much_padding_changes_list
原因:对于需要填充的 1 个名称的情况,列表没有正确更改
test_04:pad_names_one_name_needs_one_pad_changes_list
原因:一个名字需要一个pad更改列表
test_10:pad_names_all_padded_by_3_changes_list
原因:全部由 3 个更改列表填充
test_12:pad_names_all_padded_different_amounts_changes_list
原因:所有填充的不同数量的变化列表
test_20:pad_names_one_empty_name_list_changed
原因:一个空的名单改变了
这个功能不需要高效,只需要通过那些测试而不产生更多问题
【问题讨论】:
-
向我们提供输出 - 这样您就更容易理解您需要什么
-
return(smth) 是坏事)
标签: python list testing replace counter