問題タブ [python-3.x]

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.

0 投票する
10 に答える
2765 参照

algorithm - これの計算の複雑さを減らすことはできますか?

さて、私はプログラムを非常に遅くしているこのビットのコードを持っています。これは線形複雑ですが、何度も呼び出されてプログラムを二次複雑にするためです。可能であれば、計算の複雑さを減らしたいと思いますが、それ以外の場合は、できる限り最適化します。これまでのところ、次のように削減しました。

私が見逃したものを見た人はいますか?ありがとう!

編集: 言い忘れました: n は常に素数です。

EDIT 2:これが私の新しい改良されたプログラムです(すべての貢献に感謝します!):

EDIT 3:実際のコンテキストでテストすると、はるかに高速です! この質問は解決されたように見えますが、多くの有用な回答があります。また、上記の最適化と同様に、Python 辞書を使用して関数をメモしました...

0 投票する
9 に答える
43883 参照

python - Python 3.x 用の MySQL-db lib?

それで、py3k/py3.0/py3000 と互換性のある mysql-db-lib を探していますか? Google は何も表示しませんでした。

0 投票する
2 に答える
455 参照

python - Python 3 移植ワークフロー?

Python 3 への移植を試みたい小さなプロジェクトがあります。これを行うにはどうすればよいですか?

を使用して警告なしでコードを実行できるようにしましたがpython2.6 -3(ほとんどの場合.has_key()は呼び出しを削除しています)、2to3 ツールの最適な使用方法がわかりません。

2to3 ツールを使用して、このソース コードを 3.0 構文に変換します。出力を手動で編集しないでください。

実行2to3 something.pyすると差分が出力されますが、それ自体では役に立ちません。フラグを使用する--writeと、something.py が上書きされ、バックアップが作成されます。やらなければならないようです。

..これは少しラウンドアバウトです-理想的には、次のようなことができます..

0 投票する
3 に答える
6568 参照

algorithm - 特定のプロパティを持つ整数を見つける - プロジェクト オイラー問題 221

私は最近 Project Euler にはまっているので、次はこれをやろうとしています! 私はそれについていくつかの分析を開始し、すでに問題を大幅に削減しています。これが私の仕事です:

A = pqr および

1/A = 1/p + 1/q + 1/r だから pqr/A = pq + pr + qr

そして、最初の方程式のために:

pq+pr+qr = 1

p、q、r の 2 つだけが負でなければならないため、式を次のように単純化できます。

ab = ac+bc+1 の abc

c について解くと、次のようになります。

ab-1 = (a+b)c

c = (ab-1)/(a+b)


これは、次の a と b を見つける必要があることを意味します。

ab = 1 (mod a+b)

そして、これらの a と b の A 値は次のとおりです。

A = abc = ab(ab-1)/(a+b)

それが多くの数学である場合は申し訳ありません!しかし、ここで取り扱わなければならないのは、1 つの条件と 2 つの方程式だけです。ab = 1(mod a + b)でab(ab-1)/(a + b)として記述された150,000番目に小さい整数を見つける必要があるため、理想的には、Aができるだけ小さく。

簡単にするために、a < b と仮定し、gcd(a, b) = 1 であることにも気付きました。

私の最初の実装は単純明快で、150,000 の解を十分に速く見つけることさえできます。ただし、150,000 個の最小解を見つけるには時間がかかりすぎます。とにかくコードは次のとおりです。

私の次の考えは、Stern-Brocot ツリーを使用することでしたが、解決策を見つけるには遅すぎます。私の最終的なアルゴリズムは、中国の剰余定理を使用して、a+b の異なる値が解をもたらすかどうかを確認することでした。そのコードは複雑で、高速ではありますが、十分に高速ではありません...

だから私は絶対にアイデアがありません!誰でもアイデアはありますか?

0 投票する
3 に答える
19629 参照

python - Python 3.0 で許可を得て http 経由でファイルをダウンロードし、バグを回避するにはどうすればよいですか?

引き続き使用したいスクリプトがありますが、Python 3 のバグの回避策を見つけるか、2.6 にダウングレードして、他のスクリプトもダウングレードする必要があるようです...

うまくいけば、ここの誰かがすでに回避策を見つけていることを願っています。

問題は、バイトと文字列に関する Python 3.0 の新しい変更により、明らかにすべてのライブラリ コードがテストされていないことです。

