&引用;名称错误:名称';日间时间';“未定义”;Python3.8中的错误
我正在制作一个程序,根据输入的时间显示一天中的部分时间 我的代码:&引用;名称错误:名称';日间时间';“未定义”;Python3.8中的错误,python,python-3.x,if-statement,nameerror,Python,Python 3.x,If Statement,Nameerror,我正在制作一个程序,根据输入的时间显示一天中的部分时间 我的代码: user_day = input("What's the time? ") if user_day >= 20 and user_day <= 24: day_time = "Night" elif user_day >= 24 and user_day <= 12: day_time = "Morning" elif us
user_day = input("What's the time? ")
if user_day >= 20 and user_day <= 24:
day_time = "Night"
elif user_day >= 24 and user_day <= 12:
day_time = "Morning"
elif user_day >= 12 and user_day >= 17:
day_time = "Noon"
elif user_day >= 17 and user_day >= 20:
day_time = "Evening"
请帮助我。如果您希望以后使用它,您需要在if块的上下文之外声明
日时间
比如说:
user_day = input("What's the time? ")
day_time = None
if user_day >= 20 and user_day <= 24:
day_time = "Night"
elif user_day >= 24 and user_day <= 12:
day_time = "Morning"
elif user_day >= 12 and user_day >= 17:
day_time = "Noon"
elif user_day >= 17 and user_day >= 20:
day_time = "Evening"
user\u day=input(“几点了?”)
日期时间=无
如果用户日>=20,用户日=24,用户日=12,用户日>=17:
day\u time=“中午”
如果用户日>=17且用户日>=20:
day\u time=“晚上”
您需要在else
语句中定义day\u time
,这样当两个现有条件都不满足时,day\u time
仍将有一个值
此外,您还需要将用户输入转换为整数,然后才能使用带有字符串的
,etc运算符:
user_day = int(input("What's the time? "))
if user_day >= 20 and user_day <= 24:
day_time = "Night"
elif user_day >= 24 and user_day <= 12:
day_time = "Morning"
elif user_day >= 12 and user_day >= 17:
day_time = "Noon"
elif user_day >= 17 and user_day >= 20:
day_time = "Evening"
else:
day_time = "Unknown"
user\u day=int(输入(“几点了?”)
如果用户日>=20,用户日=24,用户日=12,用户日>=17:
day\u time=“中午”
如果用户日>=17且用户日>=20:
day\u time=“晚上”
其他:
day\u time=“未知”
- 问题是,
user\u day
作为输入时是一个字符串。
- 因为它是一个字符串,所以不满足任何条件,因此,
day\u time
仍然未定义。
- 将输入包装在
try except
块中,以检查输入是否为正确的数据类型。在这种情况下,str
类型可以转换为int
或float
- 必须将其转换为
int
或float
,具体取决于您只接受小时还是分数小时
user_day
应处于while True
循环中,以继续请求时间,直到收到有效的数字输入
- 最后,在这种情况下,通过将条件从最小到最大进行适当排序,可以更有效地编写代码。
user\u day
将逐步下降到正确的状态
为True时:
尝试:
user_day=int(输入(“24小时制的小时数是多少?”)
ValueError除外:#检查数据类型是否正确;也许有人会拼写时间
打印('请以数字形式输入小时')
如果(用户日>=24)或(用户日<0):#24及以上或小于0是无效时间
打印('请输入有效时间')
其他:
中断#有有效输入时中断
如果用户日<12:
day_时间='上午'
elif用户日<17:
day_时间=‘中午’
elif用户日<20:
day_时间=‘晚上’
其他:
白天时间=‘夜晚’
打印(日/时)
使用
- 返回每个输入值所属的存储箱的索引
- 使用
np.digitalize
返回的值从day\u time
将numpy导入为np
尽管如此:
尝试:
user_day=int(输入(“24小时制的小时数是多少?”)
ValueError除外:#检查数据类型是否正确;也许有人会拼写时间
打印('请以数字形式输入小时')
如果(用户日>=24)或(用户日<0):#24及以上或小于0是无效时间
打印('请输入有效时间')
其他:
中断#有有效输入时中断
day_time=[“早上”、“晚上”、“中午”、“晚上”]
idx=np.数字化(用户日,垃圾箱=[12,17,20])
打印(日/时[idx])
if user\u day…
if-user部分代码的错误代码在哪里?请接受有帮助的答案。
user_day = int(input("What's the time? "))
if user_day >= 20 and user_day <= 24:
day_time = "Night"
elif user_day >= 24 and user_day <= 12:
day_time = "Morning"
elif user_day >= 12 and user_day >= 17:
day_time = "Noon"
elif user_day >= 17 and user_day >= 20:
day_time = "Evening"
else:
day_time = "Unknown"