ホームページ  >  記事  >  バックエンド開発  >  開発の原点やPythonの基礎知識を詳しく紹介

開発の原点やPythonの基礎知識を詳しく紹介

PHP中文网
PHP中文网オリジナル
2017-06-22 13:40:192982ブラウズ

1. Pythonの開発入門

1. Pythonの作者の紹介

Pythonの作者であるGuido von Rossumはオランダ人です。 1982 年に、グイドはアムステルダム大学から数学とコンピューティングの修士号を取得しました。 1989 年に、彼は Python 言語を創設しました。 当時、彼はまだオランダの CWI (Centrum voor Wiskunde en Informatica, National Institute of Mathematics and Computer Science) に在籍していました。 1991 年の初めに、Python は最初の公開リリースをリリースしました。 グイドはもともとオランダに住んでいて、1995年に米国に移住し、現在の妻と出会いました。 2003 年初め、グイドと 2001 年生まれの息子オーリンを含む家族は、ワシントン州北バージニアの郊外に住んでいました。

2002 年、ベルギーのブリュッセルで開催されたフリーおよびオープンソース ソフトウェア開発者の欧州会議で、Guido van Rossum は Free Software Foundation から 2001 Free Software Progress Award を受賞しました。
2003 年 5 月、Guido はオランダの UNIX ユーザー グループ賞を受賞しました。
2006 年に、彼は Association for Computing Machinery (ACM) によって有名なエンジニアとして認められました。
2005 年 12 月、Guido van Rossum は Google に入社しました。彼は、Google 向けの Web 指向のコード ブラウジング ツールを Python で作成しました。そこで彼は、時間の半分を Python 開発の維持に費やしました。
2012 年 12 月 7 日、Dropbox は Guido van Rossum が Dropbox 会社に加わったことを発表しました。
2. Python 開発の概要

1989年、クリスマス休暇を過ごすために、GuidoはPython言語用のコンパイラを書き始めました。パイソンという名前は、グイドのお気に入りのテレビ シリーズ「モンティ パイソンのフライング サーカス」に由来しています。彼は、Python と呼ばれるこの新しい言語が、C とシェルの間で包括的で、学習しやすく、使いやすく、スケーラブルな言語を作成するという彼の理想を満たすことを望んでいます。
1991年に、最初のPythonコンパイラーが誕生しました。 C言語で実装されており、C言語ライブラリファイルを呼び出すことができます。 Python はその誕生以来、クラス、関数、例外処理、テーブルや辞書を含むコア データ型、モジュールベースの拡張システムを備えています。
2000年、メモリリサイクル機構が追加され、現在のPythonの基礎となった言語フレームワーク in Up in -- in in 19, 2006
2008、Python 2.6 - 2008年10月1日
2010、Python 2.7 - 7月3日, 2010年
2014年、2014年11月に発表されました。 Python 2.7 は 2 020 までサポートされ、ユーザーはできるだけ早く Python 3.4 以降に移行することが期待されているため、2.8 のリリースは存在しないことを再確認しました 、Python 3.0 - 2008 年 12 月 3 日
、Python 3.1 - 200 年 6 月 27 日9
2011、Python 3.2 - 2011年2月20日 2012年
、Python 3.3 - 2012年9月29日 2014年、Python 3.4 - 2014年3月16日
2015年、Python 3.5 - 2015 年 9 月 13 日
2015
、Python 3.5.1、ドキュメントは2015年12月7日にリリースされました。
2016、Python 3.5.2、ドキュメントは2016年6月27日にリリースされました。
2016、Python 0、ドキュメントは12月23日にリリースされました。 2016.
2017
、Python 3.6.1、2017 年 3 月 21 日にリリースされたドキュメント。 公式ドキュメントを参照してください:

ユーザーが注意深く読めば、なぜ 2008 年にリリースされたのかが必ずわかります。 2010 年に Python 2.7 バージョンがリリースされたのはなぜですか? Python 3.0 がリリースされたときに、多くのユーザーが Python 2.0 バージョンを正常にアップグレードできなかったためです。その後、Python 2.7 の移行バージョンがリリースされ、Python 2.7 は 2020 年までサポートされるため、初心者は Python 3.0 から始める必要があります。

