Python- TypeError新手:只能将元组(不是“int”)连接到元组

时间:2016-06-22 10:03:06

标签: python python-2.7

我通过网站上的论坛调查了元组,但没有一个答案似乎与我遇到的问题相符。我收到此错误,我不知道为什么。任何帮助/解释将不胜感激!我猜我的代码是不必要的复杂?

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"

2 个答案:

答案 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)),那么它应该没问题。

但是,我建议您在单独的变量中进行计算。您正在混合连接和添加,使得很容易出错,并且很难调试......