if语句中的语法错误Python

2024-04-25 23:13:38 发布

您现在位置:Python中文网/ 问答频道 /正文

由于某种原因,我得到了这个函数的语法错误。你知道吗

def log(user, successful):
if successful == True:
    with open('userlog.txt', 'a') as logfile:
        logfile.append(datetime.datetime + ' User ' + user + ' Logged in'
else:
    with open('userlog.txt', 'a') as logfile:
        logfile.append(datetime.datetime + ' Unsuccessful login attempt as ' + user) )

这是错误

    Traceback (most recent call last):
  File "C:\conf.py", line 4, in <module>
    import func
  File "C:\func.py", line 48
    else:
       ^
SyntaxError: invalid syntax

现在,我看到其他帖子说,当这种情况发生时,我应该添加一个额外的括号。我试过了,但没用。提前谢谢。你知道吗


Tags: inpytxtdatetimeaswithlineopen
1条回答
网友
1楼 · 发布于 2024-04-25 23:13:38

看起来你复制/粘贴了一些错误的代码。此行需要右括号:

logfile.append(datetime.datetime + ' User ' + user + ' Logged in'
#                                                                ^

这个有一个额外的右括号:

logfile.append(datetime.datetime + ' Unsuccessful login attempt as ' + user) )
#                                                                            ^

只需将多余的括号从第二行移到第一行,一切都会好起来的。你知道吗


实际上,你还有一个问题。正如@MartijnPieters在注释中所说的,不能用字符串连接datetime.datetime对象。你知道吗

我想你真的想做:

logfile.append(str(datetime.datetime.now()) + ' Unsuccessful login attempt as ' + user)

这将以字符串形式返回当前时间,然后可以将其与其他字符串串联:

>>> import datetime
>>> str(datetime.datetime.now())
'2014-12-15 13:03:49.242187'
>>>

相关问题 更多 >

    热门问题