当前位置: 首页 > 面试题库 >

Python的语法错误

南门正祥
2023-03-14
问题内容

我正在看这里列出的代码,它们提供了一个非常有趣的结构来在线用Python编写“时钟”。我以前从未见过这种古怪的语法,而且老实说,我不知道它是如何工作的。这在Python中是完全黑魔法。但是,即使这不是编写作者意图的最Python方式,我仍然想知道它是如何工作的。

qClock = (lambda:0, time.clock)[qDuration > 0]
qDuration = (1, (qClock() + qDuration))[qDuration > 0]

我的虽然过程

  • qClock 如果持续时间已过,则返回True
  • qDurration 作为int开始,但后来更改为lambda函数?
  • 为什么每个清单的末尾都有清单?我觉得这些不是清单。

问题答案:

这是一种编写三元条件的古老方法。它应该是:

qClock = time.clock if qDuration > 0 else lambda: 0
qDuration = (qClock() + qDuration) if qDuration > 0 else 1

Python 2.5中,其引入的三元条件(前链路),你可以通过创建一个2元素的元组,并用一个布尔表达式索引它仿效它,由于False被作为经处理0True作为1



 类似资料:
  • 目前遇到此语法错误,错误发布在代码下方。 上面的代码,无法找出if语句上的语法错误。错误消息将很快粘贴为注释

  • 问题内容: 为什么Python在第9行的简单语句中给我一个语法错误? Python的版本是: 问题答案: 在Python 3中,print是一个函数,您需要像这样调用它。

  • 问题内容: 我在else语句上不断收到语法错误,但不确定为什么会继续产生此错误。我在相同的def中没有其他任何语句,但仍然会出错。我该怎么办? 问题答案: 您的log_f.write语句还缺少结尾的’)’,这可能会使解析器感到困惑…并且缩进看起来不正确。剪切和粘贴问题?

  • 问题内容: def sort_dictionary( wordDict ): sortedList = [] for entry in sorted(wordDict.iteritems(), key = lambda (k, v): (-v, k) ): sortedList.append( entry ) 该函数将接收包含诸如以下信息的字典:{‘this’:1,’is’:1,’a’:1,’la

  • 我是Python新手,我想在我的应用程序中导入tweepy。我运行此代码(取自Tweepy官方文档): 它返回此错误: 回溯(最近一次调用):文件“C:/Users/user/PycharmProjects/TwitterPythonAnalytics/file3.py”,第1行,在导入tweepy文件“C:\Users\user\PycharmProjects\TwitterPythonAnal

  • 语法到底有什么问题,为什么会出现在下面的代码中?我已经数过括号了,但还没弄清楚。 注意:它给出了如下语法错误: