ROSS RHEINGANS-YOO:こんにちは、私はロスです。 そして、これはCS50セミナーです。 それはプログラミングから行くことができます PythonでプログラミングのCインチ Pythonはスクリプト言語です。 これは主に、Cのようなものです 構文で、いくつかのかかわらず の技術的な詳細の その構文が実行されますか 若干異なります。 これは、いくつかの点でCより少ない強力です。 これは、にはあまり表現力であります 場所を正​​確にあなたのコンピュータで メモリは、レイアウトされます どのようにそれがレイアウトされます、 それは、自由を取得したときと 物事のこれらの種類。 これは、いくつかの点でCよりも有用です なぜなら、それはでプログラムする方が簡単です。 言語は、いくつかに、あります 人々、より直感的に。 そして実際に、目標は、のためのものです それはプログラムに高速にします そして潜在的に遅い実行します。 今、あなたが考える場合 時間の量 あなたが最後に費やさ 問題設定書き込み あなたのコード あなたが費やす時間の量 あなたの最後の問題に あなたのコードを実行し、 あなたは、言語ことを想像します 書くことが二倍の速さでした、 二回実行するようにゆっくりと、かもしれません いくつかの点でCに比べて、パフォーマンスが向上し。 確かにあなたが書くしようとしているとき ささいなことを行うための小さなプログラム、 Pythonは、選択した便利な言語です。 そして、このの終わりに セミナー、私​​はあなたがいただければ幸いです 作ることができます 将来のプロジェクトで選択 どの言語です 使用する正しい、ないアイデア 一つの言語は、よりであること すべての時間を修正します。 セミナーは何であるかについてのいくつかのこと。 このセミナーはに意図されていません 最初からあなたのPythonを教えます。 Pythonは非常に似ています Cに、私は仮定しています あなたはCS50の学生だということ、または誰か Cと同じような親しみやすさと あなたはCS50の学生であれば 問題を回避、6を設定 あなたは多くのを見てきました C言語でのもの、私はあなたを与えるだろう 主な違い、 物事の一部 それはPythonが異なるように そして、特殊と便利な、 私はのために行くつもりはありません どのようなプログラミング言語であります どのようにプログラムを作成します。 しかし、このセミナーはお教えします あなたは、Pythonプログラムを書くために あなたはそれらのいくつかのグループのいずれかなら。 再び、私たちはどのように見てみましょう あなたはpsets--実装します それは1-6である必要があります Python--とポインタを提供すること 公式ドキュメントに 今後の参考のために。 重要です他の事 この話の割り当て方法については、 このビデオになります CS50のオンライン、礼儀、 だから、のように感じるべきではありません あなたはノートを取る必要があります。 あなたはいつも戻って見ることができます これで、後に基準となります。 さらに、スライド 今ご利用いただけます このサイトでは、これはすべき あなたはGoogleドキュメントを実行してください。 それは少し簡略版です 私は画面に表示してい何の。 一つ慎重に警告する前に 我々は、Python 3にジャンプ Pythonの2とは異なる言語です。 彼らは、同一ロットに見えます。がある 非常にわずかな技術的な違い それは、プログラムの原因になります Pythonの2で書かれました 実行することができるようにするためではありません Pythonの3環境インチ CS50アプライアンスが付属しています Pythonは、デフォルトでは、Python 2を使用しています。 あなたがすることによって、これを確認することができます コマンドラインで入力 python --version、出力すべき 現在のアプライアンスで2.7.6。 してみPythonの3、 アプライアンスでの作業、 もし2.X.YにPythonのデフォルトのいずれかに アプライアンスまたはあなた自身のマシン上で。 あなたは、Python 3をいつでも交換する必要があります その本講演では、私はPythonを書きます。 あなたのマシンがある場合 デフォルトでは2を実行して、タイプ Pythonの3実際にできるようにするために、 一緒に従うと、これらのことを実行します。 また、私はあなたを指します 今公式リソースで。 慎重docs.python.org/3--~~V それは3とではないことを2-- 便利な参照を持っています。 チュートリアルはあなたを通じかかります 同じことの多く 私はテキスト形式以外で、今やっていること。 リファレンスとして有用であり、 言語のための基準、 そして、標準ライブラリが提供します あなたの拡張機能の一部 追加の機能を持ちます。 だから、非常に最初のPythonプログラム。 左側には、我々は、標準のCを持っています 右側に、我々は、Pythonを持っています。 あなたは認識している可能性があります この問題は、それはです 最初の問題の1 CS50でセット、およびこれらの 同じ溶液を使用して解決します。 私たちがしている今、その理由 側によってこれらの側面を見て 私たちは見ることができています 構文の違い。 部屋の中に象の一つ あなたが右に気づいたかもしれないこと バット、Pythonは何を持っていることではありません コー​​ドの周りの主な機能の折り返し。 だからCに、あなたはの束を書きます ファイルは、あなたがそれらを一緒にリンクし、 、プログラムの実行を開始 この事で、int型の主と呼ばれます。 Pythonでは、あなたが書きます あなたのファイル、ファイルを実行し、 プログラムの実行を開始 ファイルの先頭に。 だから、開始するために起こっています ファイルの先頭に それは他の何かを見つけるまで下ります。 それは関数定義を見つけた場合、 それは実際にそのコードを実行しません、 それは単に関数を定義します。 しかし、ここで、第1 プログラムは、nが10に等しくあります このプログラムは、その最初のもの 行います10のこの値を取ることです nという変数に設定します。 、その行のの一つといえば このsorry-- things--その他 そのCプログラムを意味し、 あなたはそれらを書きます、 あなたは、意志、それらを作りますよ いくつかの打ち鳴らすのコマンドを呼び出します、 そしてあなたが実行されます 結果の実行可能ファイル。 あなたが実行するPythonプログラム、 このmario.py file--テキストはかもしれません 私は示した。このファイルで あなたは、そのファイルを実行しますyou-- あなたは、実行します それのと内容 によって実行されます Pythonインタプリタ。 あなたのIDEでこれを行うことができます。 私はハローファイルがあるのであれば、 これは単純にこの内容を持っています。 これは実際にはPythonで 2、ではないのPython 3、そうではありません 今の構文について心配。 しかし、私は上に、Pythonを実行します hello.py、それが実行されます。 私はPythonを使用することができます別の方法 私は、この話にはあまり対処しません 私はPythonを入力する場合には、あります ここで、環境に私をドロップ 私は線でPythonのラインを供給することができます。 だからここに、私が入力した場合 印刷スペース「こんにちは、世界。 入力します入力してください。 それは、結果をバックアップその私を吐くします すぐにその個々のライン。 これは便利かもしれないです。 本講演では、私はスライドに物事をやります。 だから、あなたは従うことができるでしょう いずれかに沿って、ここで、または書面によって その後、実際のファイルと、それらを実行します。 しかし、これに戻って コー​​ド、別のもの あなたが持つかもしれません noticed--も、あります 二つのこと、あ​​なたがかもしれません これらのブロックに関する通知。 むしろ、より世俗的な、最初は、ということです Pythonは末尾のセミコロンがありません。 セミコロンはどこにでもオプションであります 無害どこでも。 あなたはそれらを追加することができます。 それは書く人になるかもしれません あなたに生きている冷笑ためのPython 背中の後ろに、理由 彼らは必要はありません。 彼らは頻繁にオーバー開催中の記号です 言語のCからデザイナー それがこの方法より明確であることを感じます それが宣言する必要はありませんことを たびにあなたが行を終了します。 このnは約別の奇妙なこと それは添付のタイプを持っていないです。 Python--の魔法の作品の一つ 私は、魔法のそれを呼び出すつもりです しかし、非常にあります 技術的な理由なぜ のいずれかをworks-- パイソンのマジック枚 変数は展開することができるということですか どのようなデータが含まれて縮小 あなたがそれらをしたいと思うタイプ。 だから、これは10です。 私はこれに割り当てられた後にダウンした場合 nは0.5、それは0.5ということを取るでしょう。 それはここでint型だとどんなにと 、そこにこのn個を使用して何かをフロート 、多かれ少なかれ、一気飲みすることができるようになります それはそれらのいずれかを取得する場合に沿って。 いくつかの非常に現実的ではありますがない限り それはデータを使用できない理由 それが現在持っているnを入力、 その時点でそれが得られます 楔形とエラーをスローし、 物事のこれらの種類。 しかし、ここでは、Pythonの 本当に何を気にしません それは私がこれに固執するつもりだということです 文は、のような、あなたがこの事をしたいですか? その中でこのこと? ええ、それは事のようなものです。 私は最後にそれを固執するでしょう。 場合は、後で問題になるだろう そのエンドを使用したい人 それを処理することはできません。 これは、主要なの一つであります PythonとCの間の違い それはすることが容易になります 非常に大規模なCプログラムを書きます それは簡単に書くことができます 非常に小さなPythonプログラム。 構文については、非常にではありません それが何をするかで異なります。 それは少し違います どのようにそれを表現しています。 だから、これは非常に、何と呼ばれています ニシキヘビ、それを書く方法。 レンジ(N)の行のために、これは 0からnまでの番号の範囲、 底の包括 そして上に排他的。 だから、0からN-1であるにです 正確にCコードが何をしていますか、 それははるかに簡単です除い おそらく見ています。 関連するブロックです 中括弧ではオフに設定されていません、 代わりに、それはオフに設定しています このインデントによって。 したがって、これらの行のすべてがあります 右のオーバー4つの空間、 または象の幅は約などがあります。 そして、それらはあるものです この中で実行されるだろう。 もし私の台無し この私のインデント バックにプリントプッシュ オリジナルのインデント、 その印刷は、forループを残します。 ここで実際に私のCとは対照的に、 周りにその閉じブレースを移動する必要があります。 これは、エラーを取得しないことを意味し あなたので、それはあなたに飛び出します 間違った場所にブレースを置きます。 それはあなたがエラーを取得することを意味しています あなたので、それはあなたに飛び出します 間違った行をインデント。 だから、くぼみ、超慎重になります。 うまくいけば、スーパーされていました とにかくあなたのインデントに注意してください、 そしてこれはそれがありません 負担のはるか。 しかし、Python用の基本的なルール、 私たちはこれらのカップルを持っています 我々は貫通行くだろうと 話の途中、 自然な構文を試しています 何を検索する前に。 したがって、この構文のために 範囲内のこの数、 スタイルの面で非常に特徴的です。 Pythonで物事の多く 我々は、この形をとる表示されます。 だからあなたが出てくる場合 あなたの新しいオブジェクトを使用して 次のことができるようにすべきだと思います この形式では、このを反復処理、 それはおそらく判明します その形式をサポートしています。 私たちはスーパーディープで行くつもりはありません それが本当なぜ技術的な理由。 しかし、それはあると便利直感です あなたはPythonプログラムに近づいているとき、 このことは、単に仕事に行くされていること。 それを試してみてください。 コマンドラインを起動します 通訳、それが動作するかどうかを確認し、 あなたの前に、物事を上に移動 でも、グーグルを開くと言う必要があります 構文は何 この特定の事? Pythonのたくさんのあなたができました ちょうど試みることによって発見します。 この場合は、より似ています Cに、その後FORSです。 括弧がいないことに注意してください。 括弧は、再び、あります 無害が、不要。 最後にコロンがあります ただ、ループのような そして再び、相対的なブロックがあります インデントではなく、中括弧ではオフに設定してください。 この他には、オリジナルであります インデントのレベル、 その関連するブロックが再インデント。 彼らはCでそうであるように、これらは正確に動作し これは非常に実際には同じです。 繰り返しますが、印刷は1文字を失います printf関数のオフあなたは、いくつかの文字列を渡します。 これは、文字列が判明 いずれかのオフマークすることができます 単一引用符または二重引用符で。 違いはありません、 その内部を除きます あなたが使用できる単一引用符の 放棄と二重引用符、 むしろを有するより それらのすべてを逃れます。 そして、二重引用符の内側に、あなた 放棄で単一引用符を使用することができます それらをエスケープする必要はありません。 あなたがミックスしたい場合 それら、あなたは確かにすることができます それを行う方法をオンラインで検索してください。 あなたはこっちに気づくでしょう、 私は=最後にこの事を渡されました。 これは、オプションの一例です それらのものの一つであり、引数、 Pythonはそれをサポートしていること それは非常に便利になります。 だから、印刷は、実際にはたくさん持っています 通常の引数、 デフォルトに設定 値が、ここで私がしました エンドと呼ばれるものをオーバーライドすることにしました。 私が持っている理由 空の文字列で上書き Pythonでその印刷はすることにより、 デフォルトでは、新しい行を出力します あなたもそれを言った事後。 したがって、このハッシュが実際に起こっています 新しい行にハッシュをプリントアウト。 そして、私はハッシュをプリントアウトしたくない場合 それの後に改行し、私は言わなければなりません 1を出力しません。 しかし、まだそのように、最後の一つです このプログラムは1つがある持っていることを欠落しています 上部にあります。 印刷はとても基本的なPythonに焼かれます 何のヘッダーやモジュールがありませんこと あなたがする必要があること たい場合も、含まれます 他のものを含むように Pythonスクリプトで、 私は非常によく似たformat--でそれを行うだろう 言葉は少しだけ異なっています。 私は、我々が言及しました ここでの主を必要としません、 Pythonが開始されるため 上部に実行します。 私はラップしたい場合 機能では、この、私は this--私のようにそれを行うだろう defの関数名を言うでしょう、 引数はここに行くかもしれないし、我々はよ これらの後に、コロンのいくつかを参照してください、 し、再度、この ブロックをオフに設定全体 動作しているものです その関数のブロック。 だから、これは定義であります 関数の。 そしてダウン、宣言あります ここで、私は関数を呼び出すことができます。 そして再び、プログラム 通訳、先頭から、 これが定義され表示されます。 それまでは、これを実行されません ここで取得し、それがああ、のようなものです 今では私は、それを呼んでいます 私はそれを実行する必要がありますね。 非常に一般的ですもの Pythonのファイルで見るために、 特にPythonのファイルその 一般にリリースされています そして、by--開発し、開発し、 維持、この形式のものです。 これが理由ようbasically--されます Pythonの、あなたがトップでスタート そして、あなたは、一番下まで実行します 私はちょうど持っていた場合、私はマリオは、ここに呼ばれます 私はこのファイルを含め、任意の時間 別のファイル、私が使用していたので、 マリオ機能は、他のファイルはということであり、 また、その中でマリオにこの呼び出しを持っています。 そして、私はそのファイルを実行したときに、 それはマリオを呼び出します。 だから、私はいる可能性があります 私は実際にしている場合、これを実行したいです この特定のファイルを実行しました。 そして私は、これをラップすることができます このようなイディオム、私が言います、 もしこの実行の名前 環境がメインですが、 その後、私はこれらの事をしたいです。 そうでなければ他の誰かのことができ 私function--を含みますuse-- 私のファイル、およびだけで取得します これらの機能へのアクセス 物事を実行することなく、 私は、このファイルに実行すること。 これは、再び、オプションです しかし、非常に一般的。 これらのことはentirely--されています CとPythonの間に全く同じ、 確かに3インチ 私は2、除算演算子で考えます 時々戻ってあなたを与えるときに浮かびます あなたはint型で動作し、いずれか あなたはそれを望んでいたか、あなたはしませんでした。 しかし、プラス、マイナス、および時間 あなたが期待するように正確に動作し、 もう少し種類を超える除きます。 だからによりフロートを掛けることができます int型、物事のこれらの種類。 セットには、まったく同じ動作します。 次の2つの等号を使用することができます。 inequals--より大きい、少なく things--この種の、より 意味を持っています あなたはそれらに精通しています。 Cは、これらの演算子を使用する場合、 Pythonはもう少し英語を使用しています 読みやすいもの。 だから、代わりに2、アンパサンド、あなた 文字通り "、単語を入力し、「と」、「または か否か。" あなたの中のあなたのif--のように 条件文、 我々は前に見たことC言語でこの構文 Pythonでこの構文に対応しています。 そして、多くの異なるがありません そこに、少しを除いて 側面の周りの句読点の。 繰り返しますが、ここで、Cは他のだろう 、PythonはELIFを使用する場合、 これらは主にあります 表面レベルが変化します。 このような繰り返しであることが多いです Pythonでこのイディオムで書かれました。 あなたはこの種の製造することができます 外側のwhileループとの事 あなたが望んでいた場合、あなた 確かにありま​​せん。 そして再び、あなたが望んでいた場合 配列の中の要素を印刷 あなたは、このようにそれを行う可能性があります。 楽しいことの一つ しかしPythonの程度、 あなたが必要としないということです このパラダイムを使用するには、 あなたが使用することができます もう少しエレガントなもの。 あなたは進でのために言います。 そうではなく、ここに行くより そして、インデックス上で動作します、 して、引き出し 個々の要素、 あなただけの、実際のために教えてくれ 要素の上に自分自身を実行します。 そして、あなたがやっているものは何でも 内部直接操作することができます かなり楽しいです要素、上。 そして、我々は、我々が使用しますsee--ます 何度も何度もそのイディオム 我々は、コードの中を歩くように。 これは、再び、例であり、 その私がよ何かの ありますが、Pythonの魔法を呼び出します それが動作する理由は非常に技術的な理由。 そして、その技術的なものがあります 順に配列について真であることが必要 このために舞台裏で動作するように。 事は、ほとんどのタイプであります あなたはこれが動作するように期待します これがために実現がありました 内蔵の言語でのあなた。 それはいいだろうことをもう一つ これはすべての言語で働いていた場合、 しかし、なぜそれができないいくつかの理由があり、 この文字列回この番号を印刷します。 Pythonで判明し、これは正確に行います あなたは、ちょうど楽しみであるか、何をしたいと思い 私たちは実際にできることを意味します mario.c再び、このプログラムを減らします。 むしろ多くのことを反復するよりも、我々はできます ちょうど私がスペースをいくつかしたい、と言います、 私はハッシュの数をしたいです、 そして最後に、いくつかのハッシュ。 そして再び、私たちは、この形式を使用します。 ここでは、渡しています 変数この方法。 繰り返しますが、我々は言う必要はありません それは変数の型、 唯一の時間と私たちはよ エラーが発生する実行時です。 誰かがしようとすると で何かを渡すために、 それがうまく機能に来ます。 これではないので、ここではウェッジ場合 あなたは以上の範囲を作成することができますこと、 私は、そこにランタイムエラーを取得します 私はそのようにデバッグする必要があります。 しかし、その間に、私が持っていません 何について非常に注意します 実際にあるものであれば、中に渡されます 実行それはすべての非常にきれいに動作します。 私もこれを作ることができます 少しクリーナー 特定の組み込み関数を使用して 右揃えされた文字列、上。 これはただの便利な機能です ライブラリの周りに横たわっています。 これは、ドキュメントにです あなたが行くと、それを探している場合。 そして、私はよく、私は持っているつもりだ、と言います この文字列、ハッシュのいくつかの数、 私は右it--パッドを正当化したいのですが この長さにスペースでそれアウト。 再び、これはです us--もたらしドキュメント、 私は実際にクリックスルーますthese-- これは私たちの第二のルールに私たちをもたらします Python--標準ライブラリのための 機能メソッドはあなたの友達です。 そして、それは多くの場合、あなたの中の価値があります 探しに行くために私は疑問に思います ただ、これを行う事があれば。 おそらくあります。 あなたはパッドしたい場合 文字列アウト、あなたが希望の場合 バックを利用したいです 文字列の半分、あなたが希望の場合 場合、文字列を検索したいです あなたは物事のカップルを粉砕したいのですが 一緒に文字列を それらの間のカンマで、 標準ライブラリがあります これを行うための機能。 そして、それはあなたの人生を作ります あなたがそれらを使用する場合より簡単に 代わりにロールアウトの 自分ですべてのもの ここでのコードの5行で、 ここでのコードの5行。 それは本当にで開始します リアルタイムまで追加。 面白いことの一つ これが呼び出される方法について。 あなたは、ドットのものがあることに気づくでしょう。 私は左にいくつかのオブジェクトがあり、 そして私は、関数のドットと呼ばれます。 これは、Pythonのパラダイムの一つであります オブジェクトにメソッドを取り付けるため使用しています。 私たちは、どのようなこのことについて話しましょう 最後に、非常に簡単です、 しかし、我々は両方で動作させることができることを知っています そのこと言ってドットを取ることによって、物事 何でも、または呼び出すことで、 取る関数 そのオブジェクトと他のいくつかの引数を指定します。 したがって、これらは、両方の方法があります 物事はPythonで成し遂げます。 そして、特定のかどうか 機能が実装されています このスタイルで、またはこの スタイルは、あなたのものです あなたがこつを得るまでになります どちらのためにそれはに陥る可能性があります。 多かれ少なかれ粘着性があります Pythonの背後にある哲学 あなたが主に吸収します その中に多くのことを書くことによって。 いくつかのポイントは、これらのいずれかで、 何かのように実装されます 自然になります。 今のところ、それはちょうど何か あなたが把握として、あなたは学びます 各個別の事。 だから、標準ライブラリ 機能はあなたの友達です、 そして彼らはあなたがそのことを書いてみましょう 本当にすぐにこれだけのスペースを取り、 本当にエレガント。 そして、これはおそらくより実際にあります Cプログラムよりも、私は言うだろう、読みやすいです あそこ。 そうであるという事実は言うまでもありません 短いあなたは全体象を収めることができます その空間に我々が保存されてきました。 もう一つは、これは実装です マリオのそれは私が考えるドットC、です あなたはそれを得ることができ、最短です。 これは、get int型を持っていませんが、 それハードコード10の値 この1つはと同じ方法。 判明している時で、この1クロック 84文字、Pythonは64であるのに対し。 そして、これは無限に多いです ここで、このゴミよりも読みやすいです。 だから、Pythonは空間内でより効率的です。 これはわずかに少ない効率的です 時間ではなく、多くのことで。 リストはPythonで重要なことです。 我々は彼らを見て、彼らしていません 配列はCで行うように多くの動作 だからここに、あなたはそれらを宣言することができ、 あなたが事にそれらを渡すことができます。 今四角は保持しています これらのものの配列。 繰り返しますが、私たちは次のように宣言されていません タイプが、私たちは今までそれを使用しようとすると、 あなたが期待するもの 整数の配列に取り組みます 上の仕事に行くされています 整数の配列。 これは、ものです あなたは絶対にできません ので、C言語で行います それはとても手にあるメモリ、 しかし、Pythonで行うことは非常に簡単です。 私は私の配列が大きくなるようにしたい場合は、私がすることができます それに要素を追加し、それは大丈夫です。 何が裏で起こっているの? 通訳が入ります アウトといくつかのメモリを取得し、 そして多分それは買ってあげます 余分なメモリを少し、 私はので、私は持っていないいません 毎回に対してreallocします。 しかし、どのように多くは多くを持っています それはメモリを必要とするのか? これは決定事項ではありません あなたが作る必要があること、 これらが決定されています 通訳は何をするつもりです。 ここでは、範囲缶を参照してください 二つの引数を取り、 それはまだ包括的になるだろう トップの私たちはそこに1を追加します。 これがさらにあるイディオム、あります このようなことを書くための賢い方法。 これは、リスト内包と呼ばれています そして、ここでは何を言っています 私が入れしたいです私は乗 この範囲内で、iの値ごと。 右側のこの事は、別の可能性 アレイと、左側にこの事 任意の特定の関数であることが それが変数として私に取ります いくつかの結果を私を与えます。 私は何をするつもりだことはあります、 私が構築するつもりです これらの事のすべてです配列 この範囲内の各値のため。 そして、これは、超短、超エレガントです そしてそれが何を意味するのか非常に明確です。 これは、のいずれかです これは再びthings-- 1 of--の非常に象徴 理由のPythonのような人。 あなたはプログラミングのような場合 このように、その後のPython あなたが学びたいことがあります言語です。 そして再び、技術があります この動作理由。 しかし、これまで我々が懸念しているとして、 私たちは多かれ少なかれ気にしません。 だから、リストを印刷したい場合は、 同じイディオムの一部が便利です。 この範囲のiについて、我々は可能性 すべてのものを通してインデックス し、それらすべてをプリントアウト。 そして、あなたはここでLEN表示されます。 あなたが取得したいしている場合 配列の長さは、それです Pythonで非常に簡単に、 それは、C言語では非常に難しいです これは、正確にプリントアウトするだろう あなたはそれを期待したいです。 私たちは前に見てきたように、またできました、 配列内の要素を反復処理 直接、その後、ちょうど話 それよりもむしろ率を有します バック配列するたびに。 そして、これはあなたがすることができるものです。 Cではだから、あなたが何かを求める場合 このように、印刷は言うだろう、 それは、整数の配列です。 それは間違いではありません 文字列は、私はそれを印刷することはできません。 Pythonは多かれ少なかれ気にしません。 それは、のようなものだ私の方法があります 文字列の中でこれを回すことができますか? ええ、私はそれを行うだろう。 そして、私はちょうどそれをプリントアウトします。 これは、あなたができることを意味します これらlike--ことを行います ハードパーツのほとんどをしています 15のゲームで、書かれました Pythonで非常に簡単。 あなたはそこだとわかります ここof--少し 私は、整数を文字列にキャストしましたが、 私は手動で行う必要があります。 そして、私は追加するつもりです 別の文字列に、 またはそうでなければPythonが混乱します。 しかし、あなたがいるときか 整数に文字列を追加し、 私が取得すると仮定しています バック整数またはバック文字列? しかし、再び、あなたの場合だけ 事にSTRを呼び出し、 そして、それはすべての可能でできました 世界は、文字列に変換され、 それはおそらくされます 文字列に変換されます。 ここでは、の使用を参照してください。 ネストされたリストの内包表記 左側に、いくつかのインデックス作成、これ あなたがそれに使用されるだろうとまったく同じで、 いくつかは、物事のプリントアウト。 繰り返しますが、我々はいくつかを定義しました 機能と私たちはそれらを呼ぶことにします 主に、我々は実際にファイルを取得するとき。 あなたがしたいようリターンが正確に動作します 検索するCでの作業に期待、 私たちはのようなものを設定することができます this--ここにリスト内包です 変数への代入があります、 私たちは実際にも簡単に行うことができます。 我々は、検索を記述する必要はありません、 内蔵の言語にあるため このことは、この配列内にある場合です。 falseを返す他に、trueを返します。 だから、検索の全体です。 ソートの全体 並べ替えを呼び出す含まれ、 これは実装がありますis-- これは、特定のCライブラリに組み込まれているの。 あなたはこれをご希望の場合 ソートの後方に、あなた このオプションを無効にすることができます 真と逆に引数。 そして、あなたは以上の並べ替えしたい場合 文字列は、それが内蔵されています同様に。 だから、これはこれらがあると言うことではありません あなたが毎日行うために必要なもの、 しかし、アイデアは、このことです Pythonの哲学であり、 これはあなたがしたいすべてのこれらの事こと ソートのビルトインされているしたいと思います。 そして、ほとんどの標準機能、 そうソート、長さ、何でも、 最も論理的に賢明な入力をサポートしています。 あなたは、同じアレイ上のlenを呼び出します あなたは、文字列にlenを呼び出す方法。 あなたは、文字列を並べ替えますmultiply-- あなたは配列をソートするのと同じ方法。 ほとんどの標準機能 人々が構築していること、 最もサードパーティ ライブラリ人 彼らがエミュレートしているので、ビルド 標準ライブラリの設計、 あなたがしているすべてのものの上に呼び出すことができます 以下のように、なぜこれだけでは動作しません、 Cで多かれ少なかれ、 それはPythonで動作します 人々は図のように後ろに動作するため、 ものが何であるかを、次に動作 適切に上。 だからもう一度、技術的背景が、それ プログラマとしての私たちの生活が容易になります。 だからここにファイルI / Oがあります。ファイルI / Oががたくさんあり​​ます それは複雑にささいなこと、 そのためのリソースがあります オンラインが、一言で言えば、 あなたは、ファイルにオープンを呼び出します 特定のタイプと名前を付けます。 それは読んだので、読み、 書き込み、書き込みまたは追加します。 あなたは、特定の数の読み取り 文字が出て、あなたは、それらを印刷 あなたはハローを得るでしょう! このファイルはこんにちは持っていたように私は、意味します! その中で、読むために呼び出し、 あなたが戻って何を得るでしょう すべて持っている文字列です 配列の残りの部分、 またはファイルの残りのすべて。 もう一度読んで呼び出した場合、 あなたは、ファイルの最後にしています ので、あなたが得ることはありません 何ので、あなたが閉じます。 再び、このことはなく.closeあります それはCでであるように、ファイルを閉じます fがあるので、これはより多くのまたは少ないです fは閉鎖するためのもの、あなたはしたいと思います。 しかし、基本的なファイルI / Oがありません 特に複雑。 繰り返しますが、ファイルを開くしたい場合は、もし あなたが特定の行を読みたいのですが、 あなたは、特定の外に取得することができます line--そのための組み込み関数があります。 次のように記述したい場合 事は、あなたはこれを書くことができます。 あなたは個人を書き出すしたい場合 刺され、あなたがそれらを書くことができます。 そして、あなたは反復処理したい場合 ファイルの行の上 個別に、私たちはより一枚で行ったように 数週間前に、あなたがにそれを行うことができます。 ここでも、ほとんどのオブジェクトは、あなたがしたいです 反復処理できるようにしたいです それらを反復処理をサポートします。 ニシキヘビでは、ファイルは多分そのことです 私は行ずつを反復処理したいと思います。 それは辞書であった場合 言葉の、私はでした これらの個人を取得しようとしています 言葉出て、その後、このループ内で、 それがために起こっているライン ターンと、この内の各単語 すべての行に対して実行されようとしています ファイル内のファイルの終わりまで。 そして再び、私はそれぞれをプリントアウトした場合 行、行は、新しい行が付属して 私は終わりを設定してい このようなものにバックします。 それから私は、私のファイルの内容を取得したいです。 で動作する第2のもの いくつかのリストのような方法、およびいくつかの点で 何かのように、実質的に より強力な、 実際にされている辞書、 使用して涼しいが、基本的にハッシュされています 変装したテーブル。 あなたは正確に使用して作成します 素晴らしいです二つの文字、 あなたが実装しようとした場合 問題セットのハッシュテーブル、 あなたがすることができます多くの苦痛を知っています。 しかし、人々が行っています それは、と、非常によくそれをやっ あなたがする必要がないこと もうそれを心配します。 その後、個々のものを挿入することができます。 ハッシュtables--や辞書 しない、特に あなたがそれらに保存している気に。 そのように、いくつかのエントリは、数字である場合、 そして、いくつかのエントリはリスト​​です、 いくつかのエントリが他の辞書である場合、 そして、いくつかのエントリが文字列です、 Pythonはあまりないように注意しません。 繰り返しますが、期待し、それに行けば 文字列と何を取り戻します あなたの問題だアレイがあります。 そして多分それは誰のせいです それは物事を入れていたと思いました 辞書に、多分それはあなたでした。 それは誰だった場合 他に、うまくいけば、彼らがいました どの程度行儀 辞書に行っていました 任意の落とし穴はありません あなたに落下するため。 しかし、標準的な機能はなります 行儀の良いものをあなたにお返し。 そこで、彼らは、このリターンを言います バック文字列の辞書、 あなたが行っているすべてのもの 抜け出すためには、文字列です。 あなたはこのいくつかの操作を行い、それがトリップした場合 あなたがアップし、まあ、それはあなたにあるかもしれません。 Pythonは確かに十分なあなたを与えます あなたが好きな場合は、自分自身をハングアップするロープ。 今、私たちは、個人をプリントアウトすることができます この要素とこのリターン 正確にあなたが期待するもの。 正確にあなたが期待するものは、私は推測します、 私は多くを使用している語句は、 しかし、それはだよりや Pythonがどのように機能するかを以下です。 あなたがないものを求める場合 それは、Pythonはエラーをスローします それはのあなたを終了します どのようなプログラムあなたがしていました。 これは、実際にプリントアウトします それよりも多くの情報、 それはよyou--指します 行を追加し、そう。 そして、再び、多分私達が望みます 辞書を反復処理します その中のすべてのものを見つけます。 ここでは、繰り返し処理されています 同時に2つの事。 そして、私たちは、キー、値でそれをやります、 しかし、これらのすべてをプリントアウト。 そして、私たちはcast--したい場合 我々は実際にこれを実行した場合、 我々はいくつかの問題のためを持っているでしょう on--私たちはダビデで行った時、 私たちはしなかった場合にはadd--ことができませんでした 最初の文字列にキャストし、 私たちは、その配列を追加することができませんでした 文字列への文字列の。 しかし、我々はそれをキャストした場合 文字列、我々は何かを得ます このように、これは多分あります 私たちは読みたいと思います。 そして、これはスペルチェックです。 私たちは物事を読み込みます。 だから我々はで読むことができます 線として個々の単語。 我々は最後切り落とします 事なので、コロンマイナス1 we--最後をオフchompし 文字列の最後の文字。 私たちは言うでしょう。 [OK]を、それらのそれぞれが取得します この辞書に挿入し、 1の値にマッピングします。 我々はしない、特に その1気に、 それはまあ、言うことだけであり、 このことは、私は辞書に入れます。 私たちがしている後で何ので、 何をするつもりは、私たちがしているです それだと、よく、言うつもり 辞書内のすべてで。 繰り返しますが、このチェックのために 会員は、最大動作しています 完全に異なるを使用して アルゴリズムは、リスト内の意志よりも、 私たちは、同じようにそれを呼び出します そのPythonの糖衣の一部であります 物事彼らは使いやすくしているように。 そして再び、私たちは見てきました 前に、このようなもの。 これは基本的に見つけるか、さ それはまったく同じ構文です 見つけたが、上で動作しています 全く異なる構造。 そして、我々は特に気にしません。 だから、それらはあなたのものです スペルチェックのために実装するように求めていました。 このレートでは、我々は取得するつもりです 行わのpsetのすべて多かれ少なかれ。 聴衆:だから 基本的には戻ってきます そうでないかのように間違って綴ら 辞書の中で何かが一致していますか? ROSS RHEINGANS-YOO:はい、はい。 だから、これは 問題の適合セット これはまさにそれを実行するように求められます。 聴衆:なぜそこに1マイナスラインがありますか? ROSS RHEINGANS-YOO:だから あなたが反復しているとき 求めて、ファイルの上 線で、ライン 改行文字が付いています it--マイナス1の終わりに それらをオフに買い物をするだけです。 そして、これは特に柔軟性があります 物事にインデックス付けの方法。 ですから、文字列を持っている場合、 あなたはよく私は、たい 文字3で開始する予定 私は最後まで行くつもりです。 3コロンはあなたのためにそれを行います。 あなたが似ている場合、私はで開始したいです 始まり、最後のマイナス1に移動 文字、コロンマイナス1。 そして、あなたはから行きたいと思った場合 最初のマイナスの三番目、 あなたは3マイナス1を言うと思います。 さらに、インデックスを作成する場合 背面から数えて物事に、 マイナスの数字で、あなただけのインデックスです。 そしてので、ここで、C 爆発または多分う あなたが持っていなかった他のメモリを養います あなたが言うことができ、聞くにアクセスマイナス1 最後が、1を意味 文字列内の文字。 モジュールは、version--されています C言語のライブラリへの類似体 そして、たくさんのことのために有用です。 たくさんのあなたがしたいです Pythonでやりたいです、 シンプルほかに 変数の操作、 あなたはにフックしたいです 大きいと大きなライブラリ インタフェースおよびより 対話するための機能 世界の他の部分と。 sysが、それらの一つであります ツールの束と 対話するために有用であること システム自体に およびインポートsysのようにそれをインポートします。 からより多くのドキュメントがあります その、あなたはここに行くことができました、 または、Googleで見つけることができます Pythonのsysをグーグルこともできます。 あなたが入力し入力します。 最初のリンクはあることを行っています Pythonの2のドキュメント、 2番目のリンクをしようとしています ドキュメントのPython 3です。 そして、私たちは見てファイルを書いた場合 特にthis--場合のように、私たちはしています 上で動作を見て コマンドライン引数、 我々は非常に行うことを学んだように 早い段階で、このクラスインチ これは難しいことではありません。 あなたはARGVを得ることができ、 それらのものの一つがあります これは、SYSによって実装されます。 これは、内蔵のいないに ベースパッケージが、やはり、あなた インポートして、それを拡張することができます SYSからその機能。 あなたはSYSそれを呼ぶことにします。 なんでも。 ここでargvがあります。 いいえ、実際にあります ARGC SYSで、あなたのため LENを呼び出すことによって、そう簡単にそれを得ることができます。 我々は、我々はその後、それをプリントアウト 当社の端末echo-args.pyに走りました。 私たちは、配列を取り戻します この最初の引数です。 再び、これはargvの0であります 呼ばれました事の名前。 我々は、追加でそれを呼び出した場合 引数は、我々はそれらを取り戻すだろう。 これは、取得するための一つの方法であります コマンドライン引数。 あなたはターンのフラグをしたい場合 またはオーバーライド上の特定の物事 特定のデフォルト、 argparseはあなたの友達です。 そして再び、あなたはそれをオンラインで見つけます pythonでグーグルでargparse。 ユーティリティがいくつかあります あなたが使用して自分自身を見つけるのモジュール そして再び、あなたは任意の時間を費やす場合 jsonsをインポートするこの言葉の JSONの内外読み取るため ファイルは、その複雑ではありません。 あなたがファイルを開くには、json.loadと呼ばれます そのファイルに、あなたがものを取り戻します。 いったいあれは何ですか? これは、JSONオブジェクトです。 そのJSONは配列を有する場合、 Pythonは配列を持っています。 そのJSONは有する場合 連想配列、Pythonの 辞書、文字列、 数字、など。 あなたは、それをダンプしたいです あなたはダンプを呼び出し、新しいファイルを開きます、 そして、荷重とダンプへ 文字列の中と外に出ます。 同様に、漬物が呼び出されます 基本的に同じインタフェースです。 場合は、もう少し便利です あなたは、Pythonオブジェクトをダンプしています。 だから、保存するために、今まで思っていた場合 現在の状態のバージョン 将来のための変数の あなたのプログラムの実行、 ピクルスは、Pythonのです それを行うためのライブラリ。 あなたは、任意の並べ替えを持っている場合 書き出すことができる変数 以下のような言葉と文字とで 、この辞書のようbytes-- 我々は、我々を書き留めることができ それを書くことができます たJSONオブジェクトなど 文字通りこれらの文字。 そして、それがために非常に簡単だろう それを開くには、人間が開きますup-- それを読んでください。 我々は特にしなかった場合 それを読んで、人間を気に、 私たちも、より効率的にパッケージ化することができ 後で解凍することができた形に またはそれは後に膨張させることができました。 これは、80%を節約します スペースあなたのオブジェクトが可能性があること あなたが手書きをそれらを書いた場合は取ります。 あなたは非常に多くの漬物を呼び出します 同じway--ダンプ、ロード、 そして、あなたはあなたの事を取り戻します。 だから、非常に記述している場合 その短いPythonプログラム 状態を保存したい、その後読み 後で戻って、このようなもの あなたの友人があります。 あなたは非常にことができること 簡単にJSONとしてそれらをダンプします。 ほとんどのPythonオブジェクト JSONをダンプすることができます 構造的に任意の希望があるかどう 彼らはそのように表すことができます。 これらはのちょうど先端です 便利ですモジュールの氷山。 だから、SYS、OS、マルチプロセッシングで​​あり、 物事の基本的な主力のソート 我々はと対話する必要があります ファイルシステムのOS、 、os.isfileようos.isdirectory、 os.makefile、これらはあなたの友達です。 あなたが相互に作用する場合 特定のファイルタイプと、 JSON、ピクルス、CSV。 あなたがウェブと対話する場合 ページ、HTTPを取得するためのurllibでも ページ。 bs4-- BeautifulSoup-- それは、HTMLのための素晴らしいパーサです。 あなたは、HTML上でそれを実行し、 今、このネストされた配列オブジェクトを取得し、 あなたはオーバー横断することができます ちょうど探しのように、のlookin 幻想的である、で、である、場合。 の束があります running--用のパッケージ 特に数学に強いことをやってます。 だから、掛けたい場合は、 反転、変換行列、 numpyのは、すべての人々によって使用されています そのために世界中。 scipyのはさらに便利です その方向でのツール。 sklearn--機械学習、 自然言語処理、 超便利なものは、取得します Pythonですべての時間を実装しました。 そして再び、少し取り 長くて申し訳ありませんwrite--します、 実行するには少し時間がかかりますが、 実際のエンジニアが傾向があることを理由 あなたがする傾向があるので、使用Pythonがあります むしろ、コードを書いて、あなたの上にブロックされました コー​​ドを実行しているコンピュータよりも。 だから、あなたが書くつもりなら プログラム、他の多くの人々 使用しようとしています 永遠に、Linuxでは、あなたのような あなたがいた場合はCでそれを書くかもしれません 計算エンジンを書くつもり、 あなたが必要な場合は、Pythonで記述します 全ての数ヶ月、それを変更します。 一部の人々はそれを書きます C、彼らはそのようだから。 だから我々は、インポートsysを見てきました 物事を取得する方法として、 あなたのプログラムにモジュールを取得します。 また、それを次のようにインポートすることができます ニックネームは、あなたがしたいと思います。 ここでもマルチプロセッシングは、痛みには、 毎回を入力するので、融点としてインポート そしてその後、いつでも プログラムで使用し、 あなたはmp.process、または何を持っていると言うでしょう。 あなたは、インポートしたい場合 唯一の事、 そうurllibでもと呼ばれるものがあります 要求は、あなたがちょうどそれをインポートすることができます。 その後、あなたはとしてそれを呼び出しません urllib.requestが、ちょうど要求として それ自体で。 そして、あなたはすべてをインポートすることができます あなたが好きな場合は、モジュールから。 これは時折良いidea--ではありません この通常は良い​​考え、実際に。 どちらかといえば、あなたが原因very--理由 そのモジュールであなたの名前を持っています どこか別の場所に使用していました あなたのプログラムの中で、あなたがすることはできません。 そして、それは必ずしも明白ではありません それはケースだという。 ことを確認するために、 何をやっていたことは、安全でした あなたが開く必要があり すべてのモジュールとを参照してください。 で終わる名前の there--すべての機能、 すべての変数 それは、そのモジュールに住んでいます あなたはすべてを持っているため、 ローカル名前空間にそれら。 だから、人々はこれを行います。 これは、一般的に推奨されています あなたはこれをしないこと。 しかし、人々は、すべてこれを行います 時間彼らはだから 怠惰とMPを入力する必要はありません。 何も、今まで。 モジュールについてのすべてのこの話 短い話に私の周りをもたらします あなたはPythonでプログラムを設計方法に関する。 最初のステップは、かどうかを確認することです 他の誰がすでに事を行っています、 または物の90%を行います。 チャンスは彼らはおそらく持っている、とあなた 自分の事を取りに行くし、それを実行する必要があります。 それとも周りのラッパーを書きます あなたの目的に適合させるために。 それは持っていた後だけです あなたが失敗しただろうと 上に行くとのことを考え始めますwrite-- どのように一緒にこの事を入れてしまうでしょう。 ものがたくさんがあります そこに、それはです 最も有用なの一つ Pythonの程度のもの。 言語のようなものです エレガント、言語 使いやすいですが、また理由 それは、とてもエレガントで使いやすいです 人々はそれを使用しています 長い時間と多くのものがあります そこにあなたができること あなた自身の使用のために活用。 だから、Pythonの最後のルールは、誰かがあります 他のおそらくすでに書かれています そのためのモジュール、 他の誰かがすでに持っています おそらくそのためのライブラリを書いて。 あなたが事をしようとする前に、見て それが実装されていますかどうかを確認します。 それは難しいことではありません。 私は我慢モジュールのすべて おそらく1つの例外を除いて、前に、 すべての中にプレインストールされてい 標準のPythonインストール。 だからを呼び出して 、あなたに何をインポート その機能のすべてを持っています あなたの指先で。 これをラップするために開始し 話、いくつかあります 私はブラックボックスとして残してきたこと ソートの、オーバー練り 私はきたいくつかの白い嘘があります 正直のためにことを告げ、 私は、少なくとも時点でよ ここでは、場合でも、私はしません それらのすべてにスーパー深く行きます その技術的な説明。 たくさんの 私は魔法と呼ばれてきたこと 他の人が呼ぶものです オブジェクト指向プログラミング。 だからthings--がたくさんあり​​ます そう変数は非常に頻繁ではありません に座って簡単なバイト、 メモリが、非常に複雑です 内部を持つオブジェクト 機能とたくさんの状態について 隠された変数、たくさんの 隠された機能が、どの あなたが文字列に変えることができます、 これはあなたがそれらを反復処理することができます。 そして、あなたはwriting--ている場合 彼らその理由 この豊富な機能のすべてを持っています people--からです の建築家 language--行っています 通じ、すべての標準のための オブジェクト、機能に入れ これはこれがどのようにあると言って これはどのように動作するように起こっています 誰かがそれを反復処理したい場合。 だから、すべて誰かがかもしれません おそらく、反復処理したいです ロジックがで書かれています 手動でいる方法について そのオブジェクトを反復処理することになって。 あなたはおそらくお勧めしますすべて ロジックが書かれた文字列にダンプ。 これは、場合に呼び出す関数です。 あなたが文字列にこれをダンプします。 これは、なぜあなたができるです 呼び出すものにlenを、この あなたがのために呼び出すことができますなぜ、これがあります なぜならば、すべての中で呼び出すことができます あなたがしたいだろうと、理由 彼らと一緒に運んでいるすべてのものを、 そのための技術ノウハウ。 これは、私は何かであります スーパーに行くつもりはありません。 しかし、リストにあるもののために微妙です ループのC形式とは異なります、 あなたは上のそれについてのすべてを読むことができます インターネット、あなたは興味があるなら。 すべてのダークサイドがあります これ、私が述べたことを、 ので、2つのものがあります。 最初は、このオブジェクト指向ということです プログラミングは、多くのオーバーヘッドを追加します ランダムなものに、あなたが終了します より多くのメモリを使用してアップ。 あなたはもう少しを使用して終了します 時間あなたはそれ以外の場合よりも大きくなります。 other--が、より これに狡猾なダークサイド 物事がちょうど行動する場合、あります あなたは彼らがしたいように あなたはスーパーハードと思うしなくても、 これはint型でなければならないかどうかについて または存在するかどうか フロートは、それはこっちのことをあるかもしれません あなたはint型を生産するが、こっちます 思うが、彼らは残念always--よ、 そのここにあるかもしれません あなたはフロートを生成し、 しかし、あなたは第二部に到達したとき あなたのプログラムの、あなたが考えています、 まあ、しかし、彼らはよ いつも私にint型を渡します。 そして、彼らがいない場合は、それが可能です ことは、どこかに押し込ま あなたはインデックスにそれを使用しようとした場合 配列に、またはあなたが何を持っています。 本当のだから1 Cに関する有益なものです それは実際に考えるようにあなたを強制的に ハードあなたがany--を行う前に あなたは任意の変数を持って来る前に、 存在するように、好きなもの この変数の型があります。 そして、それは持っているために起こっています すべての時間のためにそのタイプ。 これは真実ではありません Pythonおよび実際には、あなたが あなただけならcan-- 耳で行くの並べ替え、 あなたは、いくつかの決定を行います 一つの場所で一つの方法、 そして、いくつかの決定は、1 他の場所での方法 背後に十分なものを置くことなく、 他の場所でのシーン 適切なものをキャッチするために、あなた いくつかの非常に奇妙なエラーが発生することができます。 そして、プログラムは実行し続けることができます 非常に長い時間のために、それはだから よく、言うことを多くの仕事をしています このことはこのように動作させることができ、 私はその方法を実行するつもりです。 実際には、実際にはそれが押すこと 小さな誤差の多くを介して転送します 、そのことが多いとき意味 エラーが実際に悪いです あなたが実際にそれを修正したいです、 それはプログラムaway--マイルを終了します 離れてマイルを停止してしまいます あなたがエラーを持っていたときから。 そして、私たちが望むように一つのこと 行うためのプログラム、一つのことをsometimes-- 我々はプログラムを希望することを 我々は、デバッグしているときに実行します 大声で失敗し、非常に失敗しています すぐに何かがうまくいかないとき。 Pythonはその時に非常に悪いです。 Pythonはないでは非常に良いです 失敗してロールフォワード 予想外の事を通して。 だから、これはときに便利です あなたは小さなプログラムを書いています。 あなたは複雑になる場合には バグ時には それらをいじめるのに長い時間がかかります。 だから、ダークサイドは全てにあります それだけで動作するように、このの。 あなたはそれが期待するように、それだけで動作します。 そうでない場合は、あなたが終了することを除き、 完全に別の場所にアップ どこで把握しよう それはあなたが間違っていたということでした。 ガベージコレクションはそれほどis-- あなたは気づくでしょう一つのこと これらの事の任意のものであり、 私はexistence--に持ってきました これらの配列は、これらの辞書は、これら オブジェクト、解放されることはありません飽きないfiles--これら。 への呼び出しはありませんでした この話のいずれかで無料。 そして、それはので、C側にありました 私たちは、それらのものになったことはありません。 しかし、Pythonの側に、自由がありません。 物事は自動的に取得します 解放されたときのPython あなたがそれらを見ていないと考えています。 それは、物事を本当に良い解放いないこと あなたはまだ可能性を見ている可能性があり、 これはつまり、あなたがいた場合 この大きなものを割り当てるために行きます、 あなたは、ああ、似ています 私は、今それで終わりです それはPythonを伝えることは困難です ことをあなたは今それを行っています。 あなたは時々、設定することができます 何もすることがないように、その変数、 そして、その最終的には願っています ガベージコレクタ 伝わってくるし、それをクリーンアップします。 しかし、再び、あなたはしないでください それを制御することができます。 そして、その理由の1人は、Cを使用すること 本当に重要なものをパフォーマンスのために、 本当にこの能力であります メモリが割り当てられているときに知っています それが解放されて、持っていたとき 言うのコントロールの多くは、 私は私が必要とするよりも多くのメモリを使用していませんよ。 どのものです Pythonのは、その素晴らしいではありません。 観客は:私はあなたに質問をすることができますか? 大声で失敗することによって、あなたは何を意味するのですか? ROSS RHEINGANS-YOO:もしそうであれば 何かが間違っているだろう あなたはデバッグにいます モード、あなたは非常に頻繁に希望 あなたのプログラムがあなたに伝えたいです 場所を正​​確にそれが間違っています、 そして静かに実行を停止しません。 しかし、あなたが実際にそれを印刷したいです あらゆる種類の情報についてのアウト 以下のように、ここにこれがありました。 あなたが印刷している場合は、このことが起こりました あなたがウェブserver--を実行している場合wen-- 聴衆:[聞こえません] ROSS RHEINGANS-YOO:うん、あれば あなたは、Webサーバーを実行しています あなたがしている場合、それは時々悪いです 常にエラーを破棄し、 あなたが言っています、 よく、それは動作しませんでした。 私は停止するつもりです。 私は無視するつもりです それとの続けます。 あなたは数百に得ることができるため、 これらのエラーのではなく、それらを参照してください。 それは確かに有用であろう デバッグ目的で Webサーバーたびに行われた場合 エラー、あなたはその耐久性のある記録を持っていました。 たぶん、あなたも、プログラムをしたいです 、それらのレコードように停止します 物事の下に埋もれていません。 しかし、再び、それはデバッグモードでです。 多くの場合、生産モードで、 世界は少し異なります。 そして、私が実行している小さなスクリプトで、 ここで私が何を言ったこと 少しだけオフになる場合もあります 私はそれが何をしたいものから、 その後、並べ替えの貫通押し エラーはあなたが望むかもしれないものです。 そして、これらの場合には、確かに Pythonは本当に、その開始を稼いでいます。 私は話をしなかった最後のもの this--ことに私は約話をしませんでした 本当に最初に腹立たしいことができます 時間は、あなたがこれらのエラーのいずれかが、 第2および第3および第四 時間はあなたが1これらのエラーを持っています。 私が述べたのPython、 それは空白を使用していること インデントのあなたに伝えるためにどのレベル そしてあなたがしている機能どのようなブロック、 それは異なったタブとスペースを扱います。 あなたタブ4を超えるのであれば、その後、 次の行は4つのスペースを持っています、 彼らはとして表示しても あなたのエディタで同じ量、 Pythonはそれらを同じように扱うことはありません。 実際には、Pythonはタブを扱います 石油や水のようなスペース。 彼らはただ異なるものです。 特にはありません タブがある長さ、 タブは8に等しいようなので、そうではありません スペース、およびので、あなたがそれを回避するだろう そのように。 、それが言うときに、好きなもの 私がよ空白のレベル、 それは実際に探しています スペースとタブのパターン。 だから、最良の方法は、これに対処するには 常にスペースのすべての時間を使用することです。 そして実際に、Cloud9で IDEとCS50のIDE、 あなたのTabキーを挿入 代わりに4つのスペース 超便利であるタブの。 再び、あなたはPythonを書いた場合けれども 大丈夫だと思うのタブを持つプログラム、 誰か場合それだけです 行って、追加しようとしました あなたのプログラムと一行 すべてのタブの4つのスペースを持っていました、 それが壊れます。 そして、それが邪魔に破ります それは実際には表示されません。 実際のエラーものの それはスローメッセージ 新しいに関係しています インデントここでは予想されません、 or--それはインデントについて話している場合 それは間違っているように、それが見えます、 それはおそらくです タブスペースの問題があります。 彼らはまだデバッグに腹立たしいしています。 最大の全体 私はしませんでした。この話、 それは本当にだからに着きます 複雑な、微妙な話題、 そして、は、いずれかの操作を実行する必要はありませんでした 我々はこれまでにやったことの、 タプルと呼ばれる概念です。 彼らは多くのようがあります あなたが変更することはできません配列。 彼らはので、あらゆる場所に慣れます 彼らは物事の多くのために有用です アレイは、のために有用ではないこと。 しかし、あなたは配列を作るしたい場合、および あなた通訳を約束 それを変更するつもりされることはありません 実際にthing--、変更したい場合は、 あなたは新しいと新しいものを作ってあげます it--それらの値はタプルです。 むしろ生産より 角括弧でそれらを、 あなたは丸括弧でそれらを生産します。 なぜあなたはこれらのものを使用することになり、 質問の少しです。 。 唯一私がよ あなたですそれについて言います タプルを使用することができます 辞書の指標。 あなたはとして配列を使用することはできません 辞書の指標。 そして、なぜである、再び、技術的、 私はそれに実行するつもりはありません。 私は触れていないのpset この講演で上pset6です。 だからここにあなたがD '方法です ここにA--実装 どのようにPythonでpset6を実装します。 心の中でPythonを維持 設計サイクル、最初のもの あなたがしているときに行うことを 書き込みプログラムはチェックです 誰かがすでにそれを行うのかどうかを確認します。 実際には、あなたがしたい場合 Apacheの50をserve--します これは、ほぼありませ​​ん、 それが付属していません除きます 標準では、Linuxマシン上にインストールされています。 Pythonはない、とPython シンプルなHTTPサーバも同様に行います。 あなたは、Linuxマシン上で、これまでであれば、 またはCS50のCloud9 IDEの外 あなたは、この電流を提供したいのですが 特定のポートへのディレクトリ、 python-M SimpleHTTPServer ポートはそれを提供しています。 また、インポートすることができます 単純なHTTPサーバ それがあれば多くの機能を持っています あなたはそれをカスタマイズしたり、それを変更したいです、 またはit--がそれを活用実行されます 独自のサーバーサービスを実行します。 だから、一言で言えばPythonの。 そして、これはCS50となっています。 ありがとう。