14/06/02 19:04:52.31 seA5qCd2
pythonで値渡しをするにはどうすればいいでしょうか!
value = 20
tmp = value # tmpにvalueの現在の値をコピーした後、
value += 5 # valueに処理を行います
value = tmp # valueの状態を以前の状態に戻したいのですが
tmpの値が変わっている為以前の状態に戻らないです。
理屈は分かっていますが、どう変えるのが一番簡単でしょうか?
98:デフォルトの名無しさん
14/06/02 19:11:17.00 BvPtciGS
>>97
俺のPythonだとtmpは20のままだよ
99:デフォルトの名無しさん
14/06/02 20:02:31.19 X19dTLG/
俺のPythonは最近元気が無い
100:デフォルトの名無しさん
14/06/02 20:04:38.75 BvPtciGS
ていうかPythonのその辺、実はよく勉強せずに使ってるんだよなあ
浅いコピー・深いコピーとか意味わかんないし
Cのポインタが嫌だからこっちに逃げてきたのだし
101:デフォルトの名無しさん
14/06/02 20:12:49.63 seA5qCd2
>>98
ごめんなさい、確かにそうですね。
ちょっと勘違いしてました。
>>> value = [1,2,3]
>>> tmp = value
>>> value.remove(1)
>>> print value
[2, 3]
>>> print tmp
[2, 3]
このようにtmpの値も変更されてしまうのです。
valueに処理を行う際に、その中身は退避するにはどうすればよいかが知りたいです。
102:デフォルトの名無しさん
14/06/02 20:19:32.60 XrfIxkeA
浅いコピーでいいなら
tmp = value.copy() か tmp = value[:]
103:デフォルトの名無しさん
14/06/02 20:30:51.09 4C3VTH4i
tmp = list(value) でもいいね
>>101
近年の言語では、「ポインタの値渡し」とか、「参照の・・・」とかという
概念からは避けて通れないので、理解してみると技術の幅が広がるよ
むしろC/C++のポインタと参照の方が、親切だと思うときはある
104:デフォルトの名無しさん
14/06/02 20:48:44.50 seA5qCd2
>>102
>>103
なるほど、ありがとうございます!
105:デフォルトの名無しさん
14/06/03 00:49:54.58 hkWAcWoq
安価ミス…?
106:デフォルトの名無しさん
14/06/03 01:14:47.69 sqxj/P/2
python2.7.7をインストールしたせいかIDLEが起動できなくなってしまいました。
クリックしても何も起きません。
どうすればよいでしょうか。
107:デフォルトの名無しさん
14/06/03 02:00:16.43 mwJyftym
>>100
クラスAの中にクラスBがあり、
Bの中にクラスCがある、A.B.C という階層を考える
浅いコピー(shallow copy)は、そのクラスA しかコピーしない
BCの参照(ポインタ)だけをコピーして、
実体をコピーしていないので、
Aは2つあるが、BCは1つしかないので、同じBCを使う
普通は、同じBCを使うとマズイことになる
深いコピー(deep copy)は、ABCと深い階層までコピーする
ABCも2つずつあり、独立して使える
108:デフォルトの名無しさん
14/06/03 02:19:51.84 ouBeooUC
pythonのオブジェクト指向ってjavaと比較して足りない機能ってありますか?
phpとpythonどっちかで学ぼうと思っていたんですがphpは足りない機能があるそうなのでpythonを検討しています
109:デフォルトの名無しさん
14/06/03 02:24:03.05 hDel/SED
phpって仕事で要求されてる人以外で自ら勉強しようと思ってる人っているの?
110:デフォルトの名無しさん
14/06/03 04:12:16.46 Y/MlbrO/
思いつくところとしてはフィールドのアクセス制限は強制じゃない
それで特別困ったことはないが
いわゆる古臭いオブジェクト指向の3原則から脱却できてない奴は
見えない敵にフィールドを書き換えられる恐怖に苛まれて精神的にキツイらしい
111:デフォルトの名無しさん
14/06/03 04:56:04.76 va6vQ78Z
ゆるいオブジェクト指向ω
112:デフォルトの名無しさん
14/06/03 07:16:03.57 XnfPU2Fh
Pythonに限った話じゃないが動的型付けだからインターフェースは用意しなくていい
ダックタイピングでゆるゆるいこうぜってノリが標準ライブラリまで浸透しているのでそこんとこよろしく
113:デフォルトの名無しさん
14/06/03 07:42:50.52 hkWAcWoq
ダックタイピングってゆるゆるなのか?
114:デフォルトの名無しさん
14/06/03 12:55:36.66 tdY/j8aF
pipでインストールするだけで使えるサードパーティ製GUIライブラリってありませんか?
pyqtはpipじゃないので悔しいですがインストールが面倒くさいのとアップデートが面倒くさいので諦めますた
115:デフォルトの名無しさん
14/06/03 19:27:06.88 jVH9SVgJ
0から99までの数字をランダムに1個抽出するというのを1000回繰り返した時の統計がほしいんですけど
なんてライブラリを使うと楽ですか?
116:デフォルトの名無しさん
14/06/03 20:03:11.64 Y/MlbrO/
numpyでrandomしてhistgram
117:デフォルトの名無しさん
14/06/03 20:25:53.64 5eZCHC+o
バイナリデータを読んで
途中の数バイトを別のデータに置き換えるっていう処理、簡単にできる?
添字指定による部分参照ってバイナリではできないよね
118:デフォルトの名無しさん
14/06/03 20:30:05.65 Y/MlbrO/
添字計算できるならseekしたらいいんでねえの
119:デフォルトの名無しさん
14/06/03 20:31:02.65 4L3EgsH1
つ bytearray
120:デフォルトの名無しさん
14/06/03 20:32:30.86 Y/MlbrO/
あとbytesでもreplaceやre使える
条件が決まりきってるなら
121:デフォルトの名無しさん
14/06/03 21:02:11.91 rCJu7D+N
>>115
import random
[random.choice(range(99)) for _ in range(1000)]
122:デフォルトの名無しさん
14/06/03 21:11:27.91 zbi5RHIW
>>121
range(99)だと0から98だ
>>> num_list = [random.choice(range(100)) for _ in range(1000)]
>>> for num in range(100):
print("{}: {}".format(num, num_list.count(num)))
123:デフォルトの名無しさん
14/06/03 21:22:05.10 rCJu7D+N
>>122
うっかり
バグってこうやって作っていくんだな
とん
124:デフォルトの名無しさん
14/06/04 00:33:56.68 N40f8tRy
どこで聞いたら良いか分かんないのでここで聞いてみますが
YouTubeの再生履歴をPythonとYoutubeのAPI(v3)経由でダウンロードしたいんですが、どうもAPIアクセスを有効にした後のしかダウンロード出来ない仕様っぽいです
APIバージョンのv2までは出来たみたいですけど
うまくダウンロードする方法はないんでしょうか?
125:デフォルトの名無しさん
14/06/04 02:03:28.50 BwekaK/m
pip install scipyでエラーでインストールできません
ご助言おねがいします
pip install numpy gfortran noseはインストール済みです
URLリンク(ideone.com)
126:デフォルトの名無しさん
14/06/04 02:04:08.49 BwekaK/m
ubuntu python3.4.1です
127:デフォルトの名無しさん
14/06/04 02:50:53.19 L7kMUTbA
おれもあたらしいパソコンがほしい。神様たすけて
128:デフォルトの名無しさん
14/06/04 12:04:09.24 9iG8YZKN
swiftの話で蛇disが始まるかと思えば、そうでもなかった。意外だ。
129:デフォルトの名無しさん
14/06/04 16:15:06.56 xjqdwvjk
挙げるほどのものでもないと認識されている可能性も
てかなぜdisられると思ったし
130:デフォルトの名無しさん
14/06/04 16:22:02.19 uKkfN5R4
>>129
WWDCでappleがswift発表したけど、その比較にPython使ったから
URLリンク(cdn1.tnwcdn.com)
何でPythonなんだろう
131:デフォルトの名無しさん
14/06/04 16:49:09.58 LqaYcvBt
googleを牽制するため
132:デフォルトの名無しさん
14/06/04 17:08:48.34 xjqdwvjk
へーこんな改善されたの
Javaじゃないのね
google牽制するにしても、こんな別質なものの比較はバカさをアピールするだけだと思うんだけどな…
133:デフォルトの名無しさん
14/06/04 17:22:43.55 2ij5JthN
空気を作ったものが勝つ
134:デフォルトの名無しさん
14/06/04 17:25:55.04 u9d9cpJD
AIRってほんとに空気
135:デフォルトの名無しさん
14/06/04 17:36:44.68 LqaYcvBt
>>132
少なくともお前よりはスキルが上の技術者がスライド作ってるから心配するな
136:デフォルトの名無しさん
14/06/04 18:06:44.18 xjqdwvjk
スライド作った個人の心配なんて誰もしてないんだけど
137:デフォルトの名無しさん
14/06/04 18:44:44.69 BLv8g/kZ
個人だってよwwwwwwwwwwwwwwwwwwwwwwwww
138:デフォルトの名無しさん
14/06/04 20:08:24.10 xjqdwvjk
ID変更お疲れ様です
スライド作ったのは一人じゃないから個人じゃないって?
とても面白いギャグセンスしてるね
139:デフォルトの名無しさん
14/06/04 20:24:52.92 cv7ZTq9m
いいアピールだね
その調子で
140:デフォルトの名無しさん
14/06/04 20:28:18.15 /Cu6Lqm6
読解力も煽り耐性も無いんだな
141:デフォルトの名無しさん
14/06/04 21:05:36.45 xjqdwvjk
悔しいからって、無理にレスしないほうがいいと思うけどな
うまく言い返したつもりになってるかもしれないけど、
人格攻撃が詭弁とわかる人から見たら、ださいことこの上ないよ?
連レスしちゃうあたり、焦りが感じられるしね
142:デフォルトの名無しさん
14/06/04 21:49:31.70 cv7ZTq9m
そうyだなピエロだな
143:デフォルトの名無しさん
14/06/04 21:52:06.78 BpyyzLL+
Python
144:デフォルトの名無しさん
14/06/04 22:16:23.85 K03YyZHf
>>128
macのpython遅いのんなー
ぐらいの感想しか・・・
145:デフォルトの名無しさん
14/06/04 22:20:13.14 dapQveGL
雑談中すいません
2.7でスクリプト実行するとprintで日本語が文字化けしてしまうんですが、どう対処すればいいですか?
sitecustmize.pyでutf-8にすると、意味不明な文字で、デフォルトだと????になります。
インタプリタに直接記述すると問題なく表示されます。
146:デフォルトの名無しさん
14/06/04 23:07:43.01 tHpfMTUM
utf-8 でダメなら cp932 なんじゃないの
147:デフォルトの名無しさん
14/06/04 23:43:49.33 dapQveGL
>>146
レスありがとうございます。
sitecustmize.pyをcp932にするとインタプリタは正常に出力されたんですが
別の場所で、exceptions.UnicodeDecodeError: 'cp932' codec can't decode byte ...になってしまうんですが
どうすればいいでしょうか?
148:デフォルトの名無しさん
14/06/04 23:47:28.96 BpyyzLL+
osぐらいかけや
149:デフォルトの名無しさん
14/06/04 23:52:35.60 dapQveGL
すいません、vista32bitです。
sitecustmize.pyも、もともとファイル書き込みでUnicodeDecodeErrorに
なったので適用したのですが。
150:デフォルトの名無しさん
14/06/05 00:05:06.00 Z7eoN+hw
git いれてる?
git bash上で実行しても化けるか確認してみ
151:デフォルトの名無しさん
14/06/05 00:06:25.09 OnFYdqRE
python3.4って遅くなったの?
URLリンク(qiita.com)
152:デフォルトの名無しさん
14/06/05 00:19:27.08 +QiMnXqF
>>150
レスありがとうございます。
'git bash上の実行'がよくわからないのでインストールしてみて明日、報告します。
153:デフォルトの名無しさん
14/06/05 04:28:09.87 82BFuaye
>>149
日本語の扱いで戸惑ったらこちらをどうぞ(バッドノウハウ集で笑える)
URLリンク(speirs.blog17.fc2.com)
URLリンク(atomic.jpn.ph)
URLリンク(d.hatena.ne.jp)
スレリンク(tech板:339番)
339 :デフォルトの名無しさん:2008/08/23(土) 08:36:00
PythonのUnicodeEncodeErrorを知る
URLリンク(lab.hde.co.jp)
よくまとまってた。あとで読む
154:デフォルトの名無しさん
14/06/05 23:16:33.51 tOtIFDQz
>>125解決できるからいらしゃいませんか
155:デフォルトの名無しさん
14/06/05 23:53:16.62 9xaUMUTy
>numpy.distutils.system_info.LapackNotFoundError:
>Lapack (URLリンク(www.netlib.org)) libraries not found.
>Directories to search for the libraries can be specified in the
>numpy/distutils/site.cfg file (section [lapack]) or by setting
>the LAPACK environment variable.
>Lapack (URLリンク(www.netlib.org)) libraries not found.
Lapackライブラリがないってエラーが出てるよ
156:デフォルトの名無しさん
14/06/06 00:43:26.89 jtO02gxt
さっそくいれてみたらコンパイルにすすめました
ただコンパイルにすごい時間かかりますね
157:デフォルトの名無しさん
14/06/06 09:11:24.03 DTdJKogB
省電力だったり
しょぼいHDDだったらそうだね
SSD使え
158:デフォルトの名無しさん
14/06/06 17:42:27.55 w3KzEqPi
>>152ですが、なぜかPC再起動で改善してしまいました。
再起動後、pyscripterが起動しなくなるという謎現象になりましたが
exe版のインストールでとりあえず対処できました。
文字コードに関して、とりあえず'utf-8'にしとけ、程度の認識なので
>>153さんのリンクも含め、もう少し勉強してみます。ありがとうございました。
159:デフォルトの名無しさん
14/06/07 07:28:31.44 GnZh55GO
整数からバイナリオブジェクトを作るスマートな方法ってないものか
マニュアルを眺めてみたが、自分には以下の方法しか考えつかなかった
>>> a = 255
>>> bytes.fromhex(hex(a).replace('0x', '').rjust(2, '0'))
b'\xff'
160:デフォルトの名無しさん
14/06/07 07:58:18.40 iFVCcsC7
>>> bytes([255])
b'\xff'
161:デフォルトの名無しさん
14/06/07 08:04:16.83 GnZh55GO
>>160
サンクス
スマート過ぎて放心した
マニュアルからは読み取れんかったな…
162:デフォルトの名無しさん
14/06/07 09:55:37.11 /gMYq1Ml
chr(255)
163:デフォルトの名無しさん
14/06/07 18:42:22.22 jSVebn/T
Linuxでキー入力をグローバルフックできる方法またはライブラリを教えてください
164:デフォルトの名無しさん
14/06/07 19:13:37.99 oBY9Rph1
いいかみんな
SSDとPython3にはまだ手を出すなよ
あと2年待て
165:デフォルトの名無しさん
14/06/07 19:19:50.62 SxbAzKvi
たしかにSSDは完全置き換えよりハイブリッドでキャッシュにするのが正解だな
166:デフォルトの名無しさん
14/06/07 19:21:30.67 wgcWEMds
2年前からssdとpython3使ってるわ
167:デフォルトの名無しさん
14/06/07 19:51:15.89 I26RBxeW
DigitalOceanの鯖借りてるけどSSDみたいですな
実感0
168:デフォルトの名無しさん
14/06/07 19:57:56.14 SxbAzKvi
2ちゃんの鯖はSSD化されてから
頻繁に落ちるようになったから
すごく実感ある
169:デフォルトの名無しさん
14/06/08 10:32:29.98 5chAioQ8
PyPy 2.3.1 リリース
URLリンク(morepypy.blogspot.jp)
170:デフォルトの名無しさん
14/06/08 16:37:50.22 AGC0ZTJI
SQLiteモジュールって、どんな時に使っているか
初心者の参考に聞かせて欲しい
イメージ的には、巨大データをリストなどに読み込むと
スワップしてPCが使い物にならないので、そんな時の
変数外だしに使うのかなって
171:デフォルトの名無しさん
14/06/08 18:02:37.72 BMCjjyDp
アドレス帳に使ってる
172:デフォルトの名無しさん
14/06/08 18:18:38.92 e+2yydW9
>>170
永続化したいデータがあって、全体から必要なデータだけを取り出したいとき
あと取り出すときにソートできるし楽
>巨大データをリストなどに読み込むとスワップしてPCが使い物にならない
これは不必要なデータもとりだしてるんじゃないか。そうでないなら、そのPCが性能不足ということになる
173:デフォルトの名無しさん
14/06/08 18:24:20.67 SjxXj1KS
>>170
ソートとか、ややこしい集計とかで楽したい時とか
174:デフォルトの名無しさん
14/06/08 18:29:28.96 jRRr+ktT
>>170
スクレイピングのキャッシュ保持に使ってる
175:デフォルトの名無しさん
14/06/08 18:46:02.25 43jAtAsp
>>170
SQLiteというよりはデータベースの使い道?
端的に言えば複数の同種データとか永続化したいならならなんでもござれだよ
抽出したりソートしたり集計したりリスト使うよりSQLのが楽というかそれこそが仕事
SQLiteはファイルベースだからアクセス権もそれに依存だけど
それだけにぽんぽん移動できて取り回しが楽だし
インメモリデータベースとしても使える
176:デフォルトの名無しさん
14/06/08 19:03:12.89 AGC0ZTJI
参考になりました
メインメモリ2GBのPCで、60GBほどのテキストデータを
リストで処理しようとしたら、スクリプトの実行が終わっても
グゴゴゴ・・・とHDDの音が数分続いて恐くなった次第
どうやら用途としては間違っていないようでよかった
177:デフォルトの名無しさん
14/06/08 20:04:12.80 jRRr+ktT
pytables使えば?
178:デフォルトの名無しさん
14/06/08 22:56:25.54 W6M7L2Zj
よくわからないけどでかいデータはちょっと読んでは捨て、ってやっていったほうがいいと思う
あと、その用途ならpickleが使えるかと
179:デフォルトの名無しさん
14/06/09 01:05:20.51 QFOBToaK
やっぱり人力が一番だよ
180:デフォルトの名無しさん
14/06/09 07:42:14.68 NzkmwWkT
>>178
realplayer とか flash とか全部オンメモリで糞みたいに固まるからなω