2. 現在、Python の主な応用分野:

クラウドコンピューティング

: クラウドコンピューティングで最も人気のある言語、代表的なアプリケーション OpenStack

WEB 開発

: 多くの優れた WEB フレームワーク, Youtube、Dropbox、Douban など、多くの大規模 Web サイトはすべて Python で開発されています。 。 。 , 代表的なWEBフレームワークにはDjango

科学コンピューティング、人工知能:代表的なライブラリNumPy、SciPy、Matplotlib、Enthoughtライブラリ、pandas

  • システム運用保守:運用保守担当者にとって必須の言語

  • 金融: 定量取引、財務分析、金融工学の分野では、Python が使用されているだけでなく、最も多く使用されており、その重要性は年々高まっています。理由: Python は動的言語として、明確でシンプルな言語構造、豊富なライブラリ、成熟して安定しており、優れた科学計算と統計分析を備えており、特にその生産効率は C、C++、Java よりもはるかに高いです。戦略バックテストが得意

  • グラフィックGUI: PyQT、WxPython、TkInter

  • 3. 一部の企業のPythonアプリケーション:

  • Google: Google App Engine、コード。グーグル。 com、Google Earth、Google クローラー、Google 広告、その他のプロジェクトはすべて、開発に Python を広範囲に使用しています
  • CIA: CIA の Web サイトは Python で開発されています

NASA: アメリカ航空宇宙局 (NASA) は Python を使用していますデータ分析と計算に幅広く使用されていますYouTube : 世界最大のビデオ Web サイト YouTube は Python で開発されています

    Dropbox: 米国最大のオンライン クラウド ストレージ Web サイトで、すべて Python で実装されており、Web サイトはアップロードと毎日 10 億ファイルのダウンロード
  • Instagram: 米国 最大の写真共有ソーシャル ネットワーキング サイトで、毎日 3,000 万枚以上の写真が共有され、すべて Python で開発されています
  • Facebook: 多数の基本ライブラリは Python で実装されています
  • Redhat: 世界で最も人気のある Linux ディストリビューション
  • の yum パッケージ管理ツールは Python を使用して開発されています
  • Douban: ほぼすべての会社のビジネスは Python を通じて開発されています
  • Zhihu: Python (海外版 Quora) を通じて開発された、中国最大の質問と回答のコミュニティ
  • Dr. Chunyu: 中国の有名なオンライン医療 Web サイトは Python で開発されています

  • 上記に加えて、Sohu、Kingsoft、Tencent、Shanda、NetEase、Baidu、Ali、Taobao、Tudou もあります。 、Sina、Guoke などの企業は、Python を使用してさまざまなタスクを実行しています。

4. Pythonとはどんなプログラミング言語

プログラミング言語は主にコンパイル言語とインタプリタ言語、静的言語と動的言語、強い型定義言語と弱い型付け言語の観点から分類されます。定義言語、各カテゴリの意味を見てみましょう。

コンパイルと解釈の違いは何ですか?

コンパイラーは、ソースプログラムの各ステートメントを機械語にコンパイルし、バイナリファイルとして保存します。これにより、コンピューターは実行時にプログラムを直接機械語で実行できます。これは非常に高速です。

インタプリタ

は、プログラムを 1 つずつ機械語に解釈してコンピューターが実行するだけなので、実行速度はコンパイルされたプログラムほど速くありません これは、コンピューターがステートメントを直接理解して実行することができないためです。 write は機械語 (バイナリ形式) のみを理解できます

コンパイル済み vs 解釈済み

コンパイル済み

利点: コンパイラーには通常、コードを最適化してコンパイルするためのプリコンパイル プロセスがあります。コンパイルは 1 回だけ行われ、実行時にコンパイルする必要がないため、コンパイルされた言語プログラムは実行効率が高くなります。ロケールに関係なく実行できます。 欠点: コンパイル後に変更する必要がある場合は、モジュール全体を再コンパイルする必要があります。コンパイル時に、対応するオペレーティング システムに応じてマシン コードが生成されます。異なるオペレーティング システム間で移植する場合は、実行中のオペレーティング システム環境に応じて異なる実行可能ファイルをコンパイルする必要があります。