Web サーバーからページをダウンロードするスクリプトがあります。このスクリプトは、Python 2.6 の URL の一部としてユーザー名とパスワードを渡しましたが、Python 3.0 ではこれが機能しなくなりました。

たとえば、これは次のとおりです。

この例外で失敗します:

どうやら、base64 エンコーディングにはバイトが必要であり、文字列を出力するため、username:password の文字列を構築し、単純な認証のためにこれを base64 エンコードしようとする urlretrieve (またはその中のコード) は失敗します。

代わりに urlopen を使用しようとすると、次のようになります。

次に、次の例外で失敗します。

どうやら、この「次世代 URL 検索ライブラリ」の URL 解析では、URL 内のユーザー名とパスワードをどう処理すればよいかわかりません。

他にどのような選択肢がありますか?

0 投票する
8 に答える
143899 参照

python - Python でクラス メソッドを呼び出すと TypeError が発生する

クラスの使い方がわかりません。クラスを使用しようとすると、次のコードでエラーが発生します。

エラー:

どうしたの?

0 投票する
3 に答える
1485 参照

python - Tix と Python 3.0

Python 3.0でTixが動作するのを見た人はいますか? 例を試してみましたが、何かを作成すると、cnf は添え字を付けられないと表示されます。

また、2.6.1 では Dir Select 機能 (DirList DirTree) が機能しないことにも気付きました。

Python が Tix をダンプしたりサポートしたりしないのはなぜですか? 簡単なプログラムを作成するための優れた機能がたくさんあります。

0 投票する
5 に答える
1537 参照

python - Python 3.0 用のグラフ/プロット/そのようなライブラリはありますか?

タイトル通り。単純な散布図を作成しようとしていますが、それを実行できる Python 3.0 ライブラリが見つかりません。これは Web サイト用ではないため、Web サイトは少し役に立たないことに注意してください。

0 投票する
12 に答える
343950 参照

python - Python 3 の execfile に代わるものは何ですか?

削除することでスクリプトをすばやくロードする簡単な方法をすべてPython 3でキャンセルしたようですexecfile()

私が見逃している明らかな代替手段はありますか?

0 投票する
5 に答える
741 参照

python - Python 3 の開発と配布の課題

Python で書かれた汎用エンド ユーザー ユーティリティを開発したとします。以前は、バージョン 2.3 程度以降の Python に適したバージョンが 1 つしかありませんでした。「必要に応じて Python をダウンロードしてから、このスクリプトを実行してください」と言うだけで十分でした。ソース管理 (私は Git を使用しています) には、追跡するスクリプトのバージョンが 1 つしかありませんでした。

Python 3 では、これは必ずしも当てはまりません。近い将来、Python 2.x に適したバージョンと Python 3.x に適したバージョンの 2 つの異なるバージョンを同時に開発する必要があります。開発の観点から、いくつかのオプションを考えることができます。

  1. 同じブランチで 2 つの異なるスクリプトを維持し、両方を同時に改善します。
  2. 2 つの別々のブランチを維持し、開発の進行に合わせて共通の変更を前後にマージします。
  3. スクリプトのバージョンを 1 つだけ維持し、スクリプトをあるバージョンから別のバージョンに変換するパッチ ファイルをチェックインします。パッチが完全に適用されなくなるほどの変更が加えられたら、競合を解決して新しいパッチを作成します。

最初の 2 つは多くのエラーが発生しやすい退屈な作業を伴うため、現在はオプション 3 に傾いています。しかし、オプション 3 は厄介なようで、ソース管理システムがパッチを管理することになっています。

配布パッケージには、さらに多くのオプションから選択できます。

  1. Python 2 に適したパッケージと Python 3 に適したパッケージの 2 つの異なるダウンロード パッケージを提供します (ユーザーは、使用している Python のバージョンに応じて正しいパッケージをダウンロードする必要があります)。
  2. 2 つの異なるスクリプトを含む 1 つのダウンロード パッケージを提供します (そして、ユーザーは正しいスクリプトを実行することを知る必要があります)。
  3. 2 つのバージョン固有のスクリプトを含む 1 つのダウンロード パッケージと、インストールされている Python バージョンの正しいスクリプトを実行する、両方の Python バージョンで実行できる小さなスタブ ローダー。

繰り返しますが、私は現在、ここでオプション 3 に傾いていますが、そのようなスタブ ローダーをまだ開発しようとはしていません。

他のアイデアはありますか?