ホームページ  >  記事  >  バックエンド開発  >  Python初心者が知っておくべきこと

Python初心者が知っておくべきこと

烟雨青岚
烟雨青岚オリジナル
2020-06-17 12:54:302745ブラウズ

Python初心者が知っておくべきこと

Python 初心者が知っておくべきこと

#1. はじめに

##「Python 上級」コラムへようこそ!ここに来る学生は皆、Python の基礎知識を大体習得しており、成長の途中にあるはずです。この間、私は多くの戸惑いに遭遇し、今後の学びの方向性について迷いを感じたことと思います。あなたが直面している状況はよく理解しています。私は 2007 年からプログラミング言語 Python に触れるようになり、2009 年から今日まで、すべての開発作業にのみ Python を使用してきました。自分の学習過程を振り返ってみると、数え切れないほどの困難に遭遇し、戸惑い、混乱することもありました。このコラムは、当時私と同じように混乱していた Python 初心者が悩みから抜け出し、早く成長できるようにするために作成されました。私の経験が本当に役立つことを願っています。

2. 学習目標を明確にし、成功を急がず、目標を高すぎないようにしましょう

今は騒がしく勢いのある時代です。私たちは日常生活の中で数多くのホットな話題に常に目を奪われ、深く読んだり考えたりする時間や機会​​がほとんどありません。私は、学習には集中力とゆっくりとした学習が必要であり、長期にわたるものであると同時に、学習に功利主義を与えすぎるべきではないと常々思っています。 Python プログラマーの成長ロードマップは次のようになります: 基本文法 –> 言語感覚トレーニング –> プロジェクト演習 –> さまざまな方向で学習を継続 –> 中級プログラマー –> 深さと幅を拡大 –> 上級プログラマー。 しかし、多くの初心者の学習ロードマップは次のようなものです。基本的な構文を学習した後、http プロトコルと Ajax 非同期リクエストを理解せずに興奮してクローラーを学習するか、基本的な構文を学習した後、私は次のようなものに進みます。視覚認識をするのにOpenCVのデータ構造すら理解できず、基礎的な文法を学んだ後もニューラルネットワークを直接勉強し、始めてから挫折するまでを繰り返しました。

初心者へのアドバイスは、成功を急がず、目標を高くしすぎず、一歩ずつ着実に取り組んでいけば、成功は自然にやってくるということです。成功を急がなければ回り道を避けることができ、成長を遅らせないだけでなく、実際に時間を節約することもできます。目標を高くしすぎず、1 つの目標を達成してから次の目標を設定し、継続的な成功と進歩を通じて自信を築き、学習への強い関心を刺激することができます。
Python初心者が知っておくべきこと
3. Python の学習を始める前に、いくつかの準備をする必要がありますPython初心者が知っておくべきこと

Now is better than never,
Although never is often better than *right* now.
これは、Python の禅からの文を翻訳したものですつまり、何かをすることは、やらないよりは良いかもしれませんが、何も考えずに行うことは、やらないより悪いということです。実際、Python の学習を始める前に、背景を理解し、いくつかの選択をし、コンピューターを準備する必要があります。

2.1 Python のさまざまなディストリビューション

Python は亀おじさんの一人息子ですが、有名なものを含む多くのいとこがいます。どちらが自分にとってよりフレンドリーであるかわからない場合は、直接 Python を選択することをお勧めします。将来、他のいとこを扱う必要がある場合でも、Python の方が使いやすいでしょう。初心者が AnacondaPython と ActivePython を選択することはお勧めできませんが、私の意見では、これらが提供する利便性は、ユーザーが学習するのにそれほど苦労するものではありません。

Cpython

CPython は Python リファレンス実装であり、他のすべての Python 派生ディストリビューションの標準化されたバージョンとみなすことができます。 CPython は、Python 言語の最高意思決定レベルにある多数の主要人物によって C で書かれています。 CPython は、最適化に関しては最も保守的です。もちろん、これは欠点ではなく、設計上の方向性です。 Python の管理者は、CPython を最も広く互換性があり、標準化された Python の実装にしたいと考えています。 CPython は、Python 標準との高い互換性と一貫性を必要とするユーザーに最適です。さらに、CPython は、最も基本的な方法で Python を使用したいが、そのために利便性をある程度犠牲にすることをいとわない専門家にも適しています。

