python刚开始学什么,当您开始学习Python时,您希望了解什么?

这篇博客讨论了开始学习Python时需要注意的要点,强调了熟悉标准库和内置组件的重要性,提到了列表理解、生成器表达式、装饰器等核心概念。作者还提醒了关于变量命名、默认参数、八进制数字解析以及可变默认对象重用的陷阱。此外,建议使用iPython作为学习和调试工具,以及了解如何有效利用Python的习惯用法。
摘要由CSDN通过智能技术生成

当您开始学习Python时,您希望了解什么?

我已决定学习Python3。对于以前的那些人,您觉得在此过程中最有用的是什么,希望您早日知道?

Undistraction asked 2020-02-18T03:34:28Z

29个解决方案

57 votes

我早在1.5.2发行版之前就学习过Python,所以那时对我来说很关键的事情可能不是今天的关键事情。

话虽这么说,这一关键的事情花了我一些时间才意识到,但是我现在认为至关重要:标准库和内置组件实际上提供了其他语言将使之固有的许多功能。

语言本身既小又简单,但是直到您熟悉标准库的内置函数和“核心部分”(例如,如今的sys、itertools、collections、copy等...), 一遍又一遍地重新发明轮子。 因此,您花费更多的时间来熟悉这些部分,您的进度就会越顺利。 每次您有任务要执行时,语言似乎都无法直接支持它,首先要问自己:标准库中的哪些内置程序或模块将使任务变得更加简单,甚至全部完成 为了我? 有时不会有任何东西,但通常会通过遵循这种思维方式找到出色的解决方案。

Alex Martelli answered 2020-02-18T03:34:46Z

33 votes

我希望我不懂Java。

更多功能编程。 (请参阅itertools模块,列表理解,map(),reduce()或filter())

Alexandru answered 2020-02-18T03:35:11Z

28 votes

列表理解(清晰地创建列表):

[x for x in y if x > z]

生成器扩展(与列表理解相同,但直到使用后才求值):

(x for x in y if x > z)

Paul Tarjan answered 2020-02-18T03:35:36Z

25 votes

两件令人费解的事情。 其中之一不适用于Python 3。

a = 095

不起作用 为什么? 前导零是八进制文字。 9在八进制文字中无效。

def foo( bar=[] ):

bar.append( 1 )

return bar

不起作用 为什么? 可变的默认对象被重用。

S.Lott answered 2020-02-18T03:36:05Z

20 votes

import的用途是什么。

该import和zip都将seq设置为None。

使用import删除重复项。

import和zip模块中的几乎所有内容。

函数参数的import和zip前缀如何工作。

函数的默认参数在内部如何工作(即import是什么)。

如何(为什么,实际上)设计功能,使其与import和zip结合使用。

import在课程中的作用。

import实际上是做什么的。

Robert Rossney answered 2020-02-18T03:37:00Z

17 votes

了解如何使用iPython制表符已完成。使用“ whos”查看名称空间中的所有元素。

导入模块后,很容易查看代码:

>>> import os

>>> os?? # this display the actual source of the method

>>> help() # Python's interactive help. Fantastic!

大多数Python模块都有详细的文档记录; 从理论上讲,您可以学习iPython,而您需要了解的其他内容可以通过同一工具学习。

iPython还具有调试模式pdb()。最后,您甚至可以将iPython用作启用python的命令行。 基本的UNIX命令用作%magic方法。 任何不是魔术命令的命令都可以执行:

>>> os.system('cp file1 file2')

BryanWheelock answered 2020-02-18T03:37:34Z

16 votes

没有类型的变量名。 例如,不要将变量命名为“ file”或“ dict”

inspectorG4dget answered 2020-02-18T03:37:54Z

13 votes

装饰器。 编写自己的东西不是您可能想立即做的事情,但是知道从一开始就可以使用2752459818618664461312和2752459818664464461313(以及两者之间的区别)是一个真正的优势。

David Berger answered 2020-02-18T03:38:15Z

7 votes

在外壳上的任何对象,类或路径上使用python -i yourscript.py

您可以在代码中的任意位置运行python -i yourscript.py,它将在该位置启动python shell

您可以运行python -i yourscript.py在yourscript.py结尾处启动外壳

ʞɔıu answered 2020-02-18T03:38:44Z

5 votes

最有用的:深入Python。 正如评论者所指出的那样,如果您正在学习Python 3,则更适合使用Dive Into Python 3。

很快就会知道:virtualenv。

Hank Gay answered 2020-02-18T03:39:08Z

5 votes

单个项目的元组必须以逗号结尾,否则将不会被解释为元组。

' '.join()非常方便(是,2便士)

' '.join()在重新测试模块同时对从属模块进行大量快速更改时非常有用。

并尽可能多地学习常见的“习惯用语”,否则,当习惯用语确实被认为是最好的方式时(例如' '.join()这样的丑陋表达,或者为什么这样的答案),您将大吃一惊,寻找一种更好的方法来做某事 没有isInt(string)函数....答案是,您可以尝试使用“可能的”整数进行包装:尝试然后捕获异常(如果它不是有效的int的话)。该解决方案效果很好,但听起来像是 当您初次遇到它时,答案很糟糕,因此您可能会浪费大量时间说服自己,这确实是一个好方法。

