为什么元组拆包会显示‘not enough arguments for format string’?
问题描述:
最近在学习Python,元组拆包时显示‘not enough arguments for format string’,代码如下:
travler_ids = [('USA', '31195855'), ('BRA''CE342567'), ('ESP', 'XDA205856')]
for passport in travler_ids:
print('%s/%s' %passport)
控制台:
C:\thanatos\py366\python.exe E:/python1/流畅的python/元组和记录.py
USA/31195855
Traceback (most recent call last):
File "E:/python1/流畅的python/元组和记录.py", line 5, in
print('%s/%s' %passport)
TypeError: not enough arguments for format string
进程已结束,退出代码 1
答
print('%s/%s' %passport)
你有两个 %s,但是只有一个passport参数
应该是
print('%s/%s' % (passport[0], passport[1]))
答
一个%s对应一个参数,多个参数后面跟一个元组,你的passport本身是一个元组,要进行取值
travler_ids = [('USA', '31195855'), ('BRA''CE342567'), ('ESP', 'XDA205856')]
for passport in travler_ids:
print('%s/%s' % (passport[0], passport[1]))