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. "))