Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.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
检查编写代码的python版本的标准(不是工具)?_Python_Version_Compatibility - Fatal编程技术网

检查编写代码的python版本的标准(不是工具)?

检查编写代码的python版本的标准(不是工具)?,python,version,compatibility,Python,Version,Compatibility,你可以在互联网上找到许多小程序或示例代码,它们不一定指定它们是在什么上下文中编写的(shebang),也不一定使用明显的东西作为打印语句 它们可能会在某些或其他版本的python中崩溃,但这可能不是因为基本的不兼容,而只是因为缺少库,而这些库可能很难找到 有一些工具如中所述,但这里的问题是:“决定代码是否与任一版本的python兼容的好标准是什么?” 至少有: 舍邦的存在(但通常不存在) Print语句(不带括号)来自python2或更早版本(但并不总是有它们,尤其是在GUI程序中) 整数除法

你可以在互联网上找到许多小程序或示例代码,它们不一定指定它们是在什么上下文中编写的(shebang),也不一定使用明显的东西作为打印语句

它们可能会在某些或其他版本的python中崩溃,但这可能不是因为基本的不兼容,而只是因为缺少库,而这些库可能很难找到

有一些工具如中所述,但这里的问题是:“决定代码是否与任一版本的python兼容的好标准是什么?”

至少有:

  • 舍邦的存在(但通常不存在)
  • Print语句(不带括号)来自python2或更早版本(但并不总是有它们,尤其是在GUI程序中)
  • 整数除法(//)来自Python3及更高版本(但并非所有程序都计算整数除法)
还有什么


@Mureinik、@JJJ、@Bear Brown、@Tempux,请删除重复标志。

理想情况下,python脚本的第一行将包含一个shebang,如:
#/usr/bin python
和/或注释,告诉您它将使用的最小(可能是最大)版本

其他线索:

print Something  # Python 2 Only
print(Something)  # Python 3 Mostly

from __future__ import print_function # As first active code

print(Something)  # Now works for both
当然,编写良好的代码要么与许多版本兼容,要么专门检查所需的版本


如果缺少库,则错误消息非常清楚,但大部分python代码倾向于“只运行”™ 因此,真正的解决方案是使用您必须掌握的python版本来尝试代码。

您可以从官方文档中查阅:

我假设您有一个Python 3.x的IDE,您可以在其中尝试这段代码。
正如Steve所说,您可以通过使用python(x)的
print
函数进行区分

因此,如果代码中有print语句(如上所述),您将得到:

SyntaxError: Missing parentheses in call to 'print'.

因此,这段代码是针对2.x python

的,有点主观,但我可能会看看print语句的格式。相同的程序可能在所有python版本中运行,因为版本之间有更多的共同点和差异。所以只要在你想要的版本下运行程序,你就会自己得到答案。寻找一个shebang。或是评论。或者是写这封信的人。我在评论中得到了这封信,现在投票结束。按照工具的链接阅读代码,这是您的答案。将读者发送到一段代码对用户不是很友好。特别是因为寻找代码片段的人通常不是经验丰富的程序员。我还看到一些库检查
sys.version\u info
,并在使用错误的Python版本时引发
运行时错误
(通常在
\uu init\uuuuu.py
).Good point@Coal_uu然而,这些工具往往位于编写良好的库中,而不是像问题所述在线找到的小实用程序和代码片段中。是的,我没有意识到python 2中的print语句和python 3中的print函数之间的差异。但是,这也是我指定“小程序”或“示例代码”的原因,它们可能不一定有shebang或print指令(特别是GUI代码)。您可以添加print()状态,然后运行它。解决了吗?您可以浏览官方文档。嗯,我正在寻找快速技巧。当然,文档是相互询问的,但最重要的是,它会让我觉得工作方式不同,但不一定看起来不同。在任何语言中都没有这样的“快速技巧”。你应该深入并进行相应的练习。不过,如果你有更少的时间,你可以在代码中使用
print()
SyntaxError: Missing parentheses in call to 'print'.