アナコンダ Python

Anaconda は、Anaconda Company (以前は Continuum Analytics として知られていました) から生まれ、商用ベンダーからのサポートを必要とし、エンタープライズ サポート サービスを必要とする Python 開発者にサービスを提供するように設計されています。 Anaconda Python の主な使用例には、数学、統計、エンジニアリング、データ分析、機械学習、その他の関連アプリケーションが含まれます。 Anaconda は、SciPy、NumPy、Numba など、Python の商用および科学的使用シナリオで一般的に使用されるさまざまなライブラリをバンドルしており、カスタマイズされたパッケージ管理システムを通じてさらに多くのライブラリ アクセス機能を提供します。

ActivePython

Anaconda と同様に、ActivePython も営利企業 ActiveState Corporation によって作成および保守されています。同社は、多言語の Komodo IDE だけでなく、多言語ランタイムも販売しています。 ActivePython は主にエンタープライズ ユーザーとデータ サイエンティスト、つまり Python 言語を使用したいが、Python のアセンブリと管理に多くのエネルギーを浪費したくない人を対象としています。 ActivePython は、Python の通常の pip パッケージ マネージャーを使用しますが、認定された圧縮パッケージの形式で数百の共通ライブラリと、Intel Math Core Library などのサードパーティの依存関係を持つ他のいくつかのパブリック ライブラリも提供します。

PyPy

PyPy は、ジャストインタイム (JIT) コンパイルを利用して実行を高速化する CPython インタープリターの代替です。 Python プログラム。実行される実際のタスクによっては、パフォーマンスが大幅に向上する可能性があります。 Python、特に CPython に関する苦情は、主にその速度に関するものです。デフォルトでは、Python は C よりもはるかに遅く実行されます。その差は数百倍も高速になる場合もあります。 PyPy JIT は Python コードを機械語にコンパイルするため、平均実行速度は CPython の 7.7 倍になります。一部の特定のタスクでは、その高速化効果は 50 倍に達することがあります。

Jython

JVM (Java Virtual Machine) は、Java を除く複数の言語の実行時オプションとして使用できます。長いリストには、Groovy、Scala、Clojure、Kotlin、Python、そしてもちろん、Jython が含まれています。 Jython の最大の欠点は、Python の 2.x バージョンしかサポートしていないことです。 Python 3.x バージョンのサポートは現在開発中ですが、まだかなり時間がかかります。現時点では、関連するバージョンはリリースされていません。

IronPython

Jython による JVM 上の Python 実装ソリューションの位置付けと同様に、IronPython は .Net ランタイムのセット、つまり CLR (共通言語ランタイム) - Python の実装。 IronPython は CLR の DLR (ダイナミック言語ランタイム) を利用して、CPython と同等のダイナミクス レベルで Python プログラムを実行できるようにします。 Jython と同様に、IronPython は現在 Python 2.x バージョンのみをサポートしています。ただし、IronPython 3.x の実装はすでに集中的な開発が行われています。

2.2 Python のインストール

Python 公式 Web サイトからダウンロードする場合は、正しいバージョンを選択するように注意してください。学習用であれば最新版をダウンロードしても問題ありませんが、本番用であれば、開発に必要なサードパーティモジュールが最新版のPythonに対応しているかどうかを考慮する必要があります。インストールするときは、下の 2 つのチェックボックスをオンにすることを忘れないでください。オンにしないと、その後のモジュールのインストールで問題が発生します。デフォルトのインストール方法を使用することをお勧めします。
Python初心者が知っておくべきこと

2.3 便利な開発ツールを選ぶ

プログラミング言語を学ぶには、まず適切な統合開発ツールを見つける必要があります。自然な考え。なぜだめですか? IDE はタスクを自動的に完了し、ワンクリックで実行し、ブレークポイントを使用してデバッグできます。 IDE を使用してプロジェクトを開発することは、豪華なインテリアを備えた車を運転するようなものです。運転の楽しさを楽しんでください。ボンネットの下でエンジンがどのように動作するかなど誰が気にするでしょうか。私の若い同僚も IDE のファンで、最初は pycharm を使用していましたが、後に人気の vscode を使用しました。

