我通过网站上的论坛调查了元组,但没有一个答案似乎与我遇到的问题相符。我收到此错误,我不知道为什么。任何帮助/解释将不胜感激!我猜我的代码是不必要的复杂?
import time
print "Welcome! I can tell you the year in which you will turn 100 years old!"
name = str(raw_input ('What is your name? '))
age = int(raw_input ('What is your age? '))
birthday = str(raw_input ('Has your birthday passed for the year? (answer yes or no) '))
curYear = time.localtime(time.time())
if birthday == str('y') or str('yes') or str('Yes'):
bdayY = name + str(', ') + str('you will turn 100 years old in the year ') + (curYear + (int(100) - age)) + str('!')
print bdayY
elif birthday == str('n') or str('no') or str('No'):
bdayN = name + str(', ') + str('you will turn 100 years old in the year ') + (curYear + (int(100) - (age + int(1)))) + str('!')
print bdayN
else:
print "Invalid Answer"
答案 0 :(得分:0)
对字符串文字调用str
是不必要的。
curYear
返回无法添加到int
的时间元组。你应该改为:
curYear = time.localtime(time.time()).tm_year
# ^
if
块无法读取。如果你看一下python 2中的string formatting:
bdayY = '%s, you will turn 100 years old in the year %s!'%(name, (curYear + 100 - age))
答案 1 :(得分:0)
除了年份之外,你把一切都变成了字符串...当我尝试你的代码时,这是我唯一的错误。
如果您在两个分配中都写<div>
<p>test</p>
</div>
而不是str(curYear + (int(100) - age))
,那么它应该没问题。
但是,我建议您在单独的变量中进行计算。您正在混合连接和添加,使得很容易出错,并且很难调试......