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的格式化依次输出商品的编号和名称和单价

有两个花括号,后面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