Python错误:TypeError:不支持+;的操作数类型:';int';和';str';

Python错误:TypeError:不支持+;的操作数类型:';int';和';str';,python,Python,我正在尝试编写一个程序,用户可以输入他们希望程序启动的小时和分钟数,然后将本地时间和小时和分钟数相加,生成程序启动的时间。 注意:我不希望它将我的输入和当前时间的数字作为字符串放在一起。我需要它把数字加在一起 当我运行该程序时,出现以下错误: line 30, in alarm_time alarm_hour = (hour_awake + time.strftime('%H')) TypeError: unsupported operand type(s) for +: 'int'

我正在尝试编写一个程序,用户可以输入他们希望程序启动的小时和分钟数,然后将本地时间和小时和分钟数相加,生成程序启动的时间。
注意:我不希望它将我的输入和当前时间的数字作为字符串放在一起。我需要它把数字加在一起

当我运行该程序时,出现以下错误:

line 30, in alarm_time   
  alarm_hour = (hour_awake + time.strftime('%H'))
TypeError: unsupported operand type(s) for +: 'int' and 'str'
我的代码:

from tkinter import *
import tkinter
import time

time_now = ''

hour = time.strftime("%H")
minute = time.strftime("%M")

str(hour)
str(minute)



def tick():
    global time_now
    time_now = time.strftime("%H:%M:%S")



def hours():
    global hour_awake
    hour_awake = str(input("please enter in how many hours you would like to have the alarm go off in. "))
    minutes()

def minutes():
    global minute_awake
    minute_awake = str(input("please enter in how many minutes you would like to have the alarm go off in. "))

def alarm_time():
    alarm_hour = (hour_awake + hour)
    alarm_minutes = (minute_awake + minute)
    print (alarm_hour, alarm_minutes)


tick()

hours()
alarm_time()

如果我正确理解了您的问题,请尝试将str()改为int(),如下所示:

from tkinter import *
import tkinter
import time

time_now = ''

hour = time.strftime("%H")
minute = time.strftime("%M")

int(hour)
int(minute)



def tick():
    global time_now
    time_now = time.strftime("%H:%M:%S")



def hours():
    global hour_awake
    hour_awake = int(input("please enter in how many hours you would like to have the alarm go off in. "))
    minutes()

def minutes():
    global minute_awake
    minute_awake = int(input("please enter in how many minutes you would like to have the alarm go off in. "))

def alarm_time():
    alarm_hour = (hour_awake + hour)
    alarm_minutes = (minute_awake + minute)
    print (alarm_hour, alarm_minutes)


tick()

hours()
alarm_time()
time.strftime('%H')
已经是一个整数,但是
hour\u awake
根据您自己的定义是一个字符串。
因此出现了打字错误

Python不执行自动类型转换。你必须自己做。所有操作数(变量)必须是同一类型才能“添加”:
-两个字符串将连接成一个字符串,
-两个整数将执行算术加法

您需要通过:
int(hour\u awake)
hour\u awake
显式转换为整数 然后您应该能够将它们添加到一起:

alarm_hour = int(hour_awake) + time.strftime('%H')

这将允许您保持
hour\u awake
minute\u awake
为字符串。
或者,如果不需要将它们存储为字符串,则将
输入更改为:

hour_awake = int(input("please enter in how many hours you would like to have the alarm go off in. "))

。。对minute_awake也这样做。

我在(hour_awake)中添加了int,但这些数字没有执行算术加法。你得到了什么:你能打印或控制台吗。记录你试图相加的两个变量。在尝试添加它们的行之前的行上执行此操作。我如何执行此操作?请记住,60分钟应变为1小时,小时“24”应循环回到“0”。您可能需要为此做一些数学计算,或者使用mod
%
运算符。不再有任何错误消息,我在78中输入了两个输入副本:我甚至不确定您是如何得到错误的。。。上面的代码添加了字符串,这应该“有效”,但它会产生垃圾结果。。。除此之外,您还可以通过调用
str()
将所有内容转换为字符串,并且对
str(hour)
的调用不执行任何操作,因为
hour
无论如何都是字符串,然后您不会将
str()
返回的值赋给任何内容。。。您应该使用
int(…)
将所有内容转换为整数。删除
str(hour)
并使用
hour=int(time.strftime(“%H”))
minute(
minute)
可能的重复项。如果您意识到
int(hour)
不起任何作用。应改为使用
hour=int(time.strftime(“%H”)
hour_awake = int(input("please enter in how many hours you would like to have the alarm go off in. "))