joannywei 2022-11-18 17:53 采纳率: 100%
浏览 21
已结题

python3.10.8format

在Python3.10.8里运行format格式转换遇到问题
不明白为什么用%转换市可以的,但是format函数不行
教材里的习题答案也没有用format方法

import math
id = 0
print("天才是由{:.0%}的灵感,加上{:.0%}的汗水。".format(0.01,0.99))
while True:
    str1 = input("输入商品名 单价,按0 退出")
    str2 = str(str1.split(" "))
    print(str1)
    print(str2)
    if  str1.find('0')<0:
        id += 1
        print("%06d\t"% id+"    ",end="")
        print("{:s}{:,.2f}元".format(str1))
    else:
        break

麻烦各位看看,第一次写CSDN请将就看看

img

IndexError: Replacement index 1 out of range for positional args tuple

Unknown format code 'd' for object of type 'str'
TypeError: unsupported format string passed to tuple.format

我尝试过转换成tuple类型或者list/str类型都不行,但是用%方法是可以的,单独用format也可以,也尝试过加索引和不加索引,都有报错
我想要根据输入字符串的不同值的先后顺序,用format将str的格式化依次输出商品的编号和名称和单价
  • 写回答

1条回答 默认 最新

  • 爱音斯坦牛 全栈领域优质创作者 2022-11-18 18:57
    关注

    有两个花括号,后面format括号里怎么只有一个值

    import math
    
    id = 0
    
    print("天才是由{:.0%}的灵感,加上{:.0%}的汗水。".format(0.01,0.99))
    
    while True:
        lis = input("输入商品名 单价,按0 退出:").split()
        if "".join(lis) != "0":
            id += 1
            print("%06d\t"% id+"    ",end="")
            print("{:s},{:.2f}元".format(lis[0],float(lis[1])))
        else:
            break
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月23日
  • 已采纳回答 11月21日
  • 创建了问题 11月18日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度