第一个脚本中的Python错误TypeError(底部的新请求)
脚本的要点是告诉您,从给定的一天算起,一周中的哪一天将在“X”天之后 我已经学了几个小时如何编码了,请耐心听我说第一个脚本中的Python错误TypeError(底部的新请求),python,Python,脚本的要点是告诉您,从给定的一天算起,一周中的哪一天将在“X”天之后 我已经学了几个小时如何编码了,请耐心听我说 # Prompt the user for input print("This scipt is useful in finding out what day of the week it \ will be after 'X' ammount of days in relation to the current date.") sunday = Sunday = 0 mon
# Prompt the user for input
print("This scipt is useful in finding out what day of the week it \
will be after 'X' ammount of days in relation to the current date.")
sunday = Sunday = 0
monday = Monday = 1
tuesday = Tuesday = 2
wednesday = Wednesday = 3
thursday = Thursday = 4
friday = Friday = 5
saturday = Saturday = 6
print(" ")
todaysDate = input("Enter todays date: ")
daysFromToday = int(input("Enter a integer for days from today: "))
# Compute equasion
daysFromDate = ((todaysDate + daysFromToday) % 7)
# Display results
print(" ")
print("Today is", todaysDate, "and in", daysFromToday, "days it will be", daysFromDate)
print(" ")
print("Sunday = 0, \
Monday = 1, \
Tuesday = 2, \
Wednesday = 3, \
Thursday = 4, \
Friday = 5, \
Saturday = 6")
input("Press enter to close: ")
我的错误是
Traceback (most recent call last):
File "C:\Desktop\daysfromdate.py", line 18, in <module>
daysFromDate = ((todaysDate + daysFromToday) % 7)
TypeError: Can't convert 'int' object to str implicitly
现在我的脚本运行得很好,但最后一个问题是,如何用变量的word版本来回答它
电流输出为
Today is 0 and in 100 days it will be 2
我希望是这样
Today is Sunday in 100 days it will be Tuesday
我想你是在用Python3.x吧?如果是,那么
todaysDate = input("Enter todays date: ")
将返回一个字符串(str
)对象,您应该将其转换为整数,就像您从今天开始的days所做的那样。即
todaysDate = int(input("Enter todays date: "))
(在较旧的Python版本中,input
将为您执行此转换。)
编辑:好的,我知道你想做什么了。请考虑不要使用<代码> EVA/CODE >,因为 EVA是一个非常不安全的结构,允许用户执行任意代码。更清洁的解决方案是:
weekdays = {"sunday": 0,
"monday": 1,
...
"saturday": 6}
dayoftheweek = weekdays[input("Enter the day of the week: ")]
您的代码实际上在我的python版本上运行,但是您的问题可能是变量“todaysDate”,您尚未将其转换为int。请尝试更改:
todaysDate = input("Enter todays date: ")
致:
看看这是否有帮助。我试过了,但当你在第一个提示(星期日、星期日、星期一等)中使用字母时,它会中断并给出错误“第12行,在todaysDate=int(输入(“输入todays date:”))值错误:int()的无效文本,以10为基数:“Sunday.”我使用eval修复了它(input@user2059268:我明白了。我想你应该输入一个整数。请查看更新后的答案以获得一个干净的解决方案;在用户输入时调用eval
会带来安全隐患。我尝试使用建议的方法,一下子就发现第4行的语法错误,'weekdays=(“sunday”):0,“说冒号是错误的。为什么eval是一个安全隐患?谢谢你的帮助。使用你的代码更新的代码:@Morris那是一个{
,而不是(
)。至于安全含义:假设你在一个webapp中这样做,用户在一个你随后eval
的字段中输入“数据库密码”
?(如果你不相信的话,用谷歌搜索“Python eval security”)。我将它从“todaysDate=input(“输入todays date:”)”改为“todaysDate=eval(输入(“输入todays date:”)”)”,并让它工作起来。int不工作,因为我还想使用字母(如星期日、星期一)
todaysDate = input("Enter todays date: ")
todaysDate = int(input("Enter todays date: "))