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日

悬赏问题

  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的