为什么元组拆包会显示‘not enough arguments for format string’?

为什么元组拆包会显示‘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]))