インタープリター付き

利点: プラットフォームとの互換性が高く、インタープリター (仮想マシン) がインストールされていれば、どの環境でも実行できます。柔軟性があり、コードを変更するときに直接変更でき、メンテナンスのためのダウンタイムなしで迅速に導入できます。
短所: 実行するたびに説明する必要があり、パフォーマンスはコンパイル言語ほど良くありません。

Python は、動的に解釈され、強く型付けされた定義言語です。

5. Python のメリットとデメリット
まずメリットから見てみましょう:
1. Python の位置付けは「エレガント」、「明確」、「シンプル」であるため、Python プログラムは常にシンプルで理解しやすいものに見えます。 Python を学ぶと、簡単に始めることができるだけでなく、将来さらに深く学習すると、非常に複雑なプログラムを作成できるようになります。
2. 開発効率が非常に高い Python には非常に強力なサードパーティ ライブラリがあり、コンピュータを通じて任意の機能を実現したい場合は、Python 公式ライブラリを直接ダウンロードして呼び出すと、対応するモジュールが提供されます。基本ライブラリに基づいてさらに開発することで、開発サイクルを大幅に短縮し、車輪の再発明を回避できます。
3. 高級言語 - Python でプログラムを作成する場合、プログラムで使用されるメモリの管理方法などの低レベルの詳細について考える必要はありません。
4. 移植性 - オープンソースの性質により、Python は多くのプラットフォームに移植されています (さまざまなプラットフォームで動作できるようにするための変更が加えられています)。システム依存の機能の使用を慎重に回避すれば、Python プログラムは市場のほぼすべてのシステム プラットフォームで変更を加えることなく実行できます。
5. スケーラビリティ - 重要なコード部分をより高速に実行する必要がある場合、または特定のアルゴリズムを非公開にしたい場合は、プログラムの一部を C または C++ で作成し、それを Python プログラムで使用できます。
6. 埋め込み可能性 - Python を C/C++ プログラムに埋め込んで、プログラム ユーザーにスクリプト機能を提供できます。
欠点を見てみましょう: 1. Python の実行速度は C 言語よりもはるかに遅く、Java よりも遅いため、これが多くのいわゆる専門家が Python の使用を軽視する主な理由です。ここでいう実行速度の遅さは、ほとんどの場合、ユーザーが直接認識することができないため、テスト ツールを使用して反映する必要があります。
2. Python はインタープリタ言語であり、ソース コードはプレーン テキストで保存されるため、コードを暗号化することはできません。ただし、プロジェクトのソース コードを暗号化する必要がある場合は、それを暗号化する必要があります。最初からPythonで実装すべきではありません。
3. スレッドは複数の CPU を利用できません。これは Python の最も批判されている欠点の 1 つです。GIL は、スレッドを同期するためにコンピューター プログラミング言語インタープリターによって使用されるツールです。 Python のスレッドはオペレーティング システムのネイティブ スレッドです。 Linux では pthread、Windows では Win スレッドです。スレッドの実行はオペレーティング システムによって完全にスケジュールされます。 Python インタプリタ プロセスには、メインラインとユーザー プログラムの複数の実行スレッドがあります。マルチコア CPU プラットフォームでも、GIL の存在によりスレッドの並列実行は禁止されています。この問題の妥協的な解決策については、後のスレッドとプロセスの章で詳しく説明します。

6. Python インタープリター

Python コードを作成すると、Python コードを含む .py 拡張子が付いたテキスト ファイルが得られます。コードを実行するには、.py ファイルを実行するための Python インタープリターが必要です。

仕様からインタプリタに至るPython言語全体がオープンソースであるため、理論上、十分なレベルであれば誰でもPythonコードを実行するためのPythonインタプリタを書くことができます(もちろん、それは非常に困難です)。実際、複数の Python インタープリターが存在します。

