《Python编程:快速上手》逗号代码练习语法修正问询
修正逗号代码练习的双元素格式问题(无join实现)
问题核心是双元素场景的格式逻辑错误——正确的英文表达里两个元素间应该直接用and连接,不需要额外逗号。我们可以通过细化分支判断来解决:
解决方案代码
def comma_code(items): # 处理空列表 if len(items) == 0: return "" # 单个元素直接返回 elif len(items) == 1: return items[0] # 两个元素单独处理,避免多余逗号 elif len(items) == 2: return f"{items[0]} and {items[1]}" # 三个及以上元素的情况 else: output = "" # 遍历前n-1个元素,每个后面加逗号空格 for item in items[:-1]: output += item + ", " # 最后加上and和最后一个元素 output += "and " + items[-1] return output # 测试验证 print(comma_code(["apples", "bananas"])) # 输出: apples and bananas print(comma_code(["apples", "bananas", "cherries"])) # 输出: apples, bananas, and cherries print(comma_code(["orange"])) # 输出: orange print(comma_code([])) # 输出: (空字符串)
逻辑说明
- 针对列表长度做精准分支:
- 空列表返回空字符串(可根据需求调整为提示文本)
- 单元素直接返回元素本身
- 双元素场景单独拼接
元素1 and 元素2,彻底避免多余逗号 - 多元素场景先拼接前n-1个元素加逗号空格,最后追加
and + 最后一个元素,符合英文语法规范
内容的提问来源于stack exchange,提问作者Big_Port
相关产品推荐
相关产品推荐