しかし、私は常に、プログラミングは運転のようなものだと信じています。プログラマーは運転手であり、運転を通勤スキルとみなすホワイトカラーやゴールドカラーの労働者ではなく、プロの運転手です。プロのドライバーですから、蝶ネクタイと白手袋を着用して豪華な内装と高級仕様の車を運転するだけでは満足できず、修理やメンテナンスのためにエンジンフードを開ける能力が必要です。

この観点から、初心者が最初から統合開発ツールを使用することはお勧めしません。少なくとも最初の 1 週間は IDE を使用しないでください。 Python のようなインタープリタ型スクリプト言語の場合は、便利なエディターで十分です。 Linux プラットフォームでは、vim または emacs は両方とも十分に適しています (両方またはいずれかに精通している場合は、敬意を受け入れてください) が、Windows プラットフォームでは、メモ帳を使用することをお勧めします。 Python 初心者が IDE の代わりにエディターを使用する利点は次のとおりです。

  1. 专注于python本身,而不是被工具使用问题所困扰。君不见,知乎上关于pycharm和vscode的使用说明、常见问题的解决方案,多得几乎超过了讨论python本身
  2. 手工运行代码,可以更直观、更深刻地了解脚本的解释执行过程
  3. 手工调试代码,有助于代码优化,提高代码把控能力
  4. 可以更好地使用pip安装和管理第三方模块

3. 习惯使用IDLE,这是学习python最好的方式

解释型语言的优势,就是可以写一句执行一句,想到哪儿写到哪儿,不必像编译型语言那样得把程序全部写完,编译成功后才能运行。我特别喜欢使用python的IDLE,甚至拿它当计算器用。很多时候,我用IDLE验证代码的写法是否正确,查看模块是否安装成功以及版本号。IDLE支持tab键自动补齐,我经常用这个功能查看某个对象的方法和属性。

>>> import numpy as np>>> np.__version__'1.17.0'>>> np.hypot(3,4)5.0>>> def factorial(n): # 计算n的阶乘
	if n == 0: # 递归出口
		return 1
	return n*factorial(n-1) # 向递归出口方向靠近的自身调用>>> factorial(5)120>>> _*2-100140

小技巧

  1. tab键自动补齐
  2. 光标移动到执行过的语句上敲击回车,可以重复这个命令
  3. 下划线(_)可以获取最后一次执行结果

实际上,IDLE就是一个IDE,你可以用它来创建或打开.py脚本文件,可以编辑、运行和调试。

Python初心者が知っておくべきこと

4. 严格遵从编码规范

Linux 平台上,一个 python 源码文件应该以下部分组成。Windows 平台上,可以省略第一项。

解释器声明

编码格式声明

模块注释或文档字符串

模块导入

常量和全局变量声明

顶级定义(函数或类定义)

执行代码

附上一个 demo,仅供参考。更详细的编码规范,请参考拙作《我的 Python 编码规范》。

#!/usr/bin/env python# -*- coding: utf-8 -*-"""通常这里是关于本文档的说明(docstring),须以半角的句号、 问号或惊叹号结尾!

