問題タブ [python]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Pythonで最も効率的なグラフデータ構造は何ですか?
Python で大きな (10^7 ノード) グラフを操作できるようにする必要があります。各ノード/エッジに対応するデータは最小限です。たとえば、少数の文字列です。メモリと速度の点で、これを行う最も効率的な方法は何ですか?
dict の dict はより柔軟で実装が簡単ですが、リストのリストの方が高速であると直感的に期待しています。リストオプションでは、データを構造とは別に保持する必要もありますが、辞書では次のようなものが許可されます。
何を提案しますか?
はい、効率の意味をもう少し明確にする必要がありました。この特定のケースでは、ランダムアクセス検索の観点からそれを意味します。
データをメモリにロードすることは大きな問題ではありません。それは一度だけ行われます。時間のかかる部分は、ノードにアクセスすることです。そのため、情報を抽出して、関心のあるメトリックを測定できます。
各ノードをクラスにすることは考えていませんでした (プロパティはすべてのノードで同じです)。私は、誰かが共有できる同様のケースで直接の経験を持っていることを望んでいました. 結局のところ、グラフは CS で最も一般的な抽象化の 1 つです。
python - Pythonでバイナリリテラルをどのように表現しますか?
Python リテラルで整数を 2 進数として表現するにはどうすればよいですか?
16進数の答えを簡単に見つけることができました:
および8進数:
Pythonでバイナリを表現するためにリテラルをどのように使用しますか?
回答のまとめ
- Python 2.5 以前: リテラルを使用してバイナリを表現できます
int('01010101111',2)
が、リテラルでは表現できません。 - Python 2.5 以前:バイナリ リテラルを表現する方法がありません。
- Python 2.6 ベータ版: 次のようにできます:
0b1100111
または0B1100111
. - Python 2.6 beta:
0o27
または0O27
(2 番目の文字は文字 O) で 8 進数を表すこともできます。 027
Python 3.0 ベータ版: 2.6 と同じですが、8 進数の古い構文は使用できなくなります。
python - プロトコル バッファに関する経験はありますか?
Google のプロトコル バッファのデータ交換形式に関する情報を調べていたところです。誰かがコードをいじったり、プロジェクトを作成したりしましたか?
私は現在、テキスト エディターで手動で作成された構造化コンテンツ用の Python プロジェクトで XML を使用しています。ユーザー向けの入力形式としての Protocol Buffers に関する一般的な意見はどうなのか疑問に思っていました。速度と簡潔さの利点は確かにあるように見えますが、実際にデータを生成して処理するには非常に多くの要因があります。
python - ユーザーが [enter] を押して選択する必要のないメニューを作成するにはどうすればよいですか?
私はPythonでメニューを持っています。その部分は簡単でした。raw_input()
ユーザーから選択を取得するために使用しています。
問題は、ユーザーが選択を行った後にraw_input
(および入力で) 押す必要があることです。Enterキーストロークでプログラムをすぐに動作させる方法はありますか? ここに私がこれまでに持っているものがあります:
みたいなのがあれば最高です
python - Python: 実行している OS は?
Windows と Unix のどちらを使用しているかを確認するには、何を確認する必要がありますか?
python - Python:(1,2,3)と[1,2,3]の違いは何ですか?また、それぞれをいつ使用する必要がありますか?
多くの場所で、(1,2,3)
(タプル)と[1,2,3]
(リスト)は同じ意味で使用できます。
どちらを使用する必要がありますか、またその理由は何ですか?
php - FTP経由でサーバーにファイルをコピーした後のファイルサイズの違い
ローカル ディレクトリ内にある Web サーバーを更新するための PHP スクリプトを作成しました。スクリプトを Python に移行しています。ほとんどの場合は問題なく動作しますが、PUT コマンドを実行すると、ファイルのサイズが変化するように見えます。したがって、ファイルのサイズはサーバー上のファイルのサイズとは異なります。
FTP サーバーからファイルを再度ダウンロードすると、唯一の違いは CR/LF マークです。同じスクリプトが更新するファイルのサイズを比較しているため、これは私を悩ませます。また、何らかの意味がある場合、スクリプトは ftp_put を介して PHP で完全に動作します。
助言がありますか?
python - Python を使用して直接実行可能なクロスプラットフォーム GUI アプリを作成する
Python は複数のプラットフォームで動作し、デスクトップおよび Web アプリケーションに使用できるため、Mac、Windows、および Linux 用の実行可能ファイルにコンパイルする方法があると結論付けています。
問題は、どこから始めればよいのか、GUI を作成する方法がわからないということです。だれかがこれに光を当てて、正しい方向に向けてください。
python - モジュールの名前(文字列)を使用してモジュールの関数を呼び出す
Pythonプログラムで関数の名前が付いた文字列を指定して、関数を呼び出すための最良の方法は何ですか。たとえば、モジュールfoo
があり、内容が。である文字列があるとします"bar"
。電話をかける最良の方法は何foo.bar()
ですか?
関数の戻り値を取得する必要があるため、を使用するだけではありませんeval
。eval
その関数呼び出しの結果を返す一時関数を定義するためにを使用してそれを行う方法を理解しましたが、これを行うためのより洗練された方法があることを望んでいます。
python - 初心者にプログラムを教えるための最良の方法は?
元の質問
私は現在、弟にプログラムを教えることに従事しています。彼は全くの初心者ですが、とても頭がいいです。(そして彼は実際に学びたいと思っています)。私たちのセッションのいくつかが細部に行き詰まっていることに気づきました、そして私は私があまり組織化されていないと感じています。(しかし、この投稿への回答は大いに役立ちました。)
彼に効果的に教えるために私は何をより良くすることができますか?概念ごとに実行するために使用できる論理的な順序はありますか?後でまで避けるべき複雑さはありますか?
私たちが使用している言語はPythonですが、どの言語でもアドバイスを歓迎します。
助ける方法
あなたが良いものを持っているなら、あなたの答えに以下を追加してください:
- 初心者向けの演習とプロジェクトのアイデア
- 初心者を教えるためのリソース
- スクリーンキャスト/ブログ投稿/無料の電子書籍
- 初心者に適した本を印刷する
確認できるように、リソースへのリンクを記載して説明してください。私は間違いなくこれらのアイデアのいくつかを使用していることをみんなに知ってもらいたいです。あなたの提出物はこの投稿に集約されます。
初心者を教えるためのオンラインリソース:
- Pythonを使用したプログラミングの穏やかな紹介
- コンピューター科学者のように考える方法
- アリス:初心者向けの3Dプログラム
- スクラッチ(プログラミングスキルを開発するためのシステム)
- プログラムの設計方法
- コンピュータプログラムの構造と解釈
- プログラムすることを学ぶ
- ロバート・リードのプログラマーになる方法
- Microsoft XNA
- 次世代のハッカーを生み出す
- COMP1917リチャードバックランドによるハイアーコンピューティングの講義(iTunesが必要)
- Pythonに飛び込む
- Pythonウィキブックス
- プロジェクトオイラー-サンプル問題(主に数学)
- pygame-ゲームを作成するための簡単なPythonライブラリ
- Pythonで独自のコンピュータゲームを発明する
- 基本を超えた次のステップのためのプログラミングの基礎。
- 例によるきしみ
- 子供のためのヘビのラングリング(それは子供のためだけではありません!)
初心者を教えるための推奨プリントブック