Python 日历库中的值太多,无法解包错误
我试图解决“太多值无法解包”错误。 此代码尝试根据闰年和月底数打印月名。 我希望I,j中的x,y根据月末的数字给出月份名称Python 日历库中的值太多,无法解包错误,python,calendar,Python,Calendar,我试图解决“太多值无法解包”错误。 此代码尝试根据闰年和月底数打印月名。 我希望I,j中的x,y根据月末的数字给出月份名称 import calendar year=2000 a=calendar.isleap(year) if a ==False : print('this is not a leap year') x=[0,31,59,90,120] y=[31,59,90,120,151] for i,j in zip(x, y):
import calendar
year=2000
a=calendar.isleap(year)
if a ==False :
print('this is not a leap year')
x=[0,31,59,90,120]
y=[31,59,90,120,151]
for i,j in zip(x, y):
if (i,j) == (0,31):
(i,j)=str('Jan')
if (i,j) == (31,59):
(i,j)=str('Feb')
if (i,j)==(59,90):
(i,j)=str('March')
if (i,j)==(90,120):
(i,j)=str('Apr')
if (i,j)==(120,151):
(i,j)=str('May')
print('Mont_'+ (x,y))
else:
print ('This is a leap year')
x=[0,31,60,91,121,152]
y=[31,60,91,121,152,182]
for i,j in zip(x, y):
if (i,j) == (0,31):
(i,j)=str('Jan')
if (i,j) == (31,60):
(i,j)=str('Feb')
if (i,j)==(60,91):
(i,j)=str('March')
if (i,j)==(91,121):
(i,j)=str('Apr')
if (i,j)==(121,152):
(i,j)=str('May')
if (i,j)==(152,182):
(i,j)=str('Jun')
print('Mont_'+ (x,y))
当您使用类似于(i,j)=str('Jan')
的任何东西时,就会发生错误。当您同时分配多个变量时,您要问的是“将我的列表/元组/字符串的内容按该顺序拆分为变量v1、v2、v3、…、vn”。具体来说,在本例中,您要求Python将一个由3个字符组成的字符串(例如,'Jan'
拆分为两个变量)。Python不知道如何处理这个问题
从您的代码来看,我认为您实际上想要这样的东西:
print ('This is a leap year')
x=[0,31,60,91,121,152]
y=[31,60,91,121,152,182]
for i,j in zip(x, y):
if i,j == 0,31: # The parenthesis aren't necessary> Python implicitly converts this to a tuple
month='Jan' # Same with the string. No need to explicitly declare it a string - Python is very clever :)
elif (i,j) == (31,60):
month='Feb'
elif (i,j)==(60,91):
month='Mar'
elif (i,j)==(91,121):
month='Apr'
elif (i,j)==(121,152):
month='May'
elif (i,j)==(152,182):
month='Jun'
else:
month='n/a'
print('Mont_'+ month)
还要注意在第一个if
之后使用elif
。在这种情况下,结果是相同的,使用elif
作为绑定剂将整个块分组在一起
以下面的例子为例
a = 'string'
if a == 'string':
a = some_function()
if a == 'int':
a = some_other_function()
如果由于某种原因,
some\u function()
返回值'int'
,则在该代码块之后,a
将具有some\u other\u function()
的返回值。在这里使用elif
可以防止调用some_函数()
和some_other_函数()
。您应该将堆栈跟踪添加到日志中