Questions tagged «python»

Python是一种动态类型化的高级解释型编程语言。它的设计侧重于清晰的语法,一种面向对象编程的直观方法,以及使正确的做事方式变得显而易见的方法。Python支持模块和异常,并具有广泛的标准模块库。Python是通用的,因此从Web到嵌入式系统都得到了广泛的使用。

6
单引号与双引号[关闭]
我刚从Java背景开始从事Python的工作,并且注意到其他开发人员倾向于使用单引号('')而不是双引号("")来引用字符串。例如: line1 = 'This is how strings typically look.' line2 = "Not like this." 除了个人喜好之外,还有其他特殊原因吗?这是引用字符串的正确方法吗?具体来说,我想知道的是,是否存在某种类型的标准或公认的最佳实践来推动这种编码方式。

8
为什么使用try…最终没有catch子句?
经典的编程方式是使用try ... catch。什么时候适合使用try不catch? 在Python中,以下内容看起来合法且有意义: try: #do work finally: #do something unconditional 但是,代码没有catch任何内容。类似地,在Java中可能会认为如下: try { //for example try to get a database connection } finally { //closeConnection(connection) } 看起来不错,突然间我不必担心异常类型等。如果这是一种好的做法,那么什么时候才是好的做法?另外,为什么这不是良好做法或不合法?(我没有编译源代码。我正在询问它,因为它可能是Java的语法错误。我检查了Python是否确实可以编译。) 我遇到的一个相关问题是:我继续编写函数/方法,最后必须返回一些内容。但是,它可能位于不应该到达的地方,必须是返回点。因此,即使我处理了上面的异常,我仍会NULL在代码中某些不应该到达的位置(通常是方法/函数的结尾)返回或返回一个空字符串。我一直设法对代码进行重组,以使它不必一定要进行重组return NULL,因为这看起来绝对不像是一种好习惯。

5
是Python解释还是编译?
这只是我在阅读有关解释和编译语言时的一个奇迹。 Ruby无疑是一种解释型语言,因为源代码在执行时由解释器处理。 相反,C是一种编译语言,因为必须先根据机器编译源代码,然后再执行。这样可以更快地执行。 现在开始使用Python: 导入时,Python代码(somefile.py)在同一目录中创建文件(somefile.pyc)。让我们说导入是在python shell或django模块中完成的。导入后,我稍稍更改了代码,然后再次执行导入的功能,以发现它仍在运行旧代码。这表明* .pyc文件是类似于编译C文件后创建的可执行文件的已编译python文件,尽管我无法直接执行* .pyc文件。 当直接执行python文件(somefile.py)(./somefile.py或python somefile.py)时,不会创建.pyc文件,并且按指示解释行为的方式执行代码。 这些建议每次在新过程中导入python代码时都会编译python代码,以创建.pyc,而直接执行时会对其进行解释。 那么我应该将其视为哪种类型的语言?解释还是编译?以及它的效率与解释和编译语言相比如何? 根据Wiki的“ 解释语言”页面,它被列为编译为虚拟机代码的语言,这是什么意思?

3
为什么Python用C而不是C ++编写?
在Python的教程中,可以看到Python的原始实现是在C中实现的; 另一方面,用C编写的Python实现(...) 我很好奇为什么Python是用C而不是C ++编写的? 我想知道此决定的原因,答案应以历史参考为依据(而非基于观点)。

7
使用Python文件作为配置文件有多么糟糕的主意?
我一直使用JSON文件配置应用程序。我从编写大量Java时就开始使用它们,现在我主要从事服务器端和数据科学Python开发,并且不确定JSON是否是正确的选择。 我已经看到Celery使用实际的Python文件进行配置。最初我对此持怀疑态度。但是,使用简单的Python数据结构进行配置的想法开始对我产生影响。一些优点: 数据结构将与我通常在其中进行编码的结构相同。因此,我无需改变心态。 我的IDE(PyCharm)了解配置和代码之间的联系。Ctrl+ B使您可以轻松地在配置和代码之间跳转。 我不需要使用IMO不必要的严格JSON。我在看你双引号,没有结尾的逗号,也没有评论。 我可以在正在使用的应用程序中编写测试配置,然后轻松将它们移植到配置文件,而无需进行任何转换和JSON解析。 如果确实需要,可以在配置文件中执行非常简单的脚本。(尽管这应该非常非常有限。) 所以,我的问题是:如果我换了脚,我该如何射击自己的脚? 没有技能的最终用户将不会使用配置文件。对配置文件的任何更改当前都提交给Git,并作为连续部署的一部分部署到我们的服务器中。除非有紧急情况或正在开发中,否则无需进行手动配置更改。 (我考虑过YAML,但有关它的一些问题令我感到不适。因此,目前它不在美国的餐桌上。)

5
在Python的类中将实例变量声明为None是一种好习惯吗?
考虑以下类别: class Person: def __init__(self, name, age): self.name = name self.age = age 我的同事倾向于这样定义: class Person: name = None age = None def __init__(self, name, age): self.name = name self.age = age 这样做的主要原因是他们选择的编辑器显示了自动补全的属性。 就我个人而言,我不喜欢后者,因为一个类将那些属性设置为毫无意义None。 哪种方法更好,原因何在?
68 python 

