当我运行代码时,它给我一个错误:并非在格式化字符串时转换了所有参数
year = raw_input( "Please enter a year" )
if year % 4 == 0 && year % 100 != 0:
print ( "{0} is a leap year", year )
elif year % 4 == 0 && year % 100 == 0 && year % 400 == 0:
print ( "{0} is a leap year", year )
else:
print ( "{0} is not a leap year", year )
因为raw_input
返回字符串,所以行
year % 4
正在尝试执行字符串格式操作,该操作%
与模数共享同一运算符。
您需要使用将您的输入转换为整数int()
。
另外,正如thefourtheye所提到的,布尔AND运算符是and
,而&&
不像C那样使用。
所以:
while True:
# Prompt the user until they give a valid integer.
year = raw_input( "Please enter a year" )
try:
year = int(year)
break
except ValueError:
pass
if (year % 4 == 0) and (year % 100 != 0):
print "{0} is a leap year".format(year)
elif (year % 4 == 0) and (year % 100 == 0) and (year % 400 == 0):
print "{0} is a leap year".format(year)
else:
print "{0} is not a leap year".format(year)
还要注意使用正确的字符串格式format()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句