タグ付けされた質問 「python-3.x」

言語のバージョン3以降に固有のPythonプログラミングに関する質問。質問がバージョン固有でない場合は、より一般的な[python]タグを使用してください。Python 2の質問には[python-2.x]タグを使用します。

19
バイトを文字列に変換する
このコードを使用して、外部プログラムから標準出力を取得しています。 >>> from subprocess import * >>> command_stdout = Popen(['ls', '-l'], stdout=PIPE).communicate()[0] communication()メソッドはバイトの配列を返します。 >>> command_stdout b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file1\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file2\n' ただし、出力を通常のPython文字列として処理したいと思います。このように印刷できるように: >>> print(command_stdout) -rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file1 -rw-rw-r-- 1 thomas thomas 0 …
2310 python  string  python-3.x 

10
Python 3で「1000000000000000 in range(1000000000000001)」が非常に高速なのはなぜですか?
私が理解しているのは、range()実際にはPython 3のオブジェクト型である関数が、ジェネレーターのようにその場でコンテンツを生成することです。 これが事実である場合、1兆が範囲内にあるかどうかを判断するためには、1兆の値を生成する必要があるため、次の行に膨大な時間がかかると予想していました。 1000000000000000 in range(1000000000000001) さらに、ゼロをいくつ追加しても、計算には多少同じ時間がかかります(基本的には瞬時)。 私もこのようなことを試しましたが、計算はまだほとんど瞬時です: 1000000000000000000000 in range(0,1000000000000000000001,10) # count by tens 私が自分の範囲関数を実装しようとすると、結果はそれほど良くありません!! def my_crappy_range(N): i = 0 while i < N: yield i i += 1 return 何でrange()それがとても速くなりボンネットの下にやったオブジェクトは? マルタインピータースの答えは、その完全性のために選ばれた、だけでなく、見たabarnertの最初の答えのためにそれが何を意味するかの良い議論のためのrange本格的なようにシーケンスのPython 3での、およびのための潜在的な矛盾に関するいくつかの情報/警告__contains__のPython実装間の機能の最適化。abarnertの他の回答は、さらに詳細に説明されており、Python 3での最適化の背後にある歴史(およびxrangePython 2 での最適化の欠如)に関心のある人にリンクを提供しています。pokeとwim による回答は、関連するCソースコードと、興味がある人のための説明を提供します。


13
印刷機能の出力をフラッシュする方法は?
OverаэтотвопросестьответынаStack Overflowнарусском:Каквbash-конвейереиспользоватьвыводизpythonсразу? Pythonの印刷機能を強制的に画面に出力するにはどうすればよいですか? これはDisable output bufferingの複製ではありません-これはより一般的ですが、リンクされた質問はバッファリングされていない出力を試みています。その質問の上位の回答は強力すぎるか、この質問に関与しています(これは適切な回答ではありません)。この質問は、比較的初心者がGoogleで見つけることができます。

30
Pythonで「列挙型」を表すにはどうすればよいですか?
この質問の答えはコミュニティの努力です。この投稿を改善するには、既存の回答を編集してください。現在、新しい回答や相互作用を受け入れていません。 私は主にC#開発者ですが、現在Pythonでプロジェクトに取り組んでいます。 PythonでEnumに相当するものをどのように表すことができますか?
1143 python  python-3.x  enums 


3
Python 3で文字列をバイトに変換する最良の方法?
TypeErrorへの回答に示されているように、文字列をバイトに変換するには2つの異なる方法があるようです: 'str'はバッファーインターフェイスをサポートしていません これらの方法のうち、Pythonicの方が優れているか、より優れているでしょうか?それとも個人的な好みの問題ですか? b = bytes(mystring, 'utf-8') b = mystring.encode('utf-8')

20
辞書をコピーして編集のみを行う方法
誰かがこれを私に説明してくれませんか?これは私には意味がありません。 辞書を別の辞書にコピーして2番目の辞書を編集すると、両方が変更されます。なんでこんなことが起こっているの? >>> dict1 = {"key1": "value1", "key2": "value2"} >>> dict2 = dict1 >>> dict2 {'key2': 'value2', 'key1': 'value1'} >>> dict2["key2"] = "WHY?!" >>> dict1 {'key2': 'WHY?!', 'key1': 'value1'}

