Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;名称错误:名称';日间时间';“未定义”;Python3.8中的错误_Python_Python 3.x_If Statement_Nameerror - Fatal编程技术网

&引用;名称错误:名称';日间时间';“未定义”;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"