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となっています。
ありがとう。