12
#を入れましょうか!(シバン)Pythonスクリプトで、それはどのような形式を取るべきですか?
Pythonスクリプトにシバンを入れるべきですか?どんな形で? #!/usr/bin/env python または #!/usr/local/bin/python これらは同等に移植可能ですか?最も使用されるフォームはどれですか? 注:竜巻のプロジェクトはシェバングを使用しています。一方、 Djangoプロジェクトはそうではありません。

8
Pythonで辞書キーをリストとして返す方法は?
Python 2.7、私は辞書得ることができるキー、値、またはアイテムリストなどを: >>> newdict = {1:0, 2:0, 3:0} >>> newdict.keys() [1, 2, 3] 今、Python> = 3.3で、私はこのようなものを得ます: >>> newdict.keys() dict_keys([1, 2, 3]) だから、私はリストを取得するためにこれをしなければなりません: newlist = list() for i in newdict.keys(): newlist.append(i) Python 3でリストを返すより良い方法はありますか?

22
virtualenvでPython 3を使用する
virtualenvを使用して、デフォルトバージョンのPython(2.7)でプロジェクトを実行します。1つのプロジェクトで、Python 3.4を使用する必要があります。 以前brew install python3はMacにインストールしていました。では、新しいバージョンを使用するvirtualenvを作成するにはどうすればよいですか? 例:sudo virtualenv envPython3 私が試した場合: virtualenv -p python3 test 私は得ます: Running virtualenv with interpreter /usr/local/bin/python3 Using base prefix '/usr/local/Cellar/python3/3.4.0_1/Frameworks/Python.framework/Versions/3.4' New python executable in test/bin/python3.4 Also creating executable in test/bin/python Failed to import the site module Traceback (most recent call last): File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/site.py", line 67, in <module> …

10
Python 3での相対インポート
同じディレクトリ内の別のファイルから関数をインポートしたい。 時々それは私のためにうまくfrom .mymodule import myfunctionいきますが、時々私は次のものを得ます: SystemError: Parent module '' not loaded, cannot perform relative import 時々それはで動作しますfrom mymodule import myfunctionが、時々私はまた得ます: SystemError: Parent module '' not loaded, cannot perform relative import ここでは論理が理解できず、説明もありませんでした。これは完全にランダムに見えます。 誰かがこのすべての背後にある論理は何であるかを私に説明できますか?

10
__pycache__とは何ですか?
OverаэтотвопросестьответынаStack Overflowнарусском:PythonпапкепроектанаPythonпоявиласьпапка__pycache__ 私が理解していることから、キャッシュは類似したファイルの暗号化されたファイルです。 我々はで何をしますか__pycache__フォルダ?それは、ソースコードの代わりに人々に与えるものですか?それは私の入力データだけですか?このフォルダは作成され続けますが、それは何のためですか?

9
TypeError:Python3でファイルに書き込むときに「str」ではなく、バイトのようなオブジェクトが必要です
私はごく最近Py 3.5に移行しました。このコードはPython 2.7で正しく機能していました。 with open(fname, 'rb') as f: lines = [x.strip() for x in f.readlines()] for line in lines: tmp = line.strip().lower() if 'some-pattern' in tmp: continue # ... code 3.5にアップグレードすると、次のようになります。 TypeError: a bytes-like object is required, not 'str' 最終行のエラー(パターン検索コード)。 私は.decode()ステートメントのどちらかの側で関数を使用しようとしました、また試しました: if tmp.find('some-pattern') != -1: continue - 無駄に。 ほぼすべての2:3問題を迅速に解決できましたが、この小さな発言が私を悩ませています。
590 python  python-3.x  string  file  byte 

20
有効な応答が得られるまでユーザーに入力を求める
OverаэтотвопросестьответынаStack Overflowнарусском:Каквыполнитьнесколькопровероквведенныхпользова ユーザーからの入力を受け付けるプログラムを書いています。 #note: Python 2.7 users should use `raw_input`, the equivalent of 3.X's `input` age = int(input("Please enter your age: ")) if age >= 18: print("You are able to vote in the United States!") else: print("You are not able to vote in the United States.") ユーザーが意味のあるデータを入力する限り、プログラムは期待どおりに動作します。 C:\Python\Projects> canyouvote.py Please …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.