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

为什么在Python中不能在循环前使用分号?

颛孙智勇
2023-03-14
问题内容

我可以使用分号在Python中加入行,例如

a=5; b=10

但是为什么我不能这样做

x=['a','b']; for i,j in enumerate(x): print(i,":", j)

问题答案:

简短的(至今有效的)答案只是“因为未定义语言语法以允许它”。至于为什么
这是 的话,就很难,如果除非你问任何人与语法的部分来了,但我想这是由于可读性,这是Python的目标之一并非不可能,以确保1。

你为什么要写像这样晦涩难懂的东西?只需将其分成多行:

x = ['a','b']
for i,j in enumerate(x):
    print(i, ":", j)

我认为这种变体要清晰得多。

1自import this可读性计数。



 类似资料:
  • 问题内容: 我一直在使用“ if”来测试自己的版本,并且一切似乎都正常。当然,如果使用signalAll()而不是signal(),这将导致严重崩溃,但是如果一次仅通知一个线程,这怎么会出错? 他们的代码在这里 -检查put()和take()方法;在Condition的JavaDoc顶部可以看到一个更简单,更重点的实现。 下面是我实施的相关部分。 PS我知道,通常,尤其是在这样的lib类中,应该让

  • 在我的程序中,我发现当为时,循环无法正确退出。它看起来像整数溢出,远远大于10,循环不会停止。请告诉我发生了什么,以及如何在大型项目中避免这个错误。 代码链接

  • 《铁锈之书》第3.5章摘录: 我们使用关键字和值。循环结束后,我们使用分号结束将值赋给的语句。 加上代码片段: 我理解这是如何工作的,以及为什么结果是20,但我注意到,如果我删除包含关键字的行上的分号,程序是等效的。 为什么分号在这种情况下是可选的?

  • 问题内容: 我了解此构造的工作原理: 但是我不明白为什么else在这里使用它作为关键字,因为它表明所讨论的代码仅在for块未完成时才运行,这与它的工作相反!无论我如何考虑,我的大脑都无法从for陈述到else障碍的无缝发展。对我来说,还是更有意义(我正在尝试训练自己这样阅读)。 我想知道Python编码人员是如何在头脑中读取这个结构的。也许我缺少使这些代码块更容易理解的东西? 问题答案: 即使是经

  • 问题内容: 这段代码: 使我的计算机挂起5秒钟,然后打印出0-9,而不是每半秒打印一次数字。难道我做错了什么? 问题答案: ,默认情况下,在内部打印到并缓冲要打印的输出。 通常是否由文件确定输出是否被缓冲,但是如果关键字参数为true,则将强制刷新流。 在版本3.3中更改:添加了关键字参数。 报价文件, 交互式时,标准流是行缓冲的。否则,它们像常规文本文件一样被块缓冲。 因此,就您而言,您需要像这

  • 如果我有时运行这些程序,它会在打印“玩家赢”或“玩家输”后继续运行,我可以找到原因。。 这里的输出: 球员滚轴3 2=5 分数是5 玩家滚轮6 4=10 游戏者滚轴6=12 玩家滚轮5 5=10 球员滚轴12=3 球员滚轴1 3=4 球员获胜 球员滚轴4 6=10 球员滚轴4 1=5 构建成功(总时间:0秒)