5
为什么要将函数存储在python字典中?
我是python的初学者,我刚刚学习了一种涉及字典和函数的技术。语法很简单,看似微不足道,但是我的python感觉有点刺痛。有人告诉我这是一个深层的,非常Python化的概念,我不太了解它的重要性。有人可以给这项技术起个名字,并解释它为何/为什么有用吗? 该技术是当您拥有python字典和打算在其上使用的函数时。您在dict中插入一个额外的元素,其值是函数的名称。当您准备调用该函数时,可以通过引用dict元素而不是按名称引用该函数来间接发出该调用。 我正在使用的示例来自第2版的《学习Python的艰难方法》。(这是您通过Udemy.com注册时可用的版本;可惜的是,实时免费HTML版本当前是Ed 3,并且不再包含此示例)。 释义: # make a dictionary of US states and major cities cities = {'San Diego':'CA', 'New York':'NY', 'Detroit':'MI'} # define a function to use on such a dictionary def find_city (map, city): # does something, returns some value if city in map: return map[city] else: return …

5
R与Python进行数据分析[关闭]
我已经进行了大约一年的编程,并且我对数据分析和机器学习非常感兴趣。我正在参加一些在线课程,并且正在阅读几本书。 我正在做的所有事情都使用R或Python,并且我正在寻找有关是否应该专注于一种语言(如果需要的话)还是同时使用这两种语言的建议。他们互相补充吗? -我应该提到我在学校使用C#,但是通过自学熟悉了Python。


16
为什么在Python中如此受欢迎?[关闭]
除了不喜欢空白作为语法之外,我并不讨厌,只是对Python不感兴趣。 我欣赏Perl的诗歌,并用bash&korn和shebang编写了漂亮的Web服务gnuplot。我写文件,troff不介意REXX。几年前没有发现tcl有用,但是关于Python的最大臭味是什么?我在简历中看到工作清单和许多应聘者,以此作为奖杯和奖杯。 我想实际上,我想以此为卖点,我只是找不到原因。
54 python  perl  bash 

5
我应该传递要打开的文件名还是打开文件?
假设我有一个处理文本文件的函数-例如,读取文本文件并删除单词“ a”。我可以将其传递给文件名并处理函数中的打开/关闭,也可以将其传递给打开的文件并期望有人调用它可以处理关闭它的问题。 第一种方法似乎是一种更好的方法,可以确保没有文件保持打开状态,但是会阻止我使用StringIO对象之类的东西 第二种方法可能有点危险-无法知道文件是否将关闭,但是我可以使用类似文件的对象 def ver_1(filename): with open(filename, 'r') as f: return do_stuff(f) def ver_2(open_file): return do_stuff(open_file) print ver_1('my_file.txt') with open('my_file.txt', 'r') as f: print ver_2(f) 这些通常是其中之一吗?通常是否期望某个函数以这两种方式之一运行?还是应该对其进行详细记录,以便程序员可以适当地使用该函数?

6
为什么没有其他可编译为Python字节码的编程语言?
在Java中,有多种语言可以编译为Java字节码,并且可以在JVM上运行-Clojure,Groovy和Scala是我能记住的主要语言。 但是,在由Python解释器运行之前,Python也会转换为字节码(.pyc文件)。我可能只是一无所知,但是为什么没有其他可编译为python字节码的编程语言呢? 仅仅是因为没有人打扰,还是因为某种固有的限制或障碍使得这样做变得如此困难?

5
Python为什么不允许多行lambda?
有人可以解释BDFL选择使Python Lambdas单行的具体原因吗? 这很好: lambda x: x**x 这会导致错误: lambda x: x**x 我了解到,使lambda多行处理会以某种方式“干扰”正常的缩进规则,并且需要添加更多的例外,但这不值得吗? 以JavaScript为例。没有这些匿名功能,怎能生存?它们是必不可少的。难道Pythonista使用者不希望为了将每个多行函数都作为参数传递而不得不命名吗?
50 lambda  python 

4
为什么Python中的迭代器会引发异常?
这是Java中迭代器的语法(C#中的语法有点相似): Iterator it = sequence.iterator(); while (it.hasNext()) { System.out.println(it.next()); } 有道理。这是Python中的等效语法: it = iter(sequence) while True: try: value = it.next() except StopIteration: break print(value) 我认为例外应该只在特殊情况下使用。 为什么Python使用异常来停止迭代?

6
我如何学习从零到Web开发的Python?[关闭]
我正在研究用于网络开发的Python。 假设我已经具备Java(JSP / Servlets)的一些基本的Web开发经验,我已经熟悉Web设计(HTML,CSS,JS),基本的编程概念,并且我对Python完全陌生,那么我该怎么做以结构化的方式学习Python,最终将引导我使用Python和Django进行Web开发吗? 我并不急于用Python制作Web应用程序,因此我真的很想彻底学习它,以免在我对涉及Python中的Web开发的技术的了解上保持任何差距。有书籍,资源或技巧可以帮助我吗?我应该按什么顺序阅读它们? 更新: 当我说以结构化的方式学习时,我的意思是从基础开始,然后学习高级内容,而又不离开Python必须提供的一些重要细节/功能。我想知道如何将我在编程中已经知道的东西应用于Python。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.