f-string语句报错
问题:
回测的时候遇到如下报错,请问这是怎么回事?
Error: 回测运行失败, 错误码:2 错误信息: 编译错误:用户策略377:42: invalid syntax
log.error(f”计算集合竞价参考价出错: {str(e)}”)
原因和解决方法:
引起错误的语句使用了f-string
。f-string
是Python中的一种字符串格式化机制,英文全称是Formatted String Literals。f-string
提供了一种简洁、直观且高效的方式来在字符串中嵌入表达式。
f-string
是从Python3.6开始引入的,而Ptrade目前内置的Python版本是3.5.1,尚不支持这种用法,所以引起了invalid syntax
报错。
要解决这个错误,可以使用%占位符
或者str.format()
来替代。举例如下:
输出的样式 | f-string | %占位符 | str.format() | 输出的结果 |
---|---|---|---|---|
输出字符串。 status = '收盘' |
print(f'现在是{status}') | print('现在是%s'%status) | print('现在是{}'.format(status)) | 现在是收盘 |
输出浮点数,保留两位小数。 price = 12.343 |
print(f'现在的价格是{price:.2f}') | print('现在的价格是%.2f'%price) | print('现在的价格是{:.2f}'.format(price)) | 现在的价格是12.34 |
以百分数形式显示,保留两位小数。 rate = 0.0123 |
print(f'目前的涨幅是{rate:.2%}') | print('目前的涨幅是%.2f%%' % (rate * 100)) | print('目前的涨幅是{:.2%}'.format(rate)) | 目前的涨幅是1.23% |
未经书面授权许可,任何个人和组织不得以任何形式转载、引用本站的任何内容。本站保留追究侵权者法律责任的权利。
评论