python字符串格式化问题

请问大家为什么这个会报错呀?谢谢大家

name = "传智播客"
stock_price = 19.99
stock_code = 1003032
stock_price_daily_growth_factor = 1.2
growth_days = 7
print(f"公司{name}股票代码{stock_code}当前股价{stock_price}")
print("每日增长系数是%d,经过%d的增长,股价达到了%f"%(stock_price_daily_growth_factor,(19.99*(1.2**7))))

img

print("每日增长系数是%d,经过%d的增长,股价达到了%f"%(stock_price_daily_growth_factor,(19.99*(1.2**7))))
你这里有3个参数,后面只有2个变量,应该是
print("每日增长系数是%d,经过%d的增长,股价达到了%f"%(stock_price_daily_growth_factor,growth_days,(19.99*(1.2**7))))

你的参数个数是不是少了一个或者多了一个?

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7800615
  • 这篇博客也不错, 你可以看下Python为什么这么厉害?我给大家解析
  • 同时,你还可以查看手册:python- 旧式字符串格式化方法 中的内容
  • 您还可以看一下 尹成老师的Python实战区块链与共识算法课程中的 单网络节点功能测试小节, 巩固相关知识点
  • 除此之外, 这篇博客: 利用Python解析照片中的具体位置中的 大家猜猜我这三张照片都是在哪照的? 部分也许能够解决你的问题。
  • 以下回答由chatgpt基于相关博客总结生成:

    问题分析: 这段代码可能会出现几个问题: 1. 在第一行定义变量name时,如果是在python2版本中运行,可能需要加上# -*- coding: utf-8 -*-来指定编码格式,以防止中文字符引起的报错。 2. 在第7行的第一个print语句中,使用了f-string格式化输出方式,而该方式只在python3.6及以上版本可用,如果是低于该版本的python,需要使用其他方式来格式化字符串。 3. 在第8行的第二个print语句中,使用了旧版的字符串格式化方式,但是却没有传入相应的占位符和需要填充的值,导致报错。 需要修改: a. 将stock_price_daily_growth_factor改为stock_price_daily_growth_factor7,将(19.99*(1.27))改为stock_pricestock_price_daily_growth_factor*growth_days来正确计算股价。 b. 使用新版的字符串格式化方式来正确填充占位符和对应的值。

    以下是修复后的代码:

    # -*- coding: utf-8 -*-
    name = "传智播客"
    stock_price = 19.99
    stock_code = 1003032
    stock_price_daily_growth_factor = 1.2
    growth_days = 7
    
    print("公司{}股票代码{}当前股价{}".format(name, stock_code, stock_price))   # 使用新版字符串格式化方式
    print("每日增长系数是{:.2f},经过{}的增长,股价达到了{:.2f}".format(stock_price_daily_growth_factor, growth_days, stock_price*stock_price_daily_growth_factor**growth_days))   # 使用新版字符串格式化方式
    

    请注意,修复后的代码中将第一行添加了# -*- coding: utf-8 -*-来指定编码格式,保证中文字符的正确处理,并且将第7行的print语句和第8行的print语句都改为了新版字符串格式化方式。

    希望能帮到你!若有任何疑问,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^