CPython Python 2.7 を正式にダウンロードしてインストールした後、インタプリタの公式バージョンである CPython を直接入手しました。このインタプリタはC言語で開発されているため、CPythonと呼ばれます。
CPython は最も広く使用されている Python インタープリターです。デフォルトでは、すべてのコードも CPython で実行されます。


IPython は CPython をベースにした対話型インタプリタです。つまり、IPython は対話型モードでのみ強化されていますが、Python コードを実行する機能は CPython とまったく同じです。たとえば、国内の多くのブラウザは外観は異なりますが、実際にはコアは IE を呼び出しています。

CPython はプロンプトとして >>> を使用しますが、IPython はプロンプトとして In [シリアル番号]: を使用します。

PyPy これは Python の未来であると言われており、開発者は Python コード ブロックでこのインタープリターを使用することを望んでいるとも述べています。 PyPy は、実行速度を目的とした別の Python インタープリターです。 PyPy は JIT テクノロジーを使用して Python コードを動的にコンパイル (解釈ではないことに注意) するため、Python コードの実行速度を大幅に向上させることができます。
ほとんどの Python コードは PyPy で実行できますが、PyPy と CPython の間にはいくつかの違いがあり、その結果、2 つのインタープリターで同じ Python コードを実行すると、異なる結果が生じる可能性があります。コードを PyPy で実行する場合は、PyPy と CPython の違いを理解する必要があります。

JythonJython は、Java プラットフォーム上で実行される Python インタープリターであり、Python コードを Java バイトコードに直接コンパイルして実行できます。

IronPythonIronPython は Jython に似ていますが、IronPython は Microsoft .Net プラットフォーム上で実行される Python インタープリターであり、Python コードを .Net バイトコードに直接コンパイルできる点が異なります。

要約: Python インタープリターは数多くありますが、最も広く使用されているのは CPython です。 Java または .Net プラットフォームと対話する場合、最善の方法は、Jython または IronPython を使用するのではなく、プログラム間の独立性を確保するためにネットワーク呼び出しを通じて対話することです。

7. Python2 または Python3 を使用する

公式推奨は、できるだけ早く Python3 にアップグレードすることです。Python3 には多くの新機能があるため、一部のビジネスが Python2 で書かれていない限り、一般的には Python3 にアップグレードすることが推奨されます。 Python3を使用します。

Python 3.0 にはまだ完成していない比較的大きな機能があり、それが Twisted です。これは非常に大規模なシステム プロジェクトであり、間もなく完成する予定です。

8. Python のインストール

1. インストール パッケージをダウンロードします


