Python中如何为输出字符串内的数字拼接指定文本内容
Python数值5次方分类带文本输出实现方案
原代码待修正问题
- 循环遍历参数名笔误:形参定义为
*arguments,循环内误写为argument,运行会触发名称错误 - f-string语法错误:格式标记
f需要紧跟字符串引号,不能留空格 - 列表存储的是纯数字值,未拼接要求的描述文本
- 直接打印列表会给字符串元素自动加单引号,不符合期望的输出格式
修正后完整代码
def sorter(*arguments): big_numbers = [] small_numbers = [] for n in arguments: power_res = n ** 5 if power_res > 100000: # 存入时直接拼接对应描述文本 big_numbers.append(f"{power_res} is too big") else: small_numbers.append(f"{power_res} is too small") # 手动拼接列表格式,去掉默认的字符串引号 print(f"big numbers: [{', '.join(big_numbers)}]\nsmall numbers: [{', '.join(small_numbers)}]") # 调用测试 sorter(8,2,66,45,3,7,9)
运行输出结果
big numbers: [1252332576 is too big, 184528125 is too big] small numbers: [32768 is too small, 32 is too small, 243 is too small, 16807 is too small, 59049 is too small]
实现说明
- 提前缓存5次方计算结果,避免重复运算
- 追加列表元素时直接拼接数值和描述文本,无需后续二次遍历处理
- 用
join()拼接列表元素,手动组装列表格式,消除直接打印列表自带的字符串单引号,完全匹配期望输出样式 - 如果不需要严格匹配无引号的格式,也可以直接
print(f"big numbers: {big_numbers}"),此时输出会给每个字符串元素带单引号,格式为big numbers: ['1252332576 is too big', '184528125 is too big']
内容的提问来源于stack exchange,提问作者itaykivsi זיו
相关产品推荐
相关产品推荐

