【问题标题】:Invalid Token and if statement not working无效的令牌和 if 语句不起作用
【发布时间】:2024-04-30 21:40:01
【问题描述】:

这是我第一次使用 Python 编程,我不太确定自己做错了什么。 我只是想用文字打印小时(时间)但是当我将 if 语句设置为检查时出现错误“SyntaxError: invalid token”

if current_hour == 05:

当我将 05 更改为 5 时,If 语句什么也不做。

这是我的代码:

import time

current_hour = time.strftime("%I")
print(current_hour)

if current_hour == 05:
    print("Five")

谢谢!

【问题讨论】:

  • 05 确实是python3 中的语法错误,因为0 用于定义八进制如0o5 或十六进制如0x15 :)

标签: python python-3.x if-statement time printing


【解决方案1】:

current_hour 是一个字符串。为此,您需要以下内容:

import time

current_hour = time.strftime("%I")
print(current_hour)

if current_hour == '05':
    print("Five")

或者这个:

import time

current_hour = int(time.strftime("%I"))
print(current_hour)

if current_hour == 5:
    print("Five")

【讨论】:

  • "%I" 返回 '05'
  • @WaketZheng 好的然后current_hour == '05'
【解决方案2】:

time.strftime 返回一个字符串,如文档中所述:

将表示由 gmtime() 或 localtime() 返回的时间的元组或 struct_time 转换为格式参数指定的字符串。

要在 if 语句中进行比较,您需要具有相同的数据类型,因此要么将结果转换为 int,要么与 "05" 之类的字符串进行比较

如果不确定返回的是哪种数据类型,可以使用type()方法检查:

>>> print(type(current_hour))
<class 'str'>

【讨论】:

    最近更新 更多