Python while循环条件优化及factors函数输出格式调整问询
代码修改方案
核心修改点如下:
- 调整原函数直接逐次打印因数的逻辑,先将所有符合条件的因数存入列表,再统一格式化输出,避免不同输入的输出内容挤在同一行
- 新增要求的输出前缀格式,用字符串格式化实现指定的输出结构
- 优化边缘场景的输出格式,移除错误信息末尾多余的空格
修改后的完整代码:
def factors(x): if x >= 0: factor_list = [] for i in range(1, x): if x % i == 0: factor_list.append(str(i)) # 如果需要和示例完全一致的逗号前加空格的格式,把下方的', '替换为' ,'即可 print(f"Factors for {x} are : {', '.join(factor_list)}") else: print("error message") factors(21) factors(-1) factors(-3)
运行后输出结果和期望完全匹配:
Factors for 21 are : 1, 3, 7 error message error message
如果后续需要把输入值本身也纳入因数统计,只需要将循环的range(1, x)修改为range(1, x+1)即可。
内容的提问来源于stack exchange,提问作者pleasebekind
相关产品推荐
相关产品推荐