本行之前应当空一行,继续完成关于本文档的说明
如果文档说明可以在一行内结束,结尾的三个双引号不需要换行;否则,就要像下面这样
"""import os, timeimport datetimeimport mathimport numpy as npimport xlrd, xlwt, xlutilsimport youth_mongodbimport youth_curl


BASE_PATH = r"d:\YouthGit"LOG_FILE = u"运行日志.txt"class GameRoom(object):
    """对局室"""
    
    def __init__(self, name, limit=100, **kwds):
        """构造函数!
        
        name        对局室名字
        limit       人数上限
        kwds        参数字典
        """
        
        passdef craete_and_start():
    """创建并启动对局室"""
    
    passif __name__ == '__main__':
    # 开启游戏服务
    start()

5. 代码的运行、调试

如果你使用的集成开发工具,那么代码的运行和调试,就完全依赖于工具了。如果你使用编辑器开写代码,那就需要手工运行和调试代码。运行代码分成两步:

第1步,打开一个命令行窗口,路径切换到脚本所在的文件夹。我习惯在脚本所在窗口的空白位置(确保没有选中任何对象),按下shift键点击鼠标右键,在弹出的菜单中选择打开Powershell窗口。如下图所示。
Python初心者が知っておくべきこと

第2步,输入python+空格+脚本文件名,回车即可运行。输入脚本文件名时,按tab可以自动补齐。脚本的运行信息、错误信息、运行结果等,都可以显示在这个窗口中。这是最原始的信息。你在其他开发工具中看到信息,都是对这些信息的再加工。

当然,很多编辑器也支持自定义运行命令,可以实现一键运行python脚本。以Notdpan++为例,点击“运行”->“运行”菜单,在弹出的窗口中输入:

cmd /k cd /d “$(CURRENT_DIRECTORY)” & python “$(FULL_CURRENT_PATH)” & echo. & pause & exit

因为转义缘故,复制该命令的话,请检查$符号前面是否有\符号,如有,请删除。接下来,点击“保存”按钮,在弹出的窗口中输入新增命令的名称,比如PyRun,定义快捷键,最后点击“确定”按钮。
Python初心者が知っておくべきこと

完成以上设置后,就可以在Notepad++中使用菜单命令或者快捷键运行Python代码了。

手工调试代码的手段不多,除了 print 信息,几乎只有把调试信息写成调试文件了。听起来,好像问题很严重,其实只是理念和取向不同而已。反过来想,手段单一,不恰好意味着简单、简明吗?十几年来,我一直使用 print 调试,坚信没有比它更好的了。

5. 模块管理

在python语言的发展过程中,安装和管理第三方模块的方法也历经变化。现在,我们终于等来了pip这个近乎完美的工具。pip除了安装(install)和删除(uninstall)这两大功能,还可以指定模块的安装版本(无需预先删除当前已安装版本),可以显示所有已安装的模块,还可以通过 upgrade 自主升级。

很多同学在使用pip时会遇到各种各样稀奇古怪的问题,我在这里解释一下:

5.1 同时安装了py2/py3

同时安装了py2/py3,将会存在多个版本的pip.exe,你如果直接运行:

pip install <模块名>

则有可能因为pip.exe版本不对而出错。正确的做法是指定python版本,-m是python解释器的参数,意思是把pip模块做为脚本运行,完整命令如下:

py -3 -m pip install <模块名>

5.2 使用Anaconda,或者通过IDE来安装模块

如果你使用的是Anaconda Python,或者你是通过IDE来安装模块,则需要检查它们的配置和设置,情况各有不同,没有统一的解决方案。

5.3 仅安装了py2 或 py3

如果你的计算机只安装了py2 或者 py3,那么上面两种安装方法应该都没有问题。如果你的电脑找不到pip.exe文件,则可以使用这个命令生成:

python -m ensurepip

5.4 pip应用演示

下面,就以同时安装了py2/py3的计算机为例(如果只安装了py2或py3,需要将下面演示中的py -3替换成python),演示pip模块的用法。不管任何情况,我都建议使用-m参数调用pip模块,而不是直接使用 pip.exe 安装模块。

# 虽然可以这样使用pip安装模块(以numpy为例)PS D:\XufiveGit\wxgl> pip install numpy# 但我建议这样使用pipPS D:\XufiveGit\wxgl> py -3 -m pip install numpy# 删除模块PS D:\XufiveGit\wxgl> py -3 -m pip uninstall numpy# 安装模块,指定版本PS D:\XufiveGit\wxgl> py -3 -m pip install numpy=1.15.0# 自主升级PS D:\XufiveGit\wxgl> py -3 -m pip install --upgrade pip# 显示已安装的模块PS D:\XufiveGit\wxgl> py -3 -m pip list
Package           Version
----------------- -----------
-pencv-python     4.1.1
argh              0.26.2
attrs             19.1.0
Automat           0.7.0
basemap           1.2.0
beautifulsoup4    4.6.3
bleach            3.1.0
cefpython3        66.0... ...

pip也用来安装本地whl文件:

PS D:\PyPackage\py3> py -3 -m pip install .\basemap-1.2.0-cp37-cp37m-win_amd64.whl

感谢大家的阅读,希望大家收益多多。

推荐教程:《python教程

以上がPython初心者が知っておくべきことの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。