2. Win7 以降のシステムをインストールします (デフォルトのインストール パス: C:UsersAdministratorAppDataLocalProgramsPythonPython36)。
[コンピュータを右クリック]--》[プロパティ]--》[システムの詳細設定]--》[詳細設定]--》[環境変数]--》[ 2 番目のコンテンツ ボックスをダブルクリックします] - -> [Python インストール ディレクトリが、次のように区切られて変数値に追加されます。例: C:UsersAdministratorAppDataLocalProgramsPythonPython36、先頭にセミコロンがあることに注意してください



インストール不要、オリジナルのPython環境、アップデートするだけ バージョンをクリックするだけ!

9. 変数/文字エンコーディング

変数とは何ですか? 簡単に言うと、変数はメモリ内の空間アドレスを記述するために使用されるラベルです。変数を宣言するプロセスは、データを保存するためにメモリ内のスペースを申請するプロセスです。

変数を宣言する

#_*_coding:utf-8_*_

name = "Alex Li"


上記のコードは変数を宣言します。変数名は次のとおりです: name、および変数の値名前は: "Alex Li" です

変数定義のルール:

①変数名には、文字、数字、またはアンダースコアの任意の組み合わせのみを使用できます

②変数名の最初の文字は数字にすることはできません
③次のキーワードは変数名として宣言できません
['and'、'as'、'assert'、'break'、'class'、'Continue'、'def'、'del'、'elif'、'else' 、'除く'、'実行'、'最終的に'、'for'、'from'、'global'、'if'、'import'、'in'、'is'、'lambda'、'not'、' or'、'pass'、'print'、'raise'、'return'、'try'、'while'、'with'、'yield']
変数の代入

name = "Alex Li " name2 = name

print(name,name2)


name = "Jack"

print("name2 の値は今何ですか?")

変数名は、人々が理解しやすいように、できるだけ意味のあるものにする必要があります。変数が何を表しているのかが一目でわかります。

リレーショナル変数名を表したい場合の一般的な書き方は次のとおりです:

gf_of_oldboy = "Chen da hua"
GFOfOldboy = "Chen da hua" Python には定数を定義する概念はありませんが、慣習的です定数の文字列表現は大文字を使用します。例: PIE = 3.1415926


予約済みフィールドは、非常に低く見えるため、変数名として使用しないでください。

文字エンコーディングの違いと導入


Python2では「OK,world」print(name)

Pythonコードにコメントを追加する方法:


1. #で直接始まることは、コメント。

2. 複数行のコメントの場合は、コメントするコードの前後に[""]または["""]を3つ使用して、コメントする内容を記述します。
さらに、['' ']または["""]に含まれる内容をまとめて変数に代入して処理することができます。
例:

msg = '''

gf_of_oldboy = "wang da hua"GFOfOldboy = "Chen rong feng"'''

#print(gf_of_oldboy,GFOfOldboy)

print(msg)

実行結果:

gf_of_oldboy = "wang da hua"

GFOfOldboy = "Chen rong feng"

さらに、


一重引用符と二重引用符の機能はシェルでの機能と同様であることに注意してください。強参照と二重引用符は弱参照を表します。


ユーザー対話型プログラム
フォーマットされた出力指定内容:
方法1: ++表記
name = input("Name:")
age = input("Age:")
job = input("Job:")
salary = input("Salry:")

info = '''
---------------------- ''' の情報 + 名前 +'''- ----------------------------------------
名前:'' + 名前 + ''
年齢: '' + 年齢 + ''
仕事: '' + 職業 + ''
給与: '' + 給与 + ''
---------- - ---------------- 「」の情報 + 名前 + 「」--------------------- - ----------------
'''
print(info)

方法 2: プレースホルダー表現

name = input("Name:")
#age = input( "Age:")
age = int(input("Age:"))
print(type(age),type(str(age))) #年齢のデータ型はここに出力され、文字列に変換されます次に、上記の変換が有効かどうかを確認するために、データ型を出力します
job = input("Job:")
salary = input("Salry:")

info2 = """
----- --- ----------------------- %s の情報 -------------------- --- ---------------------
名前:%s
年齢:%s #ここでは、%d を使用して、代わりに整数のみを入力できるように指定できますデフォルトの文字列ですが、入力時にデータ型を強制的に変換する必要があります。変換しないとエラーが報告されます
年齢:%d
職種:%s
給与:%s
---------- -------------- -------- 情報終了 %s ------------------------ ---------------------- -------
""" %(名前,名前,年齢,仕事,給与,名前)

print (info2)

方法3: {}表記
name = input("名前:")
age = input("年齢:")
job = input("Job:")
salary = input("給与:" )

info3 = """
--------------- ------------------ {_name} の情報 ------ ---------------------- ------------------
名前:{_name}
年齢:{ _age}
Job:{_job}
Salary:{_salary}
------ ----------------------- 情報終了 {_name} - ---------------------- -----------------------
「」」 . format(_name=name,
_age=age,
_job=job,
_salary=salary)

print(info3)

方法 4: 方法 3 の拡張であり、数値を使用して特定の変数を表します

info4 = """
--------------- -------- {0} の情報 ----------- ------------------------ --------
名前:{0}
年齢:{1}
職種:{2}
給与:{3}
------ ---------- 情報終了 {0} ------ ------------------------ ------------------------
""" .format(名前,年齢,job,salary)

print(info4)

注:
絶対に必要でない限り、使用しないようにしてください。メモリを大量に消費するため、他の方法の方がはるかに優れています。
方法1は方法2、方法3、方法4と混合できますが、方法2、方法3、方法4は混合できません。

10. モジュールの最初の紹介

Python の強みは、実装したいほぼすべての関数が対応する Python ライブラリをサポートしていることです。このコースでは、一般的に使用されるさまざまなライブラリについて詳しく説明します。次に、2 つの簡単なライブラリを記号的に学びましょう。
sysモジュール


#!/usr/bin/env python
# -*-coding: utf-8 -*-

import sys

print(sys.argv)


#Output
$ Pythonテスト。 py helo world
['test.py', 'helo', 'world'] #スクリプト実行時に渡されるパラメータを取得

os module


#!/usr/bin/env python
# -* -コーディング: utf-8 -*-

import os

os.system("df -h") #システムコマンドを呼び出す
完全に結合


import os,sys

os.system(''.join (sys .argv[1:])) # ユーザーが入力したパラメータをコマンドとして扱い、実行のために os.system に与えます


11. 選択式 if ... else

#!/usr/bin/env python
# -*-coding:utf-8 -*-
#Author: Bill Xie
import getpass
_username = "xiaoxie"
_password = "123456"
username = input( "username :")
password = input("password:")
#password = getpass.getpass("password:")
if _username == ユーザー名および _password == パスワード:
print("ようこそユーザー %s ログイン。 "% (ユーザー名))
else:
print("ユーザー名またはパスワードが無効です!")

注意:
1. Python コードでは文法上の省略が厳密に必要です。注意しないとエラーが発生します。インデント エラー
IndentationError: インデントされたブロックが必要です

Python と他の言語の学習の最大の違いは、Python コード ブロックではクラス、関数、その他の論理的判断を制御するために中括弧 {} を使用しないことです。 Python の最も特徴的な機能は、インデントを使用してモジュールを記述できることです。インデントされた空白の量は可変ですが、すべてのコード ブロック ステートメントには同じ量のインデントされた空白が含まれている必要があり、これは厳密に適用される必要があります。

IndentationError: 予期しないインデント エラーは、Python コンパイラーが「こんにちは、ファイルの形式が間違っています。タブとスペースが揃っていない可能性があります。」と通知するものです。すべての Python には非常に厳密な形式要件があります。
IndentationError: unindent がどの外側のインデント レベルにも一致しないというエラーの場合は、使用しているインデント方法が矛盾していることを意味します。タブ キー インデントを使用するものとスペース インデントを使用するものを同じものに変更してください。
したがって、Python コード ブロックでは同じ数の先頭スペースを使用する必要があります。
各インデント レベルで 1 つのタブ、2 つのスペース、または 4 つのスペースを使用することをお勧めします。

2. ここでは、変数参照の 2 つの方法を説明します。 。

① 上記のコメントで説明した方法と同様に、最初に %s プレースホルダーを使用し、次にプレースホルダーで使用する変数を指定します。
print("ようこそユーザー %s ログイン。"%(ユーザー名))
②中括弧 {} を使用して引用符で囲みます
print("ようこそユーザー {_username} ログイン。" .format(_username=username))
print("ようこそユーザー {0} のログイン。" .format(username)) #置き換えられる変数が数字に置き換えられることを除いて、上記と同様です。

12、ループ本体
推測ゲーム:

#!/usr/bin/env python
# -*-coding:utf-8 -*-
#著者: Bill Xie
age_of_oldboy = 29
guess_age = int(input("オールドボーイの年齢を推測してください:"))
ifguess_age == age_of_oldboy:
print("わかりました。")
elifguess_age > age_of_oldboy:
print("もっと小さく考えてください...")
else :
print("もっと大きく考えて…")

ループの説明:

while ループ構文:

while 条件:
ループ本体
esle: #これなしでもできます
ループ本体

for Loop構文:

for i in range (開始番号, 終了番号, ステップサイズ):
ループ本体
else #省略可能
ループ本体

まだ完了していません、更新予定です。 。 。 。

以上が開発の原点やPythonの基礎知識を詳しく紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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