この記事では、python に関する関連知識を中心に、プログラムの動作仕組みや Python 言語の誕生と発展の歴史など、関連する事柄を紹介します。
推奨学習: python 学習チュートリアル
コンピュータそれは私たちの時代の中心的なデバイスとなっており、私たちは常にそれを必要としています。もはやデスクトップやサーバーという概念はなく、携帯電話、タブレット、ノートパソコンなど、私たちの身の回りにあるあらゆるものへと進化しています。多くの人が主観的には気づいていませんが、実際のデバイスには「コンピューター」が含まれています。 . テレビ、電子レンジ、自動車、さらには子供たちが遊べるスマート ロボットなどの機器。コンピュータは人間の身体の延長、脳の延長であり、なくてはならないものになっていると言っても過言ではありません。将来、コンピュータは実際に人間の体に入り、脳に入り、まさに人間の体の一部となるでしょう。たとえば、SF 映画「マトリックス」の主人公は、首に極度の針を挿入するとすぐに学習し、脳の神経ネットワークを変え、数秒でカンフーの達人になります。一般にコンピュータとして知られるコンピュータは、高速計算に使用される電子機械です。20 世紀の最も偉大な科学技術発明の 1 つです。数値計算と論理的判断を行うことができ、また、 ストレージメモリとデータ処理機能を備えています。完全なコンピュータ システムは、次の図に示すように、ハードウェア システム と ソフトウェア システムで構成されます。
ハードウェア システムは主に、コンピュータ システムを構成する物理的実体である ホストと周辺機器 に分けることができます。デバイス。 ENIAC
(世界初のコンピュータ) から現在最も先進的なコンピュータに至るまで、ハードウェア システムの設計には、以下に示す von Neumann
アーキテクチャが採用されています。
Memory:2.1 コンパイルおよび解釈された型機械語はマシンとも呼ばれます。コード: CPU
によって分析および実行できる一連の命令です。コンピュータは 0 と 1 の
マシンコード しか認識できず、中国語や英語などの人間の言語を受け入れることはできません。そこで、人間とコンピュータとの対話を実現するために、C、Java、PhP、Pythonなど、さまざまなプログラミング言語が登場しました。
分析: コンピューターは次の Python コードを直接認識できますか?
""" 分析:在控制台输出以下Python代码,计算机可以直接处理吗? """print("Hello world!") # print()为Python中的内置函数,主要用于输出括号内的内容,类似于Java中的System.out.println("Hello world!")明らかに、上記のコードは主に英語の文字と句読点で構成されていますが、前述したように、コンピューターは機械語コード (0 と 1) のみを認識できます。つまり、このコードは次の時点では認識されません。全て。
C
など) に直接変換できます。 Python
など。 アルゴリズムはコンピュータの魂です、プログラミング言語はコンピュータに魂を持たせるツールです。コンピューター ハードウェアの発展に伴い、コンピューター プログラミング言語も低レベルから高レベルに進化しました。それぞれの変化の中心的な考え方は、「人々がプログラミングをより簡単にできるようにする」ということです。コンピューター ハードウェアが高速化、小型化、低コスト化すればするほど、人間社会で適用されるシナリオが増え、必要なアルゴリズムがより複雑になり、より高度なコンピューター プログラミング言語が必要になります。 ENIAC は、当初の重量は数十トンでしたが、1 秒あたり 5,000 回の計算しか実行できず、弾道計算などの非常に小規模な用途にしか使用できませんでした。今日では、1 人の携帯電話の計算能力は、当時の地球上のすべてのコンピューターの計算能力を合わせたものを瞬時に超えることができます。言語が使いやすいほど、より多くの人がそれを使用し、より多くの人がそれを使用するほど、より多くの人々が共同作業できるようになり、より多くの人々が共同作業するほど、より複雑なオブジェクトを作成できるようになります。現代社会では、数十人、数百人、さらには数千人が 1 つのソフトウェアで共同作業することが可能であり、これにより、複雑なソフトウェアを開発するための「人的基盤」が自然に提供されます。これは人類共通の社会現象であり、ツールは使いやすくなればなるほど使われ、多くの人が協力することで業界や人間社会を一変させることもあります。今後 30 年は間違いなくソフトウェア人材の世界になるでしょう。通常のソフトウェアに加えて、自動運転、ロボット乳母、ロボットガールフレンドなどの多数の人工知能ソフトウェアが私たちの生活に入り込むでしょう。コンピュータ技術や遺伝子工学さえも、興味のある方は「未来の簡単な歴史: ホモ・サピエンスからサピエンスまで」を読むことができます。
LOAD、MOVE などのアセンブリ言語の基礎を形成し、人々が覚えやすく、使いやすくします。何百、何千もの数字を認識するよりも、何百、何千もの単語を認識する方がはるかに快適です。アセンブリ言語は人間の手工芸社会に相当し、非常に熟練した職人が必要ですが、開発効率も非常に悪いです。アセンブリ言語は効率的なプログラムを作成できますが、学習や使用は簡単ではなく、デバッグも困難です。もう 1 つの複雑な問題、アセンブリ言語と初期のコンピューター言語
(Basic、Fortran など) は構造化設計原則を考慮せず、
プログラム フローとして goto ステートメント
を使用しました。 を制御する主な方法。この結果、転置ステートメントがごちゃ混ぜになると、プログラムがほとんど読めなくなります。当時のプログラマーにとって、先月書いたコードを理解できるようになることが課題になりました。それでも、アセンブリ言語は産業用電子プログラミング、ソフトウェア暗号化と復号化、コンピューター ウイルス分析などの分野で依然として使用されています。
単純なタスクの場合は、アセンブリ言語で十分です。しかし、コンピュータが発達し、仕事や生活のあらゆる側面にコンピュータが徐々に浸透するにつれて、いくつかの複雑なタスクが出現し、アセンブリ言語では不十分になりました(プログラマは複雑な問題を解決するためにアセンブリ言語を使用するが、ボトルネックがあると言うべきです) )。その結果、C
、Java
などの高級言語が登場しました。言語が高度であればあるほど、人間の思考に近づき、使いやすくなります。高級言語、特に Java、Python
などのオブジェクト指向言語では、プログラミングがますます難しくなり、難易度が低くなります。現在および近い将来、コンピューター言語はまだ「第 3 世代高級言語」の段階にあり、プログラマーは日常英語に近い命令を使用してプログラムを作成できます。たとえば、単純なタスク A B=C
を実装する場合、機械語、アセンブリ言語、および高級言語を使用した実装は次のとおりです。
Python は動的データ型のオブジェクト指向インタープリター言語であり、主に機械学習、クローラー、データ分析などの人工知能のさまざまな分野で使用されます。深層学習、コンピュータービジョンなど。
#TIOBE プログラミング言語ランキング:
すべてのコンパイラの中核は、プログラムが実行できるように最適化することです。効率を高めるために、この言語はプログラマーにコンピューターのように考えるよう強制し、マシンの好みに合わせたプログラムを作成できるようにします。当時、プログラマーはコンピューターの能力を隅々まで自分の手で絞り出すことに熱心でした。 C 言語のポインタはメモリの無駄だと考える人もいます。動的型付け、自動メモリ管理、オブジェクト指向については…考えないでください。コンピュータが麻痺してしまいます。 シェル:
は、UNIX システム のインタプリタとして長い間存在していました。 UNIX 管理者は、シェルを使用して簡単なスクリプトを作成し、定期的なバックアップやファイル システム管理などのシステム メンテナンス作業を実行することがよくあります。 C 言語と同様に、コンピュータの関数インターフェイスを完全に呼び出すことができ、シェルと同様に簡単にプログラミングできます。 ABC言語はグイドに希望を与える。 ABC は、オランダの数学コンピューティング研究所によって開発されました。グイドはこの研究所で働き、ABC 言語の開発に携わりました。 ABC言語は教育を目的としています。当時のほとんどの言語とは異なり、ABC 言語の目標は「ユーザーの気分を良くする」でした。 ABC Language は、この言語を読みやすく、使いやすく、覚えやすく、学習しやすいものにし、人々のプログラミング学習への関心を刺激したいと考えています。 ただし、ABC 言語コンパイラーを実行するには非常に高度なコンピューター構成が必要であり、これらのコンピューターのユーザーは通常コンピューターに習熟しているため、学習の難しさよりもプログラムの効率に注意を払います。一方で、普及しない理由として次のような致命的な設計上の問題があります: 1991年、最初のPythonコンパイラが誕生しました。 C言語で実装されており、C言語ライブラリファイルを呼び出すことができます。 Python はその誕生以来、クラス、関数、例外処理、テーブルや辞書を含むコア データ型、モジュールベースの拡張システムを備えています。 Python 構文の多くは C から来ていますが、ABC 言語の影響も強く受けています。 強制インデント など、ABC 言語のいくつかのルールは今日でも物議を醸していますが、これらの文法ルールにより Python は読みやすくなります。一方、Python は、 等号割り当て スケーラビリティ に特別な注意を払ってきました。 Python は複数のレベルで拡張できます。 概要として、.py ファイルを直接インポートできます。内部では C ライブラリを参照できます。 Python プログラマーは、Python を使用して .py ファイルを拡張モジュールとしてすばやく作成できます。しかし、パフォーマンスが考慮すべき重要な要素である場合、Python プログラマーは最下位層に深く入り込んで C プログラムを作成し、それを .so ファイルにコンパイルして Python に導入して使用することができます。 Python は鉄骨で家を建てるようなもので、最初に大きな枠組みが定義されており、その枠組みの中でプログラマーがかなり自由に拡張したり変更したりすることができます。 オリジナルの Python はすべて Guido 自身によって開発されました。 Python はグイドの同僚に歓迎されます。彼らは迅速なフィードバックを提供し、Python の改善に参加します。 Guido と数名の同僚が Python のコア チームを形成しています。彼らは余暇のほとんどを Python のハッキングに費やしています。その後、Python は研究所を超えて拡大しました。 Python は多くの技術的な詳細を隠し、コンパイラーに処理を任せ、論理的なプログラミングの考え方を強調します。したがって、Python プログラマーは、特定の実装の詳細ではなく、プログラムのロジックについて考えることに多くの時間を費やすことができます。この機能は多くのプログラマーを魅了し、Python は人気を博しました。コンピューターのハードウェアはますます高性能になっており、Python は使いやすいため、多くの人が Python に注目しています。 Guido は メール リスト を管理しており、Python ユーザーは電子メールを通じて通信します。 Python ユーザーはさまざまな分野に属し、さまざまな背景を持ち、Python に対するさまざまなニーズを持っています。 Python は非常にオープンで拡張が容易であるため、ユーザーが既存の機能に満足できない場合でも、Python を拡張または変換するのは簡単です。これらのユーザーは変更内容を Guido に送信し、Guido が新しい機能を Python に追加するか標準ライブラリに追加するかを決定します。 コードを Python 自体または標準ライブラリに組み込んでいただければ大変光栄です グイドの最高の決定権のため、彼は 「終生の慈悲深い独裁者」 Python 開発者はさまざまな分野の出身であり、さまざまな分野の利点を Python にもたらします。たとえば、Python 標準ライブラリの正規表現は Perl を指しますが、lambda、map、filter、reduce などの関数は Lisp を指します。 Python 自体の一部の機能と標準ライブラリの大部分はコミュニティから提供されています。 Python コミュニティは拡大を続けており、独自のニュースグループ、Web サイト、および基金を持っています。 Python 2.0 から、Python もメール リストの開発方式から完全なオープンソースの開発方式に変わりました。コミュニティの雰囲気が形成され、コミュニティ全体で作業が共有され、Python の開発も高速化されました。今日の時点で、Python のフレームワークは確立されています。 Python 言語は、オブジェクトを中心としてコードを編成し、複数のプログラミング パラダイムをサポートし、動的型を使用し、自動的にメモリのリサイクルを実行します。 Python はインタープリタ実行をサポートしており、拡張のために C ライブラリを呼び出すことができます。 Python には強力な標準ライブラリがあります。標準ライブラリ システムが安定して以来、Python エコシステムはサードパーティ パッケージに拡張され始めています。 Django、web.py、wxpython、numpy、matplotlib、PIL などのこれらのパッケージは、Python を種の豊富な熱帯雨林にアップグレードします。 Python は優雅さ、明確さ、シンプルさを提唱しており、広く使用されている優れた言語です。 Python は TIOBE ランキングで 8 位にランクされており、Google の 3 番目に大きな開発言語、Dropbox の基本言語、および Douban のサーバー言語です。 Python の開発の歴史はその代表として使用でき、私たちに多くの啓蒙をもたらしてくれます。 。 Guido は、自分は万能のプログラマーではないため、フレームワークを策定することだけを担当していると考えています。問題が複雑すぎる場合、彼は回避すること、つまり 角を切る を選択するでしょう。これらの問題は最終的にはコミュニティ内の他の人によって解決されます。コミュニティの人材は非常に豊富で、Webサイトの制作や資金調達など開発から少し離れたところでも、喜んで対応してくれる人がいます。今日のプロジェクト開発はますます複雑かつ大規模になっています。協力とオープンな心がプロジェクトの最終的な成功の鍵となります。 Python は、歴史に名を残した ABC であろうと、現在も使用されている C や Perl であろうと、リストに載っていない他の多くの言語であろうと、他の言語から多くのことを学んできました。 Python の成功は、Python の元となるすべての言語の成功を表していると言えます。同様に、Ruby は Python から借用しており、その成功は、ある面では Python の成功も表しています。 どの言語も混合物であり、それぞれの長所がありますが、さまざまな欠点もありますシェルは接着剤のようなもので、UNIX システムの多くの機能を接続します
。数百行ある C 言語プログラムの多くは、シェル内のわずか数行で完了できます。ただし、シェルの本質はコマンドを呼び出すことであり、実際の言語ではありません。たとえば、シェルには数値データ型がなく、加算演算は非常に複雑です。 つまり、シェルはコンピュータの機能を完全に活用することはできません
。
## Guido は次のような言語を望んでいます。
:
ABC はファイル システムを直接操作できません。つまり、データを直接読み書きすることはできません。入力と出力の困難はコンピュータにとって致命的です。ドアが開かないスポーツカーを想像できますか?
を使用しますが、プログラマの場合は、
function または
define を使用することに慣れています。
。言語設計の愛好家として、Guido はすでに言語の設計を試みています。今回は純粋なハッキング行為に他なりませんでした。 と
Shell の間の包括的な機能を備えています。 1989 年、クリスマス休暇を過ごすために、Guido は Python 言語のコンパイラを書き始めました。パイソンという名前は、グイドのお気に入りのテレビ シリーズ
モンティ パイソンのフライング サーカス に由来しています。彼は、この Python と呼ばれる新しい言語が彼の理想である、 と呼ばれました。
2018 年 7 月 12 日、PEP (Python Enhancement Proposals) 572 を完了した後、Guido は Python の中核的な意思決定レベルから撤退することを決定しました。 3.2 設計哲学
import と入力します。これ
実行してください;
3.3 利点と欠点
Python 言語は非常に完璧で、明らかな欠点や欠点はありません。唯一の欠点は、インタープリタ型言語によくある C
言語を使用し、Python プログラムで呼び出します。
となります。概要: 動的型は変数を指し、メモリ ユニット内の内容は不変です。静的型は不変を指し、内容は変数です。
インタプリタ言語:
Python 言語で書かれたプログラムは、バイナリ コード
にコンパイルする必要はありません。ソースコードからプログラムを直接実行できます。コンピューター内部では、Python インタープリターがソース コードをバイトコードと呼ばれる中間形式に変換し、その後、コンピューターが使用するマシン コードに変換されて、 が実行されます。 Python プログラムを別のコンピュータにコピーするだけで動作するため、Python プログラムの移植も容易になります。 豊富なライブラリ: Python 独自の標準ライブラリとサードパーティ ライブラリが含まれます。その中でも、Python の標準ライブラリは、正規表現、ドキュメント生成、スレッド、データベース、HTML、GUI など、さまざまなタスクの処理に役立ちます。これは 実行効率の遅さ
推奨学習:
以上がPythonの簡単入門(画像と文章で詳しく解説)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。