Python代码中print语句出现语法错误,原因是什么?
问题原因及修正
你的print语句存在字符串格式化语法错误,核心问题如下:
- 错误地将
%n放在字符串前,Python的%格式化操作符必须紧跟在格式化字符串之后 - 字符串片段拼接混乱,
",00"未正确融入格式化逻辑 - 整体格式完全不符合Python字符串格式化规则
修正后的代码(两种可选写法)
写法1:匹配你原本思路的%格式化
def tka(A): arr=[100,50,20,10,5,2,1] for i in range(len(arr)): n = A // arr[i] p = A % arr[i] # 修正格式化语法,变量按顺序放在%后的元组中 print("%d nota(s) de R$ %d,00" % (n, arr[i])) A = p A = int(input()) tka(A)
写法2:更简洁的f-string(推荐)
def tka(A): arr=[100,50,20,10,5,2,1] for num in arr: # 直接遍历数组元素,无需索引,代码更简洁 n = A // num p = A % num print(f"{n} nota(s) de R$ {num},00") A = p A = int(input()) tka(A)
额外说明:原代码最后tk=tka(A)属于冗余代码,因为tka函数没有返回值,直接调用tka(A)即可。
内容的提问来源于stack exchange,提问作者Yasir Katib
相关产品推荐
相关产品推荐