这些东西浪费了我几个小时的时间来确定我认为有些错误的代码的初稿确实可以接受。

python.org的读物:

[http://wiki.python.org/moin/BeginnerErrorsWithPythonProgramming][http://wiki.python.org/moin/PythonWarts]

Kilo answered 2020-02-18T03:39:56Z

4 votes

如果您是刚接触Python的人,请列出其理解力(不是来自较早的版本)。

Justin R. answered 2020-02-18T03:40:16Z

4 votes

关闭。 简洁明了,而不必像其他语言(例如Java)那样使用策略模式

Julson Lim answered 2020-02-18T03:40:36Z

4 votes

如果您从一本好书中学习,它不仅会教您语言,还会教您常见的成语。 这些成语很有价值。

例如,下面是用列表初始化类实例的标准用法:

class Foo(object):

def __init__(self, lst=None):

if lst is None:

self.lst = []

else:

self.lst = lst

如果您从一本书中将其作为习语学习,则不必学习为什么这是标准习语的艰辛方法。 @ S.Lott已经解释了这一点:如果您尝试将默认的初始化方法设为一个空列表,则该空列表仅会被评估一次(在编译时),并且您的类的每个默认初始化的实例都会获得相同的列表实例, 不是这里想要的。

一些习惯用法可以保护您免受意外影响; 一些帮助您从语言中获得最佳性能; 还有一些只是样式的小问题,可以帮助其他Python爱好者更好地理解您的代码。

我从《学习Python》一书中学到了知识,并向我介绍了一些习语。

这是一个专门用于习语的网页:[http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html]

附言 遵循最佳实践Python习惯用法的Python代码通常称为“ Pythonic”代码。

steveha answered 2020-02-18T03:41:24Z

4 votes

在了解os.walk()之前,我手动实现了很多递归目录遍历

Dan Monego answered 2020-02-18T03:41:44Z

3 votes

Lambda函数

[http://www.diveintopython.org/power_of_introspection/lambda_functions.html]

Alan S answered 2020-02-18T03:42:08Z

3 votes

我最近了解到的最酷的事情之一是命令模块:

>>> import commands

>>> commands.getoutput('uptime')

'18:24 up 10:22, 7 users, load averages: 0.37 0.45 0.41'

就像os.popen或os.system一样,但是没有所有的DeprecationWarnings。

而且不要忘了PDB(Python调试器):

% python -m pdb poop.py

jathanism answered 2020-02-18T03:42:37Z

3 votes

在IPython中进入交互模式

from IPython.Shell import IPShellEmbed

ipshell = IPShellEmbed()

ipshell()

pufferfish answered 2020-02-18T03:42:57Z

3 votes

当我开始使用python时,从示例中的主要方法开始。 这是因为我并不了解,之后我发现了如何创建更好的main方法。

daramarak answered 2020-02-18T03:43:18Z

2 votes

顺序导入会覆盖:

如果您这样导入两个文件:

from foo import *

from bar import *

如果foo.py和bar.py都具有一个名为fubar()的函数,并且以此方式导入了文件,则在调用fubar时,将执行bar.py中定义的fubar。 避免这种情况的最好方法是:

import foo

import bar

然后调用foo.fubar或bar.fubar。 这样,您始终知道将执行fubar的哪个文件定义。

inspectorG4dget answered 2020-02-18T03:43:51Z

2 votes

也许触摸会更高级,但是我希望我知道您不使用线程来利用(C)python中的多个内核。 您使用multiprocessing库。

jcdyer answered 2020-02-18T03:44:12Z

2 votes

制表符补全和常规readline支持,包括历史记录,甚至在常规python shell中也是如此。

$ cat ~/.pythonrc.py

#!/usr/bin/env python

try:

import readline

except ImportError:

print("Module readline not available.")

else:

import rlcompleter

readline.parse_and_bind("tab: complete")

import os

histfile = os.path.join(os.environ["HOME"], ".pyhist")

try:

readline.read_history_file(histfile)

except IOError:

pass

import atexit

atexit.register(readline.write_history_file, histfile)

del os, histfile

然后在您的.bashrc中添加一行

export PYTHONSTARTUP=~/.pythonrc.py

这两件事导致了一种探索性的编程风格,“它看起来像这个库可以满足我的要求”,因此我启动了python shell,然后使用tab-completion和help()命令四处摸索,直到找到我想要的东西为止 需要。

生成器和列表推导比您想象的要有用。 不要只是忽略它们。

Peter Boothe answered 2020-02-18T03:44:46Z

1 votes

我希望我精通一种功能语言。 在玩了Clojure之后,我意识到很多Python的功能思想都是从Lisp或其他功能lang借来的

GabiMe answered 2020-02-18T03:45:06Z

1 votes

我希望我马上就知道如何在Python中惯用地编码。 您可以选择喜欢的任何语言并开始使用C,Java等语言进行编码。但是理想情况下,您将学习以该语言的“精神”进行编码。 Python特别相关,因为我认为它具有自己的确定风格。

虽然在我的Python生涯中发现它的时间比我想要的晚一些,但这篇出色的文章总结了许多Python习惯用法和使它与众不同的一些小技巧。 到目前为止,人们在回答中提到的几件事包含在其中:像Pythonista一样的代码:惯用的Python。

请享用!

Matt Baker answered 2020-02-18T03:45:36Z

1 votes

漂亮的印刷:

>>> print "%s world" %('hello')

hello world

字符串的%s

%d代表整数

%f表示浮动

%.xf表示浮点数正好x个小数位。 如果浮点数表示的小数位数较少,那么将添加0

inspectorG4dget answered 2020-02-18T03:46:13Z

0 votes

我真的很喜欢列表理解和所有其他半功能构造。 我希望我在第一个Python项目时就知道这些。

lhahne answered 2020-02-18T03:46:34Z

0 votes

我真正喜欢的是:列出理解,闭包(和高阶函数),元组,lambda函数,无痛苦的大数字。

我希望早点知道:在代码中使用Python习惯用法(例如列表推导而不是列表循环)的事实更快。

MAK answered 2020-02-18T03:46:59Z

0 votes

那个多核就是未来。 仍然爱Python。 它为我编写了相当一部分代码。

wheaties answered 2020-02-18T03:47:19Z

0 votes

功能编程工具,例如all和any

inspectorG4dget answered 2020-02-18T03:47:39Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作执行额外的逻辑。
### 回答1: 在开始学习 Python 编程,可以先考虑以下几本书籍: 1. 《Python 入门指南》是一本很好的初者书籍,适合接触 Python 的读者。它从 Python 的基础语法开始讲起,逐步深入,是一本循序渐进的教程。 2. 《Python 编程:从入门到实践》是一本较为全面的 Python 教程,涵盖了 Python 的基础语法、面向对象编程、Web 开发、数据分析等内容。如果你想要深入学习 Python,可以考虑看看这本书。 3. 《Python 核心编程》是一本面向高级读者的 Python 书籍,介绍了 Python 的高级特性和底层机制,帮助读者更好地理解 Python 的运行原理。如果你想要进一步提高 Python 的编程能力,可以考虑看看这本书。 总的来说,建议先从《Python 入门指南》或《Python 编程:从入门到实践》开始学习,然后再根据自己的兴趣和需求选择适合自己的书籍进行深入学习。 ### 回答2: 对于开始学习Python的人来说,选择一本合适的入门书籍是很重要的。以下是几本适合初者的Python入门书籍的推荐: 1. 《Python编程:从入门到实践》:这本书适合完全没有编程经验的初者。它通过实例和项目来教授基本概念和语法,并引导读者逐步构建自己的应用程序。 2. 《Python基础教程》:这本书适合有一些编程经验的读者。它详细介绍了Python的语法和特性,并提供了大量代码示例和练习,帮助读者巩固所内容。 3. 《Python核心编程》:这本书深入浅出地介绍了Python的核心概念和高级特性,适合想要更深入了解Python的读者。它还提供了许多实际问题和案例研究来帮助读者将所知识应用到实际项目。 4. 《Python编程快速上手:让繁琐工作自动化》:这本书主要关注Python在自动化和数据处理方面的应用,适合那些希望Python用于提高工作效率的读者。它提供了大量实用的示例和案例,帮助读者快速上手。 不论选择哪本书,建议读者在学习过程积极动手实践,并参考相关的在线教程和编程社区,因为实践和交流经验是学习Python的重要方式之一。此外,多做项目和练习也能提高编程技能。最重要的是保持坚持和兴趣,Python是一门有趣且强大的编程语言,相信你将会有愉快的学习体验。 ### 回答3: 开始学习Python,可以考虑以下几本书: 1.《Python编程从入门到实践》:这本书适合初者,从Python基础语法讲起,包括数据类型、条件语句、循环语句等,通过实践项目帮助读者巩固所知识。 2.《Python核心编程》:此书适合希望深入学习Python的读者,包括面向对象编程、异常处理等更高级的主题,提供了大量例子和练习,帮助读者掌握Python的核心概念。 3.《流畅的Python》:这本书适合有一定编程经验的读者,着重讲解Python的特性和最佳实践,如列表推导式、生成器、装饰器等高级用法,带你写出更Pythonic的代码。 4.《Python编程快速上手-让繁琐工作自动化》:如果你想利用Python进行自动化工作,这本书非常适合。它介绍了Python编程的基础知识,同教你如何使用Python处理文本、电子表格、PDF等各种常见任务。 5.除了以上书籍,网络资源也是学习Python的良好选择。例如,可以搜索一些Python教程,参与线上课程或者加入Python开发者社区,与其他程序员交流学习经验。 总之,根据自己的学习能力和学习目标,选择适合自己的书籍进行学习,同结合实践项目巩固所知识,才能更好地掌握Python编程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值