■ このスレッドは過去ログ倉庫に格納されています
くだすれPython(超初心者用) その24
- 1 :デフォルトの名無しさん:2014/08/03(日) 04:42:31.25 ID:nSUL9jmo
- このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その23
http://peace.2ch.net/test/read.cgi/tech/1400479217/
関連スレ
Pythonのお勉強 Part49
http://toro.2ch.net/test/read.cgi/tech/1387528488/
◆関連リンク Python の Home Page
ttp://www.python.org/
◆長いコードはこういうところにはってください
ttp://ideone.com/
ttp://codepad.org/
ttp://pastebin.com/
ttp://dpaste.com/
◆まとめwiki
ttp://python.rdy.jp/
- 2 :デフォルトの名無しさん:2014/08/03(日) 04:43:50.86 ID:nSUL9jmo
- |....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
| i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
|( ´∀`) < きのこ のこーのこ げんきのこ ♪
|(ノ |つ
| |
⊂ _ ノ
""U
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
(´∀` )| < エリンギ まいたけ ブナシメジ ♪
⊂| (ノ |
| |
ヽ _ ⊃
.U""
|
| ミ
| ミ サッ!
| ミ
|
- 3 :デフォルトの名無しさん:2014/08/03(日) 04:46:53.92 ID:bPGWsjSY
- ┌─┐
│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
- 4 :デフォルトの名無しさん:2014/08/03(日) 06:51:11.15 ID:Qqzbedo3
- http://www.buzzword.jp/img/face10.png
- 5 :デフォルトの名無しさん:2014/08/03(日) 06:53:32.59 ID:OFXCnhud
- pythonで2chに書きこむ方法教えてください
- 6 :デフォルトの名無しさん:2014/08/03(日) 06:57:33.93 ID:PE5P6N+l
- 1ch夏休み電話相談室で聞いてみよう
- 7 :デフォルトの名無しさん:2014/08/03(日) 07:19:11.31 ID:zU4sk6Ng
- ノ ゚.ノヽ , /} ...
,,イ`" 、-' `;_' ' ..::::::::::::::...
,-、 _.._ ( (,(~ヽ'~ ..:::::::::::::::::::::::
)'~ レー' 〉 ヽ i`'} .:::::::::::::::::::::::
~つ '-ー、 i | i' ...:::::::::::::::::::::::
/ < / 。/ ! ......::::::::::::::::::::::::: これは>>1乙じゃなくて
/ ~^´ /},-'' ,●::::::::::::::::::::::::::::::::::::
i、 ,i' _,,...,-‐-、/ i :::::::: .:::::::::::::
..ゝ <,,-==、 ,,-,/ .::::::::::: 放射能がうんたら
) {~''~>`v-''`ー゙`'~ ..::::::::: ........::.
{ レ_ノ ..::::::::. ......:::::::::
ノ '' ..::::::: ...::.:...:::::::::
.::::::::: ...:......:::::::::::: .
.:::::::::::. ..... .. ..:::::::::::::::::::::::: :::.
::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. :: ::..
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::: ::.
::::::::::::::::: :::::::::::::::::::::::::::::: :::::
.:: ::. :::
- 8 :デフォルトの名無しさん:2014/08/03(日) 07:34:08.35 ID:OFXCnhud
- お願いします 教えてください
- 9 :デフォルトの名無しさん:2014/08/03(日) 07:40:16.12 ID:zU4sk6Ng
- >>4
どこかで見た顔だと思ったら
javascript ぐぐったらいつも出て来るあれか
- 10 :デフォルトの名無しさん:2014/08/03(日) 07:41:45.56 ID:OFXCnhud
- >>4
こいつうざいからadblockで顔面消してるわ
- 11 :デフォルトの名無しさん:2014/08/03(日) 12:28:44.93 ID:OFXCnhud
- #coding:utf-8
import urllib
keyword = u"テスト"
print urllib.urlencode(keyword)
これでやるとエラーが出ます。なぜですか?
- 12 :デフォルトの名無しさん:2014/08/03(日) 12:38:42.66 ID:4e8mKRmq
- いまどき仕事でもないのにPython2使ってるって人前でよく言えるよな。
- 13 :デフォルトの名無しさん:2014/08/03(日) 13:25:36.46 ID:6r413W6I
- 超初心者用って書いてあるけど最近湧いてくる超初心者未満のクレクレ君はなんなの?
自分で作る気ないならPythonじゃなくて他所でGoogleの使い方教えてもらえよ
- 14 :デフォルトの名無しさん:2014/08/03(日) 13:34:58.83 ID:2WFJIVoF
- >>11
英語苦手ならPythonはやめといた方がいいよ
- 15 :デフォルトの名無しさん:2014/08/03(日) 14:07:07.05 ID:+KLBY5j7
- >>10
悪役商会って俳優団体に顔面陳列罪ってのがいてだな
- 16 :デフォルトの名無しさん:2014/08/03(日) 14:23:03.31 ID:T59meZIw
- >>11
馬鹿には無理
- 17 :デフォルトの名無しさん:2014/08/03(日) 14:29:33.86 ID:+KLBY5j7
- >>12
正直わざわざ地雷原に踏み込む自殺志願者にしか見えないよね
そんな馬鹿救ってやる気がおきるはずもない
- 18 :デフォルトの名無しさん:2014/08/03(日) 20:14:42.16 ID:mooYogGV
- numpyとmatplotlibを調べなきゃーと思いつつも手が動かない
numpyの配列が使えて、matplotlibで棒グラフと折れ線グラフを出したいだけなのだけど
参考にしやすいサイトありませんかね・・・
というかPythonの普通のオブジェクトの理解もまだ出来てないのに
いきなり外部ライブラリにいくのは無理があるのかなあ
- 19 :デフォルトの名無しさん:2014/08/03(日) 20:26:25.78 ID:+KLBY5j7
- それぞれのチュートリアルの1ページ目読めば事足りんじゃね
numpyはthe basicsだけ読めばいいような気もする
http://wiki.scipy.org/Tentative_NumPy_Tutorial#head-6a1bc005bd80e1b19f812e1e64e0d25d50f99fe2
http://matplotlib.org/users/pyplot_tutorial.html
matplotlibのチュートリアルの中ではnumpy使ってるところもある
- 20 :デフォルトの名無しさん:2014/08/03(日) 20:47:51.24 ID:mooYogGV
- >>19
ありがとう、ここのthe basicsを勉強してからmatplotlibに行こうと思います
この位の量ならなんとかなりそうな気がします
matplotlibの公式サンプルは試していたのですが
numpyが前提な感じなので先にmatplotlibにいくと辛い感じでした
せめてthe basicsを読んでから行くことにします
ありがとうございました!
- 21 :デフォルトの名無しさん:2014/08/03(日) 21:19:44.51 ID:mooYogGV
- 追記で原因が分かったので・・・
from numpy import *
この辺の理解があやふやだったみたいで(matplotlibのサンプルでもこの系統で四苦八苦していました)
今は理解しましたが、表記は簡単だけど、対話モード以外でこれを使うことはあるのだろうか・・・
他の言語は少し触ったことはあるのですが、Python自体の初心者なので
import numpy as np
みたく頭の中で翻訳して
np.array([1,2,3,4])
で実際書いて練習して見ることにします
Pythonの配列型は大分他の言語と変わっている気がするので
それとの違いなんかも一緒に違いを踏まえながら勉強してみます
一年後にはネットワーク関係のスクリプトも組めるようなんとかしたいですのですが
ここで詰まっているようだと大分先は長そうだ・・・orz
- 22 :デフォルトの名無しさん:2014/08/03(日) 23:11:57.77 ID:aN4Ndech
- GAEならpython2だろ
- 23 :デフォルトの名無しさん:2014/08/03(日) 23:50:20.18 ID:YEfQO8dP
- 初心者です。前々から誰かに訊いてみたかったんですが
import matplotlib.pyplot as plt
plt.plot([1,2,3])
plt.show()
みたいな書き方をちょっと気持ち悪く感じて、
myplot = plt.Plot()
myplot.plot([1,2,3])
myplot.show()
のように、なにかしらのインスタンスを作ってそのメソッド呼ぶ感じでプロットしていきたい
というように感じることがあるんですが、
これは「その感覚はないわ〜」みたいな感じ、それとも「あーわからんじゃない」みたいな感じですか?
- 24 :デフォルトの名無しさん:2014/08/03(日) 23:52:02.01 ID:+KLBY5j7
- その状況ならその感覚はない
myplotが状態を持ってるようには見えないから
- 25 :デフォルトの名無しさん:2014/08/03(日) 23:59:04.93 ID:+KLBY5j7
- ただし、モジュール関数にするとimportした時に特大のオーバーヘッド生じるような場合なら
そのパターンは十分あり得る
- 26 :デフォルトの名無しさん:2014/08/04(月) 00:48:44.87 ID:CJ83fxk4
- >>23
C/FORTRAN 向け科学技術計算パッケージのプロットライブラリや
gnuplot を使った経験があれば、matplotlib は素直な設計だから、
「その感覚はないわ〜」みたいに感じる
ただ最近はオブジェクト指向の考え方が普及しているから、
上記の手続き型プロットライブラリを気持ち悪く感じる人がいても
「あーわからんじゃない」みたいに感じる
たとえば「手元にX-Yプロッタ装置を1台だけ所有していて、
その装置にあれこれコマンド(=手続き)実行を命令している.....」
みたいな感じで考えればいいんじゃないかと思う
- 27 :デフォルトの名無しさん:2014/08/04(月) 08:12:31.68 ID:MisW0pwU
- 設計思想の古いライブラリ由来のものはそういうものだと思って使うしかないな
OpenGLとかもキモい
- 28 :デフォルトの名無しさん:2014/08/04(月) 08:48:39.79 ID:fW6TrluV
- OpenGL は設計が古いのもあるかも知れないけど
当時の感覚からしても設計思想自体ちょっとダサい方だと思う
- 29 :デフォルトの名無しさん:2014/08/04(月) 11:10:44.04 ID:VkhvqJe+
- >>11
#coding:utf-8
import urllib
keyword = u"テスト"
print urllib.urlencode(keyword.encode('utf-8'))
- 30 :デフォルトの名無しさん:2014/08/04(月) 11:33:17.60 ID:5GCVsUHq
- >>29
そいつ>>13が指摘してる前スレで2ch書き込みスクリプトくれくれ言ってたやつだぞ
2ch荒らすのに使うの見え見えなやつを手助けするなよ
- 31 :デフォルトの名無しさん:2014/08/04(月) 12:11:45.07 ID:TGYEvOJ0
- findUnvisitedChildってなんですか?ググっても情報ないんですけど
- 32 :デフォルトの名無しさん:2014/08/04(月) 12:19:40.66 ID:TGYEvOJ0
- あとすいませんStack()ってなんてライブラリですか?
http://ja.wikipedia.org/wiki/%E6%B7%B1%E3%81%95%E5%84%AA%E5%85%88%E6%8E%A2%E7%B4%A2
- 33 :23:2014/08/04(月) 12:54:29.55 ID:WexAwjaP
- >>24-28
ありがとうございます。とくに >>26 さん親切にどうもありがとう。
だいぶ雰囲気掴めたと思います。
- 34 :デフォルトの名無しさん:2014/08/04(月) 13:41:03.22 ID:VkhvqJe+
- >>30
領海
- 35 :デフォルトの名無しさん:2014/08/04(月) 19:50:55.97 ID:z+yz5IZL
- 10年以上前にWindowsプログラムで遊んでいた時
OpenGLの他にDirect3Dしか選択肢がなくてなんとなくDirectXを選んだけど
公開サンプルソースの少なさに泣いたのを思い出して鬱になった
というか今学問系だとどういう3Dライブラリを使うのが普通なの?
ってPython関係ないな
- 36 :デフォルトの名無しさん:2014/08/04(月) 23:21:09.94 ID:J4k0EnNa
- http://codepad.org/UITexHiK
↑リストを使ったキューをfrom collections import dequeを使ったものに書き換えました↓
http://codepad.org/8NGcgQ5h
TypeError: 'int' object is unsubscriptableが出たんですけどどうか着替えたらいいのか教えてください
- 37 :デフォルトの名無しさん:2014/08/04(月) 23:21:46.19 ID:J4k0EnNa
- どうか着替えたら
どう書き換えたら
- 38 :デフォルトの名無しさん:2014/08/05(火) 00:36:25.51 ID:pv4OEjEt
- a = 5
for i in range(0, a, 1):
print(i)
a = 3
途中でaを3に変えたのに0 1 2 3 4と表示されます
なぜですか?
- 39 :デフォルトの名無しさん:2014/08/05(火) 00:36:34.21 ID:HLOzo43t
- q.append(v)→q.append(newPath)
- 40 :デフォルトの名無しさん:2014/08/05(火) 01:15:43.70 ID:jUXvba1w
- >>38
それでrange()の挙動が変わるような実装がクソめんどくさそうな仕様の言語ってあんの?
- 41 :デフォルトの名無しさん:2014/08/05(火) 02:47:27.94 ID:+4GKMU4F
- >>38
正確な説明とはいえないけど、変数自体ではなく、変数に入っているモノが関数に渡される
2行目のrange()にはaではなく5を渡している
4行目でaに3を入れなおしてもrange()に渡した5には影響しない
- 42 :デフォルトの名無しさん:2014/08/05(火) 08:04:43.14 ID:v7EbVobV
- なるほどたしかに
たとえばPHPならこうやると0 1 2って表示されますが
$a = 5;
for ($i=0; $i<$a; $i++){
$a = 3;
echo $i;
}
pythonでやる場合は
a = 5
i = 0
while a > i:
print(i)
a = 3
ってやる方法しか無いでしょうか?
- 43 :デフォルトの名無しさん:2014/08/05(火) 08:20:44.86 ID:0Nh3i6Wx
- >>42
a = 5
for i in range(a):
if i >= a:
break
print(i)
a = 3
- 44 :デフォルトの名無しさん:2014/08/05(火) 09:38:36.40 ID:Hz72ppwZ
- >>38の質問をはっきりさせた方がいいと思う
for inがわからないという事なのか。
それとも、↓のlist(r)の出力がa=3した後も変わらない事を何故かと聞いてるのか。
>>> a = 5
>>> r = range(a)
>>> list(r)
[0, 1, 2, 3, 4]
>>> a = 3
>>> list(r)
[0, 1, 2, 3, 4]
あと、ループ内でaを再定義するぐらいなら、ループ入る前にやっとけよって思いました
- 45 :デフォルトの名無しさん:2014/08/05(火) 10:02:26.44 ID:0Nh3i6Wx
- 見返したら>>43はマズイな
import sys
for i in range(sys.maxsize):
aもiも変更したいならwhileだな
- 46 :デフォルトの名無しさん:2014/08/05(火) 20:49:22.56 ID:+4GKMU4F
- >>42
ループの終了条件を変えられる関数は作れるけど、Pythonのfor文の流儀に反している気がしてお勧めできない
def my_range(cond):
i = cond[0]
while i < cond[1]:
yield i
i += cond[2]
c = [0, 5, 1]
for i in my_range(c):
print(i)
c[1] = 3
- 47 :デフォルトの名無しさん:2014/08/05(火) 21:08:55.48 ID:3MsCZ4lI
- >>39
そこは関係ないようです
- 48 :デフォルトの名無しさん:2014/08/05(火) 21:38:14.43 ID:0mdzPr1d
- >>47
このスクリプトで q がどうなってて、従って path に何が入ることになるかは理解できてますか?
- 49 :デフォルトの名無しさん:2014/08/05(火) 22:12:26.80 ID:HLOzo43t
- >>47
わかった
>>39のに加えてdequeの初期化の仕方が間違ってる
deque([start])→deque([[start]])
http://codepad.org/RGKUJCCu
- 50 :デフォルトの名無しさん:2014/08/06(水) 09:50:31.72 ID:4kkHNvLc
- >>46
>Pythonのfor文の流儀
なにそれkwsk
- 51 :デフォルトの名無しさん:2014/08/06(水) 19:35:59.89 ID:IBfbXB7R
- Pythonで計算したデータをJavaに渡したいのですがどうするのがよいでしょうか?
ファイルに書き出すくらいしか分からないのですが
- 52 :デフォルトの名無しさん:2014/08/06(水) 20:19:09.28 ID:6xA8BSBL
- RPC
RMI
- 53 :デフォルトの名無しさん:2014/08/06(水) 22:37:34.13 ID:Hc5bYjkL
- >>51
ありがとうございます
- 54 :デフォルトの名無しさん:2014/08/08(金) 12:19:52.03 ID:2ZXfhlXJ
- pythonからctypesでdll呼んでdll側のクラスを引き継ぐことできる?
やっぱりpythonでdll呼ぶようのdllを作ったほうがいいのかな
- 55 :デフォルトの名無しさん:2014/08/08(金) 13:58:01.23 ID:LVetnHZi
- ミラーニューロン
- 56 :デフォルトの名無しさん:2014/08/08(金) 19:03:08.34 ID:YG2OXIF+
- IDLEでのPythonファイルの作り方をここのwiki見てやっと知ったぜ・・・
長い長い道のりだった
対話モードみたくインデントを自動でしてくれなくてしょんぼりしてるけど
- 57 :デフォルトの名無しさん:2014/08/09(土) 00:29:01.22 ID:l2WdSHx9
- https://www.youtube.com/watch?v=ZYShUXFVLvQ
https://www.youtube.com/watch?v=oi2PEmrOs3o
https://www.youtube.com/watch?v=u4KcM6EBOcM
- 58 :デフォルトの名無しさん:2014/08/09(土) 06:49:31.07 ID:l2WdSHx9
- https://www.youtube.com/watch?v=nTGCZAHm6ao
- 59 :デフォルトの名無しさん:2014/08/09(土) 11:01:15.36 ID:cMAC0zr6
- >>57-58
糞過ぎワロス
- 60 :デフォルトの名無しさん:2014/08/09(土) 13:46:44.09 ID:t54vu+MJ
- 知らんがPygameってまともな速度出るの?
GDI使ってるのと変わんないんじゃないかって気がするけど
- 61 :デフォルトの名無しさん:2014/08/09(土) 14:02:57.80 ID:odLGSBLG
- DirectXやOpenGLなどグラボの恩恵受けられるってこと?
- 62 :デフォルトの名無しさん:2014/08/09(土) 14:04:57.17 ID:lFfYI/Nk
- GDIで速度的に十分じゃないか。
もっと遥かに遅いFlashですらゲーム作れるんだし。
- 63 :デフォルトの名無しさん:2014/08/09(土) 14:08:47.59 ID:pfgkOg0q
- どんなゲームかによるべさ
少なくとも何もできないようなライブラリが数年にわたって精力的に開発されているようなら
それは正気の沙汰じゃない
- 64 :デフォルトの名無しさん:2014/08/09(土) 14:29:00.61 ID:cMAC0zr6
- 日本語でおながいしやす
- 65 :デフォルトの名無しさん:2014/08/09(土) 14:53:51.79 ID:pfgkOg0q
- ニホンゴワカリマセン
- 66 :デフォルトの名無しさん:2014/08/09(土) 15:27:47.30 ID:l2WdSHx9
- 動画自分で作ってみれば大変さ判ると思う
- 67 :デフォルトの名無しさん:2014/08/09(土) 15:51:28.58 ID:odLGSBLG
- 速度が問題になるようならpygameよりpython自体の頭打ちが
先に問題になりそう。
その場合cythonやnumpy使うことになると思うが。
経緯的にはPySDL > pygame > PySDL2
ってまた元のさやに戻りつつあるんだっけ?
- 68 :デフォルトの名無しさん:2014/08/09(土) 17:38:17.96 ID:fubXRsBH
- 元のさや姉
- 69 :デフォルトの名無しさん:2014/08/09(土) 21:24:42.48 ID:K1gOBgfb
- CodeEvalのFizzBuzzで90点しか出ないのですが、何が問題なのかわかる方教えてくださいませんか?
https://www.codeeval.com/open_challenges/1/
import sys
test_cases = open(sys.argv[1], 'r')
for test in test_cases:
(F, B, N) = map(int, test.split())
FB = F * B
for num in range(1,N+1):
if num > 1:
print(" ",end = "")
if num % (FB) == 0:
print('FB', end ="")
elif num % F == 0:
print('F', end = "")
elif num % B == 0:
print('B', end = "")
else:
print(num, end = "")
print("")
test_cases.close()
- 70 :デフォルトの名無しさん:2014/08/09(土) 21:40:51.15 ID:pfgkOg0q
- 何が原因か告げない例外メッセージと同じですこぶる腹の立つパターンだ
- 71 :デフォルトの名無しさん:2014/08/09(土) 21:45:26.46 ID:FjFHc6TX
- 2 2 10 とかFとBが同じときの考慮不足
- 72 :デフォルトの名無しさん:2014/08/09(土) 22:58:20.66 ID:K1gOBgfb
- >>70
CodeEval自体、スコアは表示されるけれども、
どのテストがエラーなのか表示されないので困っていたのです。すみません。
>>71
ありがとうございます。どうやらそのようです。
確かに、2 2 x だと、4の倍数しかFBにならないですね、これ。
if num % F == 0 and num % B == 0:
print('FB', end="")
でいいのかな…?
- 73 :デフォルトの名無しさん:2014/08/09(土) 23:41:03.41 ID:K1gOBgfb
- >>71
if num % F == 0 and num % B == 0:
print('FB', end="")
で、無事100点取れました。
ありがとうございました。
- 74 :デフォルトの名無しさん:2014/08/10(日) 08:22:41.98 ID:frgBbTF3
- 仕様満たしてないから減点されたのを
どこが原因か判らんとか言いがかりもいいところ
- 75 :デフォルトの名無しさん:2014/08/10(日) 10:04:00.43 ID:zo9IFsz+
- 言いがかり?
どっちかって言うと >>74 の方が言いがかり臭いが
- 76 :デフォルトの名無しさん:2014/08/14(木) 00:51:32.26 ID:ztsop+v9
- まあこの手のコード評価サイトってくだらない。
githubのアカウントでも見た方が100倍有意義。
- 77 :デフォルトの名無しさん:2014/08/14(木) 00:55:21.75 ID:IvD2O8+W
- どこのコードが参考になる?
Googleのは綺麗だけど普通のコードだったなぁ
- 78 :デフォルトの名無しさん:2014/08/14(木) 01:01:52.85 ID:ztsop+v9
- ちげーよ個人のスキルを判断するのにって意味だよクソマヌケスポンジ脳みそ野郎
- 79 :デフォルトの名無しさん:2014/08/14(木) 01:09:37.28 ID:eZDslbUX
- [[2, ['D']], [8, ['C']], [12, ['D']], [12, ['H']], [12, ['S']]] を
[[2, ['D']], [8, ['C']], [12, ['D', 'H', 'S']]]
とするにはどうコードを書けばいい?
- 80 :デフォルトの名無しさん:2014/08/14(木) 01:41:33.89 ID:czQ8Caut
- a=[]
str="0123456789"
で
for i in range(10):
a.append(strのi番目の文字を数字として代入)
ってどうやればいいですか・・・
str[i]でi番目の文字を数字としては取り出せないですよね?
0~9までの数字で作られた文字列strのi番目の文字(数字)を
数字として配列a[i]に入れたいのですが
- 81 :デフォルトの名無しさん:2014/08/14(木) 01:45:20.01 ID:Z2XhePMe
- >>80
ドキュメント読む気ねえならせめて自分で一回試してから来いカス
- 82 :デフォルトの名無しさん:2014/08/14(木) 02:13:38.80 ID:RnqN7Gme
- >str="0123456789"
なぜ、文字列を使うの?
最初から、0〜9の数値を入れた配列(数値Array)を使えば?
- 83 :デフォルトの名無しさん:2014/08/14(木) 02:20:02.65 ID:Sj8LF1t/
- >>79
http://ideone.com/8nnDa8
そもそも辞書型で管理したほうがよいのでは
- 84 :デフォルトの名無しさん:2014/08/14(木) 02:33:48.17 ID:XQOz8skT
- >>80
>>> str = "31415926"
>>> a = list(str) # 数字としてリストに入れる
>>> a = [int(s) for s in str] # 数値に変換してリストに入れる
- 85 :デフォルトの名無しさん:2014/08/14(木) 02:43:02.34 ID:Z2XhePMe
- バカどもはいますぐ死ねよ。
str型はイミュータブルなシーケンス。
> str = "31415926"
の後
>>>str[3]
とかしてみろ低能ども。
そしてお前ら10年ROMれ。
- 86 :デフォルトの名無しさん:2014/08/14(木) 03:16:36.47 ID:9X7JikwT
- >>80
文字列を数値にするときはintを使う
http://docs.python.jp/3.3/library/functions.html#int
- 87 :デフォルトの名無しさん:2014/08/14(木) 03:17:50.48 ID:/Ygxu31/
- 余裕無い奴がいるな
- 88 :デフォルトの名無しさん:2014/08/14(木) 03:19:31.89 ID:czQ8Caut
- >>85
出来ると仕様を理解して使うとは違うと思うの
試して動いたからおkってのは愚の骨頂じゃない
- 89 :デフォルトの名無しさん:2014/08/14(木) 03:56:24.39 ID:CQ3J9/oq
- a = map(int, '31415927')
- 90 :デフォルトの名無しさん:2014/08/14(木) 05:14:58.78 ID:CAjda4jb
- >>87
ID が正規表現リテラルです。これより異端審問を開始します
- 91 :デフォルトの名無しさん:2014/08/14(木) 07:49:41.23 ID:smA0xrmN
- >>72さん
>>83さんの案でいきました。
>>> from collections import defaultdict
>>> import pprint
>>> dd = defaultdict(list)
>>> LL = [[2, ['D']], [8, ['C']], [12, ['D']], [12, ['H']], [12, ['S']]]
>>> for x in LL:
... key = x[0]
... value = x[1][0]
... dd[key].append(value)
...
>>> pprint.pprint(dd)
defaultdict(<class 'list'>, {8: ['C'], 2: ['D'], 12: ['D', 'H', 'S']})
>>90さん
>>> "str" in dir(__builtins__)
True
str
は、予約されているので、変数名として使用するのを止めましょう。
>>> s = "0123456789"
>>> a = []
>>> s[1]
'1'
>>> for i in range(10):
... n = int(s[i])
... a.append(n)
...
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- 92 :デフォルトの名無しさん:2014/08/14(木) 07:59:40.47 ID:smA0xrmN
- 訂正
>>91
○>>83さん
×>>72さん
- 93 :デフォルトの名無しさん:2014/08/14(木) 08:42:33.11 ID:CAjda4jb
- 上で出てるけど添え字使わずに map したり内包表記使ったほうがいい
あと str は予約語なりキーワードではない
- 94 :デフォルトの名無しさん:2014/08/14(木) 08:46:22.89 ID:JEIgFwEX
- LL = [[2, ['D']], [8, ['C']], [12, ['D']], [12, ['H']], [12, ['S']]]
LL2 = [[c, [f for d, e in LL if d==c for f in e]] for c in set(a for a, b in LL)]
print(LL2)
a = []
s = "0123456789"
a[:] = [int(c) for c in s]
print(a)
- 95 :デフォルトの名無しさん:2014/08/14(木) 12:06:05.09 ID:sq+uQd00
- >>79
関数型プログラミング・スタイルで....
http://play.island.ac/codepaste/code?id=1589
- 96 :デフォルトの名無しさん:2014/08/14(木) 12:41:41.25 ID:sq+uQd00
- >>95を訂正
http://play.island.ac/codepaste/code?id=1590
(配列からタプルへの暗黙の型変換を排除した)
あと、せっかく Python にはタプルがあるのだから、
二項関係(=ペア)はタプルで表現したほうが
コードにメリハリがついて読みやすくなると思う
LL = [(2, ['D']), (8, ['C']), (12, ['D']), (12, ['H']), (12, ['S'])]
- 97 :デフォルトの名無しさん:2014/08/14(木) 13:20:38.06 ID:sq+uQd00
- 辞書や集合を利用する場合には、解きたい課題の仕様に応じて
適切なデータ構造を選ぶ必要がある
たとえば >>83,94 は辞書または集合を利用しているから、
ペアが連続していなくともキーが一致していれば値をマトメてしまう
>>83 のケース(辞書):
L = [[12, ['D']], [8, ['C']], [12, ['D']], [12, ['H']], [12, ['S']]]
# 途中は省略
print map(list, d.iteritems())
# => [[12, ['D', 'D', 'H', 'S']], [8, ['C']]]
>>94 のケース(集合):
LL1 = [[12, ['D']], [8, ['C']], [12, ['D']], [12, ['H']], [12, ['S']]]
LL1_2 = [[c, [f for d, e in LL if d==c for f in e]] for c in set(a for a, b in LL)]
print(LL1_2)
=> [[8, ['C']], [12, ['D', 'D', 'H', 'S']]]
もしもキーの一致よりペアの連続性を優先する仕様であれば、>>96 になる
>>96 のケース(配列):
arr2 = [[2, ['D']], [8, ['C']], [12, ['D']], [12, ['H']], [12, ['S']]]
print(f(arr2))
=> [[12, ['D']], [8, ['C']], [12, ['D', 'H', 'S']]]
どのコードの振る舞いが適切かは、出題者の >>79 だけが知っている
- 98 :デフォルトの名無しさん:2014/08/14(木) 13:44:29.82 ID:sq+uQd00
- >>97 の末尾にあるコードの一部を訂正(コピペのミス)
X: arr2 = [[2, ['D']], ....]
O: arr2 = [[12, ['D']], ....]
- 99 :デフォルトの名無しさん:2014/08/14(木) 19:56:05.14 ID:sq+uQd00
- もしも仕様が:
「要素間に順序性がなく、なおかつあるキーにおける要素間で重複を許さない」
であれば、
「集合を値とする辞書」
というデータ構造が適切になる
この場合、>>96 のコードはずっと単純になる
http://play.island.ac/codepaste/code?id=1591
なお、さらに短く書こうと(>>94 を参考にして)辞書内包表記に挑戦してみたけど、
型エラーを回避できず、挫折した(Python 2.7 と 3.3 で確認)
>>> {(k, set(v)) for (k, v) in [[1, 'A'], [2, 'B']]}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <setcomp>
TypeError: unhashable type: 'set'
この型エラーの回避方法を知っている人がいれば、教えて欲しい
- 100 :デフォルトの名無しさん:2014/08/14(木) 20:14:48.54 ID:31aNAkg3
- 馬鹿には無理
- 101 :デフォルトの名無しさん:2014/08/14(木) 20:42:36.28 ID:JEIgFwEX
- >>99
辞書のキーをkに、値をset(v)にしたいという意味なら
{k:set(v) for k, v in [[1, 'A'], [2, 'B']]}
- 102 :デフォルトの名無しさん:2014/08/14(木) 22:18:32.96 ID:sq+uQd00
- >>101
ありがとうございます
おかげで >>94 を「集合を値とする辞書」に書き換えることができました
LL3 = {c: set([f for d, e in LL if d==c for f in e]) for c in set(a for a, b in LL)}
ただ、内包表記だと入力リストの各要素の反復について更に全要素を反復する(?)ので、
入力リストの大きさに対して処理時間が指数関数的に長くなるように見えます(???)
これを何とか一重の反復にできないか格闘しいぇみたけど、自分では無理でした
まあスクリプト言語で性能うんぬんを考える事が間抜けかもしれませんが....
- 103 :デフォルトの名無しさん:2014/08/14(木) 23:28:54.58 ID:XQFcvtlU
- from itertools import groupby
from operator import itemgetter
d = {k: set(x for _, xs in g for x in xs)
for k, g in groupby(LL, itemgetter(0))}
- 104 :デフォルトの名無しさん:2014/08/15(金) 01:35:13.72 ID:y89IBkND
- >>100
出た〜馬鹿の一つ覚えw
- 105 :デフォルトの名無しさん:2014/08/16(土) 02:12:20.20 ID:nQiWsyll
- やっぱりおっぱいそんスレにはエロが必要
あは〜ん
- 106 ::デフォルトの名無しさん:2014/08/16(土) 20:22:20.73 ID:oKz+epnN
- なんか映像関係と相性のいいプログラム言語らしいけど
具体的に何ができるの?
- 107 :デフォルトの名無しさん:2014/08/16(土) 21:29:41.92 ID:nQiWsyll
- エロCG作成が可能
- 108 :デフォルトの名無しさん:2014/08/16(土) 21:35:13.48 ID:hV65QHhV
- >>106
できるも何も、Pythonは映像を扱う機能は一切持っていませんぞ
- 109 :デフォルトの名無しさん:2014/08/16(土) 22:08:04.08 ID:ewaXkA++
- エロ動画のクロールしやすい
- 110 :デフォルトの名無しさん:2014/08/16(土) 22:38:35.06 ID:Ut3Ho2cw
- そう、pythonならね
- 111 :デフォルトの名無しさん:2014/08/16(土) 22:40:14.86 ID:nQiWsyll
- 使い道が増えたな
- 112 :デフォルトの名無しさん:2014/08/17(日) 07:47:50.63 ID:1D4ghaF5
- >>86
ありがとうございます
0~9とa~fまでの文字で0~15の数字を表し、それで作られた文字列への拡張もいけました
実際にはstrnはランダムで0^9かa^fの文字を任意の数だけ入れますが
strn="0123456789abcdef"
n=16
a=[]
for i in range(len(strn)):
a.append(int(strn[i],base=n))
for i in range(len(strn)):
print(a[i])
>>89,91,93,94
mapも便利そうなので後で仕様を調べて練習してみます
ちょっと難しそうに見えますが、応用範囲が広そうでいいですね
ありがとうございます
後はファイルに記録された8文字の文字列を任意の数読み込んで
それぞれの文字列について平均、最大を出すという操作を作ります
2日位で出来るといいなっ!
- 113 :デフォルトの名無しさん:2014/08/17(日) 08:36:55.71 ID:S2ZyfJtL
- >>112
for文と内包表記の使い方を覚えるともっとシンプルに書けるようになる
strn = "0123456789abcdef"
n = 16
a = [int(s, base=n) for s in strn]
for num in a:
print(num)
- 114 :デフォルトの名無しさん:2014/08/17(日) 12:43:21.18 ID:jHvAACNT
- PYTHON 2.7 で 2000Hバイトのバイナリデータ(データはすべてFF)を作成したいと思います。
例が示されているサイト等があれば教えていただけないでしょうか。
- 115 :デフォルトの名無しさん:2014/08/17(日) 12:50:52.28 ID:dhYg7xlG
- >>114
open("hoge.bin", "wb").write("\xFF" * 0x2000)
- 116 :デフォルトの名無しさん:2014/08/17(日) 14:59:24.06 ID:jHvAACNT
- >>115
ありがとう。
うまくいきまいした。
- 117 :デフォルトの名無しさん:2014/08/17(日) 17:48:26.33 ID:1D4ghaF5
- >>113
ありがとうございます
for文のそういう書き方や、内包表現を覚えたほうが直感的に書けそうですね
他人のソースがそれで書かれていたら直ぐ読める自信はありませんが、
自分で後で読む用途だとそちらのほうが分かりやすそうです
仕様を理解しつつ具体的に練習して身に付ける方向でやってみようと思います
いつか恩返しが出来るようなれるといいな
- 118 :デフォルトの名無しさん:2014/08/18(月) 08:06:33.74 ID:51w8WhmP
- 今時C-styleのforってどこで覚えてくるんだろう
やっぱCか
- 119 :デフォルトの名無しさん:2014/08/18(月) 19:28:55.88 ID:K5hwgM95
- >>113
>for num in a:
> print(num)
print(*a, sep="\n")
ループ処理いらん
- 120 :デフォルトの名無しさん:2014/08/18(月) 22:38:58.65 ID:HLTZAqws
- >>> l = ["a", "b" "c"]
>>> l
>>> ['a', 'bc']
なんでこうなるんだろ
ふつうにエラーにしたほうがいいと思うんだけど
なんかメリットあるんだろうか
- 121 :デフォルトの名無しさん:2014/08/18(月) 23:01:35.09 ID:K5hwgM95
- >>120
文字列リテラルの仕様
>単式の一部であり間に空白のみを含む文字列リテラルは、一つの文字列リテラルに暗黙に変換されます。
http://docs.python.jp/3.4/library/stdtypes.html#text-sequence-type-str
>>> "b""c"
'bc'
メリットは何だろ。文字列結合するのにそのまま並べられる?
- 122 :デフォルトの名無しさん:2014/08/18(月) 23:04:05.12 ID:7X6VrPC7
- pack の引数のコメント書くのとかに使える
あと変数名 l はあんまりよくない
- 123 :デフォルトの名無しさん:2014/08/18(月) 23:04:33.51 ID:FhzY8b4Z
- 文字列リテラルを並べると一まとめになるのはC言語系の仕様だろ
- 124 :デフォルトの名無しさん:2014/08/18(月) 23:07:27.74 ID:yNFe71fP
- 言語リファレンスの方が
ttp://docs.python.jp/3/reference/lexical_analysis.html#string-literal-concatenation
主になんがーい文字用じゃないかね
- 125 :デフォルトの名無しさん:2014/08/18(月) 23:10:21.53 ID:mqTO4sep
- PEP8に頑なに従おうとしたときすごく助かるよ。
- 126 :デフォルトの名無しさん:2014/08/20(水) 12:51:32.19 ID:T9kvMX30
- なんてこったずっと + 書いてたわ
("This" +
"is a very long line")
- 127 :デフォルトの名無しさん:2014/08/20(水) 13:02:45.35 ID:GuTaDa5L
- "This" \
"is a very long line"
- 128 :デフォルトの名無しさん:2014/08/20(水) 16:27:20.44 ID:SAxc93tu
- Thisis a very long line
- 129 :デフォルトの名無しさん:2014/08/20(水) 19:09:26.04 ID:FiV4cMVv
- 横80文字なんて、ワイドディスプレイが普及した今の時代に守る必要はない
あれはパンチカードやキャラクタディスプレイ時代の習慣だ
頻繁に改行することで見にくくなったりエンバグするリスクの方が高い
- 130 :デフォルトの名無しさん:2014/08/20(水) 19:11:44.34 ID:vOLIf7/C
- まあ普通に書けば80桁を越える事なんか滅多にない訳だが
- 131 :デフォルトの名無しさん:2014/08/20(水) 19:31:39.62 ID:PK2Z8X8/
- 小さめのノートでターミナル横二分割すると80文字でギリぐらい
- 132 :デフォルトの名無しさん:2014/08/20(水) 20:44:06.63 ID:FiV4cMVv
- >>130
自分はprintで超えまくるよ
Python3になって、printにカッコを使うようになったのと
format()を併用するようになったことが実に痛い
- 133 :デフォルトの名無しさん:2014/08/20(水) 20:57:52.89 ID:5yBlZ/IM
- 内包表記はよく80越えするな
- 134 :デフォルトの名無しさん:2014/08/21(木) 21:04:40.79 ID:hkentYzf
- 内包表記も print の括弧もその中で改行できるから逆にめったに超えない
- 135 :デフォルトの名無しさん:2014/08/21(木) 21:32:17.51 ID:EEmj9GE5
- そうだよな、改行した方が読みやすい。
わざわざ一行で書くとか何の苦行だよ?
- 136 :デフォルトの名無しさん:2014/08/21(木) 21:39:03.62 ID:MhWq0pC7
- 俺の場合、改行するとそこで思考が途切れて
コードが読めなくなるんだよ
printで文字列を二行に分けて、なおかつ後ろに
formatが付いていたりするともう大変で、視線が
上と下を行ったり来たりしているうちに発狂する
- 137 :デフォルトの名無しさん:2014/08/22(金) 00:17:18.47 ID:8tYB1M2a
- 今時のモニタだと、横に400-500文字表示できるから、
短くてもバランスが悪いんだよね
- 138 :デフォルトの名無しさん:2014/08/22(金) 08:34:47.26 ID:FzGWd/ot
- 頑なにコーデイングルール守ろうとしてイライラしてる奴を眺めるのが最近の趣味
- 139 :デフォルトの名無しさん:2014/08/23(土) 12:12:00.39 ID:G8fmeh+A
- Python初心者です。
reモジュールはスレッドセーフですか?
複数のスレッドから同時に正規表現を扱いたいのでスレッドセーフでないと困っちゃいます
- 140 :デフォルトの名無しさん:2014/08/23(土) 12:41:33.64 ID:7Oq9lst2
- こういうファイルがあるとして(さしすせその後も改行があります)
str1.txt
あいうえお
かきくけこ
さしすせそ
次のように文字列をlist_strにリストとして格納します
list_str=[]
f=open()
list_str=f.readlines()
f.close()
で、改行込みの文字列のリストがlist_strに代入されますが
そこから改行文字を取り除きたいです
どうやるのが尤も一般的でしょうか?
- 141 :デフォルトの名無しさん:2014/08/23(土) 13:01:38.90 ID:FMBFCiJo
- >>140
with open("str1.txt", "r", encoding="utf-8") as f:
list_str = [line.strip() for line in f.readlines()]
print(list_str)
python3だとこんな感じ
- 142 :デフォルトの名無しさん:2014/08/23(土) 13:15:42.30 ID:+i5yzvna
- .strip() だと先頭/末尾の空白やタブまで削除されてしまうから
.rstrip("\r\n") の方がいいよ
- 143 :デフォルトの名無しさん:2014/08/23(土) 16:30:53.87 ID:gEc2W+i3
- replace でいいだろ
- 144 :デフォルトの名無しさん:2014/08/23(土) 19:15:01.22 ID:7Oq9lst2
- >>140-141
ありがとうございます
大分酷い書き方になっていると思いますが、思ったような動作になりました
洗練された表現は後で周辺も調べつつ取り入れて見ようと思います
また、ここがおかしいという指摘あれば、よろしければご教授下さいm(__)m
list_str = []
f = open("str1.txt")
list_str = f.readlines()
f.close()
print(list_str)
for i in range(3):
line = list_str[i].strip()
# line = list_str[i].rstrip("\r\n")
list_str[i] = line
print(list_str)
all_str = "".join(list_str)
print(all_str)
>>>
['あいうえお\n', 'かきくけこ\n', 'さしすせそ\n']
['あいうえお', 'かきくけこ', 'さしすせそ']
あいうえおかきくけこさしすせそ
- 145 :139:2014/08/23(土) 19:24:32.33 ID:3qnNklS6
- 誰かわかる人いませんか?
- 146 :デフォルトの名無しさん:2014/08/23(土) 20:14:09.61 ID:+i5yzvna
- >>145
わざわざスレッドセーフするためのグローバルインタプリタロックだし
JavaScriptみたいにグローバルな正規表現オブジェクトを使い回す訳でもないし
大丈夫でしょ
グローバルインタプリタロックがあるから処理時間短縮目的ならマルチプロセス化する必要あるよ
- 147 :デフォルトの名無しさん:2014/08/23(土) 20:59:56.96 ID:FMBFCiJo
- >>144
f = open("str1.txt")
list_str = f.readlines()
f.close()
は
with open("str1.txt") as f:
list_str = f.readlines()
にするといちいちcloseよばなくてすむから楽
あと,テキストをリストに移すときは普通は一気にやる
list_str = []
with open("str1.txt") as f:
for line in f.readlines():
list_str.append(line.strip())
print(list_str)
- 148 :デフォルトの名無しさん:2014/08/23(土) 21:06:16.75 ID:i5J5SJBK
- >>142,144
Pythonは>>144ででてるようにテキスト読み込み時に改行文字を\nに変換するから
.strip("\n") で良い。
- 149 :デフォルトの名無しさん:2014/08/23(土) 21:08:47.47 ID:i5J5SJBK
- >>147
readlines()でいったん全部読み込んでからそれを for でまわすとか、
for でまわしてリストに append とかバッドノウハウばっか教えんなよ。
- 150 :デフォルトの名無しさん:2014/08/23(土) 21:16:32.39 ID:Hu2+AkgU
- どこがバッドノウハウなのかね
forで回して条件に合う物をリストにappendって
Pyhtonの定番中の定番処理だぞ
- 151 :デフォルトの名無しさん:2014/08/23(土) 21:37:48.68 ID:+i5yzvna
- すぐ加工して破棄するんだし readlines() で全部メモリ上に保持する必要はないってことでしょ
append も、少しずつ加えるよりイテレータや内包表記で一気にリストにする方がメモリ効率がいい
with open("str1.txt") as f:
list_str = [line.rstrip("\n") for line in f]
- 152 :デフォルトの名無しさん:2014/08/23(土) 22:02:31.40 ID:FMBFCiJo
- リスト内包は>>141で書いたけど
>>144に"洗練された表現は後で周辺も調べつつ取り入れて見ようと思います"ってあるから
本人の書いたコードになるべくあわせて修正した
- 153 :デフォルトの名無しさん:2014/08/23(土) 22:04:58.66 ID:1z1AuVul
- >>149
そんなもん規模次第だろ
数十行程度の設定ファイルとかなら、メモリー効率とか実行速度を気にするレベルじゃないだろうし
- 154 :デフォルトの名無しさん:2014/08/23(土) 22:15:34.69 ID:3qnNklS6
- >>151の方が読みやすいし短いし効率もいいだろ
規模の問題ですらない
- 155 :デフォルトの名無しさん:2014/08/23(土) 22:26:23.33 ID:Hu2+AkgU
- いやいや
内包表記は読みづらいですから
- 156 :デフォルトの名無しさん:2014/08/23(土) 22:30:44.45 ID:NSY3QuJK
- 戦の予感
- 157 :デフォルトの名無しさん:2014/08/23(土) 22:33:30.14 ID:PmTjLBQU
- それほど読みづらくはないほうだと思う
- 158 :デフォルトの名無しさん:2014/08/23(土) 22:36:09.93 ID:Hu2+AkgU
- 何にでも速度・効率をふりかざし
コードを見れば脊椎反射で批評・添削を加えたがる輩は
それが暴力に近いことだと自覚して欲しい
- 159 :デフォルトの名無しさん:2014/08/23(土) 22:38:18.68 ID:1z1AuVul
- >>154
読みやすいかどうかは人によるし、規模が小さいならどっちでも好きな方でいいだろ
- 160 :デフォルトの名無しさん:2014/08/23(土) 22:48:29.19 ID:+i5yzvna
- 読み易さはともかく
readlines() で作られるリストと、加工結果を入れるリストとで、
一時的に本来必要な量の2倍メモリ消費してしまうことには気を付けといた方がいいね
ここ最近、巨大なテキストファイルの加工にPython使ってるけど
そろそろ処理終わったかな〜と見に行くとメモリ不足で止まってたりするw
- 161 :デフォルトの名無しさん:2014/08/23(土) 22:48:36.35 ID:gEc2W+i3
- メモリ云々抜かすなら yield 使え
- 162 :デフォルトの名無しさん:2014/08/23(土) 22:50:08.39 ID:3qnNklS6
- 内包表記の方が余計な変数も使わないし簡潔で読みやすいよ
- 163 :デフォルトの名無しさん:2014/08/23(土) 22:50:15.21 ID:Jwg/Lhcu
- >>151 くらいなら一目で理解できるけど、
よほど慣れた人を除けば >>94 や >>102 は
無理ゲーな人が大半ではないかと思われ
- 164 :デフォルトの名無しさん:2014/08/23(土) 23:30:51.50 ID:XzPg74sm
- 内包表記が適さない場面なら
with open('str1.txt') as f:list_str = map(str.rstrip,f)
で良いじゃん?リストに入れるのが目的ならだけどね
規模が小さかろうとシステムリソースは有限だし
スケーリング可能な最適をチョイスをするのが基本だと思うがね
動けばいいなんて処理を理解しないままもまたバグの元だが
- 165 :デフォルトの名無しさん:2014/08/23(土) 23:36:23.23 ID:6csT3QKU
- >>163
慣れた人というより、もはやサヴァン症候群なんじゃないかと思うレベル。
- 166 :デフォルトの名無しさん:2014/08/23(土) 23:44:24.92 ID:3qnNklS6
- この程度の表記で大騒ぎしすぎだろ
メタプログラミングならもっとヤバいのがいっぱいあるのに
- 167 :デフォルトの名無しさん:2014/08/23(土) 23:48:37.89 ID:Hu2+AkgU
- >>164
話の流れ見えてないだろ
頼まれたわけでもないのに、人のコードに横から口を挟んで
速度・効率のチューニングを始めるのは自重しろと言っているのだよ
- 168 :デフォルトの名無しさん:2014/08/23(土) 23:57:17.07 ID:Dp/sG2ok
- 今の流れから言うと(ちなみに)こうするとええでみたいなのはあってもいいんじゃとはおもう
- 169 :デフォルトの名無しさん:2014/08/24(日) 00:05:43.11 ID:NdITZsIB
- >>167
彼のはただの突っ込みあるいは些細な齟齬に見えるが?
話の流れではなく貴方が自分の主張で過剰反応してるだけでしょう?
悪いけどそんな下らんことを議論するつもりはない
- 170 :デフォルトの名無しさん:2014/08/24(日) 00:11:25.82 ID:frySUXyC
- 流れは>>144の
> また、ここがおかしいという指摘あれば、よろしければご教授下さいm(__)m
からきていると思う
- 171 :デフォルトの名無しさん:2014/08/24(日) 00:17:22.57 ID:1zGm5FNX
- >>167
速度効率の問題というより readlines が余計
f はイテレータ
- 172 :デフォルトの名無しさん:2014/08/24(日) 00:17:52.28 ID:TeY476kZ
- >>166
メタプログラミングって読みにくいコードを書く事じゃないぞ
- 173 :デフォルトの名無しさん:2014/08/24(日) 00:56:14.63 ID:jWy1bnP0
- 自己満コードのことですよね分かります
- 174 :デフォルトの名無しさん:2014/08/24(日) 01:13:41.67 ID:0MtXF8e+
- 多少冗長でもだれが読んでも一発でわかるコードが最良なんだよ
ド素人が多すぎる
- 175 :デフォルトの名無しさん:2014/08/24(日) 01:29:48.23 ID:+Pte+GGf
- そろそろpass又は馬鹿には無理が現れるころ
- 176 :デフォルトの名無しさん:2014/08/24(日) 01:53:06.56 ID:Mo/xSCgr
- >>174
自分の知識がないのを「多少冗長でも誰が読んでもわかる方が良い」などとトンチンカンな
エスクキューズにするコーダーは100%クズ
- 177 :デフォルトの名無しさん:2014/08/24(日) 02:05:18.29 ID:VbHcfS42
- 早速ド素人が釣れたようだなw
- 178 :デフォルトの名無しさん:2014/08/24(日) 02:06:58.64 ID:jlCuRdJh
- 初心者の馬鹿が発狂しているな
- 179 :デフォルトの名無しさん:2014/08/24(日) 02:10:53.57 ID:Mo/xSCgr
- >>150
いや、>>147みたいな単純なappendはバッドノウハウ中のバッドノウハウ。
自分が使うのは勝手だが、人にすすめていいコードじゃない。
私バカですと言ってるようなもの。
内包表記がわかりにくい云々とか言ってるのは自分が頭悪いので言語の仕様を使い切れません、
と言ってるのと同じなので、それを人にさらして良い話ではない。
私バカですと言ってるようなもの。
規模の大小とコードの効率や質とは無関係。
人様に見せないでてめえの中だけで自己満足できればいいなら好きにすれば良い話。
でもそれを人前で言うな。
私バカですと言ってるようなもの。
>>140 はその程度の知識はあってやってそうなのに対し、
>>147 が上から目線で>>140よりバカで無駄だらけなコードをひけらかしてるので痛さが際立つ。
- 180 :デフォルトの名無しさん:2014/08/24(日) 04:05:04.08 ID:jlCuRdJh
- 結論:このスレは馬鹿の集まり
- 181 :デフォルトの名無しさん:2014/08/24(日) 04:38:47.54 ID:Mxca/0uN
- >>179
単純なappendをバッドノウハウと主張する根拠は?
根拠を述べ、それを皆が納得してくれないと
逆に君がバカだと思われるぜ
- 182 :デフォルトの名無しさん:2014/08/24(日) 04:44:44.19 ID:jlCuRdJh
- はい論破
- 183 :デフォルトの名無しさん:2014/08/24(日) 05:28:05.91 ID:fB1dx/82
- ここ、超初心者用のスレだから、効率まで追求しなくていいと思う。
- 184 :デフォルトの名無しさん:2014/08/24(日) 05:58:46.88 ID:Mxca/0uN
- 全くだ
スクリプト言語はお手軽さが命
そもそも内包表記は、rubyに毒されたワンライナー厨の
オナニー用に後から追加された機能だろ?
Pythonの公式ドキュメントにも、内包表記はわかりづらい
うんぬんという記述があったはず
- 185 :デフォルトの名無しさん:2014/08/24(日) 08:06:45.59 ID:TeY476kZ
- もしかして一行で書いた方が効率がいいとか思ってるやついる?
- 186 :デフォルトの名無しさん:2014/08/24(日) 08:08:25.35 ID:3Y+Mzxe1
- >>179
> 規模の大小とコードの効率や質とは無関係。
データの大小で処理方法を変えることは普通にあるだろ。
> 私バカですと言ってるようなもの。
ブーメラン乙 (w
- 187 :デフォルトの名無しさん:2014/08/24(日) 08:57:04.93 ID:1zGm5FNX
- 内包表記アレルギーもこまったもんだけど
ループ内でリストに append はバッドノウハウとか言い出すのもなんだな
- 188 :デフォルトの名無しさん:2014/08/24(日) 09:20:30.22 ID:jWy1bnP0
- 何を生み出すこともない戦がまだ続いてます
こんなことやるくらいならオナニーでもしていた方がいいでしょうね
- 189 :デフォルトの名無しさん:2014/08/24(日) 10:07:03.45 ID:2j22PZGE
- 言い出すもクソも、そもそもバッドノウハウとは真逆のごく自然なやり方だし
- 190 :デフォルトの名無しさん:2014/08/24(日) 10:08:29.80 ID:gu+/Plpk
- 通常は人に見せる事も目的に持ちたいけど
思った事を直ぐ記述だと、ある程度の内包表記をしたほうが直感的に書けるだろうし
後からも分かりやすい気がするし・・・
ってよく分からなくなる
ここまでは内包表記をしましょうみたいなコンセンサスがあるといいなって
ある程度以上のレベルになればこちらの表記を採用みたいな
初心者もここまでの内包表記は目指したほうが後から力になりやすいって感じで
逆に内包表記しないほうがいいって感じのものを挙げたほうが良さそうな気もしてきたw
- 191 :デフォルトの名無しさん:2014/08/24(日) 10:17:31.08 ID:2j22PZGE
- 内包表記ってループを一行で書いただけだぞ?
初心者だから分からないんじゃない。
読みにくいから分かりにくいんだよ。
- 192 :デフォルトの名無しさん:2014/08/24(日) 11:04:46.88 ID:87IKCXeE
- 例えば 0〜99 の数値のリストを作る
x = range(100)
をforで作る人は多分いない。
それはrangeで作られるリストが容易に想像できるから。
複雑な内包表現でもそのようなもの(例えば言葉で説明できるもの)ならループよりも可読性があると思う。
ただし、複雑過ぎると動作を変更しようとしたときに面倒臭い。
- 193 :デフォルトの名無しさん:2014/08/24(日) 11:21:39.10 ID:gu+/Plpk
- >>191
>>144の場合だと
for i in range(3):
line = list_str[i].strip()
list_str[i] = line
>>151>>160
>>144の例は読み込むのが3行だからどっちでもいいとは思うんだけど
こういう感じのファイルからの読み込みだと大量のデータを処理する目的がある場合が十分考えられる
>>151
f = open("str1.txt")
list_str=[line.rstrip("\n") for line in f]
f.close()
3行なのを記録したり、調べないでもいいし、ファイルの性質を分かっていれば読みにくいことはないし、
書くくなら多分こちらを書くかなって気がする
他人が書いたものを読むのも、内包表記を知っている方だと、こちらのほうが読みやすい気がする
ファイルからの一行ごとの処理がこの内包表記で出来るというのは多分覚えないといけないでしょうけど
というかファイルオブジェクトがファイルが一行ごとを要素として持つリストで認識? しているって感じで理解したほうがいいのかな?
- 194 :デフォルトの名無しさん:2014/08/24(日) 11:50:15.24 ID:jWy1bnP0
- お前らのソースコードなんか読まれないから可読性とかイチイチ語らなくていいぞ
それでも語りたいならgithubのアカウント晒せよ
それでお前の語る可読性がどれだけ高尚なものか評価してやる
テストがまったくないとか言ったら笑うけどな
- 195 :デフォルトの名無しさん:2014/08/24(日) 11:51:26.70 ID:jWy1bnP0
- さぞ徹底的に実践されていることだろうな?
それとも机上の空論で自らのコードはずぼらとか?
偉そうな方はどちらに当てはまるかな
- 196 :デフォルトの名無しさん:2014/08/24(日) 12:39:33.97 ID:lc4tmy8G
- >>194
なんか糞コードしかかけなそう
- 197 :デフォルトの名無しさん:2014/08/24(日) 12:41:09.68 ID:EYMdVqe7
- 西アフリカで、アウトブレイクした潜伏期間延長型エボラの死者・罹患者の数を散布図にし近似曲線を出してみたら
片対数グラフで直線だから既に指数関数的増加だった
2014年に、西アフリカでアウトブレイクした潜伏期間延長型エボラの死者は、2014年8月半ばで1000人。←今ココ
2014年12月上旬で1万人。
この時点で世界規模で空路シャットダウン開始、世界経済大混乱
2015年5月で10万人。
2015年9月で100万人。
この時点で、第二次世界大恐慌発生
2015年大晦日で1000万人。
ちなみに
http://ja.wikipedia.org/wiki/2014%E5%B9%B4%E3%81%AE%E8%A5%BF%E3%82%A2%E3%83%95%E3%83%AA%E3%82%AB%E3%82%A8%E3%83%9C%E3%83%A9%E5%A4%A7%E6%B5%81%E8%A1%8C
:カナダ保健省のサイトでは体内に数個のエボラウィルスエアロゾルが侵入しただけでも発症するとしている
:ハマダラカが、吸血したての人の新鮮血を媒介しているという学説が浮上している
エボラ出血熱は蚊やアブに刺されただけで感染する。
:「この地域には内戦、政府による搾取、テロが長い間続いており、それによって生まれた恐怖、貧困、猜疑心などがある。エボラは耐え難い騒音に付け加えられた一つのざわめきに過ぎない」
現地では
や る 気 は 皆 無
- 198 :デフォルトの名無しさん:2014/08/24(日) 12:48:28.63 ID:+Bp9t+G+
- いきなりテストがどうのこうのとか、分裂症の兆候が見られますね
- 199 :デフォルトの名無しさん:2014/08/24(日) 13:24:17.80 ID:frySUXyC
- >>193
どこでcloseしてるか探さないといけない書き方より、with使う方が好みだなあ
withのインデント範囲が、ファイルの開いてる範囲だと直感的に分かるから
テキストエディタの色分け表示された環境で見れば、短い内包表記なら気にならなくなるよ
- 200 :デフォルトの名無しさん:2014/08/24(日) 14:00:30.54 ID:gu+/Plpk
- >>194
人に見せないまでも自分に対する可読性もあると思うの
直感的に書いて、尚且つ10年後も自分で読みやすいスクリプトを書きたいじゃない
散文的に書いたものが何かの拍子に必要になる可能性もあるし
というかこれには関係ないけど昔別言語の自分の書いた変態ソースが読みにくくて大分めんどくさいです
ドキュメント位作っておけばよかった
>>199
他の言語から移るって感じの時に
withだと内包表記と共に2つの理解が必要だとしんどいかなって思ってばらしてみました
Pythonを使い慣れている方なら普通にwithを使うでしょうね
- 201 :デフォルトの名無しさん:2014/08/24(日) 14:08:01.22 ID:gDuWOCL6
- withと同等の構文は大抵のメジャー言語に備わってるよw
- 202 :デフォルトの名無しさん:2014/08/24(日) 14:27:30.36 ID:Mxca/0uN
- withで聞きたいことがあったんだった
入力ファイルと出力ファイルを一つずつ開き
読み書きを全て一つのブロック内で行う場合、これでいいのかな?
動いてはいるのだけど、openがネストになるのが気持ち悪い
with open(...) as infile:
with open(...) as outfile:
# 以下、読んだり書いたりの処理
- 203 :デフォルトの名無しさん:2014/08/24(日) 14:48:42.01 ID:frySUXyC
- こんな風にも書けるよ
with open(...) as infile, \
open(...) as outfile:
# 以下、読んだり書いたりの処理
- 204 :デフォルトの名無しさん:2014/08/24(日) 14:54:05.63 ID:jlCuRdJh
- ゴミコードです
- 205 :デフォルトの名無しさん:2014/08/24(日) 15:00:05.12 ID:gGOWG3Gv
- >>202
with open(...) as infile, open(...) as outfile:
# 以下、読んだり書いたりの処理
2.7から普通にコンマで繋げられるよ
3.3からでたくさんある場合はcontextlib.ExitStackが使える
2.6以下ならcontextlib.nestedでできる
- 206 :デフォルトの名無しさん:2014/08/24(日) 18:44:45.65 ID:Mxca/0uN
- >>203,205
サンクス
withを使ったファイルアクセスは頻繁に使うので
スッキリ書けると助かる
- 207 :デフォルトの名無しさん:2014/08/25(月) 02:10:28.08 ID:OTL7uAT+
- >>149 >>151 >>160 >>171
readlinesって一旦全部メモリに読んでるの?
最近のpythonだとgeneratorにしてくれてるんじゃなくて?
>>161
だよね
- 208 :デフォルトの名無しさん:2014/08/25(月) 02:33:00.21 ID:WeZbZEp1
- >>207
Pythonのドキュメントをちゃんと読めばわかる話なんだが。
「リストを返す」というのはメモリに全部読み込んで返してますということ。
wiith ... as f なら f はイテレータになってる。
イテレータを返すというのはその時点ではまだ読み込んでませんよということ。
ジェネレータはイテレータのシンタックスシュガー。
内包表記でかくとややこしくなるところで使うのが yield を使うジェネレータ。
- 209 :デフォルトの名無しさん:2014/08/25(月) 02:39:43.37 ID:r8v+sX3h
- なんか滅茶苦茶だな
- 210 :デフォルトの名無しさん:2014/08/25(月) 08:54:52.76 ID:C6MCmCjo
- >>207
自分 >>171 なんだけどメモリがどうとかなん一言も言ってない
単に(>>147 後段の)readlines() が余計だというだけ
- 211 :デフォルトの名無しさん:2014/08/25(月) 09:39:28.38 ID:LIV+GZ8D
- 一言も言ってないとかそんなことはどうでもいいんだよ
俺には聞こえたんだ文句あっかクソが
- 212 :デフォルトの名無しさん:2014/08/25(月) 20:01:33.97 ID:OTL7uAT+
- 漏れも聞こえた気がする
- 213 :デフォルトの名無しさん:2014/08/26(火) 00:23:41.72 ID:cOpcHFf6
- >>210
速度もメモリーも気にしないなら readlines あってもいいじゃん
- 214 :デフォルトの名無しさん:2014/08/27(水) 18:23:29.22 ID:kQryo2X9
- readlinesを使う場合が思いつかない罠
\n付きのデータが欲しい時は使うのかなあ
- 215 :デフォルトの名無しさん:2014/08/27(水) 18:35:30.33 ID:cWbvRQEv
- 使うとしたら、どうしても最終行→先頭行の順で処理したい時くらいかなあ
- 216 :デフォルトの名無しさん:2014/08/27(水) 19:35:30.52 ID:9+bGMQe/
- csvとかで行の先頭に日時が書いてあって、昇順降順を逆にして表示したい時とか、
先頭行に行数を明記したい時とかかな?
- 217 :デフォルトの名無しさん:2014/08/27(水) 19:36:55.50 ID:9+bGMQe/
- あと、処理が全体の何%進んでます
って表示する時かな?
- 218 :デフォルトの名無しさん:2014/08/27(水) 20:34:24.19 ID:W7LoG7Mi
- 超初歩的な質問をいくつかさせてもらいます。
bool_one = False and True
この「and」とはどういう意味を持つのでしょうか?
「!=」と「+=」の意味は同じですか?
- 219 :デフォルトの名無しさん:2014/08/27(水) 20:57:36.11 ID:36wAJh8p
- >>218
くだすれPython(超初心者用) その17
http://peace.2ch.net/test/read.cgi/tech/1365323116/937-938
- 220 :デフォルトの名無しさん:2014/08/27(水) 21:11:58.77 ID:F5daRA4V
- >>218
ちょっとよくわかりません
- 221 :デフォルトの名無しさん:2014/08/27(水) 21:17:34.91 ID:lz8X5B5x
- Jack and Betty
Bonnie and Clyde
みたいな感じじゃね?
- 222 :デフォルトの名無しさん:2014/08/27(水) 21:29:34.59 ID:W7LoG7Mi
- >>219
なるほど、良く分かりました!ありがとうございます。
ちなみにこのコードは、codecademyのレッスン中にでてきます。
- 223 :デフォルトの名無しさん:2014/08/27(水) 21:45:04.28 ID:l9xcBY8F
- >>218
andの左にある式がFalseと評価できるなら左の式を返す、逆にTrueと評価できるならandの右にある式を返す
>>> [] and True
[]
>>> 1.0 - 1.0 and 3.14
0.0
>>> -1 and 2
2
>>> 'hello' and 'world'
'world'
- 224 :デフォルトの名無しさん:2014/08/28(木) 02:33:42.69 ID:8lkzYc52
- codecademy クラスの所の順番(基本と応用)おかしくない?
- 225 :デフォルトの名無しさん:2014/08/28(木) 06:43:05.78 ID:3Gu0DZv8
- >>223
うーん、これは初心者には難解だなあ
ifで条件つなぎに使うやつと毛色が違うよね
でもこれを使うと、ラムダ式などifを使えない場所に
条件分岐を仕込めそうな感じがするので、学ぶ価値はありそうなんだよな
- 226 :デフォルトの名無しさん:2014/08/28(木) 06:55:05.71 ID:DXb3g9Xw
- >ifで条件つなぎに使うやつと毛色が違うよね
毛色が違う・・・?
>でもこれを使うと、ラムダ式などifを使えない場所に
三項演算子はステートメントじゃなくて演算子だから使える
- 227 :デフォルトの名無しさん:2014/08/28(木) 07:19:23.35 ID:3Gu0DZv8
- >>226
ifの条件式に使うandとこのandは働きが違う感じがしません?
どこがどうとは言えないのだけど
- 228 :デフォルトの名無しさん:2014/08/28(木) 07:36:36.16 ID:NvaMglSs
- >>227
論理演算子はどこで使おうが短絡演算で評価対象を返すよ
この特性は三項演算子っぽく使えなくも無いが、それとしては不完全なので
返す値をちょっとだけ変えたいくらいの時には便利
if用の論理演算子なんてものはない、論理演算子があり、if文があり、それらが連携してry
- 229 :デフォルトの名無しさん:2014/08/28(木) 08:25:08.74 ID:C6oDC4Qo
- 人減ってレベル下ったな
- 230 :デフォルトの名無しさん:2014/08/28(木) 12:38:56.86 ID:NYfr88ea
- >>227
if文やwhile文などの条件部分はbool型の値じゃなくてもエラーにならない
False、None、数値のゼロ、空のシーケンス(文字列やリスト)などが偽と見なされる
>>> if [] and True: print(1)
は[] and Trueのブール演算で返った[]が偽と見なされるのでprint(1)は実行されない
- 231 :デフォルトの名無しさん:2014/08/28(木) 18:43:17.03 ID:+ATeOtQu
- >>227
ifの条件式と全く同じ。
ただ、条件式以外でandやorを使うのは、Pythonに三項演算が無かった頃のテクニックで
今そんなの使うのはCode Golfするときくらいだな。
- 232 :デフォルトの名無しさん:2014/08/28(木) 19:10:09.62 ID:u3Kwqg++
- x = a or b or c or d or default_value
みたいなのはよく使うけどなあ
- 233 :デフォルトの名無しさん:2014/08/28(木) 19:54:13.35 ID:n/glzhXg
- 優柔不断すぎるだろ
- 234 :デフォルトの名無しさん:2014/08/28(木) 20:11:27.58 ID:u3Kwqg++
- 優柔不断かなあ。ifで書くより分かりやすいと思うけど
if a:
x = a
elif b:
x = b
elif c:
x = c
elif d:
x = d
else:
x = default_value
- 235 :デフォルトの名無しさん:2014/08/28(木) 20:18:39.82 ID:1NG60ApY
- orでつなげる方が見やすいとは思うけど、if使う方が直感的で読みやすいかな。
三項演算も長くなるとキモいし一長一短。
- 236 :デフォルトの名無しさん:2014/08/28(木) 20:20:45.90 ID:TSExhEQp
- re.findall() みたいに必ずリストで返す奴でのシンプルな要素取りみたいな用途ではよく使うかな。
m = re.findall(pattern, s)
m = m and m[0]
if で2行にわたって書くとか無駄でイヤ。
- 237 :デフォルトの名無しさん:2014/08/28(木) 21:24:11.38 ID:CCJAHAKH
- デフォルトな値設定に使うなあ
def __init__(self, a=None):
self.a = a or {}
- 238 :デフォルトの名無しさん:2014/08/29(金) 01:58:45.79 ID:idGYnHkN
- >>236
コードによるけど、結局mにちゃんと値が入ってるかどうかのif的処理が必要になるんじゃないかね。
>>237
> def __init__(self, a=None):
> self.a = a or {}
こんなクソコードを2chで晒してんじゃねえ。
クソだってわからないんだとしたら、そんなおまえがクソです。
- 239 :デフォルトの名無しさん:2014/08/29(金) 02:45:03.76 ID:SC5ypxkr
- >>238
>>237は何度か見たことある書き方だけど問題があるのなら具体的に指摘してくれ。
- 240 :デフォルトの名無しさん:2014/08/29(金) 05:17:47.45 ID:C06ZUAqI
- def __init__(self, a={}):
self.a = a
とか書くと意味が変わるんだよな
インスタンス生成のタイミングが一回になるから云々
- 241 :デフォルトの名無しさん:2014/08/29(金) 06:19:30.41 ID:EluQu91K
- >>239
a が None のとき {} にするつもりで記述したかもしれないけど
a に 0 [ ] '' false などを指定した場合も self.a = {} になってしまうから
思わぬバグを生む原因になったりするかもしれない
そのクラスの使用者側からすると、確実に 0 を指定したのになぜか思い通りに動いてくれない・・・みたいなバグ
計算結果や返値の型が明確なものに使うのはいいけど
引数のように何が渡されるか分からないものには慎重に使うべきなんだと思う
- 242 :デフォルトの名無しさん:2014/08/29(金) 09:07:46.34 ID:H83Cnhn6
- >>241
偽になる値を有効なものとして受け取るなら>>237はバグだけど、例えばdictを期待してるなら問題ないよね
>引数のように何が渡されるか分からないものには慎重に使うべきなんだと思う
これが違和感ある
引数にも何か期待してる型があるのでは
それを無視してバグるのは使用者の責任だと思う
偽になる値を受け取るときは「a = {} if a is None else a」と書く必要があるけど、
dictを期待してるときは「a = a or {}」と書けて便利だねってことでしょうよ
- 243 :デフォルトの名無しさん:2014/08/29(金) 09:17:43.83 ID:QcgTGGrU
- dict期待してるならNoneは例外吐くべき
- 244 :デフォルトの名無しさん:2014/08/29(金) 09:27:48.96 ID:tA6eYT/j
- asaert
- 245 :デフォルトの名無しさん:2014/08/29(金) 09:29:02.29 ID:tA6eYT/j
- typo つД`)
- 246 :デフォルトの名無しさん:2014/08/29(金) 11:23:22.37 ID:mu02bUZX
- >>237の用途なら以下の通りで十分。
def __init__(self, a={}):
self.a = a
あと、引数に期待するtypeがある時に、
有効な初期値があるならその値で良いし、
そうでないなら、期待するtypeの偽を初期値にして欲しい。
def __init__(self, d={}, L=[], n=0, flt=0.0, st=set(), tup=()):
pass
これなら、grepで__init__を検索すれば、
dはdict, Lはlist, nは整数, fltは少数, stはsetを期待しているって明瞭でしょう?
- 247 :デフォルトの名無しさん:2014/08/29(金) 16:15:28.98 ID:VYyiJktz
- >>246
http://ideone.com/FJthAF
こういう事になるからその書き方はあまりおすすめできないが
- 248 :デフォルトの名無しさん:2014/08/29(金) 18:14:53.18 ID:6XulYCBt
- 【翻訳】Python 2.7.x と 3.x の決定的な違いを例とともに | POSTD
http://postd.cc/the-key-differences-between-python-2-7-x-and-python-3-x-with-examples/
- 249 :デフォルトの名無しさん:2014/08/29(金) 18:40:46.68 ID:uMORzI9c
- Python3はまだ早い
あと2年待て
- 250 :デフォルトの名無しさん:2014/08/29(金) 18:47:25.87 ID:caa7zuwv
- Mac に載ってるのが 3 系になったら本気出す
- 251 :デフォルトの名無しさん:2014/08/29(金) 20:04:08.50 ID:EluQu91K
- >>242
中途半端に動作してしまうと何所に原因があるのか見つけづらい場合もあるし
コメントに注意書きするよりチェック処理の方が簡潔かもしれないね
def __init__(self, a=None):
assert isinstance(a, (dict, type(None)))
self.a = a or {}
- 252 :デフォルトの名無しさん:2014/08/29(金) 20:16:41.71 ID:/xquer/h
- >>250
インストーラ用意されてても駄目なのか・・
https://www.python.org/downloads/release/python-341/
- 253 :デフォルトの名無しさん:2014/08/29(金) 21:12:43.50 ID:QcgTGGrU
- assertはあくまでデバッグ用だからユーザーに対してはちゃんとTypeErrorなり吐きましょう
- 254 :デフォルトの名無しさん:2014/08/29(金) 23:47:41.71 ID:mu02bUZX
- >>247
y.a と x.a が共通になるとは思いませんでした。
勉強になりました。
という事で、こんな風にしておくのが無難ですか?
class Hoge(object):
def __init__(self, a={}):
self.a = a or {}
if __name__ == "__main__":
x = Hoge()
y = Hoge()
x.a[0] = 1
y.a[1] = 2
print(y.a)
- 255 :デフォルトの名無しさん:2014/08/29(金) 23:49:30.39 ID:NQcdY+S7
- 細かいけど吐くのはエラーログ、例外は投げるもんだろ?
- 256 :デフォルトの名無しさん:2014/08/30(土) 02:08:22.27 ID:9i4rki/q
- 本題からずれるけど、クラスや関数の引数にミュータブルなオブジェクトを渡して、クラスや関数内で
それを変更するようなコードを書いてるとそのオブジェクトの挙動は保証しないのでやらないの推奨
みたいなのドキュメントで読んだ記憶があるけどどこだったかなあそれ。
ていうか実装の統一が利用者から見た挙動の統一より優先されてるのがちょっと気に入らないね。
- 257 :デフォルトの名無しさん:2014/08/30(土) 05:03:58.06 ID:EIzseELq
- >>254
だめ
x = Hoge()
x.a[0] = 1
y = Hoge()
y.a[1] = 2
結局x.aとy.aが共通になってる
- 258 :デフォルトの名無しさん:2014/08/30(土) 05:14:29.53 ID:86Qko6ZX
- Pythonにもアクセス修飾子の導入を!
privateが付いていない変数は恐くて使えない
- 259 :デフォルトの名無しさん:2014/08/30(土) 05:38:48.39 ID:uyO2lJ7J
- 良い子は命名規則で察してね、アンダースコア2つ付ければ触ったら○すと脅す意味になるよとPEP8に書いてあった
- 260 :デフォルトの名無しさん:2014/08/30(土) 07:15:21.91 ID:KLyDeToE
- >>257
???
$ python3 --version
}Python 3.4.0
以下の実行結果でしたが。
{1: 2}
- 261 :デフォルトの名無しさん:2014/08/30(土) 07:38:12.17 ID:ja3NQGax
- 無難じゃないし怖くて使えない
- 262 :デフォルトの名無しさん:2014/08/30(土) 08:02:41.96 ID:uyO2lJ7J
- >>257
>>254で重要だと思う点は仮引数aのデフォルト値{}はself.aに全く代入されないということだ
辞書としての役目を果すことがないデフォルト{}に不条理を感じて眠れない夜を明かした
- 263 :デフォルトの名無しさん:2014/08/30(土) 09:17:06.38 ID:mREiC7TA
- >>254
ちがうんよ
デフォルト引数は一度しか評価されない
つまりメソッド呼び出し時に毎回評価されるわけじゃないので
デフォルト引数にミュータブルなオブジェクトを指定すると惨いことになる
Python の有名な落とし穴で >>240 が指摘してること
- 264 :デフォルトの名無しさん:2014/08/30(土) 16:22:49.56 ID:CNskXuGO
- urllib.requestのRequestも>>254に近いことやってるしありなんじゃね?
- 265 :デフォルトの名無しさん:2014/08/30(土) 16:28:06.56 ID:KdcOI92s
- >>256
FAQ のデザインと歴史
これは意図された実装で、(C言語で言う) static 変数的な領域を確保するのに便利な側面もあります。
デフォルト引数が一度しか評価されない、という仕様も使い処があって
例えば、定数は、ローカル変数宣言代わりにデフォルト引数に書いておくと、
呼び出し毎に毎回変数へ代入される処理は省略される。
また、こうすることで関数の結合度が弱まり、単体テストが書きやすくなるといった利点もあります。
辞書やタプルの初期化はこんな方法も有
class Hoge:
def __init__(self, **kwargs):
self.a = kwargs
- 266 :デフォルトの名無しさん:2014/08/30(土) 17:08:03.32 ID:KdcOI92s
- >>264
用途次第だと思うけど。標準ライブラリ内でも幾つか利用されてます。キャッシュ的な用途で。
但し、歴史的な理由でもあるので(旧バージョンの互換/資産活用等)
新しいコードで積極的に使う理由は特に無く、(書捨てのコードで手短に済ませたい場合、位)
可能ならデコレータやクロージャにする等、別の方法を検討します。
ちなみに、デフォルト引数でのミュータブルなオブジェクトを、
使うなと書いてるのは、google の coding スタイルガイド
- 267 :デフォルトの名無しさん:2014/08/30(土) 20:25:41.58 ID:KLyDeToE
- >>263
>>240を最初は知りませんでしたが、理解できましたので、
>>254で or の後に 「{}」 を書いたのですが。
class Hoge(object):
def __init__(self, a={}):
d = {}
print("default id(a) =", id(a))
print(" new id(d) =", id(d))
print()
self.a = a or d
if __name__ == "__main__":
x = Hoge()
x.a[0] = 1
y = Hoge()
y.a[1] = 2
print(y.a)
実行結果は以下の通りで、
id(a) の値は上下で毎回一致しますが、
id(d) の値は上下で毎回違いますから、
思った通りの結果を得ています。
default id(a) = 140676218322168
new id(d) = 140676218321664
default id(a) = 140676218322168
new id(d) = 140676192340088
{1: 2}
- 268 :デフォルトの名無しさん:2014/08/30(土) 21:45:07.57 ID:O1vhFAMe
- >>267
そうゆう書き方だと__init__に{}を渡した場合インスタンスが入れ替わってしまうので注意してね
使い所を誤るとバグの原因になってしまう
x = {}
h = Hoge(x)
print(h.a is x) #False
- 269 :デフォルトの名無しさん:2014/08/31(日) 01:16:31.29 ID:4zKdmr70
- >>265
> 例えば、定数は、ローカル変数宣言代わりにデフォルト引数に書いておくと、
> 呼び出し毎に毎回変数へ代入される処理は省略される。
それはわかるけど、そのせいで
> この種のバグがよく初心者プログラマに噛み付きます。
みたいな状況になるのとどっちが大事なのかなあ、って思ったりします。
> また、こうすることで関数の結合度が弱まり、単体テストが書きやすくなるといった利点もあります。
ごめんなさい、私のようなあくまでプライベートでPython使ってるだけの人間にはその意味がよくわからないです。
単なる揚げ足取りで実際にはないケースかもかもしれないけれど、
>>237 にしても、
- 270 :269:2014/08/31(日) 01:23:25.79 ID:4zKdmr70
- 途中で書き込んじゃった。
単なる揚げ足取りで実際にはないケースかもかもしれないけれど、
>>237 にしても、
>>> class Test:
... def __init__(self,a):
... self.a = a or []
>>> L = ['a']
>>> x = Test(a=L)
>>> y = Test(a=L)
>>> x.a
['a']
>>> y.a
['a']
>>> x.a.append('c')
>>> x.a
['a', 'c']
>>> y.a
['a', 'c']
ってなっちゃうよね。
- 271 :デフォルトの名無しさん:2014/08/31(日) 06:26:37.35 ID:g3F9HZkc
- 意味がわからないなら黙ってたらいいのに
- 272 :デフォルトの名無しさん:2014/08/31(日) 07:03:06.70 ID:4Dleen0X
- >>269-270
そこまで言うなら
>>> class TestA:
... def __init__(self,a):
... self.a = a or []
>>> L = ['a']
>>> x = TestA(a=copy.deepcopy(L))
>>> y = TestA(a=copy.deepcopy(L))
↑
比べてみ
↓
>>> class TestB:
... def __init__(self,a=copy.deepcopy(['a'])):
... self.a = a
>>> x = TestB()
>>> y = TestB()
- 273 :デフォルトの名無しさん:2014/08/31(日) 08:11:42.11 ID:B6N6ow9m
- >>268
> print(h.a is x) #False
これは予想外でした。勉強になりました。
でも、or {} ってやってますから当然と言えば当然なんですよね。。。
>>272
どのような考えかは分かりませんが、
TestA x と Text B y が一致しますから、例として不適切ではないでしょうか?
おそらく、予想外の結果では?
GCがイタズラしているのでしょうか?
TestA x = <__main__.TestA object at 0x7fa6562052d0>
TestA y = <__main__.TestA object at 0x7fa656205310>
TestB x = <__main__.TestB object at 0x7fa656205790>
TestB y = <__main__.TestB object at 0x7fa6562052d0>
L = ['a']
x = TestA(a=copy.deepcopy(L))
y = TestA(a=copy.deepcopy(L))
print("TestA x =", x)
print("TestA y =", y)
print()
x = TestB()
y = TestB()
print("TestB x =", x)
print("TestB y =", y)
- 274 :デフォルトの名無しさん:2014/08/31(日) 08:21:30.62 ID:rw/ZY9R1
- 馬鹿には無理
- 275 :デフォルトの名無しさん:2014/08/31(日) 09:18:29.34 ID:fQnSs+yg
- >>274
馬鹿の一つ覚え
- 276 :デフォルトの名無しさん:2014/08/31(日) 10:26:37.86 ID:k/gc3SDA
- >>273
TestAのxとTestBのyのidが一致するのはGCによるもの
でもこれは主題じゃなくて、>>272が言ってるのはTestA、TestBの各x、yのaについてだろ
- 277 :デフォルトの名無しさん:2014/08/31(日) 12:13:50.17 ID:kY+m/tLd
- >>273
L = ['a']
x = TestA(a=copy.deepcopy(L))
y = TestA(a=copy.deepcopy(L))
z = TestB()
w = TestB()
- 278 :デフォルトの名無しさん:2014/08/31(日) 22:53:55.21 ID:B6N6ow9m
- >>269,272,277
こんなもんでどうでしょう?
import copy
class TestA:
def __init__(self,a):
self.a = a or []
class TestB:
def __init__(self,a=copy.deepcopy(['a'])):
self.a = a
L = ['a']
x = TestA(a=copy.deepcopy(L))
y = TestA(a=copy.deepcopy(L))
y.a.append("y.a")
print("TestA x =", x)
print("TestA x.a =", x.a)
print("TestA y =", y)
print("TestA y.a =", y.a)
print()
z = TestB()
w = TestB()
w.a.append("w.a")
print("TestB z =", z)
print("TestB z.a =", z.a) # !
print("TestB w =", w)
print("TestB w.a =", w.a) # !
print()
- 279 :デフォルトの名無しさん:2014/09/01(月) 01:17:47.31 ID:0WGpUPMm
- 下手の考え休むに似たり
- 280 :269:2014/09/01(月) 02:35:10.29 ID:k1ciVbjZ
- すんません、レス先が絞れないので。
import copy してる時点である意味負けだと思うんですが。
ミュータブルなオブジェクトを引数で渡されたときは、デフォルトでオブジェクト.copy()にすれば、
利用者にとって優しいと思うんです。
スコープの保持的にも。
- 281 :デフォルトの名無しさん:2014/09/01(月) 02:56:34.39 ID:SfHA5O2Z
- ただでさえ遅いのにインド人もびっくりな発言をするんじゃねえ
- 282 :デフォルトの名無しさん:2014/09/01(月) 07:44:30.11 ID:Q1FYYJR2
- python 3.4.1です。
response = urllib.request.urlopen(req)
として得たレスポンスから
html = response.read()
とやると、同じ関数内では正常に取得できるのですが、
nanotka(response)
とレスポンスを他の関数に渡してその先でread()しようとすると中身が空になってしまいます。
渡した先でBeautifulSoup4に読ませようとしても同様です。
どうやればresponse自体を他の関数に渡せるでしょうか?
- 283 :デフォルトの名無しさん:2014/09/01(月) 07:50:36.93 ID:zQucGkuf
- httplib 使え
- 284 :デフォルトの名無しさん:2014/09/01(月) 08:00:54.27 ID:YudmxTbc
- Requests 使え
- 285 :デフォルトの名無しさん:2014/09/01(月) 09:55:46.60 ID:tsV5zXYj
- >>282
html を渡すようにしようよ。
って思いますが。
最初に読んだ人勝ちになるのがread()
read()呼び出しが二回目以降の人は空を読み込むの。
なので、fseek()とかでfpを先頭に戻しておくと、
>>282の要望を満たせるんだろうけど、
fpを先頭に戻す方法はお勧めしない。
やっぱり、html自体を渡すようにしようよ。
でも改造したいんなら、
class Foo(keisho):
def read(self):
if not self.text:
su = super(Foo, self)
self.text = su.read()
return self.text
とか改造すると良いよ。
- 286 :デフォルトの名無しさん:2014/09/01(月) 10:27:46.48 ID:srwG2aQM
- >>282
response.seek(0)
してから渡せば良くね?
- 287 :デフォルトの名無しさん:2014/09/01(月) 10:33:59.51 ID:B+PXzyfJ
- そもそも response って seekable なんだろうか
ふつうやらないけど
- 288 :デフォルトの名無しさん:2014/09/01(月) 10:36:08.89 ID:IJ3Nr0Wt
- >>283-284
とりあえず標準のurllib使ってみただけなので調べて比較検討してみます。
>>285
ああー元関数で既にreadしてるからなのか…ファイル読み込みと同じ感じなんですね。
渡した先でヘッダーとhtml両方使うのでresponseごと渡したかったのですが
うまくないやり方のようなので仰るとおりにhtmlはhtmlで渡すことにします。
どうもありがとうございました。
- 289 :デフォルトの名無しさん:2014/09/02(火) 00:02:55.31 ID:xFjNzjIT
- djangoを個人で翻訳したい
この場合はdjangoのライセンスに従えば勝手に翻訳しても大丈夫?
- 290 :デフォルトの名無しさん:2014/09/02(火) 00:04:24.39 ID:AEXaLIIW
- pyconの参加費高すぎ
2万もとるとか学生からも5000円とるとかボリすぎ
pythonってオープンソースだよね
- 291 :デフォルトの名無しさん:2014/09/02(火) 00:14:26.30 ID:HaUEKjfA
- >>289
もちろん
- 292 :デフォルトの名無しさん:2014/09/02(火) 00:28:16.07 ID:rj4rVkNc
- スクリプトバトルロワイヤルスレの116のコード見てて気になったんですが、
active_journal.undo()した時に_関数が呼ばれてundoを呼び出してますよね、
このクラス変数いつの間にlambda:print('Bye')が束縛されたんでしょうか
実引数ではないですよね?
- 293 :デフォルトの名無しさん:2014/09/02(火) 00:46:44.21 ID:YYDqev7Y
- android端末内の複数のフォルダを外付けSDにコピー(バックアップ用途)するスクリプトを書いたのですが、エラーが出ます。
フォルダパスをリストとして読み込み、forでフォルダ個数分、
shutil.copytree(src, dst)
としたのですが、SL4AでOperation not permittedとなります。
リスト1個目のフォルダコピー後に上記エラーで中断され、それ以降の処理がされません。
PCで試した時点ではエラーはありませんでした。
コピー元フォルダはシステムフォルダなどではなく、パーミッションはコピー元・先両方rwxrwxr-xとなっています。
どなたか、解決策をご教示頂けますか?
- 294 :デフォルトの名無しさん:2014/09/02(火) 01:55:56.14 ID:zdu1Qxxi
- >>281
インタプリタ型言語に速度を追求するクズですか?
- 295 :デフォルトの名無しさん:2014/09/02(火) 03:33:39.16 ID:eu1sh5+C
- そうだよ
- 296 :デフォルトの名無しさん:2014/09/02(火) 13:04:05.12 ID:qb4+F2QT
- >>299
クラス属性(Journal.undo)・インスタンス属性(self.undo)・引数(undo)の3つがあるので混同に注意
それと
クロージャを理解してる必要がある
>>293
rwxrwxr-x で怒られるならコピー先 rwxrwxrwx でどうなる
- 297 :デフォルトの名無しさん:2014/09/02(火) 13:06:15.08 ID:qb4+F2QT
- × 299
○ 292
- 298 :デフォルトの名無しさん:2014/09/02(火) 16:47:38.57 ID:VDCsBZvR
- apache+mod_phpみたいに
バーチャルホストを設定してxxx.localhost/にアクセスしたらページが見られるようにしたいんですが
pythonの場合はプロジェクト枚に例えばgunicornとかpassenjarを起動しないとだめですか?
- 299 :デフォルトの名無しさん:2014/09/02(火) 18:58:35.42 ID:eu1sh5+C
- 何でだよ
mod_pythonにvirtual host設定しとけ
ペチパーはペチパーらしくしていればいい
- 300 :デフォルトの名無しさん:2014/09/02(火) 19:00:53.72 ID:VDCsBZvR
- mod_pythonってapache限定じゃないですか
おれはnginxでやりたいんすよ
- 301 :デフォルトの名無しさん:2014/09/02(火) 19:08:54.11 ID:mt5THT+8
- サーバでPython3と非公式の外部ライブラリを動かしたい
と思いつつ全然勉強が進まない
敷居が高いわ・・・
- 302 :デフォルトの名無しさん:2014/09/02(火) 22:30:46.56 ID:2UqIo9/b
- >>300
mod_phpって書いたからじゃないの?
NginxならPHP-FPMとか書けばいいのに。
- 303 :デフォルトの名無しさん:2014/09/02(火) 23:33:31.12 ID:rj4rVkNc
- そうそれですよ兄貴
それがやりたいんですよ
- 304 :デフォルトの名無しさん:2014/09/03(水) 03:10:30.13 ID:pl/pTCkk
- プロジェクト枚
- 305 :デフォルトの名無しさん:2014/09/03(水) 03:49:57.97 ID:Ipv4EIPT
- >>289
応援してます
がんばってください
- 306 :デフォルトの名無しさん:2014/09/03(水) 11:13:39.14 ID:DmnNJKZp
- GUIツールキットでオススメはやっぱりwxPython?
- 307 :デフォルトの名無しさん:2014/09/03(水) 12:45:46.18 ID:8RxcontV
- >>306
割と定期的にこの手の話題出るな。
金あるならPyQt、金ないけどリッチなGUI作りたいなら
wxPythonっていうのが大方の見解かと。
- 308 :デフォルトの名無しさん:2014/09/03(水) 13:01:38.58 ID:MAtMcWe1
- wxPython に使い慣れてると
C++ で wxWidgets するときも
ほとんど抵抗なく移行作業捗る
- 309 :デフォルトの名無しさん:2014/09/03(水) 13:06:40.87 ID:DmnNJKZp
- wxPythonなんて使ってる奴のセンスを疑う
- 310 :デフォルトの名無しさん:2014/09/03(水) 13:07:17.88 ID:DmnNJKZp
- ID被ったw
- 311 :デフォルトの名無しさん:2014/09/03(水) 13:20:49.22 ID:O8D1iFyt
- PySideって手もあるでよ
- 312 :デフォルトの名無しさん:2014/09/03(水) 14:13:41.36 ID:SUoPpak6
- このスレの速度でID被ったってのはそうそうあり得ないな。自演乙。
- 313 :デフォルトの名無しさん:2014/09/03(水) 15:15:45.87 ID:DmnNJKZp
- いや、マジでID被ってます
専門版で被ったのは初めてかも知れない、ってかこんな近くで被ったことは無い気がする・・・
>>307
金はないのでwxPythonとwxGladeの組み合わせにしようかなあ
PyQtの状況がかなり良さそうですが、ライセンスが面倒そうだし
>>308
C++は少し触ったことがあるのですが、もう触りたくないですね・・・
>>311
了解、少し調べてみます
- 314 :デフォルトの名無しさん:2014/09/03(水) 15:32:52.00 ID:MAtMcWe1
- >>306
>>309-310
>>313
- 315 :デフォルトの名無しさん:2014/09/03(水) 16:29:04.66 ID:wQfYusgM
- おい、となりの部屋とかみてまわれ
かーちゃんとかが2ch画面開いてたら・・・Pyrhonスレに来んなって言え
- 316 :デフォルトの名無しさん:2014/09/03(水) 18:25:23.53 ID:DmnNJKZp
- カーチャンからメールが・・・
J( 'ー`)し「たかしへ。スタンフォード大学のサーバーへハッキングをかけ、
経済学部とMBAの学位取得者の中にたかしを紛れ込ませました。
これでたかしの履歴書も立派になると思います。
就職活動頑張ってね。」
- 317 :デフォルトの名無しさん:2014/09/03(水) 18:27:01.27 ID:7tHdUujr
- githubでアカウント凍結されたひとか
- 318 :デフォルトの名無しさん:2014/09/03(水) 19:31:32.72 ID:MwmGE5u2
- PythonでわざわざGUIなんて必要?
コンソールでinputとprint使えば何とでもなるでしょうに
- 319 :デフォルトの名無しさん:2014/09/03(水) 20:07:34.43 ID:8RxcontV
- 人の使い方にいちいちケチ付けんなよ。
- 320 :デフォルトの名無しさん:2014/09/03(水) 20:17:24.51 ID:ifyJjDEv
- TkinterとかTixでいいわ
- 321 :デフォルトの名無しさん:2014/09/03(水) 20:47:42.17 ID:yrbx30gA
- Tkinterのきちんとしたドキュメントって何所かにない? 可能なら日本語で
Python標準ライブラリのドキュメントだとTkを解ってる人向けなのか、何言ってるのかサッパリ分からんw
GUIだから図解で説明してくれると有り難いんだが
- 322 :デフォルトの名無しさん:2014/09/03(水) 21:10:29.38 ID:mb+i3RoN
- python3.3ではtkinterぐらいしか動かないの?
- 323 :デフォルトの名無しさん:2014/09/03(水) 22:59:56.46 ID:ziplIhf2
- 3系はPySide使えるよ
- 324 :デフォルトの名無しさん:2014/09/03(水) 23:06:44.46 ID:SUoPpak6
- >>315
同じ会社の奴が書き込んでる可能性があるな
- 325 :デフォルトの名無しさん:2014/09/04(木) 11:46:06.76 ID:o42KfBCO
- 日本語の資料も多そうだしwxPythonとwxGladeを早速インストールしようと思ったら
Python3に対応していなくてうああって頭抱えてる
- 326 :デフォルトの名無しさん:2014/09/04(木) 13:50:46.00 ID:MHZTueb1
- pgr
- 327 :デフォルトの名無しさん:2014/09/04(木) 16:02:50.83 ID:h4TpAEJ2
- デベロッパー版と使え
意外と・・・だぞ
- 328 :デフォルトの名無しさん:2014/09/04(木) 19:30:09.35 ID:o42KfBCO
- それはWindowsのPythonでも動くのでしょうか・・・
Linux版しかなかった記憶が
- 329 :デフォルトの名無しさん:2014/09/04(木) 19:34:01.03 ID:89WWur94
- GUIはVB使っといたらええねん
- 330 :デフォルトの名無しさん:2014/09/04(木) 19:47:40.94 ID:okNlOH27
- pyqtでいいじゃん
外部ライブラリを使って大きな事するわけじゃないんだろ?
GPLでもいいじゃん
ソースコードを公開したくないとかだったらインタプリタでGUIはやるな
- 331 :デフォルトの名無しさん:2014/09/04(木) 21:31:58.28 ID:14KwuRYz
- pysideとcythonで全部解決ね
- 332 :デフォルトの名無しさん:2014/09/04(木) 22:25:30.80 ID:uXZedlGY
- >>328
ダウンロード http://wxpython.org/Phoenix/snapshot-builds/
ドキュメント http://wxpython.org/Phoenix/docs/html/main.html
ファイル名にwinとあるのがWindows用で、cp33とあるのがPython3.3用
whlファイルはインストーラ使わなくても
拡張子をzipに変えて解凍し\Lib\site-packagesフォルダに入れれば動く
- 333 :デフォルトの名無しさん:2014/09/05(金) 03:29:00.33 ID:ntZcqOEB
- >>330
pyqtって外部ライブラリを使うと金が掛かるの?
- 334 :デフォルトの名無しさん:2014/09/05(金) 08:54:26.18 ID:vSgfL4D2
- 変数名にも2バイト文字を使えるようにしろ
- 335 :デフォルトの名無しさん:2014/09/05(金) 08:58:44.47 ID:NMfZE3Cv
- ジャップ脳どうにかしろ
- 336 :デフォルトの名無しさん:2014/09/05(金) 09:16:52.85 ID:SzRzlQrZ
- 今時2バイト文字とか言っちゃう奴
- 337 :デフォルトの名無しさん:2014/09/05(金) 13:31:24.75 ID:EqZl1vUZ
- DJangoを翻訳したら日本のDJangoプロジェクトに潰されるだけ
知名度が無い奴が翻訳に手を出したら知名度ある奴の声で干されるよ
不満があっても縄張りは守るべき
- 338 :デフォルトの名無しさん:2014/09/05(金) 15:09:42.85 ID:B+t3kUZb
- >>334
Python3 ならある程度使える
- 339 :デフォルトの名無しさん:2014/09/05(金) 16:55:34.89 ID:C4S9TPhj
- >>337
さっそく基地外が現れたなw
- 340 :デフォルトの名無しさん:2014/09/05(金) 17:54:52.41 ID:NMfZE3Cv
- 別にこんなスレで聞いてる奴が何かを成せるとも思えないし
好きに翻訳したらいいだろ
断言するけど1月後には忘れてるよ
- 341 :デフォルトの名無しさん:2014/09/05(金) 18:28:14.14 ID:jzMG0f6n
- pythonのスクリプトで画像ファイルをリネームして
約400枚の画像のうち100枚くらいが消えてしまったんですけど、この100枚はどこに行ったんでしょうか?
- 342 :デフォルトの名無しさん:2014/09/05(金) 18:31:31.35 ID:H8H20MG/
- pythonが働いたぶんの給料になった
- 343 :デフォルトの名無しさん:2014/09/05(金) 18:42:51.84 ID:+gwocEcR
- 上書きしたかPythonに見せかけたRubyの陰謀
- 344 :デフォルトの名無しさん:2014/09/05(金) 18:47:28.69 ID:/RgpSIEc
- scipyのインストールはwindowsが一番楽
linuxはとてつもなく面倒くさい
- 345 :デフォルトの名無しさん:2014/09/05(金) 18:57:53.26 ID:73PYqi2a
- >>344
知ってるけど、それが何か?
- 346 :デフォルトの名無しさん:2014/09/05(金) 19:03:11.46 ID:B+t3kUZb
- 簡単に入りそうだけど具体的にどこが難しいん
- 347 :デフォルトの名無しさん:2014/09/05(金) 19:38:26.87 ID:/RgpSIEc
- 入りそうって予測じゃなくて結果で語れ
- 348 :デフォルトの名無しさん:2014/09/05(金) 19:50:43.32 ID:H8H20MG/
- apt-get install python-scipy
- 349 :デフォルトの名無しさん:2014/09/05(金) 20:02:23.65 ID:B+t3kUZb
- >>347
2chに結果だけ書いてあってそれを信じるのか?
- 350 :デフォルトの名無しさん:2014/09/05(金) 20:41:00.38 ID:N3l99Mqq
- すんません、以下のようにタプルのリストの中身を
csvファイルとして書き出すにはどうすればいいですか
[(1,2,3),(4,5,6),(7,8,9)]
↓
1,2,3改行
4,5,6改行
7,8,9改行
- 351 :デフォルトの名無しさん:2014/09/05(金) 21:03:09.38 ID:B+t3kUZb
- import csv
writer = csv.writer(open(...))
for tup in [(1,2,3), ...]: writer.writerow(tup)
- 352 :デフォルトの名無しさん:2014/09/05(金) 21:33:05.09 ID:yYkcJRXP
- >>350
#1, #2 お好きな方をどうぞ。
if __name__ == "__main__":
import csv
L = [(1,2,3),(4,5,6),(7,8,9)]
path = "a.csv"
with open(path, "w") as csv_file:
csv_writer = csv.writer(csv_file)
for tup in L: # 1.
csv_writer.writerow(tup) # 1.
# or
#
# csv_writer.writerows(L) # 2.
- 353 :デフォルトの名無しさん:2014/09/05(金) 21:37:39.84 ID:uS50mHWr
- >>344
ど素人乙。
- 354 :デフォルトの名無しさん:2014/09/05(金) 22:37:37.05 ID:BuYJkYis
- scipy のインストール pip でも apt でも特に苦労した記憶ないけどなぁ
- 355 :デフォルトの名無しさん:2014/09/06(土) 11:20:53.48 ID:qFRbG2Z2
- ふつうの Linux ユーザは自分で make install なんてふだんしないからな。
scipy の make install がめんどくさいかどうかしらんけど。
- 356 :デフォルトの名無しさん:2014/09/06(土) 15:43:10.65 ID:NtkIEr6D
- マルチスレッドを使っちゃいけない環境なんですけど
Pythonの標準ライブラリ限定で
http://docs.python.jp/3/library/concurrency.htmlを使わなければ大丈夫という認識でいいですか?
- 357 :デフォルトの名無しさん:2014/09/06(土) 15:46:55.13 ID:3Ci1QYt7
- > マルチスレッドを使っちゃいけない環境
なんでこんな環境なの?
その理由によるとしか言えない。
- 358 :デフォルトの名無しさん:2014/09/06(土) 15:49:34.19 ID:73g62t4Z
- インタプリタの実装によってはネイティブスレッド使ってるかも知れないし、変な前提おくのは危険
- 359 :デフォルトの名無しさん:2014/09/06(土) 15:50:45.68 ID:NtkIEr6D
- マルチスレッドを使うと落ちるプログラムだから
- 360 :デフォルトの名無しさん:2014/09/06(土) 16:01:39.42 ID:73g62t4Z
- そのプログラムのreadmeにさぁ
もう少し「マルチスレッド」が正確に定義されてないわけ?
- 361 :デフォルトの名無しさん:2014/09/06(土) 16:05:03.14 ID:NtkIEr6D
- マルチスレッドはこちらを見てください
http://e-words.jp/w/E3839EE383ABE38381E382B9E383ACE38383E38389.html
質問締めます
- 362 :デフォルトの名無しさん:2014/09/06(土) 16:05:44.35 ID:NtkIEr6D
- この時間はスレッドすら知らないバカしかいないな
- 363 :デフォルトの名無しさん:2014/09/06(土) 16:06:10.15 ID:73g62t4Z
- そういう辞書の単語の話してんじゃねえよクソカス
てめえの首締めろ
- 364 :デフォルトの名無しさん:2014/09/06(土) 16:39:05.17 ID:ewJ1qW7A
- エスパーでレスできない奴に2chを使うのは難しい
- 365 :デフォルトの名無しさん:2014/09/06(土) 16:44:17.65 ID:ChfT6Oe0
- 自演を見て見ぬふりをするー力ですね
- 366 :デフォルトの名無しさん:2014/09/06(土) 16:51:19.96 ID:Ya/Sb4GC
- マルチスレッドが駄目ならマルチプロセスを使えばいいじゃない
- 367 :デフォルトの名無しさん:2014/09/06(土) 19:57:34.69 ID:+c/XgZRA
- pygame使って書かれてる 1000行以下のコードをたくさん写経したい
- 368 :デフォルトの名無しさん:2014/09/06(土) 21:20:09.98 ID:aSqZC9W5
- >>366
マリーアントワネット乙
- 369 :デフォルトの名無しさん:2014/09/06(土) 22:08:31.22 ID:s8SMoxGr
- マルチ商法でPythonを使う方法を教えて下さい
- 370 :デフォルトの名無しさん:2014/09/06(土) 22:31:16.99 ID:Xltmdnlr
- >>351-352
出来ましたサンクスです
タプルの各要素を文字列に変換してカンマでつないで改行を付けて…と
やるのは大変だなあと思っていたので助かりました
- 371 :デフォルトの名無しさん:2014/09/07(日) 04:31:27.38 ID:qQBINkdt
- >>370
別に大変でもないだろう
for tup in [(1,2,3),(4,5,6),(7,8,9)]: print ",".join(map(str, tup))
- 372 :デフォルトの名無しさん:2014/09/07(日) 08:30:55.48 ID:eY6muIbX
- なぜcsvは消えないのか
- 373 :デフォルトの名無しさん:2014/09/07(日) 08:44:35.48 ID:pkIO4dh2
- 柔軟さは無いけど一番シンプルなデータ交換形式だからなあ
- 374 :デフォルトの名無しさん:2014/09/07(日) 08:54:56.12 ID:aeHwCaJX
- SuperCalcは偉大だったな
- 375 :デフォルトの名無しさん:2014/09/07(日) 10:02:43.05 ID:SXktbayV
- csv って RFC とかあるんだっけ
- 376 :デフォルトの名無しさん:2014/09/07(日) 11:32:55.03 ID:rexNlDPn
- import mycodeを書かないで
mycode.alert()って書いたら
mycode.pyを読み込んでmycode.pyで定義したalert()を呼び出すことを自動でやりたいんですが
オートローダっていうのはpythonでやってるのほぼ見かけません
pythonではオートローダはやらないものですか?
- 377 :デフォルトの名無しさん:2014/09/07(日) 12:53:49.04 ID:7c+Hv3u7
- >ほぼ見かけません -> 見たことがある訳だな
>やらないものですか? -> 見たことあるのにやらないと思うのはなぜ?
- 378 :デフォルトの名無しさん:2014/09/07(日) 13:33:39.11 ID:rexNlDPn
- 見たことあること==やるべきではない
バカ回答者は引っ込んどけよ
- 379 :デフォルトの名無しさん:2014/09/07(日) 13:55:48.46 ID:v5LNVtzh
- 似たようなのはできると思う
でもPythonの世界でトリッキーなコードはイカンでしょ
import thisしてみよう
- 380 :デフォルトの名無しさん:2014/09/07(日) 14:22:18.08 ID:MFWv1auY
- >>376
プログラミング歴は長いけどオートローダという仕組み自体初めて聞いた
調べてみたらPHPの機能のようだが…(PHPは一度も触ったことがないから知らない)
http://php.net/manual/ja/language.oop5.autoload.php
IDEを使えばimportは自動で補完されてそのモジュールの情報が入力候補に反映されるようになる
オートローダは実行時にモジュールを指定するからIDEの入力支援が得られない
ゆえにPythonに限らずオートローダとやらを使いたがる人はメモ帳で開発してる人など少数派ではないかな
- 381 :デフォルトの名無しさん:2014/09/07(日) 14:34:15.31 ID:wcTCVDdd
- [見たことあること==やるべき] ではない
[見たことあること==やるべきではないこと]
- 382 :デフォルトの名無しさん:2014/09/07(日) 15:23:05.69 ID:tMQWCYQT
- (歴が長いのにautoload知らないってことはperlやruby触ったことがない人なのかな)
- 383 :デフォルトの名無しさん:2014/09/07(日) 15:27:25.45 ID:eUMfgX6t
- そりゃ誰が好き好んでゴミ箱に手を突っ込むんだ?
おまえの趣味なら普通に引くから止めた方がいいぞ
- 384 :デフォルトの名無しさん:2014/09/07(日) 15:42:08.05 ID:qGzfz7wC
- 漏れも引くわ
Basic の
On Error Resume Next
に通じるものがあるな
- 385 :デフォルトの名無しさん:2014/09/07(日) 18:39:24.77 ID:LouszFLz
- 遅延ロードしてスタートアップを速めたいのかも
しかしバカ回答者とか過激ね
- 386 :デフォルトの名無しさん:2014/09/07(日) 18:45:28.34 ID:eUMfgX6t
- 昨日から沸いてるマルチスレッドがどうとか君じゃないの
- 387 :デフォルトの名無しさん:2014/09/07(日) 21:01:43.28 ID:8sSyeZUl
- まあ、Pythonではやらない(やるべきでない)が答えでいいじゃない終わり終わり
- 388 :デフォルトの名無しさん:2014/09/08(月) 00:04:05.59 ID:MQoHZ59l
- >>382
PerlとRubyのautoloadは遅延読み込みの機能でPHPの未定義モジュール自動読み込み機能とは別じゃね?
- 389 :デフォルトの名無しさん:2014/09/08(月) 01:59:20.03 ID:295S7C6I
- 超初心者なのでPython3xにwxPythonをpipで入れる方法でハマったんで
これからの人用に書いときますん。
pip install -U --pre -f http://wxpython.org/Phoenix/snapshot-builds/ wxPython_Phoenix
検索で調べた結果のやつはwxPython_PhoenixじゃなくてwxPython-Phoenixになってるので
コピペ実行するとエラーでインストールできなかったんで。
ところで、3.4.1が扱えるおすすめのエディタ教えてください。
pyscripterが使えないようなのでPyCharm使ってるんですが、
他におすすめがあれば是非
- 390 :デフォルトの名無しさん:2014/09/08(月) 02:07:51.88 ID:jLwgo0pq
- 初心者向けじゃないけどvim
- 391 :デフォルトの名無しさん:2014/09/08(月) 02:22:17.72 ID:qdDflaMT
- 秀丸とipythonを連携して賢い補完使ってる
- 392 :デフォルトの名無しさん:2014/09/08(月) 03:02:16.77 ID:tbHi8RxM
- 言語や言語のバージョンごとにエディタ使い分けるとか言う輩からは知性やプログラミングセンスを感じられない。
- 393 :デフォルトの名無しさん:2014/09/08(月) 03:46:00.76 ID:f5Blo0Jc
- atom
- 394 :デフォルトの名無しさん:2014/09/08(月) 06:15:54.66 ID:B3WRwJbR
- pycharmで不満とか、vimくらいしか希望がないと思うわ
- 395 :デフォルトの名無しさん:2014/09/08(月) 16:18:32.22 ID:7mMD4zWs
- すみません、素人ですが正規表現で
リストの中から、アンダーバー2個+数字3桁〜4桁 を検索して、個数をカウントしたいんですがどうかけばいいでしょうか?
["ehwhuuw__7621xbu","ehuuw__762","ew__7629ewbu","e3uw__7621w"]
__7621 ...2個
__762 ...1個
_7629...1個
- 396 :デフォルトの名無しさん:2014/09/08(月) 16:23:35.33 ID:dO+Fd23e
- import re
s=["ehwhuuw__7621xbu","ehuuw__762","ew__7629ewbu","e3uw__7621w"]
re.findall('_\d', ''.join(s))
print(len(s))
- 397 :デフォルトの名無しさん:2014/09/08(月) 17:32:55.85 ID:7mMD4zWs
- >>396
ありがとう兄貴
- 398 :デフォルトの名無しさん:2014/09/08(月) 17:38:36.41 ID:jHIpD0hc
- import re
from collections import defaultdict
L = ["ehwhuuw__7621xbu","ehuuw__762","ew__7629ewbu","e3uw__7621w"]
d = defaultdict(int)
for s in re.findall(r"__\d{3,4}", "\n".join(L)):
d[s] += 1
for k, v in d.items():
print("{} ...{}個".format(k, v))
- 399 :デフォルトの名無しさん:2014/09/08(月) 19:12:15.84 ID:2hDWn5Kx
- ランダム値を4つ格納したタプルを作ろうと思って
以下のコードを書いたんですが
変数 i が何にも使われないのでもったいなく思います
iを使わないで4回ランダム値を作る方法はありますか
import random
r4 = tuple(random.randint(0, 9) for i in range(4))
- 400 :デフォルトの名無しさん:2014/09/08(月) 19:26:07.70 ID:jHIpD0hc
- r4 = (random.randint(0, 9), random.randint(0, 9), random.randint(0, 9), random.randint(0, 9))
- 401 :デフォルトの名無しさん:2014/09/08(月) 19:26:57.42 ID:JJm3d9pE
- >>400
絶対書くと思ったw
思い留まってよかった
- 402 :デフォルトの名無しさん:2014/09/08(月) 19:50:09.43 ID:PbRMq4gS
- r4 = tuple('%04d' % random.randint(0,9999))
- 403 :デフォルトの名無しさん:2014/09/08(月) 22:10:17.54 ID:05qoBtOF
- (random.randint(0,9),)*4
- 404 :デフォルトの名無しさん:2014/09/08(月) 22:12:30.02 ID:05qoBtOF
- 今の無し
- 405 :デフォルトの名無しさん:2014/09/08(月) 23:24:33.62 ID:2hDWn5Kx
- 助言ありがとうございます
自分でもitertoolsのドキュメントを見て何とか作ったんですが
すごく見づらくて、変数を一つなくすために敢えてこれを採用する
理由はないと思った
>>399の方がマシに見える
import random, itertools
r4 = tuple(itertools.starmap(random.randint, itertools.repeat((0, 9), 4)))
- 406 :デフォルトの名無しさん:2014/09/08(月) 23:26:21.10 ID:4KrAPuZv
- numpy使っちゃダメなんか?
import numpy as np
r4 = np.random.randint(0, 9, 4)
- 407 :デフォルトの名無しさん:2014/09/09(火) 00:23:43.34 ID:O602X3BE
- iを_にしたらこれは使わないぞって見た目になる
- 408 :デフォルトの名無しさん:2014/09/09(火) 01:32:39.94 ID:qMrOeKwe
- >>399
もったいないから使いたくないって発想が意味分からん
ループで回す時はどの言語でもindexは使うけど
- 409 :デフォルトの名無しさん:2014/09/09(火) 04:51:15.63 ID:1Ho4xFY0
- 2.x だと内包表記内で使う一時変数のスコープ問題と、
lint等で未使用変数の検査に引っ掛かる事、くらいかな。
後者は、変数名を _ にする事でこの変数は使わないという意図を伝えられます。
- 410 :デフォルトの名無しさん:2014/09/09(火) 08:29:53.02 ID:SEObCJuW
- リスト内包じゃなくてジェネレータ式だから
スコープの問題は2.xでも無いと思う
- 411 :デフォルトの名無しさん:2014/09/09(火) 21:49:36.95 ID:QKhHrQUh
- python -r "print(1)"
こんな感じでコマンドラインからコードを渡して実行する方法を教えてください
- 412 :デフォルトの名無しさん:2014/09/09(火) 21:50:25.81 ID:QKhHrQUh
- pythonに引数を渡さないで起動するインタラクティブシェルとかipythonじゃなくて
python 引数 "コード"
で実行できるのがやりたいんです
- 413 :デフォルトの名無しさん:2014/09/09(火) 21:51:02.84 ID:1Ho4xFY0
- >>411
-c
- 414 :デフォルトの名無しさん:2014/09/09(火) 21:54:55.57 ID:QKhHrQUh
- >>413
ありがとうございます。
- 415 :デフォルトの名無しさん:2014/09/10(水) 18:36:38.61 ID:/KH51cxp
- \ ヽ | / /
\ ヽ / /
‐、、 殺 伐 と し た ス レ に 鳥 取 県 が ! ! _,,−''
`−、、 __/\ _,,−''
`−、、 _| `〜┐ _,,−''
_ノ ∫
_,.〜’ /
───────‐ ,「~ ノ ───────‐
,/ ` ̄7
| 島 根 県 /
_,,−' ~`⌒^7 / `−、、
_,,−'' 丿 \, `−、、
,'´\ / _7 /`⌒ーへ_,._⊃ /`i
! \ _,,-┐ \ _,.,ノ r‐-、、 / !
゙、 `ー--<´ / L. ,〜’ ゙、 >−一'′ ,'
y' U `ヽ/ / ヽ ヽ '´ U イ
____
/ __ | \____\
___/__ / ̄ ____|____ \ \____\
//ヽ /___ /|\ \ \____\
/ / ヽ / /__ / | \ \_______
/ / / / / / | \ | \
/ / / / _/ __/ | \__ | \  ̄―_
- 416 :デフォルトの名無しさん:2014/09/10(水) 18:59:05.86 ID:hXO3q56q
- Ruby スレでどうぞ
- 417 :デフォルトの名無しさん:2014/09/10(水) 23:53:54.94 ID:hgFKfnel
- a = [1, 2]
b = [1, 2, 3]
c = list(set(a) - set(b))
print(c)
d = list(set(b) - set(a))
print(d)
aとbから重複しない値のみ取得したいんですがこうやって引き算すると順番が違うだけで結果が変わってきます
ここでは重複してない値は3なので[3]の結果が欲しいんですが良い方法を教えてください
- 418 :デフォルトの名無しさん:2014/09/11(木) 00:02:19.06 ID:+cqss+B2
- set(a) ^ set(b)
- 419 :デフォルトの名無しさん:2014/09/11(木) 00:07:58.68 ID:NkzLw49L
- set(a).symmetric_difference(set(b)) も同じ
- 420 :デフォルトの名無しさん:2014/09/11(木) 00:20:59.39 ID:SkcYUdPe
- >>418-419
覚えましたありがとうございます
- 421 :デフォルトの名無しさん:2014/09/11(木) 08:06:46.97 ID:2Pzpu/rd
- >>> La = [1, 2, 4]
>>> Lb = [1, 2, 3]
>>> sta = set(La)
>>> stb = set(Lb)
>>> sta ^ stb
{3, 4}
>>> sta - (sta & stb)
{4}
>>> stb - (sta & stb)
{3}
- 422 :デフォルトの名無しさん:2014/09/11(木) 08:45:20.82 ID:BpRRpzGv
- >>> La = [1, 2, 4]
>>> Lb = [1, 2, 3]
>>> sta = set(La)
>>> stb = set(Lb)
>>> sta = sta ^ stb
>>> stb = sta ^ stb
>>> sta = sta ^ stb
>>> sta
{1, 2, 3}
>>> stb
{1, 2, 4}
- 423 :デフォルトの名無しさん:2014/09/11(木) 16:36:14.20 ID:fJPG+Epr
- 何でパイソンでは
1 or 0 # 1
-1 or 1 # 1
帰ってくる値がboolじゃなくて大きい値が返ってくるのは何故ですか?
そして
-1 or 0 # -1
これが0にならないのは何故ですか?0のほうが-1より大きいのに何故ですか?
- 424 :デフォルトの名無しさん:2014/09/11(木) 16:40:22.95 ID:SNUYrGFx
- >>> 0 or 1
1
>>> 1 or -1
1
>>> -1 or 1
-1
>>> -1 or 0
-1
>>> 0 or -1
-1
- 425 :デフォルトの名無しさん:2014/09/11(木) 16:59:20.81 ID:fJPG+Epr
- あと
not not -1 # True
なのに
True == not not -1
て書くとシンタックスエラーになるのはどうしてですか?
True == (not not -1)書かないといけなのですか?
- 426 :デフォルトの名無しさん:2014/09/11(木) 17:12:36.46 ID:FGYKtmPM
- >>423
http://docs.python.jp/3.3/reference/expressions.html#boolean-operations
>>425
http://docs.python.jp/3.3/reference/expressions.html#operator-precedence
言語仕様くらい読めよ
- 427 :デフォルトの名無しさん:2014/09/11(木) 18:25:04.21 ID:zsr7lN4z
- CGIで次のようなことをやりたいと思っています。
ブラウザからtest.cgiに次のパラメータをセットします
http://xxx.xx.xx/test.cgi?ADR=****
(****の部分は住所文字列をEUC-JPでURLエンコードしたもの)
test.cgiで、****を取り出したいです。
(その後別のURL
http://aaaa.aa.aa/hoge.cgi?ADR=****&HOGE=〜
のようなものを作りたいです。)
test.cgiは今こんな感じです。
#!/usr/local/bin/python
# -*- coding: utf-8 -*-
import cgi
import os
if 'QUERY_STRING' in os.environ:
query = cgi.parse_qs(os.environ['QUERY_STRING'])
else:
query = {}
if query.has_key('ADR'):
#
# ここらへん
#
else:
qstring = "%c5%ec%b5%fe%c5%d4%c0%e9%c2%e5%c5%c4%b6%e8%b4%dd%a4%ce%c6%e2%b0%ec%c3%fa%cc%dc"
#上は「東京都千代田区丸の内一丁目」をeuc-jpでエンコードしたもの
「ここらへん」のところをどのように書けばいいでしょうか?
バージョンは2.7です。
- 428 :デフォルトの名無しさん:2014/09/11(木) 18:27:17.36 ID:SNUYrGFx
- ぐぐれ
- 429 :デフォルトの名無しさん:2014/09/11(木) 19:00:53.66 ID:IKu3TPqx
- EUC(苦笑)
- 430 :デフォルトの名無しさん:2014/09/11(木) 19:28:49.11 ID:/zpmHeuB
- PyMouseってどうやって使うの?
PyMouseというモジュールがどこにもない
win-64bitです
- 431 :デフォルトの名無しさん:2014/09/11(木) 19:31:48.33 ID:NzeRUD4Z
- https://github.com/SavinaRoja/PyUserInput
説明読んだの?
- 432 :デフォルトの名無しさん:2014/09/12(金) 19:52:51.46 ID:PX2u49pT
- リストが空かどうか調べる場合
list1 == []
list1 == None
どれもTrueになるけどどれが一番いい?
- 433 :デフォルトの名無しさん:2014/09/12(金) 19:55:12.96 ID:ndpp7y5u
- if no list1:
print("list1は空です。")
- 434 :デフォルトの名無しさん:2014/09/12(金) 19:56:05.39 ID:ndpp7y5u
- >>433 は間違い。
こっちが正解
if not list1:
print("list1は空です。")
- 435 :デフォルトの名無しさん:2014/09/12(金) 20:04:52.80 ID:ylwL1QX/
- not len(list1)
- 436 :デフォルトの名無しさん:2014/09/12(金) 20:20:00.55 ID:r3UiEGpM
- ここいらはPythonのよろしくない面だよね
is Noneでも、== Noneでもエラーにならないのでバグの元
「if not オブジェクト名」の形式って、慣れないと違和感ありまくりだし
オブジェクト名のあとに何か比較演算子を書き忘れたケースと区別が付かない
Rubyには オブジェクト名.Empty?という形式の、空かどうかを調べるための
専用メソッドがあるらしい
文字列やリストが空であることを調べる処理は、実践でよく出てくるので
こっちのアプローチの方がいいよね
- 437 :デフォルトの名無しさん:2014/09/12(金) 20:22:47.52 ID:yP3LRu33
- list1 == None は False ですよね?
>>436 個人的にはあんまりメソッドが肥大化するのもなぁ…という気もちょっとするぜ
- 438 :デフォルトの名無しさん:2014/09/12(金) 20:32:52.43 ID:nceQ+kAP
- そんなのセマンティック次第としか
- 439 :デフォルトの名無しさん:2014/09/12(金) 20:50:38.60 ID:6/MBgQha
- ちゃんとアンカーはって話しようぜ。
>>432
>>437もいってるけど、
「リストが空」の意味が「要素が一つもないリストオブジェクト [] 」なら、
list1 == []
は True
list1 == None
は False
if 文でつかうなら>>434
それがリストであり、かつ空かどうかまで調べたい(っていう用途があるのかどうかしらんけど)なら、
list1 == []
- 440 :デフォルトの名無しさん:2014/09/12(金) 21:32:59.99 ID:0egAJuXf
- >>439
型を気にしないのは慣れの問題だと思うけど、習得時のつまづき発生ポイントの一つだった
細かく調べなくても大丈夫だよ楽しようぜ、という型に対する姿勢をPythonから感じている
- 441 :デフォルトの名無しさん:2014/09/12(金) 21:49:59.15 ID:42d4Lifz
- list1 = []
print([] == list1) # True by Python 3.4
- 442 :デフォルトの名無しさん:2014/09/12(金) 22:18:13.02 ID:w7Q0XV7Q
- >>436
==Noneと、is Noneの違いでバグは起こり得ないよ
意味は同じだけど、「シングルトンだから」とか「早いから」とかでisが推奨されてるだけだと思ってる
>オブジェクト名のあとに何か比較演算子を書き忘れたケースと区別が付かない
そういうときはnotの優先順位の低さ的にnot (number == 42)のようにかっこをつけることになる
だから書き忘れと区別がつかないことはないよ
- 443 :デフォルトの名無しさん:2014/09/12(金) 22:57:04.97 ID:ey3J6Nj0
- 空か調べるだけのことにリストの新規インスタンス作ってから破棄させるのは無駄が多いよ
- 444 :デフォルトの名無しさん:2014/09/13(土) 01:07:17.12 ID:orQ+g9GD
- True by Python 3.4てことはPython 3.5で変わったのか
- 445 :デフォルトの名無しさん:2014/09/13(土) 06:24:29.70 ID:wsjksV8g
- 絶対にリストってわかってたら要素数を調べる
他の可能性もあるならそこらへんも考慮して他の比較する
- 446 :デフォルトの名無しさん:2014/09/13(土) 09:55:01.17 ID:MVvvLNTb
- 比較する変数が絶対にリストである保証があるならnotでいいんだけど・・・
not None # True
not [] # True
not [1] # False
not 1 # False
not "1" # False
notだけで判定するのは危ないと思う
not None and len(None) > 0 # TypeError
not 1 and len(1) > 0 # False
not [1] and len([1]) > 0 # False
not 1 and len(1) > 0 # False
not "1" and len("1") > 0 # False
- 447 :デフォルトの名無しさん:2014/09/13(土) 10:23:27.54 ID:6NBWszmd
- >>446
listが空かどうかの判定と、等号を組み合わせることあるの?
- 448 :デフォルトの名無しさん:2014/09/13(土) 10:29:26.61 ID:2tjB89qC
- len(list)が負になるケースがあるのかも知れないぞ
- 449 :デフォルトの名無しさん:2014/09/13(土) 10:29:36.85 ID:JzuVyG0H
- >>446
その例で何を示したいのかよくわからん
> not [1] and len([1]) > 0 # False
これは「[1]が空であってしかも長さが0より大きい」って意味だからlistなどでは必ずFalseになるよ
not Lで空か判定しましょうってのはGoogleスタイルガイドなどでも書かれてるから、これはもはやPythonの流儀じゃね
- 450 :デフォルトの名無しさん:2014/09/13(土) 10:37:03.93 ID:ls6jz6C9
- Pythonのローカル変数って関数内でしか生成されないですよね?
次のコードを実行すると、変数 i は外側も内側もきちんと0から9まで
回っているように見えるのはなぜでしょ
本来なら、内側のループで i が 9 に更新きされてしまうので
外側のループは1度しか実行されないと思うんですが
for i in range(10):
print('外:{}'.format(i))
for i in range(10):
print('内:{}'.format(i))
- 451 :デフォルトの名無しさん:2014/09/13(土) 10:44:48.70 ID:pJQFHgIC
- >>446
リストであるかと、空であるかを組み合わせるなら、普通に…
if isinstance(x, list) and not x:
>>450
iの値に1が加算されるんじゃない
rangeが保持してるカウンタの値がループが回るごとにiへ代入される
- 452 :デフォルトの名無しさん:2014/09/13(土) 11:50:05.10 ID:0s9sqgks
- >>432
空のリストか判定する式をまとめるとこうなるか
# ブール値のコンテキストでFalseと評価される値が真
not value
# 空のシーケンスかマッピングが真
not len(value)
# 又は
len(value) == 0
# 空のリストが真
isinstance(value, list) and not value
# 又は
repr(value) == '[]'
# 又は
value == []
- 453 :デフォルトの名無しさん:2014/09/13(土) 11:56:28.31 ID:MVvvLNTb
- type([]) == list and len([])
- 454 :デフォルトの名無しさん:2014/09/13(土) 19:49:14.17 ID:6NBWszmd
- >>432
1番良い方法を教えて下さいって奴に
複数の方法を教えるってなんだいそれ?
しかもまとまってないし。
複数の方法をダラダラ並べてるだけだ。
>>451 の書いてる通り、
if isinstance(obj, list) and not list:
が「1番」いいんじゃないの?
- 455 :デフォルトの名無しさん:2014/09/13(土) 19:52:31.44 ID:6NBWszmd
- >>450
うーん、以下の結果で分かると思ってたけど分かりませんでした。
range() と変数のscopeの実装について知る必要があると思いましたよ。
挙動からシッタカで答えると、
Pythonでは、range()毎にindexを生成していて、
前のrange()のindexが生きている時に再びrange()を使うと、
当然に新しくindexを生成するんだけど、
生成するときには前のrange()のindexと
名前が被っているか?いないか?を考慮しない。
参照するときの名前解決の方法として、
参照するindexの名前と一致するrange()のindexが複数あれば、
新しくできたindexを優先して使っているんじゃないでしょうか?
if __name__ == "__main__":
for i in range(10):
print('外:i={}, id(i)={}'.format(i, id(i)))
for i in range(10):
print('内:i={}, id(i)={}'.format(i, id(i)))
print()
for j in range(10):
print('j={}, id(j)={}'.format(j, id(j)))
正確な話を知りたければ、本家に行って実装を聞くしかないんじゃない?
- 456 :デフォルトの名無しさん:2014/09/13(土) 21:08:23.51 ID:yoZ+gn+2
- >>450
>>> for i in [0, 1, 2]:
print('外:{}'.format(i))
for i in [0, 1, 2]:
print('内:{}'.format(i), end=" ")
print('\n外:{}\n'.format(i))
外:0
内:0 内:1 内:2
外:2
外:1
内:0 内:1 内:2
外:2
外:2
内:0 内:1 内:2
外:2
- 457 :456:2014/09/13(土) 21:11:10.33 ID:yoZ+gn+2
- >>> for i in [0, 1, 2]:
print('外:{}'.format(i))
for i in [0, 1, 2]:
print('内:{}'.format(i), end=" ")
print('\n外:{}\n'.format(i))
- 458 :456:2014/09/13(土) 21:33:16.48 ID:yoZ+gn+2
- 外側のループは外側のrange(10)で生成されるオブジェクトに対する処理
内側のループは内側のrange(10)で生成されるオブジェクトに対する処理
iは外側のループのたびに、外側オブジェクトの各要素に書き換えられる
- 459 :デフォルトの名無しさん:2014/09/13(土) 22:34:57.50 ID:cX8bnUuM
- >>450
for ループは in の右にあるコンテナなりイテレータの値を取り出し尽くしたら終了する
そのコードだと外側のループはまだ 0 しか取り出してないので終了しない
C の for (; i < 10; i++) とは違う
- 460 :デフォルトの名無しさん:2014/09/13(土) 22:38:15.24 ID:p5KhMtpi
- venvで仮想環境を作ったんですけど特定のディレクトリに言ったら自動でアクティブにする方法ありませんか?
~/python-root/flask以下ならflask関係のパッケージをインストールした環境
~/python-root/scraping以下ならスクレイピング関係のパッケージをインストールした環境
ってな具合に自動で切り替えたいんです
- 461 :デフォルトの名無しさん:2014/09/13(土) 23:10:16.78 ID:Mqgtp+Th
- シェルでcdコマンド再定義するくらいしかねえだろ
virtualenv wrapperでそんなtipsあった気がする
- 462 :デフォルトの名無しさん:2014/09/13(土) 23:10:24.72 ID:NpwSNp6m
- 分からねえくせに長文とか何がしたいの
- 463 :デフォルトの名無しさん:2014/09/14(日) 00:40:39.25 ID:WjxSscFS
- つまりそのあたりを面倒見てくれるpyenvを使うのがpython開発環境では楽ってことですね
- 464 :デフォルトの名無しさん:2014/09/14(日) 12:48:41.37 ID:+tpH58Gc
- ABC=re.compile("abc")
s="xyzabcPQR"
ABC.search(s)
としたとき、左の"xyz"や右の"PQR"を拾う方法はありますか。
perlの$`とか$'に相当するものが欲しいのですが。
- 465 :デフォルトの名無しさん:2014/09/14(日) 13:15:20.04 ID:nmqX8w92
- import re
r = re.compile(".*abc.*")
s="xyzabcPQR"
print(r.search(s))
- 466 :デフォルトの名無しさん:2014/09/14(日) 13:24:27.67 ID:3Uu/YUkP
- >>464
import re
ABC = re.compile('(.*)abc(.*)')
s = 'xyzabcPQR'
ABC.search(s).groups()[0]
ABC.search(s).groups()[1]
- 467 :デフォルトの名無しさん:2014/09/14(日) 13:40:13.93 ID:GfzrwnZs
- これはpythonとあまり関係ないですが皆さんエディタってなに使ってますか?
- 468 :デフォルトの名無しさん:2014/09/14(日) 13:40:14.17 ID:3Uu/YUkP
- >>464
もう1つ
import re
ABC = re.compile('abc')
s = 'xyzabcPQR'
m = ABC.search(s)
s[:m.start()] # xyz
s[m.end():] # PQR
- 469 :464:2014/09/14(日) 13:44:15.09 ID:+tpH58Gc
- ありがとうございます。
sの例が良くなかったかもしれませんが、
(.*)abc(.*)
だと、(正規表現がgreedyなため)最右のabcにマッチしてしまうのです。
s="aXbYcZabcDEFabcHIJ"
などというとき、左はaXbYcZ、右はDEF... と取り出す方法を探しています。
- 470 :464:2014/09/14(日) 13:48:26.98 ID:+tpH58Gc
- >>468
この手がありましたか !
大変わかりやすいので、使いたいと思います。ありがとうございました。
- 471 :デフォルトの名無しさん:2014/09/14(日) 14:17:49.27 ID:DRyo//L5
- s.split('abc', 1)
- 472 :デフォルトの名無しさん:2014/09/14(日) 15:37:15.25 ID:3Uu/YUkP
- >>471
目的が文字列の分割だけならそれでOKだけど文字列メソッドのsplitはセパレータに正規表現を使えないのでre.split
↓
import re
re.split('abc', s, maxsplit=1)
Perlの正規表現の特殊変数の代替なら >>468 のマッチオブジェクトを使ってスライスするのが無難かな
それか二度手間だけどマッチして確認した後にre.split
- 473 :464:2014/09/14(日) 21:36:44.44 ID:+tpH58Gc
- いろいろとありがとうございました。
re.split()を使うのも、きれいだと思いましたが、ただ、split()は、
re.split(r"abc","xyz")
のように、マッチしなくても値を返してしまうので、判定が難しく、
>>468 法で行こうと思います。
ありがとうございました。
- 474 :デフォルトの名無しさん:2014/09/14(日) 22:09:01.99 ID:JKMJIKev
- 0xFFFFという数値からb'\xff\xff'というバイト列をつくりたいんですが
どのようにすればいいですか?
今は1バイトずつとりだしてbytes([0xff, 0xff])みたいにして作ってるんですが
もっといい方法ありませんか?
- 475 :デフォルトの名無しさん:2014/09/14(日) 22:20:03.03 ID:FgYFu2VK
- Pythonの正規表現には、前方または後方から、
最短または最長で一致、という機能は無いの?
- 476 :デフォルトの名無しさん:2014/09/14(日) 22:29:07.66 ID:zLtoNInf
- >>474
Python3.xのみ
>>> (0xffccaa).to_bytes(3, 'big')
b'\xff\xcc\xaa'
- 477 :デフォルトの名無しさん:2014/09/14(日) 22:35:06.61 ID:JKMJIKev
- >>476
こういうの探してました!
ありがとうございます
- 478 :デフォルトの名無しさん:2014/09/14(日) 22:51:14.51 ID:gO6moQCP
- >>475
他の言語でいいから、欲しい正規表現検索のコード書いてみて
何となく答えても、単語の意味が食い違いそうな気がしてならない
- 479 :475:2014/09/15(月) 01:29:41.72 ID:J5zOsfVv
- >>478
>>469
>s="aXbYcZabcDEFabcHIJ"
>で、(正規表現がgreedyなため)最右のabcにマッチしてしまう
これを読んで、Pythonの正規表現には、前方または後方から、
最短または最長で一致、という機能は無いのかなと思っただけ
- 480 :デフォルトの名無しさん:2014/09/15(月) 01:50:35.09 ID:uGBCfR31
- >>479
non greedy 一致なら *? がある
けれど、要望の取得なら、
re.split(s)で、['aXbYcZ', 'DEF', 'HIJ'] が得られるが?
- 481 :デフォルトの名無しさん:2014/09/15(月) 01:57:13.92 ID:QhVLGney
- つうかさ、一通りドキュメント読んでから来いよと。
くだすれだからってなに質問してもいいわけじゃないよと。
- 482 :デフォルトの名無しさん:2014/09/15(月) 03:19:37.26 ID:PuXt1P2q
- >>> ABC = re.compile('(.*?)abc(.*)')
>>> m = ABC.search(s)
>>> m.start(), m.end()
(0, 18)
>>> m.group(0)
'aXbYcZabcDEFabcHIJ'
>>> m.group(1)
'aXbYcZ'
>>> m.group(2)
'DEFabcHIJ'
>>> ABC = re.compile('(.*)abc(.*?)')
>>> m = ABC.search(s)
>>> m.start(), m.end()
(0, 15)
>>> m.group(0)
'aXbYcZabcDEFabc'
>>> m.group(1)
'aXbYcZabcDEF'
>>> m.group(2)
''
>>> ABC = re.compile('(.*?)abc(.*?)')
>>> m = ABC.search(s)
>>> m.start(), m.end()
(0, 9)
>>> m.group(0)
'aXbYcZabc'
>>> m.group(1)
'aXbYcZ'
>>> m.group(2)
''
- 483 :デフォルトの名無しさん:2014/09/15(月) 03:49:27.13 ID:byOIOgff
- macにpygameをインストールしようと思って、このサイト(http://eimu-dev.hatenablog.com/entry/2013/03/05/210916)の通りにやりましたが、
pygame setup.py build のところで
error: command 'cc' failed with exit status 1
となってインストール出来ませんでした。
正しくインストールする方法を教えてください。
OS X 10.9.4です。
あとLibraryにFrameworksがなかったので、自分でmkdirで作ったんですけど大丈夫ですか?
- 484 :デフォルトの名無しさん:2014/09/15(月) 06:49:03.52 ID:/z9Uo8Hl
- >>481
超初心者スレで何言ってんだお前?
- 485 :デフォルトの名無しさん:2014/09/15(月) 16:06:07.30 ID:Yn38ScJw
- print int(float(111111111111111111111111111111111))
> 111111111111111115071913726050304
どうしたらいい?
- 486 :デフォルトの名無しさん:2014/09/15(月) 16:09:13.73 ID:GI5SOlSu
- どうしたいの?
- 487 :デフォルトの名無しさん:2014/09/15(月) 16:14:18.67 ID:PuXt1P2q
- >>485
http://jutememo.blogspot.jp/2008/09/python-3-float-decimal.html
http://piro-suke.hatenablog.com/entry/20070822/1187756537
- 488 :デフォルトの名無しさん:2014/09/15(月) 23:54:32.18 ID:OAdSsJdN
- def a(s, l=[]):
l.append(s)
return l
for i in range(7):
print(a(i))
これ実行すると
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5, 6]
ってなるのは何故ですか?
[0]
[1]
[2]
[3]
[4]
[5]
[6]
なると思ったのに
- 489 :デフォルトの名無しさん:2014/09/16(火) 00:02:12.57 ID:pfOEMVAs
- >>488
return l ← リスト
- 490 :デフォルトの名無しさん:2014/09/16(火) 00:11:08.16 ID:+Ut5bl5+
- >>488
Python だと、オプション仮引数への代入 l=[] は
(Ruby のように手続き a がコールされるたびではなく)
プログラムの実行開始時に1回だけ評価されるから
- 491 :デフォルトの名無しさん:2014/09/16(火) 00:35:51.35 ID:WETulgbf
- その情報ってドキュメントのどこに載ってますか?
- 492 :デフォルトの名無しさん:2014/09/16(火) 00:41:42.43 ID:cG0GrrN4
- >>491
http://docs.python.jp/3.3/reference/compound_stmts.html#function-definitions
太字で「デフォルトパラメタ値は関数定義が〜」の部分
- 493 :デフォルトの名無しさん:2014/09/16(火) 00:42:49.23 ID:FKFqnJBn
- >>490
知らなかった
http://ideone.com/vVGytn
- 494 :デフォルトの名無しさん:2014/09/16(火) 00:45:50.35 ID:gOOnD5p7
- >>492
ドキュメント中のそのページをどうやって見つけましたか?
- 495 :デフォルトの名無しさん:2014/09/16(火) 00:49:10.44 ID:WETulgbf
- 勉強になりました
- 496 :デフォルトの名無しさん:2014/09/16(火) 00:55:20.05 ID:O2mNZQJ7
- じゃあ一度、引数指定して呼び出したら
次に省略して呼び出した時は前回の値が使われるのか?
- 497 :デフォルトの名無しさん:2014/09/16(火) 01:00:14.87 ID:cG0GrrN4
- >>494
ごく普通に「Python 言語リファレンス」から「関数定義」を探すだけ
>>496
ちがう
a.__defaults__ のタプルとしてデフォルトパラメタ値が記憶されている
呼び出しのたびにそこから値がコピーされるだけ
- 498 :デフォルトの名無しさん:2014/09/16(火) 01:03:49.79 ID:WETulgbf
- 辞書を指定したらやっぱり同じようになったけど数値を指定しても引き継がないのはなぜですか?
リストとタプルと辞書限定ですか?
def a(n, l=0):
return n+l
print(a(1))
print(a(1))
print(a(1))
理想
1
2
3
現実
1
1
1
- 499 :デフォルトの名無しさん:2014/09/16(火) 01:07:48.97 ID:FKFqnJBn
- >>498
>return n+l
この段階でn+1というオブジェクトが生成されるから
- 500 :デフォルトの名無しさん:2014/09/16(火) 01:11:45.46 ID:FKFqnJBn
- 明示的に第二引数を渡した場合
http://ideone.com/tvomMK
- 501 :デフォルトの名無しさん:2014/09/16(火) 01:23:27.04 ID:WETulgbf
- def a(n, l=0):
l += n
return l
print(a(1))
print(a(1))
print(a(1))
- 502 :デフォルトの名無しさん:2014/09/16(火) 01:24:32.28 ID:WETulgbf
- こうやってもリストとかと同じように値が使い回しになりませんでした
- 503 :デフォルトの名無しさん:2014/09/16(火) 01:24:54.05 ID:cG0GrrN4
- >>498
ミュータブルであるかイミュータブルであるかの違い
イミュータブルなオブジェクト(数値や文字列やタプルなど)は、生成後に内容を書き換えることができない
一方、ミュータブルは(リストや辞書など)は、生成後でも内容を書き換えができる
i = 1
i = 2
これは一見内容を書き換えてるように見えるけど
実際は別のオブジェクトに差し替えている(内容書き換えではない)
- 504 :デフォルトの名無しさん:2014/09/16(火) 01:31:33.44 ID:WETulgbf
- そういうふうになってるんですね
ありがとうございます
- 505 :デフォルトの名無しさん:2014/09/16(火) 01:32:12.86 ID:cG0GrrN4
- >>502
l_default = 0
def a(n):
l = l_default
l += n
return l
print(a(1))
print(a(1))
print(a(1))
こんな風に書き直せば理解でしやすいと思う
l_default = []
def a(s):
l = l_default
l.append(s)
return l
print(a(1))
print(a(2))
print(a(3))
- 506 :デフォルトの名無しさん:2014/09/16(火) 01:48:27.25 ID:BeTOb36k
- def gen(l=0):
while True:
yield l
l += 1
def a(n, g=gen()):
return n + g.next()
print(a(1))
print(a(1))
print(a(1))
理想
1
2
3
現実
1
2
3
- 507 :デフォルトの名無しさん:2014/09/16(火) 14:04:51.28 ID:D2tcSPbj
- いまPython関連のツイートでPython2 vs Python3みたいな流れがありますけど
このスレの先輩方はどっち推しですか?
ぼくはPythonを学ぼうと思った時に新しいバージョンがPython3.2だったのでPython3をメインに使ってます
- 508 :デフォルトの名無しさん:2014/09/16(火) 14:39:21.04 ID:0isfMR1I
- 馬鹿はほっとけ
ぶっちゃげPython実装組にとってはどっちでも良いと言っている
両方のいいとこ取りして4を出すという選択しもあるんだから、とりあえずどうしたいかをコミュニティで発信してくれとのこと
外野で騒いでる馬鹿はほっておいてMLにどうしたいかを投げるべき
- 509 :デフォルトの名無しさん:2014/09/16(火) 14:46:10.28 ID:dhQsu6oC
- Twitterでデカい声挙げてるのって
承認欲求と凄い一体感に狂ったバカしかいねえからな
- 510 :デフォルトの名無しさん:2014/09/16(火) 18:03:46.91 ID:wJwy3ubh
- 新しく始めるなら3にしない理由は皆無だわ
昔から使っていて過去の資産があるなら3にする必要性は皆無だわ
- 511 :デフォルトの名無しさん:2014/09/16(火) 18:35:16.33 ID:mfOy9iYG
- 3ではじめたけど2.7までしか対応していない外部ライブラリにざらに当って
非公式のやつをインストしているから不安感はある
- 512 :デフォルトの名無しさん:2014/09/16(火) 18:43:37.55 ID:dhQsu6oC
- nlpとかsvmとか
学者が研究成果として公開してるような奴は基本放置だよね
彼らはセキュリティとかサポートとか関係ねえからな
- 513 :デフォルトの名無しさん:2014/09/16(火) 18:52:24.11 ID:QijYUKeu
- scipyが3.4でも動くので助かってる
- 514 :デフォルトの名無しさん:2014/09/16(火) 18:53:04.31 ID:RmEmlo0B
- GoogleAppEngineでさえ3への対応は10年後とからしいしね
- 515 :デフォルトの名無しさん:2014/09/16(火) 19:01:18.21 ID:dhQsu6oC
- 公式がCPython2のサポート切ったって
誰かがサポート続けるだろうし何の問題もないと思うけどね
むしろ何を心配してるんだか
- 516 :デフォルトの名無しさん:2014/09/16(火) 19:06:45.67 ID:AJgGs2AR
- >>514
Google Apps の Python API も
見捨てられた感ありあり
- 517 :デフォルトの名無しさん:2014/09/16(火) 19:53:30.56 ID:QijYUKeu
- GAEはおわこん
時代はopenshift
- 518 :デフォルトの名無しさん:2014/09/16(火) 21:39:23.11 ID:jNa9hdfc
- >公式がCPython2のサポート切ったって
>誰かがサポート続けるだろうし何の問題もないと思うけどね
>むしろ何を心配してるんだか
そんな暇な奴はいないし、どこの誰だかわからん奴がサポートしても使えない
- 519 :デフォルトの名無しさん:2014/09/16(火) 21:55:47.81 ID:PrDIKP1S
- 暇な奴がいるじゃねえか
どこの誰ってか法人でやってる奴が
- 520 :デフォルトの名無しさん:2014/09/16(火) 22:00:31.57 ID:HdFIBRgS
- どこの誰だかわからん奴がサポートしても使えないし、
OpenSSL並みに有名なら実装がゴミでもクズでもOKという不可思議な業界。
- 521 :デフォルトの名無しさん:2014/09/16(火) 22:07:59.00 ID:a5PZ175E
- Guidoが居るDropboxのコードベースが
Python2に依存しまくってるらしいんだよなぁ
- 522 :デフォルトの名無しさん:2014/09/16(火) 22:25:29.69 ID:xheLKUX2
- >>521
そのソースどこにあるか教えて
- 523 :デフォルトの名無しさん:2014/09/16(火) 23:08:56.52 ID:lrhjfC4+
- Python3限定でwebフレームワークでいいのが出たら絶対にpython2の人気は消える
railsに見習え
- 524 :デフォルトの名無しさん:2014/09/16(火) 23:26:02.08 ID:4GlNhcXA
- 海外のPython関連の新刊書籍はPython 3で書かれているし、緩やかに移行していくでしょ
大学の講義でPython 3が使われて、そこから新たな開発者が生まれて…
- 525 :デフォルトの名無しさん:2014/09/17(水) 01:49:46.48 ID:r6QqAGtE
- >>511
そんないまだに3に対応出来てないライブラリをなんで使うのかと、そういう話だよ。
>>514
Googleはもうこれ以上Pythonに関わり合いたくないって感じがプンプンするけど。
- 526 :デフォルトの名無しさん:2014/09/17(水) 07:58:01.57 ID:rTfH0K+p
- Googleって自分の言語何個も作ってたよな
- 527 :デフォルトの名無しさん:2014/09/17(水) 10:43:12.69 ID:k7ATJ22m
- pythonでGoogle使うのは妨げてる訳ではない
- 528 :デフォルトの名無しさん:2014/09/17(水) 12:46:05.75 ID:YmAby2mX
- scipyの使い方がわからないので自分で調べて記事に書いたら誰かがこうしたほうがいいよとか親切に教えてくれますか
- 529 :デフォルトの名無しさん:2014/09/17(水) 13:15:40.84 ID:J7Xb/w8k
- ブログに書いてコメント許可すればどこかの暇人が書いてくれるかもね。
- 530 :デフォルトの名無しさん:2014/09/17(水) 13:27:03.64 ID:VxgzEsby
- そんな夢の様な事をしてくれる方がいるなら俺も書きたいわ
現実はきついのではないかなあ・・・
- 531 :デフォルトの名無しさん:2014/09/17(水) 14:11:47.40 ID:or6PO8CM
- つぶやいたーと組み合わせるとちょっとだけ確率が増える
- 532 :デフォルトの名無しさん:2014/09/17(水) 20:19:57.82 ID:G4POkF8M
- stack exchange に beta だけど code review ってのがあるから
用途によっては使ってみるといいかもしれない
- 533 :デフォルトの名無しさん:2014/09/18(木) 00:56:31.91 ID:hBulv5ba
- python 文法詳解
http://www.amazon.co.jp/dp/4873116880/
この本オライリー本だけどamazon.comでは扱ってない
日本だけの出版なのかな?
著者も日本人だけど
- 534 :デフォルトの名無しさん:2014/09/18(木) 01:12:33.79 ID:spxgJ8Ad
- >>533
そうなの?珍しいな
- 535 :デフォルトの名無しさん:2014/09/18(木) 01:17:30.54 ID:jNFP3P67
- 日本人が書いたプログラミング系の書籍ってどれくらいの割合で英訳されるんですんかね。
- 536 :デフォルトの名無しさん:2014/09/18(木) 05:50:05.02 ID:xGrJvmYs
- ND
- 537 :デフォルトの名無しさん:2014/09/18(木) 06:11:05.32 ID:TAWLJUCR
- ネットで読める良い解説書ってありませんか?
- 538 :デフォルトの名無しさん:2014/09/18(木) 06:18:52.82 ID:xGrJvmYs
- お前のレベルに合わせて書かれたものが良い解説書であるならば
そんなものは自分で探すしかないに決まってるだろう
- 539 :デフォルトの名無しさん:2014/09/18(木) 07:20:35.18 ID:j0A0R3ie
- これはひどい
- 540 :デフォルトの名無しさん:2014/09/18(木) 07:54:08.55 ID:0Nh6uZW9
- >>533
電子書籍って出るの遅いんだっけ?
- 541 :デフォルトの名無しさん:2014/09/18(木) 09:45:54.61 ID:NE4RReH8
- ステマ?
- 542 :デフォルトの名無しさん:2014/09/18(木) 11:05:01.99 ID:spxgJ8Ad
- 技術書ステマしたところで、、、っていう
増刷するのなんて皆無だしな
- 543 :デフォルトの名無しさん:2014/09/18(木) 12:42:26.02 ID:0+D2RILR
- ステマ言いたい年頃なんでしょ
- 544 :デフォルトの名無しさん:2014/09/18(木) 13:24:29.13 ID:M8giSVcf
- python2とpython3どっちがいいっていうのはこのスレでも昔出てたのに何で今さらTwitterで話題になっているんですか?
やっぱりこのネタに乗っかって今ブログで記事書いてる人たちは売名行為と捉えてもいいですか?
- 545 :デフォルトの名無しさん:2014/09/18(木) 13:58:39.94 ID:aq/nB7oQ
- >>544
PyCon が原因
- 546 :デフォルトの名無しさん:2014/09/18(木) 14:28:37.33 ID:mq0MWg2t
- で今は2系と3系のどっちが人気なの?
3系を基本使わないからわからないけど
3系のライブラリは充実してきてるんだろうか?
- 547 :デフォルトの名無しさん:2014/09/18(木) 15:13:12.73 ID:NVU0pS4g
- 3系のライブラリは徐々にだけど確実に充実してきてる。
だけど、「もう3にしか対応しないぜ。2使っている奴は死ね」と宣言した大型ライブラリはまだない。
なので、2で不便しないんだったら、現時点では2のままでいい。
自分が依存しているライブラリが3対応した時が、移行のチャンスなので、期を逃さずガッツリ行けばよろし。
- 548 :デフォルトの名無しさん:2014/09/18(木) 15:53:22.90 ID:lsy6YbFy
- 3使う意味ないって言いきっちゃったからなぁ
- 549 :デフォルトの名無しさん:2014/09/18(木) 20:37:05.51 ID:QMEFfhZi
- >>548
既に2を使っている学者の方なんかだと言いそうだ
移行するメリットが殆ど無いだろうし
ただ3のほうが好き
目的の外部ライブラリがああって度々なるけど
- 550 :デフォルトの名無しさん:2014/09/18(木) 21:38:00.67 ID:AwaPjQog
- まだ早いけど
いずれPythonからGoへ乗り換えようと思ってる人いる?
googleはGoに移行させるつもりらしいけど
ロッサムさんはどーするんだろ?
- 551 :デフォルトの名無しさん:2014/09/18(木) 22:02:19.36 ID:nWRbnh4O
- 最近Python勉強し始めたばっかの素人だけど3.x系はもう手放したわ
画像処理やろうと思ったら全然ライブラリ読みこめないでやんの
- 552 :デフォルトの名無しさん:2014/09/18(木) 22:02:26.19 ID:wtHp+It3
- 長文失礼します
pythonのアプリケーションを配布する一般的な方法にはどんなものがありますか?
主にpythonはすでにインストールしてるけど使ってるモジュールはおそらくまだインストールしてないよって人向けに配布したいです
まだ始めて三日目なんで良くわかってませんが教えていただけるとありがたいです
- 553 :デフォルトの名無しさん:2014/09/18(木) 22:12:47.05 ID:wr8Yj4P+
- goよりrustの方が良さそう
どっちもよく知らないけど
- 554 :デフォルトの名無しさん:2014/09/18(木) 22:32:52.37 ID:uiaacVZe
- >>550
ファンロッサムはだいぶ前にDropboxに引きぬかれとるがな
- 555 :デフォルトの名無しさん:2014/09/18(木) 23:37:33.68 ID:J4t3dbmZ
- >>552
https://packaging.python.org/en/latest/
- 556 :デフォルトの名無しさん:2014/09/19(金) 00:19:08.14 ID:4MFyD/0d
- >>551
もうそれ言語の選択間違ったって話じゃないの
- 557 :デフォルトの名無しさん:2014/09/19(金) 00:49:02.87 ID:RhOL7tnE
- >>556
画像処理のためにPythonを勉強するんじゃなくて
Pythonの勉強の題材に画像処理をしてるだけだよ
- 558 :デフォルトの名無しさん:2014/09/19(金) 00:54:02.54 ID:6gllmAz9
- 勉強ならそのライブラリを3系に移植するのが手っ取り早い
- 559 :デフォルトの名無しさん:2014/09/19(金) 00:56:58.81 ID:V5mbqdwI
- てっとり早くはないだろうな
画像処理のライブラリならなおさら
- 560 :デフォルトの名無しさん:2014/09/19(金) 01:01:32.15 ID:RhOL7tnE
- >>558
Python3に対応したライブラリのバージョンはまだα版なのを公式で確認済み
よって2を使う方がベターと判断した
- 561 :デフォルトの名無しさん:2014/09/19(金) 01:06:13.44 ID:4MFyD/0d
- >>557
じゃあ題材の選択を間違ったってことでは?
もしくはPythonはそので間違いだと言われる程度の言語なんです、ってとこ。
Pythonは世界レベルのスクリプト言語ではマジョリティだけど、2→3の不安定性で、
いったんなにかでコケると一気にシェア失いそうな感じするしね。
- 562 :561:2014/09/19(金) 01:08:50.04 ID:4MFyD/0d
- >>561
s/もしくはPythonはそので/もしくはPythonはその程度で/
- 563 :デフォルトの名無しさん:2014/09/19(金) 01:24:51.76 ID:F4B/nS5T
- 2->3の移行時に発生するstr, bytes, unicode関連のエラーは
Pythonが静的型付言語だったら簡単に見つける事が出来たし、
もっと早く簡単に2->3移行は完了したと思う
というわけなので、Python3.5で静的型検査を標準に入れて
一気に2->3移行を進める戦略ですよ
- 564 :デフォルトの名無しさん:2014/09/19(金) 01:28:40.43 ID:b8dB9fZU
- >>555
ありがとうございます
- 565 :デフォルトの名無しさん:2014/09/19(金) 07:36:19.13 ID:29l2E3/T
- >>560
勉強って何してんの?
OpenCVなんかで乳首の検出とか?
- 566 :デフォルトの名無しさん:2014/09/19(金) 07:39:11.21 ID:uOFecdUA
- ×ライブラリが3に対応するまで2を使う
○3に対応したライブラリに移行する
- 567 :デフォルトの名無しさん:2014/09/19(金) 08:12:12.55 ID:OJCIiOtw
- ◎3に対応しらライブラリを実装する
- 568 :デフォルトの名無しさん:2014/09/19(金) 13:14:06.89 ID:QRiIEsK8
- 必要なパッケージが3似対応してるので3で困ることはない
scipy関連
django
- 569 :デフォルトの名無しさん:2014/09/19(金) 19:34:06.61 ID:eMbosikE
- rubyのbundleみたいなのないですか?
- 570 :デフォルトの名無しさん:2014/09/19(金) 22:06:03.59 ID:RhOL7tnE
- >>565
乳首じゃないけどOpenCVだよ
- 571 :デフォルトの名無しさん:2014/09/19(金) 22:17:33.12 ID:Hrwgc7MY
- >>570
そこはSPIDERです。と言えばカッコ良いのに
オリジナルSPIDERはFORTRANのライブラリ
- 572 :デフォルトの名無しさん:2014/09/19(金) 22:58:06.47 ID:J2BT5uph
- Python - OpenCVによる猫の識別
ttp://qiita.com/wellflat/items/0b6b859bb275fd4526ed
人間の男女の違いやあれやこれやも識別できるぞ!
- 573 :デフォルトの名無しさん:2014/09/20(土) 10:29:30.54 ID:Xc99Cp2d
- os.path.dirname(os.path.dirname(__file__))
某フレームワークが吐くコードです
2回かましているのは何故ですか?
- 574 :デフォルトの名無しさん:2014/09/20(土) 10:55:19.69 ID:/lSmgJEc
- >>573
なぜ自分で手を動かさない?
__file__ が 'c:\\xxx\\yyy\\zzz' なら、
1回目の dirname で 'c:\\xxx\\yyy'
2回目の dirname で 'c:\\xxx' と、
目的とする結果が異なるからだろ
- 575 :デフォルトの名無しさん:2014/09/20(土) 11:21:04.06 ID:ldpx+vMK
- >>> path = "c:\\"
>>> os.path.dirname(path)
''
>>> os.path.dirname(os.path.dirname(path))
''
>>> os.path.dirname(os.path.dirname(os.path.dirname(path)))
''
>>> path
'c:\\'
なぜです?
- 576 :デフォルトの名無しさん:2014/09/20(土) 11:24:05.29 ID:mVPfJUJ8
- なぜですって何がだ?
お前はどうなると思ったんだ?
- 577 :デフォルトの名無しさん:2014/09/20(土) 11:30:28.61 ID:mVPfJUJ8
- たぶんDjangoのsettings.pyの13行目あたりのことを言ってる気がするが
あれはProjectRootを取るためのコードだから1回でも3回以上でも目的は達成できん
何故と聞くまでもないだろう
- 578 :デフォルトの名無しさん:2014/09/20(土) 11:35:25.80 ID:kGUmhIam
- >>572
あれやこれの識別の妄想が広がるな!
- 579 :デフォルトの名無しさん:2014/09/20(土) 11:42:15.02 ID:GbFNl7YA
- 正しくは
os.path.join(os.path.dirname(__file__), '..')
じゃないの
- 580 :デフォルトの名無しさん:2014/09/20(土) 11:48:46.84 ID:pPLj1Lyk
- この場合の正しさってなんだろうか。
- 581 :デフォルトの名無しさん:2014/09/20(土) 12:09:01.44 ID:nsNkzdES
- djangoの翻訳チームのやる気の無さ
https://github.com/django-docs-ja/django-docs-ja
- 582 :デフォルトの名無しさん:2014/09/20(土) 12:18:59.07 ID:GbFNl7YA
- 気に入らないなら
forkすれば良い
- 583 :デフォルトの名無しさん:2014/09/20(土) 12:21:33.60 ID:mVPfJUJ8
- こういう奴はリーダー代われ
俺の箔にしてやるって言い分だから
forkなんかしない
- 584 :デフォルトの名無しさん:2014/09/20(土) 12:25:47.32 ID:nsNkzdES
- phpのlaravelの翻訳は1人で全部やってる
http://laravel4.kore1server.com/docs
djangoの翻訳チームが名ばかりの集まりであるのがよく分かるだろう
我々はこういうった幽霊部員の活動を日本中に広めなければならない
- 585 :デフォルトの名無しさん:2014/09/20(土) 12:26:39.32 ID:nsNkzdES
- ということで今からオレは新しく1.7の翻訳アカウントを作ろうと思う
- 586 :デフォルトの名無しさん:2014/09/20(土) 16:17:38.30 ID:5yN8V4kh
- フレームワークなんて使ってねーや
- 587 :デフォルトの名無しさん:2014/09/20(土) 17:31:55.11 ID:J22kYW6o
- _future_モジュールはなんのためにありますか?
以前のバージョンでも未来の機能を利用できると理解したのですが
- 588 :デフォルトの名無しさん:2014/09/20(土) 21:08:05.13 ID:lJJn8OIz
- >>587
__future__モジュールについてはこれな
>これは実行できる形式で書かれたドキュメントなので、__future__をインポートしてその中身を調べることでプログラムから調査することができます。
http://docs.python.jp/2/library/__future__.html
future文についてはこれ
http://docs.python.jp/2/reference/simple_stmts.html#future
古いバージョンのでも新しい機能が使えるってことであってる
- 589 :デフォルトの名無しさん:2014/09/20(土) 21:58:57.26 ID:J22kYW6o
- 残念ながらはっきりとは理解できませんでした
スクリプト言語にコンパイラやコンパイル時という単語がなぜ出てくるのでしょう?
未知の機能の詳細を実行時に取得してプログラムの動きを変化させると考えました
役割としてはCにおけるマクロのようなものと理解すればいいのでしょうか?
- 590 :デフォルトの名無しさん:2014/09/20(土) 22:26:14.09 ID:Z8uHc6Vb
- >>589
そうディレクティブです、でもマシンコードじゃなくバイトコードへのコンパイル
実行前というか、たとえば「from __future__ import division」だと除算が
BINARY_DIVIDEからBINARY_TRUE_DIVIDEになり整数同士でも切り捨てられない
- 591 :デフォルトの名無しさん:2014/09/20(土) 22:51:00.81 ID:J22kYW6o
- なるほど
機能の追加をよりコントロールしようとしているんですね
回答ありがとうございます
- 592 :デフォルトの名無しさん:2014/09/21(日) 00:40:09.97 ID:1T8PQZp1
- a = [{"a":''}] * 3
a[0]['a'] = True
print(a)
何故0番目以外にもTrueが入っちゃうんですか?
- 593 :デフォルトの名無しさん:2014/09/21(日) 00:52:02.80 ID:hzBq2+VL
- シャローコピーだから
- 594 :デフォルトの名無しさん:2014/09/21(日) 01:17:39.11 ID:+wLRSH8e
- 新刊の「Python詳説」を立ち読みしてみたけど
3系だった
2系の俺には無用w
- 595 :デフォルトの名無しさん:2014/09/21(日) 01:19:29.41 ID:hzBq2+VL
- わざわざ3系オンリーの書籍を出すなんてボランティアか、はたまたマゾか
- 596 :デフォルトの名無しさん:2014/09/21(日) 01:27:50.32 ID:WJzN6dNr
- 一向に3への移行が進まないよか良いでしょう
- 597 :デフォルトの名無しさん:2014/09/21(日) 01:55:56.04 ID:SxMm3UZZ
- いまどき2用の書籍出すとかマゾな出版社でしかない。
- 598 :デフォルトの名無しさん:2014/09/21(日) 03:12:58.79 ID:zvLDGmjJ
- Python文法詳解の目次を見たらみんなのPythonやパーフェクトPythonと内容が被ってる気がして買う気になれませんでした。web関連の本を出してくれたらいいのに。
- 599 :デフォルトの名無しさん:2014/09/21(日) 03:59:03.40 ID:hzBq2+VL
- あっという間に陳腐化するわ
特定フレームワークのユーザーしか狙えないわ
書いてる方は幸せになれません
- 600 :デフォルトの名無しさん:2014/09/21(日) 09:20:08.00 ID:MEucGXRm
- どうしても解決できないことがあるので質問させてください。
以下のように、テキストファイル(test.txt)を作成してから、それを読み出して、printしているのですが、
何も表示されません。テキストファイルは確かに作成されています。
ファイルが作成される前に、読み出しがされているからでしょうか?
#!/usr/bin/python
# -*- coding:utf-8 -*-
str_out = "aaa"
fw = open("test.txt", "w") #
fw.write(str_out)
fw.close
fr = open("test.txt")
str_read = fr.read()
print str_read
fr.close()
- 601 :デフォルトの名無しさん:2014/09/21(日) 09:23:00.69 ID:q4aLc9F7
- 一番目の close にカッコがついてないよ
それだと関数オブジェクトを呼ばずに捨ててる
- 602 :デフォルトの名無しさん:2014/09/21(日) 09:23:19.24 ID:NKaa3KrO
- fw.close()
- 603 :デフォルトの名無しさん:2014/09/21(日) 09:25:16.62 ID:MEucGXRm
- >>601
うぉー、出来ました!
実はこれで1年以上、悩んでいました。
なんで早く教えてくれなかったんですか!
ありがとうございました!
- 604 :デフォルトの名無しさん:2014/09/21(日) 09:26:49.52 ID:NKaa3KrO
- なんで早く聞かなかったんですか!
- 605 :デフォルトの名無しさん:2014/09/21(日) 10:23:27.12 ID:hzBq2+VL
- 白ヤギさんも真っ青
- 606 :デフォルトの名無しさん:2014/09/21(日) 10:31:44.53 ID:sF3yzrHK
- with使えばファイルの閉じ忘れ起きないし安心
- 607 :デフォルトの名無しさん:2014/09/21(日) 10:34:13.13 ID:Re05AqUv
- 何で早くエスパーしなかったんですか!
- 608 :デフォルトの名無しさん:2014/09/21(日) 10:35:33.02 ID:OYwJke1V
- その点 ruby は安心
- 609 :デフォルトの名無しさん:2014/09/21(日) 11:57:06.57 ID:7oG58F6s
- >>592
間際らしい市ねww
a = [{'a':''}] * 3
a = [{"a":""}] * 3
- 610 :デフォルトの名無しさん:2014/09/21(日) 12:07:42.60 ID:tmQCWq8V
- シャローコピーしないようにするにはどうしたらいいですか?
- 611 :デフォルトの名無しさん:2014/09/21(日) 12:10:51.59 ID:Gd2LPy9W
- Web関連の本って...
無理だと思うな
PythonはPHPにはその分野では敵わない
面倒くさすぎる
Djangoも分かりにくい
PHPならHTML書いて入れればそれだけでOK
- 612 :デフォルトの名無しさん:2014/09/21(日) 12:19:06.39 ID:tmQCWq8V
- djangoは管理画面があるのが便利だけど最初の設定が面倒くさい
templateやstaticの設定をもっと自動化して欲しい
- 613 :デフォルトの名無しさん:2014/09/21(日) 12:32:32.35 ID:Vmt4LZ6D
- WEB関係の本は「みんなのPython Webアプリ編」があるけど
なんか読みにくい本なんだよな
オライリーのいい本が一冊翻訳されるといいのに
- 614 :デフォルトの名無しさん:2014/09/21(日) 12:32:58.96 ID:hzBq2+VL
- ・サブディレクトリ運用を気軽にできるようにしてくれ
・アプリケーションのリネームをサポートしろ
は前に要望したけど音沙汰がない
- 615 :デフォルトの名無しさん:2014/09/21(日) 12:34:17.01 ID:hzBq2+VL
- 翻訳されていないオライリーのいい本が一冊はあるという前提が甘い
- 616 :デフォルトの名無しさん:2014/09/21(日) 12:38:59.98 ID:D9Ow4XI3
- Python Web Programming
http://www.amazon.com/dp/0735710902/
こういうの翻訳頼む
- 617 :デフォルトの名無しさん:2014/09/21(日) 12:41:39.37 ID:hzBq2+VL
- 出版が2002年だけど本当にそれでいいのか
- 618 :デフォルトの名無しさん:2014/09/21(日) 12:49:39.02 ID:ImbjJwoQ
- 確かにちょっと古いかな
Flask Web Development: Developing Web Applications with Python
これとかどうだろう
今年出版されたばかり
- 619 :デフォルトの名無しさん:2014/09/21(日) 12:51:25.89 ID:q4aLc9F7
- >>610
import copy; copy.deepcopy
あとリストの掛け算はシャローコピーではないよ
- 620 :デフォルトの名無しさん:2014/09/21(日) 12:56:54.05 ID:tmQCWq8V
- >>619
ライブラリを使わないとだめってことは掛け算で作るのは王道の書き方ではなかったってことですよね
掛け算するのやめます
- 621 :デフォルトの名無しさん:2014/09/21(日) 12:57:58.05 ID:tmQCWq8V
- >>614
rm -rf アプリケーションじゃだめなんですか
- 622 :デフォルトの名無しさん:2014/09/21(日) 13:10:09.64 ID:hzBq2+VL
- リネームだっつってんのに何故rmが出てくる
Djangoのアプリケーションをリネームするには
散らばってるインポートモジュール名とDBのテーブル名とリレーション等と格納された値を修正する必要がある
rmでこれらの処理を何か簡略化できるか?
- 623 :デフォルトの名無しさん:2014/09/21(日) 14:15:07.00 ID:tmQCWq8V
- rm -rf dbファイル アプリケーション
python manage.py migrate
- 624 :デフォルトの名無しさん:2014/09/21(日) 14:24:39.29 ID:M1R/hzos
- bottleなんかマニュアルしっかりしてるし本なんかいらんだろ
- 625 :デフォルトの名無しさん:2014/09/21(日) 15:18:42.67 ID:zvLDGmjJ
- デプロイがつらいのでApache、Nginx、uwsgi、Gunicornなどでの設定方法を解説した本であれば薄っぺらくてもすごく助かります。
- 626 :デフォルトの名無しさん:2014/09/21(日) 16:11:32.53 ID:GSgALpqv
- >>610
[{"a": ""} for _ in range(3)]
ちなみに辞書の複製にcopyモジュールはいらないよ
un = {}; un.copy()
これでおk
辞書の中身もちゃんとコピーしたいのなら>>619のようにやらないとだけど
- 627 :デフォルトの名無しさん:2014/09/21(日) 18:36:28.08 ID:SV7gYkDR
- bottle , flask , pyramid はフルスタックじゃないから
簡単なものならよいがちょっと込み入ったものになると
初心者には厳しいと思う
だけど上記の3フレームワークでよく使われる
jinja2 や SQLAlchemy や Beaker は覚えておくと
なにかと便利
- 628 :デフォルトの名無しさん:2014/09/23(火) 01:38:35.31 ID:yyfnOWbn
- http://tokyometro10th.jp/
これみんなで参加しないか?
Pythonのポテンションを世に知らしめるのだ
- 629 :デフォルトの名無しさん:2014/09/23(火) 01:44:27.98 ID:ESMlqDPF
- >>628
お前さんは知らないかもしれないが、世界レベルではPythonはマジョリティです。
- 630 :デフォルトの名無しさん:2014/09/23(火) 01:48:50.46 ID:6GOHYDXZ
- >>629
日本ではPythonはマイノリティですから
- 631 :デフォルトの名無しさん:2014/09/23(火) 01:53:20.60 ID:ESMlqDPF
- >>630
ガラパゴス乙
- 632 :デフォルトの名無しさん:2014/09/23(火) 13:06:03.58 ID:h9MTRV8P
- ガラパゴス島でガラパゴスガラパゴス騒いだ所で何も変わらんよ異邦人君
- 633 :デフォルトの名無しさん:2014/09/23(火) 13:08:25.49 ID:KtYSsO04
- 自分で返しがズレてるなとか思わないのかな
実際rubyが優勢だろうQiitaとかもrubyタグ圧倒的だし
- 634 :デフォルトの名無しさん:2014/09/23(火) 13:12:10.78 ID:SOSbun4M
- タグが多ければ優秀というのは何故か?
母集団は?
- 635 :デフォルトの名無しさん:2014/09/23(火) 13:36:59.37 ID:n40GWKtf
- 般 僧 掲 若 咒 咒 菩 波 夢 罫 依 智 老 識 色 無 垢 舎 空 利 時 観 摩
若 掲 諦 波 能 是 提 羅 想 礙 般 亦 死 界 声 受 不 利 空 子 照 自 訶
心 諦 羅 除 大 故 蜜 究 故 若 無 亦 無 香 想 浄 子 即 色 見 在 般
経 掲 蜜 一 明 知 多 竟 無 波 得 無 無 味 行 不 是 是 不 五 菩 若
菩 諦 多 切 咒 般 故 涅 有 羅 以 老 明 觸 識 増 諸 色 異 蘊 薩 波
提 咒 苦 是 若 得 槃 恐 蜜 無 死 亦 法 無 不 法 受 空 皆 行 羅
薩 波 即 真 無 波 阿 三 怖 多 所 尽 無 無 眼 減 空 想 空 空 深 蜜
婆 羅 説 実 上 羅 耨 世 遠 故 得 無 無 眼 耳 是 相 行 不 度 般 多
訶 掲 咒 不 咒 蜜 多 諸 離 心 故 苦 明 界 鼻 故 不 識 異 一 若 心
諦 曰 虚 是 多 羅 佛 一 無 菩 集 尽 乃 舌 空 生 亦 色 切 波 経
故 無 是 三 依 切 罫 提 滅 乃 至 身 中 不 復 色 苦 羅
波 説 等 大 藐 般 顛 礙 薩 道 至 無 意 無 滅 如 即 厄 蜜
羅 般 等 神 三 若 倒 無 侘 無 無 意 無 色 不 是 是 舎 多
- 636 :デフォルトの名無しさん:2014/09/23(火) 14:41:45.52 ID:nsMEHxF9
- なつかしいコピペ
- 637 :名無しさん:2014/09/24(水) 17:12:16.88 ID:Qh5bz0XT
- LinuxでPython2.6使ってるけど、WindowsでPython使う際に2.7にしてもいいのかなと思ったり
やっぱ2.6から2.7に上げた場合、それまでのスクリプトで問題発生するかな?
- 638 :デフォルトの名無しさん:2014/09/24(水) 17:31:42.36 ID:5Qd2IKk/
- Pythonでデスクトップアプリケーションを作成する場合、どういう風にすれば良いのでしょうか?
PyQtやwxPythonなどあるようですが、PyQtは敷居が高いようなことが書かれています
デザインのしやすさ、作りやすさなどでオススメを教えていただきたいと思います
自分の環境はRedhat系ですが、Windowsでの利用を考えています
http://ja.m.wikipedia.org/wiki/Pythonを使っている製品あるいはソフトウェアの一覧
このようなページを見つけました
ここに載っているデスクトップアプリケーションはPyQtなどで作られているのでしょうか?
それともCやWindowsAPIなどで基本的に作って、中身の一部をPythonで作っているのでしょうか?
- 639 :デフォルトの名無しさん:2014/09/24(水) 17:36:50.62 ID:FHhM1wc8
- Tkがおすすめ
- 640 :デフォルトの名無しさん:2014/09/24(水) 17:37:17.50 ID:LEs4bhE4
- >>637
発生するかしないかで言えば発生しないとは言えない
- 641 :デフォルトの名無しさん:2014/09/24(水) 17:39:21.38 ID:LEs4bhE4
- >PyQtは敷居が高い
それはない
ライセンスの問題とか
メンテが放置とか
面倒なだけ
問題にかかわってる暇がないなら
wxPythonの方を薦める
- 642 :デフォルトの名無しさん:2014/09/24(水) 18:43:17.39 ID:5Qd2IKk/
- 教えてくれてありがとうございました
- 643 :デフォルトの名無しさん:2014/09/24(水) 21:37:03.17 ID:wvIaX7qe
- 配布用に.exe形式にしたいのだけど、.exeの1ファイルだけにおさめる方法ってあるかね
py2exeでは、スクリプト以外のファイルはまとめてくれなさげ
- 644 :デフォルトの名無しさん:2014/09/24(水) 22:01:12.95 ID:YFHZqPQu
- zipじゃだめなん?Inno setupとかは?
- 645 :デフォルトの名無しさん:2014/09/24(水) 22:31:16.72 ID:wvIaX7qe
- 説明不足ですまん
インストーラとしてではなくて、そのまま実行できるアプリケーションとしたい。
もう少し具体的な意図を言うと、画像等の素材を隠蔽したい。
ただ、身内に配る程度なので、そこまで高度に隠蔽される必要もない
.exeにまとめるのでなくても、暗号化ファイルを読み込む方法などあれば、それでも問題なし
見栄えや扱いの簡便さで、.exeにまとめるのが一番良いかと思ってただけなので
# しかし、書いてくれたそれはそれで別の機会に使えそうだ。ありがとう
- 646 :デフォルトの名無しさん:2014/09/24(水) 22:33:00.91 ID:vnMOPx27
- ウイルス?
- 647 :デフォルトの名無しさん:2014/09/24(水) 22:34:42.27 ID:wvIaX7qe
- いいえ
- 648 :デフォルトの名無しさん:2014/09/24(水) 22:48:20.90 ID:YFHZqPQu
- 鍵付きZIPファイルに格納する、zipfileライブラリで読みこむ、tmpファイルとして
出力するときに拡張子でばれないよう注意する。
使い終わったらちゃんと消去。
- 649 :デフォルトの名無しさん:2014/09/24(水) 23:06:51.74 ID:spov7QuU
- ぐぐるとpy2exeとNSISで1ファイルにまとめた例が出てくるよ
おそらくcxfreezeでもできるはず
- 650 :デフォルトの名無しさん:2014/09/24(水) 23:25:30.42 ID:wvIaX7qe
- >>648
ありがとう、調べてみる
>>649
それもインストーラとしてまとめる方法では?
アプリケーション本体としてもまとめられるのかな?
- 651 :デフォルトの名無しさん:2014/09/25(木) 05:16:39.47 ID:7DgNS8tq
- UPX
- 652 :デフォルトの名無しさん:2014/09/25(木) 06:28:33.30 ID:joYUKpd7
- >>650
NSISも元来インストーラを作るツールだけど
設定で一時フォルダに展開して実行までやってくれる
見た目1ファイルのexeが作れるのよ
- 653 :デフォルトの名無しさん:2014/09/25(木) 07:54:31.41 ID:A59aTWuy
- pyinstallerつかってたけど
一つのファイルだとpython.dll
やwxPython含めて13MBぐらいになって
ユーザーから不評でした。
そして数年後この度、リファクタリングついでにC#で作り直し。はぁ...
- 654 :デフォルトの名無しさん:2014/09/25(木) 08:12:01.51 ID:Subxhchr
- 死ねば作り直さなくていいぞ〜
疲れてるならオススメ
- 655 :デフォルトの名無しさん:2014/09/25(木) 08:14:49.29 ID:PQH/RCDK
- 兵糧攻め
- 656 :デフォルトの名無しさん:2014/09/25(木) 09:45:09.99 ID:n/hqnqxg
- だからqtつかおうよ!
- 657 :デフォルトの名無しさん:2014/09/25(木) 09:50:37.18 ID:PQH/RCDK
- PyQt より PySide の方が良いんだよね?
- 658 :デフォルトの名無しさん:2014/09/25(木) 09:52:42.20 ID:n/hqnqxg
- py付いちゃうとexe化出来ないじゃん。。。
pyqt, pyside書けるならqtも書けるよ
- 659 :デフォルトの名無しさん:2014/09/25(木) 10:02:09.42 ID:PQH/RCDK
- python スレだから PyHoge の話になるのは仕方ない
- 660 :デフォルトの名無しさん:2014/09/25(木) 16:05:12.92 ID:UivmCkMy
- >>651>>652
ほうほうなるほど
ありがとうありがとう
>>653
オプションで同梱モジュール選べなかったのかね
- 661 :デフォルトの名無しさん:2014/09/25(木) 19:14:07.19 ID:pla+jS26
- >>660
python.dllで2mbは確定でwxで10MBだったかな。module同梱は自動検出。
py2exeもつかってたけどでかさは変わらんかった気がする。
GUIというとvensterとctypesでガリガリ書いてたときもあったなぁ...
- 662 :デフォルトの名無しさん:2014/09/26(金) 21:02:12.22 ID:HIA/sQJr
- Passenger全死亡か
http://d.hatena.ne.jp/nekoruri/touch/20140926/shellshock
ワロテナイよ
- 663 :デフォルトの名無しさん:2014/09/26(金) 23:53:15.81 ID:UKsTMeRj
- >>662
Rubyの話題はスレ違い
- 664 :デフォルトの名無しさん:2014/09/27(土) 02:57:10.07 ID:jYunIRKZ
- ruby だけじゃないが
subprocess.Popen とかだと
影響ウケルωωω
- 665 :デフォルトの名無しさん:2014/09/27(土) 09:07:42.72 ID:Q7f9fSd6
- ドキュメントがshell=Trueにすんなって言ってるのに
shell=Trueしてる馬鹿の尻まで拭う必要はない
いい機会だから全員死んでもらおう
- 666 :デフォルトの名無しさん:2014/09/27(土) 09:10:47.45 ID:V9AoMXji
- 666
- 667 :デフォルトの名無しさん:2014/09/27(土) 10:48:10.73 ID:bWg7K4NX
- optionで用意すんなって言い返したいけど
- 668 :デフォルトの名無しさん:2014/09/27(土) 10:52:30.35 ID:TGqPKc2A
- 汚染された文字列突っ込むなよ
- 669 :デフォルトの名無しさん:2014/09/27(土) 12:07:57.80 ID:jYunIRKZ
- NHK
bash
http://www3.nhk.or.jp/news/html/20140927/k10014922101000.html
- 670 :デフォルトの名無しさん:2014/09/28(日) 00:17:32.96 ID:rKF2lDHS
- 技術系ももっと報道機関に人を送り込んで欲しい
- 671 :デフォルトの名無しさん:2014/09/28(日) 19:12:54.61 ID:TmXNcwY0
- webprog板のpythonスレ死んでるんだけど
pythonでwebやるのってだめなの?
rubyとかphpの方がいいの?
- 672 :デフォルトの名無しさん:2014/09/28(日) 20:19:57.88 ID:pAfSMvLV
- 少なくとも国内で仕事したいならその認識は正しい
個人的な話なら好きにすればいい
- 673 :デフォルトの名無しさん:2014/09/28(日) 20:24:52.65 ID:pAfSMvLV
- DjangoとFlaskとpyramidとbottleとweb2pyくらいなら
ここで質問しても返ってくるはず
- 674 :デフォルトの名無しさん:2014/09/28(日) 21:52:44.37 ID:LbKOAJBC
- >>671
見てるけどほっといたわ
- 675 :デフォルトの名無しさん:2014/09/28(日) 22:05:24.94 ID:2qHeiG8b
- 勉強だったらwebとかやるだけ無駄
- 676 :デフォルトの名無しさん:2014/09/28(日) 22:10:22.00 ID:LbKOAJBC
- bashの踏み台鯖がどんどん増えまくっとる
- 677 :デフォルトの名無しさん:2014/09/28(日) 22:26:21.07 ID:neMl8K0A
- >>671
女の子を釣るには
- 678 :デフォルトの名無しさん:2014/09/29(月) 07:43:26.76 ID:NI0xARzz
- kwsk
- 679 :デフォルトの名無しさん:2014/09/29(月) 12:53:14.47 ID:EIANdszU
- >>671
railsを覚えるほうが
- 680 :デフォルトの名無しさん:2014/09/29(月) 18:45:50.65 ID:AjnwT8cf
- >>658
C++使えってこと?
- 681 :デフォルトの名無しさん:2014/09/29(月) 18:54:40.36 ID:TuwBUZ1N
- >>671
女の子に絶対に
- 682 :デフォルトの名無しさん:2014/09/29(月) 20:42:41.50 ID:nX5PV3RD
- >>680
いえす
- 683 :デフォルトの名無しさん:2014/09/29(月) 22:35:31.31 ID:WkHslg/o
- 1ファイルじゃなくていいならexe化はできるでしょ
- 684 :デフォルトの名無しさん:2014/09/29(月) 22:38:40.43 ID:9GNJpViz
- 実行ファイルを作る
そんなとき
C、C++、C#
お好きなモノをどうぞ
- 685 :デフォルトの名無しさん:2014/09/29(月) 22:39:48.85 ID:bm2ucN1b
- せっかくだから、俺はこのPythonを選ぶぜ!」
- 686 :デフォルトの名無しさん:2014/09/30(火) 11:03:06.12 ID:yIpcFUw2
- pythonでできることを教えてください
- 687 :デフォルトの名無しさん:2014/09/30(火) 12:22:32.74 ID:fHAbPVyL
- 馬鹿には何一つ無理
- 688 :デフォルトの名無しさん:2014/09/30(火) 12:27:09.14 ID:6HrD4eP+
- かわいいセフレができます
- 689 :デフォルトの名無しさん:2014/09/30(火) 12:54:47.80 ID:nNnITun+
- phpでmysqlに接続する時はidとpasswordを書いたファイルをpublic_htmlより上の階層に置くようにしていたのですが、sqlalchemyにはそういう注意が見当たりません。
create_engineを書いたファイル(含むid・password)をpublic_html以下に設置してもセキュリティ的に問題は無いのでしょうか?
- 690 :デフォルトの名無しさん:2014/09/30(火) 12:58:58.67 ID:Vb2IHbA9
- 萌えキャラ擬人化だけじゃなくイケメン擬人化もすればpythonも女子に人気でるかも
- 691 :デフォルトの名無しさん:2014/09/30(火) 12:59:00.66 ID:rWDDVQoR
- サーバは何?
- 692 :デフォルトの名無しさん:2014/09/30(火) 13:27:43.14 ID:nNnITun+
- >>691
nginxとuwsgiを使おうと思ってます。
まだsqlalchemyの勉強中なのですが、設置する時にこれで大丈夫なのかと不安になったので。
- 693 :デフォルトの名無しさん:2014/09/30(火) 13:50:23.78 ID:0GEeaCri
- ブラウザから直接指定して見られるかやってみたら
- 694 :デフォルトの名無しさん:2014/09/30(火) 14:46:23.26 ID:mh/cbJNg
- >>697
公開・配布の形態次第だけど、sqlalchemy 利用の有無関係なく
CGIスクリプトとしてデプロイする場合は、同様の注意が必要です
>>675
末尾を埋めるかどうかでバリエーションがあるけど、
itertoolsのレシピ grouper が参考になるよ
- 695 :デフォルトの名無しさん:2014/09/30(火) 14:46:25.33 ID:+CG1fPdj
- 和塩で重いときに見えないはずのものが見えてることがあったなあ
- 696 :デフォルトの名無しさん:2014/09/30(火) 20:13:32.69 ID:qWLkENwI
- ようわからんが、コンフィグファイルは外だししろよ
- 697 :デフォルトの名無しさん:2014/09/30(火) 20:14:29.65 ID:RxufM98r
- 男なら中出し一択だろ
- 698 :デフォルトの名無しさん:2014/09/30(火) 23:41:31.95 ID:nNnITun+
- >>694
>>696
ああ、やはりそのまま書くのは不味いんですね。外部ファイルに書いてそれを読み込むのが最善の方法という事ですね。
- 699 :デフォルトの名無しさん:2014/10/01(水) 00:34:10.66 ID:bO1QNk+t
- >>698
どんぐらいのサービスかによる
サーバの設定しくじったらアウトの可能性が少しでもあるなら避けるべき
fbでもしくじるぐらいだから
- 700 :デフォルトの名無しさん:2014/10/01(水) 11:07:13.94 ID:JH4tYyvL
- 外部のサーバーに書いておいて
起動時にダウソして
稼働中はメモリにキャッシュが安全
- 701 :デフォルトの名無しさん:2014/10/01(水) 21:05:28.70 ID:xoSFJb3E
- コンフィグ外出とか危険じゃね?
もし取れずにデフォルト値で動いて、デフォルト値がデバッグモードだったとか
- 702 :デフォルトの名無しさん:2014/10/01(水) 22:11:50.37 ID:yheU9Xdn
- レンタルサーバとかだと外に出せないから、去年symlinkとかコマンドインジェクションからのディレクトリトラバーサルでWordPressやられてたな
>>701
なんで設定取れなかったらエラー出すようにしないのか
- 703 :デフォルトの名無しさん:2014/10/02(木) 01:35:40.64 ID:9jKc/G7B
- ここはDjangoの質問も大丈夫でしょうか?
質問があるのですが、データベース問い合わせであるカラムだけを問い合わせたいのですがどのようにすればいいのでしょうか?
データベースのカラムはid,name,age,sexとした場合、name,age,sexを取り出したいとします
from bar.models import foo
rows = foo.objects.all()とすれば値が取得できるのは分かるのですが、これではidの値も取得されます
カラム別に取得したいのですが
SELECT name, age, sex FROM db;
みたいなことがしたいです
また、そこで取得した値を確認したいのですがDjangoはprintで出力されないので格納した変数の値や取得した値の中身を調べることが出来ません
PHPであればvar_dump()みたいに中身を見れればいいのですが
どのようにすればいいのでしょうか?
自分としては上記でデータベースから取得したデータをjson化してJavaScriptに送りたいのですが
- 704 :デフォルトの名無しさん:2014/10/02(木) 02:14:07.31 ID:UX4Sw3I3
- 1個目
objects.filterとか().values('hoge', 'huga')
2個目
チュートリアルの「はじめての Django アプリ作成、その 1」に書いてある
- 705 :デフォルトの名無しさん:2014/10/02(木) 02:15:08.60 ID:UX4Sw3I3
- 書いてから思ったがvalue_listの方が正しいな
- 706 :デフォルトの名無しさん:2014/10/02(木) 02:30:40.28 ID:9f+0oAt0
- django-debug-toolbar 使うと幸せになれるって
うちの仔猫が言ってた
あと defer() や only() の遅延評価も調べてみるといいって
(プライマリーキーのidを"取得しない"はできないけど・・・)
- 707 :デフォルトの名無しさん:2014/10/02(木) 09:39:49.38 ID:9jKc/G7B
- >>704-706
ありがとうございました
チュートリアルの方はもう一度目を通してみます
- 708 :デフォルトの名無しさん:2014/10/02(木) 09:55:09.89 ID:9jKc/G7B
- >>704
すみません、チュートリアル読んでみましたが分かりませんでした
python manage.py shell
の事をおっしゃられているのでしょうか?
- 709 :デフォルトの名無しさん:2014/10/02(木) 11:44:59.80 ID:YwCG0RRZ
- djangoのスレ行けよ
せっかく専用スレあるんだから同じような問題を抱えている人が見つけやすいだろ
- 710 :デフォルトの名無しさん:2014/10/02(木) 11:48:15.39 ID:YwCG0RRZ
- >>708
そもそもそれはチュートリアルをやってればはじめの方に出てくることだし
まずはチュートリアルをやるべきでしょ
効く前に最低限のことはやれよ
- 711 :デフォルトの名無しさん:2014/10/02(木) 11:59:13.09 ID:6cuXtJAM
- 馬鹿には無理
- 712 :デフォルトの名無しさん:2014/10/02(木) 16:12:18.19 ID:pc0dEnhS
- >>711
馬鹿の一つ覚え
- 713 :デフォルトの名無しさん:2014/10/02(木) 23:55:10.12 ID:XAeI31Ii
- 876 名前:デフォルトの名無しさん[sage] 投稿日:2014/10/02(木) 16:13:11.51 ID:pc0dEnhS
>>874
馬鹿の一つ覚え
- 714 :デフォルトの名無しさん:2014/10/03(金) 00:41:39.07 ID:CaIs5bTM
- 安価先も一緒に張れよw
- 715 :デフォルトの名無しさん:2014/10/03(金) 00:47:03.50 ID:iSAMd/e7
- きゃりーぱみゅぱみゅって最高だよね
- 716 :デフォルトの名無しさん:2014/10/07(火) 11:09:50.01 ID:9B02+Xes
- Python界の有名人
Before
https://avatars1.githubusercontent.com/u/854049?v=2&s=460
After
http://image.gihyo.co.jp/assets/images/news/report/01/pyconjp2014/0002/thumb/TH400_003.jpg
会ったこと無いから別人にしか見えない
- 717 :デフォルトの名無しさん:2014/10/07(火) 16:36:27.06 ID:AA14T+84
- 誰だよ
- 718 :デフォルトの名無しさん:2014/10/07(火) 19:45:00.88 ID:XRYgiLy4
- pyconスタッフって打ち上げありますか?
pycon 2015年の飲み会があるそうですけどコミュ障が参加したら孤立するだけですかね?
- 719 :デフォルトの名無しさん:2014/10/07(火) 22:41:49.33 ID:s7U7yQsb
- 誰だこの不細工は?
- 720 :デフォルトの名無しさん:2014/10/08(水) 00:34:25.52 ID:8oPiAR2I
- 俺らより有能で俺らよりイケメン
そして俺らより高年収
英語ネイティブだしね
- 721 :デフォルトの名無しさん:2014/10/08(水) 09:35:47.64 ID:SfZJBG4v
- Django
https://www.youtube.com/watch?v=jn5ajaZgcMw
- 722 :デフォルトの名無しさん:2014/10/08(水) 10:40:21.93 ID:2AVvJHZy
- >>719
殿ご乱心?
- 723 :デフォルトの名無しさん:2014/10/08(水) 10:42:02.95 ID:AsOaYLsj
- よく考えたらPythonって金持ちっっぽいやつらばっかりだな
おれはphpのほうが合いそうなのでここで引きます
- 724 :デフォルトの名無しさん:2014/10/08(水) 10:46:34.91 ID:2AVvJHZy
- >>716だった
- 725 :デフォルトの名無しさん:2014/10/08(水) 11:53:16.34 ID:P6WfsOfK
- >>721
マルチ死ね
- 726 :デフォルトの名無しさん:2014/10/08(水) 22:21:10.49 ID:P4ZmXPPk
- python2.7でGAEのwebアプリケーションを作成しているのですが
raw_input()
を使うと、EOFError: EOF when reading a line が発生します
具体的には、ouath2クライアントを使用したのですが
def get(self):
name = raw_input('Enter name: ')
print name
のようなコードでさえ EOFError: EOF when reading a line が発生してしまいます
- 727 :デフォルトの名無しさん:2014/10/08(水) 22:25:37.76 ID:OgeXMJ81
- 実にくだすれっぽい質問だ
- 728 :デフォルトの名無しさん:2014/10/09(木) 02:37:29.76 ID:T37jfMqm
- >>726
Googleのサーバ管理者に名前を入れてもらいたいのか?
- 729 :デフォルトの名無しさん:2014/10/09(木) 07:57:56.80 ID:OwjKzXDz
- Python3に対応したscrapyみたいなのありませんか?
「Rubyによるクローラー開発技法」という本が高評価なのでちょっと悔しいです。
- 730 :デフォルトの名無しさん:2014/10/09(木) 10:03:53.14 ID:YwRbzS2u
- Python2だとなんか不都合でもあるのか?
- 731 :デフォルトの名無しさん:2014/10/09(木) 22:06:03.62 ID:suIfRrTZ
- 大学で使ってる機械がパイソンで動いている事から、パイソンを使えるようになりたいと思いまして、練習中の身です。
一環としてwxpythonを使った簡単なアプリ(研究室の人向け)を作成している途中なのですが、動的な値の変更の仕方がいまいちわからず、行き詰まっております。
作成しているアプリは、スピンボタンやスライダ、ラジオボタンなどで実験状況を設定した上で、最終的に1つか2つ程度の値を出力するようなシミュレータみたいなものです。
具体的な課題は、説明しづらいのですが、statictextをイベントで書き変えるときに、書き換えた後の値を他のクラスでも共有したいという事です。
(出来ればコードをお見せして具体的に何がしたいのかを説明させていただきたいのですが、どのような形でお見せすればよいでしょうか)
恐らく初歩的なことかとは思いますが、どうぞお力添え下さいますようお願い致します。
- 732 :デフォルトの名無しさん:2014/10/09(木) 22:11:36.75 ID:suIfRrTZ
- >>1
> ◆長いコードはこういうところにはってください
> ttp://ideone.com/
> ttp://codepad.org/
> ttp://pastebin.com/
> ttp://dpaste.com/
- 733 :デフォルトの名無しさん:2014/10/09(木) 22:40:12.93 ID:suIfRrTZ
- >>739
お手数をおかけして申し訳ございません.
コードは以下になります.冗長な部分などあるかと思いますがご容赦ください.
http://ideone.com/60uZY5
このコードを実行し,たとえばスピンボタンを押したときに,Wavelengthと表示された部分は動的に変化させることはうまくできたのですが,LASER Powerと表示された部分を動的に変化させる方法が解りません.
最終的には,たとえばwavelengthに表示される値とPower Meter Valueに表示される値などを基にして計算した値をLASER Powerとして出力するようなプログラムを作りたいと考えております.
(物理的意味はありませんが,プログラミング的に最も簡単な例を挙げれば,wavelengthとPowerMeterValueの値を掛け合わせたものをLASER Powerとして動的に表示するといったプログラムになります)
よろしくお願いいたします
p.s.本文を一度誤ってscの方に書き込んでしまいました
- 734 :デフォルトの名無しさん:2014/10/09(木) 23:28:41.64 ID:XlUKidJJ
- pmadj_funcとwladj_funcがPower Meterとwavelengthの値が変わった時にそれぞれのラベルを書き換えてるよね?
その中で一緒にlaserpower2のラベルも書き換えればいいのでは
たとえばpmadj_funcだったら
#pmdis2のラベルを書き換えた後に……
#pmdis2とwldis2の値を取得
#それらでlaserpowerを計算
#laserpower2に値を設定
聞きたかったのはこういうことで合ってる?
- 735 :デフォルトの名無しさん:2014/10/10(金) 00:50:04.61 ID:OQ/++Vvv
- >>734
ご返信いただきありがとうござます。
質問の内容はご察しの通りです。
これまで、「プログラムを通して保持される変数」を関数で書き換えられないかと考えておりましたが、やはり>>734さんの仰る方法しかないのでしょうか。
>>734さんの仰る方法ですと、1つの関数ごとに幾つかの変数を親を通して呼び出さなければならないため、たいへん煩雑になるかと考えておりました。
例えば、>>734さんの挙げていただいた例の場合ですと、pmadj_funcという関数でpmdis2とwldis2を呼び出すことになります。これは同時に、wladj_funcでもpmdis2とwldis2を呼び出すことになりますよね。
のちのちチェックボックスやラジオボックスも利用することを考えると、躊躇いが出てしまうわけです。
何れにせよ、的を射ない質問ながら的確にご回答いただけたこと、ありがたく思います。
その他、お気づきの点などございましたらご指摘下さいますよう、よろしくお願いいたします。
- 736 :デフォルトの名無しさん:2014/10/10(金) 01:27:23.22 ID:J/PhW3d6
- >>735
Mediatorパターンがピッタリだと思うで調べてみてください
- 737 :デフォルトの名無しさん:2014/10/10(金) 13:22:07.51 ID:T0LFFi4l
- MVC
- 738 :デフォルトの名無しさん:2014/10/10(金) 20:23:10.07 ID:f/axCad2
- >>736
ご返信ありがとうございます。
現在調べてる最中でして、まだなんとも言えませんが・・・
- 739 :デフォルトの名無しさん:2014/10/10(金) 22:02:11.51 ID:9sDXKy/D
- pyenvをやめて自分で1から入れようと思うんですけど
~/mycode/homepageの仮想環境
~/mycode/toukeiの仮想環境を作った場合
ディレクトリを移動して手動でactivateコマンドを実行するのが面倒くさいんですけど
こういうのはどうやってますか?
- 740 :デフォルトの名無しさん:2014/10/10(金) 22:18:29.54 ID:ssRlZAm7
- できそこないなので素直にpyenv使ってます
あなたも出来損ないなら高望みを止めた方がいいですよ
- 741 :デフォルトの名無しさん:2014/10/10(金) 23:51:16.79 ID:ZRNQwYei
- >>739
pyenvを使いたくない理由は何ですか?
とても便利だと思うんですけど。
- 742 :デフォルトの名無しさん:2014/10/10(金) 23:58:21.31 ID:9sDXKy/D
- インストールディレクトリ名が固定だからです
- 743 :デフォルトの名無しさん:2014/10/11(土) 11:52:33.43 ID:zlAuz39Z
- ん〜pyenv-aliasで名前変えられるけどそう言うことじゃなく?
https://github.com/s1341/pyenv-alias/blob/master/README.md
- 744 :デフォルトの名無しさん:2014/10/11(土) 12:05:56.05 ID:WAdfmHXI
- 男は黙ってvirtulaenv
- 745 :デフォルトの名無しさん:2014/10/11(土) 12:25:17.23 ID:1gHC+Rt5
- それとパッチを当てにくいからです
プラス、使いたいバージョンが入れられないからです3.4.2
- 746 :デフォルトの名無しさん:2014/10/11(土) 12:41:00.76 ID:zlAuz39Z
- お、3.4.2出たのか?と思ったらRCじゃねえか
バージョンに拘るならバージョンは正確に言えよ
シェルのcdとpushd上書きするような関数定義して
裏でactivate実行すればいい
簡単だろ?
- 747 :デフォルトの名無しさん:2014/10/11(土) 12:47:27.96 ID:1gHC+Rt5
- 先輩すいません
それちょっとやってみます
- 748 :デフォルトの名無しさん:2014/10/11(土) 21:50:31.12 ID:c/9/8F6M
- 3.4.2もうちゃんとでてるだろ。
- 749 :デフォルトの名無しさん:2014/10/12(日) 06:59:18.33 ID:rVMmKUVB
- sqlalchemyを使ってmysqlの検索結果をテンプレートに表示するページを作ったんですが、数回アクセス(更新)してから1分ほど経過して再度更新するとエラーを吐きます。
エラーの内容は「無効なトランザクションがロールバックされるまで再接続出来ない」との事なんですが無効なトランザクションが自動で消えるようにするにはどうすれば良いのでしょうか?
ファイルを3つに分けているのでimportの方法に問題ありなんですかねぇ…。
- 750 :デフォルトの名無しさん:2014/10/12(日) 07:20:35.87 ID:Z8ok/lvr
- commit汁
- 751 :デフォルトの名無しさん:2014/10/12(日) 19:15:57.10 ID:XcZcZSTO
- ここではPortable Pythonは人気が無いのですか?
2.7系と3.4系の両方の環境が作れるんで便利だと思うんですが。
- 752 :デフォルトの名無しさん:2014/10/12(日) 19:25:22.45 ID:WmFvY6mV
- そもそもwindowsが少数派なんでは
- 753 :デフォルトの名無しさん:2014/10/12(日) 19:25:33.71 ID:OFZFdMRu
- そんなものを使わなくても環境作れますが
- 754 :デフォルトの名無しさん:2014/10/12(日) 20:08:00.64 ID:iMtIS90f
- むしろどんな風にインストールすると両方使えない環境になるんだ?
- 755 :デフォルトの名無しさん:2014/10/12(日) 21:42:24.87 ID:xW6MFRga
- >>754
そっとしといてやれよ。。。
たぶん環境変数でPATHの順番がとか言われるよ
- 756 :デフォルトの名無しさん:2014/10/12(日) 23:12:20.59 ID:5gtQJftx
- Windowsは、3.3以降に付いてくるpyコマンドを使えばPATHを気にする必要もない
2/3系の切り替えも32/64bitの切り替えもオプション1つかshenangでできるし
- 757 :デフォルトの名無しさん:2014/10/12(日) 23:36:36.47 ID:bfCObt5l
- 仮想環境の利点がよくわかりません。
3.2 と 3.3 というように Python のバージョン違いを使う時にメリットがあるのでしょうか?
今は、3.4 しか使っていません。
- 758 :デフォルトの名無しさん:2014/10/13(月) 00:00:28.67 ID:3SkqDiWm
- 利点が分かる時に使えば良い
- 759 :デフォルトの名無しさん:2014/10/13(月) 00:05:41.38 ID:lbLLPSKH
- よくある問いかけだな
この機能何に使うんですか?存在する意味が分かりませんって
聞いてるこっちは酷いマヌケに遭遇した気分になるよ
- 760 :デフォルトの名無しさん:2014/10/13(月) 00:33:39.49 ID:AakrwsYM
- まぁ使う必要がなければ、使う意味はないからね
- 761 :デフォルトの名無しさん:2014/10/13(月) 00:36:01.73 ID:AakrwsYM
- >>759
こういう質問とその回答、大事なことだと思うけどね
- 762 :デフォルトの名無しさん:2014/10/13(月) 10:05:10.08 ID:UJCB5jQM
- 意味が判らないのは
自分がそのレベルに達してないだけなのに
自分は悪くないと思ってるところが厨房の厨房たる所以
- 763 :デフォルトの名無しさん:2014/10/13(月) 11:12:44.57 ID:UiUWyauZ
- バージョン3.4しか使わないならバージョンの切り替えで仮想環境を作る必要はない
環境ごとにパッケージをインストールしたい時に仮想環境を作ればよい
- 764 :デフォルトの名無しさん:2014/10/13(月) 11:30:40.19 ID:DJNIhGJv
- 3.2 から 3.4 までの環境に対応とかね
例えばライブラリーを作成するとき
動作環境を時間かけてアップする時(3.2, 3.4 どっちでも動くようにしていく)
他にも色々あるよ
- 765 :デフォルトの名無しさん:2014/10/13(月) 12:00:49.83 ID:YZWgIN5K
- >>757
Pythonのバージョンだけじゃない。ライブラリも同じ。
二つのアプリfoo,barがあったとして、fooはAとBというライブラリが必要、barはBとCが必要な場合、
グローバルな環境にA, B, C全部いれるのはあまり良くない。
仮にfooでBのバージョンをあげたいけど、barではあげたくないってなったら、どちらかでBの入れ方を変えなければいけなかったり、
設定やコードを変更しなければいけないかもしれない。
仮想環境ならfooが動いてる環境でpip install B==versionするだけでいい。
- 766 :デフォルトの名無しさん:2014/10/13(月) 12:03:36.97 ID:YZWgIN5K
- あと、メジャーなフレームワークやモジュールならvirtualenvとpipでの環境構築方法が大抵用意されてる、と思う。
- 767 :デフォルトの名無しさん:2014/10/13(月) 16:06:42.37 ID:k1sWPTWW
- >>750
ありがとうございます。
commitを入れたらブラウザ上のエラーが無くなりました。
今はブラウザを更新する度にクエリの内容を表示したりしなかったりをランダムに繰り返しています。
表示しなかった時のログを見ると
SIGPIPE:writing to a closed pipe/socket/fd
でした。
一部だけ切断されるのはまだ何かの記述が足りないのでしょうか?
- 768 :デフォルトの名無しさん:2014/10/13(月) 16:16:02.40 ID:R2vIvTaj
- エラーが再現できる最小のコードぐらい晴れ
- 769 :デフォルトの名無しさん:2014/10/13(月) 17:00:43.37 ID:yFRqmPNp
- なんならcommitせずにrollbackでもよろし
- 770 :デフォルトの名無しさん:2014/10/14(火) 02:25:34.98 ID:wbq8rtwF
- a = list(range(0, 10))
a = [a[i:i+3] for i in range(0, len(a), 3)]
print(a)
一次元リストを二次元リストにするコードです
別の書き方を教えてください
- 771 :デフォルトの名無しさん:2014/10/14(火) 03:03:11.24 ID:VNVYyJ0e
- 初心者が適当に答えを考えてみる
def xl(ls, stp):
return [ls[i:+stp] for i in range(0, len(ls), stp)]
a = list(range(0, 10))
b = xl(a, 3)
c = xl(a, 2)
こんな感じ
関数の中身は流用w
- 772 :デフォルトの名無しさん:2014/10/14(火) 03:09:59.40 ID:zVB4iXSQ
- http://stackoverflow.com/questions/312443/how-do-you-split-a-list-into-evenly-sized-chunks-in-python
HaskellにはsplitEvery(a.k.a chunk)という関数がある。参考までに
http://hackage.haskell.org/package/split-0.1.1/docs/src/Data-List-Split-Internals.html#splitEvery
- 773 :デフォルトの名無しさん:2014/10/14(火) 03:10:36.07 ID:n0LsyPEe
- 関数にしてるだけじゃん
- 774 :デフォルトの名無しさん:2014/10/14(火) 03:15:26.45 ID:pTBqpiFp
- (SCに投稿してしまったので再投稿)
775です。
自己解決しました。
engine = create_engine(uri, pool_recycle=MySQLのwait_timeより短い時間)
とする事で切断されなくなりました。
interactive_timeoutとwait_timeoutを
8時間から60秒に変更していたので
1分後の更新でエラーが出るようになっていたようです。
(もし8時間のままだったら8時間後からエラーが出るのかは謎ですが…)
- 775 :デフォルトの名無しさん:2014/10/14(火) 03:21:09.04 ID:lBWRGPCr
- いいや俺が775だね
- 776 :デフォルトの名無しさん:2014/10/14(火) 03:29:39.19 ID:pTBqpiFp
- >>775
すいません。
767でした。
- 777 :デフォルトの名無しさん:2014/10/14(火) 03:52:57.78 ID:2EiwlIPP
- >>770
http://ideone.com/kxB0cX
書き終わってから>>772を見たらあああってなった
- 778 :デフォルトの名無しさん:2014/10/14(火) 21:28:51.98 ID:pTBqpiFp
- >>769
チュートリアルやググった時に出てくる記事には検索だけの場合はcommitやrollbackが必要とは書いていないのですが、なぜロールバックされてないというエラーが出るのか不思議です。
パーフェクトPythonを参考に以下のような関数やメソッドを記述した場合はエラーが出ません。
def kensaku():
try:
result = 検索内容.one()
return result
session.commit()
except:
session.rollback()
finally:
session.close
このままでは全てのクエリにtry except finallyを付ける事になってしまいます。他にロールバックのエラーを出さない書き方ってありますか?
- 779 :デフォルトの名無しさん:2014/10/15(水) 02:45:30.91 ID:J+WRCzbK
- 検索だけならトランザクション開始しなきゃいいんじゃね
- 780 :デフォルトの名無しさん:2014/10/15(水) 07:47:48.72 ID:caHw/4to
- 同意します
- 781 :デフォルトの名無しさん:2014/10/15(水) 13:01:35.81 ID:zl/yfVrd
- pyramid使ってる人にお聞きしたいんですがバリデーションどうされてます?
wtformsやdeformでやってるんでしょうか?
どちらも扱いにくいことこのうえないんですがおすすめのフォームライブラリありませんか?
- 782 :デフォルトの名無しさん:2014/10/15(水) 13:34:28.98 ID:OgUxeFYn
- 【Python】Python Webフレームワーク総合スレ
http://kanae.2ch.net/test/read.cgi/php/1329996601/
- 783 :デフォルトの名無しさん:2014/10/15(水) 13:49:01.21 ID:6UPjvDQa
- WSGIってJSPとかJavaServletみたいなものって認識で合ってますか?
- 784 :デフォルトの名無しさん:2014/10/15(水) 13:58:23.34 ID:y5p6iW7A
- mod_pythonを速くしたやつ?
- 785 :デフォルトの名無しさん:2014/10/15(水) 15:56:44.67 ID:b6Lq5BMW
- >>783
合ってない
ていうかJSPとJava Servletが同じものじゃないし
- 786 :デフォルトの名無しさん:2014/10/15(水) 16:24:20.43 ID:C/JjrqVa
- ウェブサーバーとアプリケーションサーバー間のプロトコルです
- 787 :デフォルトの名無しさん:2014/10/15(水) 16:30:00.58 ID:y5p6iW7A
- まあそれが正解なんだろうけどmod_wsgi=WSGIみたいな扱いに
なっちゃってるからなあ。
なんでそんな名前にしたんだろ?
python関連はpyを付けるのが慣例みたいになってるのに。
- 788 :デフォルトの名無しさん:2014/10/15(水) 18:50:43.08 ID:ecrFBKrn
- WSGIはWebのインターフェイス
PythonではPEP3333で定義されてる
http://legacy.python.org/dev/peps/pep-3333/
それを実装してるライブラリがwsgiref
https://docs.python.org/3/library/wsgiref.html
apacheモジュールはmod_wsgi。mod_pythonはもう開発がとまってる。
https://github.com/GrahamDumpleton/mod_wsgi
フレームワークはPyramid、Django、fluskなどなど
JSPとJavaServletは知らん
- 789 :デフォルトの名無しさん:2014/10/15(水) 18:52:55.90 ID:ecrFBKrn
- What is WSGI?
WSGI is the Web Server Gateway Interface. It is a specification that describes how web server communicates with web applications, and how web applications can be chained together to process one request.
WSGI is Python standard described in detail in PEP 3333.
(WSGI.org, http://wsgi.readthedocs.org/en/latest/what.html#what-is-wsgi)
- 790 :デフォルトの名無しさん:2014/10/15(水) 19:09:00.27 ID:oTkKZ4Eq
- wsgi.js
- 791 :デフォルトの名無しさん:2014/10/15(水) 22:46:10.27 ID:rB995LuX
- python3.3では問題ないのにpython2.7でopen("text.txt", encoding="utf-8")を実行すると
encoding' is an invalid keyword argument for this function
ってエラーが出るんですけどpython2.7ではどう書けばいいですか?
ここ見て書いたので記述は間違ってない気がするんですがお手上げです
http://docs.python.jp/2/howto/unicode.html
- 792 :デフォルトの名無しさん:2014/10/15(水) 22:55:16.48 ID:Id/STamp
- >>791
組み込みの open じゃなく
import codecs からの codecs.open
- 793 :デフォルトの名無しさん:2014/10/15(水) 23:32:35.53 ID:rB995LuX
- あ、ほんとだ
codecs使えば2系でも3系でも使えますね
- 794 :デフォルトの名無しさん:2014/10/16(木) 00:18:06.43 ID:JRVJ27N0
- >>791
何でPython2.7でencoding' is an invalid keyword argument for this functionっていうエラーがでるんですか?っていう質問じゃなかったのか・・
- 795 :デフォルトの名無しさん:2014/10/16(木) 07:28:47.07 ID:GRIRO8vO
- どこをどう読んだらそんな質問に見えるんだ
- 796 :デフォルトの名無しさん:2014/10/16(木) 07:44:01.13 ID:fmheqVVd
- 今度は日本語も読めないやつかよ
- 797 :デフォルトの名無しさん:2014/10/16(木) 16:01:17.38 ID:CsOFEKWu
- OSのカーネルや言語処理系は最もコード密度が高い分野。一度もソース読んだ事の無い人にとっては
理解不能な世界。組み込み用のmrubyやJavaScriptですら公開されてるソース読んですぐ理解出来る代物ではない。
だれがどのように保守するかは大きな問題。カーネルや開発者の高齢化問題も発生する。
経済が破綻すればオープンソースは資金調達や人員の確保問題で保守がどうなるか不明なところがある。
そうなると伝統的プロプライエタリなOSや言語が長期的には有利かもしれない。
- 798 :デフォルトの名無しさん:2014/10/16(木) 16:57:50.55 ID:KDVTqClB
- 経済が破綻したらお前をボコボコにして奴隷にする方が早い
- 799 :デフォルトの名無しさん:2014/10/17(金) 00:43:21.82 ID:JX57Rjwu
- self、thisって何に使うものなんですか?
必須ではないんですか?
猿でも分かるように教えてください。
- 800 :デフォルトの名無しさん:2014/10/17(金) 00:57:11.22 ID:Db3yDsQb
- >>799
Python で this は使わない。
self については、Python の初心者向けのドキュメントでは100%説明されてる。
つまり、簡単に言うと、ググれ。
ググってそれ読んでわからなかったときにその何がわからないかを聞け。
- 801 :デフォルトの名無しさん:2014/10/17(金) 00:59:36.64 ID:tGTslkxI
- オランウータンがゴリラに売るためのバナナをチンパンジーが持ってきました
この「ゴリラに売るバナナ」と「チンパンジーが持ってきたバナナ」という2つのバナナを区別するのにselfを使います
self.banana ←ゴリラに売る予定のバナナ
banana ← チンパンジーが持ってきたバナナ
もし、「ゴリラに売るバナナ」 = 「チンパンジーが持ってきたバナナ」ならば
self.banana = banana
というふうに書けます
バナナが2つ存在していてもこれなら見分けがつけられますね
こうしてオランウータンはバナナをゴリラに売れましたとさ
- 802 :デフォルトの名無しさん:2014/10/17(金) 03:36:34.48 ID:DGojcH6F
- 俺にも分かる説明乙
- 803 :デフォルトの名無しさん:2014/10/17(金) 05:58:42.93 ID:C+N94CAc
- >>801
意味不明
- 804 :デフォルトの名無しさん:2014/10/17(金) 06:22:40.00 ID:g6ZBfCoZ
- >>779
アドバイスを読んでからあれこれ試してみたのですが方法がわかりません。
検索のクエリ自体が
session.query(…
で始まっているので
session = Session()
を書かないと動いてくれません。
これを書くとrollbackやcloseなどを書かないと後からエラーが出てしまいます。
どう書けばトランザクション無しで検索する事が出来るのでしょうか?
- 805 :デフォルトの名無しさん:2014/10/17(金) 06:26:20.65 ID:o5eX2ePN
- クラス・インスタンスとは何かを調べる
↓
Ptyhonのクラス・インスタンスの典型的なコード・使用例を調べる
↓
例の中でselfがどういう役割を演じているかを理解する
↓
selfという名称が慣習的なものに過ぎず実は何でも良いことを知ってショックを受ける
Pythonの場合、selfを理解するのにこれだけのステップが必要
全くの初心者には遠い道のり
自分でクラス・インスタンスを作ることのない企業のエンドユーザーや
ライトユーザーは知らなくてもよいだろう
オブジェクト指向の深い闇に足を踏み入れずに済むなら、それに超したことはない
- 806 :デフォルトの名無しさん:2014/10/17(金) 07:15:57.68 ID:JX57Rjwu
- >>801
わ、分からない、、、。
実際の超簡単なコードで、どのような役割があるのか教えてください。
一応、いろんなサイトを調べてはいるんですが、自分には理解できない説明ばかりです。
selfの何が分からないかすら分からないと言う状態で。
・何かを識別するための目印
というところまで分かりました。
- 807 :デフォルトの名無しさん:2014/10/17(金) 07:30:41.82 ID:QP1DIUi6
- >>805
>selfという名称が慣習的なものに過ぎず実は何でも良いことを知ってショックを受ける
↓
第一引数が self じゃなくて class のときもあることを知ってさらにショックを受ける
- 808 :デフォルトの名無しさん:2014/10/17(金) 07:45:20.05 ID:o5eX2ePN
- >>807
そんな使い方もあるの?
深淵に足を踏み入れなくてよかったとつくづく思うよ
自分でクラスを書いたり人の書いたクラスを読んだりすることなく
人生を終えられたら、それは幸せなことだよね
- 809 :デフォルトの名無しさん:2014/10/17(金) 08:05:56.76 ID:QP1DIUi6
- 知らぬが仏という意味ならそうだね
- 810 :デフォルトの名無しさん:2014/10/17(金) 08:13:38.18 ID:1uF0w0Sv
- もう残りの人生も少ない
ただのひとつの関数も作らずに
逐次処理と条件分岐とループだけで終えたい
- 811 :デフォルトの名無しさん:2014/10/17(金) 08:23:21.73 ID:as22cljE
- >>806
いろんなサイトをぐぐってはいるけど、和訳でもいいから公式のチュートリアルは見てないとかいう落ちある?
http://docs.python.jp/3.4/tutorial/classes.html#classes
- 812 :デフォルトの名無しさん:2014/10/17(金) 08:27:54.84 ID:as22cljE
- でもこれ、Pythonのチュートリアルであってプログラミングのチュートリアルじゃないよな
>C++ の用語で言えば、通常のクラスメンバ (データメンバも含む) は (プライベート変数 に書かれている例外を除いて) public であり、メンバ関数はすべて 仮想関数(virtual) です。
>Module-3 にあるような、オブジェクトのメンバをメソッドから参照するための短縮した記法は使えません: メソッド関数の宣言では、オブジェクト自体を表す第一引数を明示しなければなりません。
>第一引数のオブジェクトはメソッド呼び出しの際に暗黙の引数として渡されます。Smalltalk に似て、クラスはそれ自体がオブジェクトです。
- 813 :デフォルトの名無しさん:2014/10/17(金) 08:28:49.08 ID:as22cljE
- 何故チュートリアルに三つも他言語の名前を使ってしまうのか・・
- 814 :デフォルトの名無しさん:2014/10/17(金) 08:47:39.88 ID:1uF0w0Sv
- >>813
プログラム関連の説明書きは
C,C++の最低限の知識がある前提で書かれているものが多い
Cでいう〇〇だとか、C++の〇〇に相当する機能であるだとか。
オブジェクト指向系だと、それにsmalltalk,JAVAが加わる
それにもやっぱりCでいう〇〇とかいうのが出てくる
Cを知らない奴は相手にしませんって前書きに書いとけって何度思ったことか
- 815 :デフォルトの名無しさん:2014/10/17(金) 08:52:57.89 ID:as22cljE
- C++, Modula-3, Smalltalkの名前が無ければ、この説明は成り立たないのか
成り立たないのだとしたら、何故名前を出さなくても分かるようなチュートリアルにしてくれないのか・・
あと、ググれってプログラミングのアドバイスで最悪の答えだと思う
- 816 :デフォルトの名無しさん:2014/10/17(金) 08:55:23.79 ID:g6ZBfCoZ
- >>806
どうぞ。
class Banana:
def __init __(self, iro, aji):
self.iro = iro
self.aji = aji
def check(self):
if self.aji is not "甘い":
print("「まだ駄目」")
bana1 = Banana("黄色", "甘い")
bana2 = Banana("緑色", "渋い")
bana2.check()
#「まだ駄目」
- 817 :デフォルトの名無しさん:2014/10/17(金) 10:19:59.07 ID:9Bl66x9H
- いい加減Python3.xに移行しろよ
2.7を切り捨てた跡のLinuxにインストールされるデフォルトバージョンを3.4にしろよ
決して3.2とかいつまで使わせるんだよ
- 818 :デフォルトの名無しさん:2014/10/17(金) 10:26:18.03 ID:ynxMbyDc
- >>816
文字列の比較は is でやったらだめ
長い文字列だと == は True で is が False とか起こりうる
- 819 :デフォルトの名無しさん:2014/10/17(金) 10:30:51.90 ID:yTetx1VL
- >>817
切り捨てるどころか2020年までサポート延長しましたが?
まじワロリーヌですわ
- 820 :デフォルトの名無しさん:2014/10/17(金) 10:31:50.74 ID:3zlldvS3
- 一見python関係ないようなツールをインストールしてもビルトスクリプトが2系を使ってる場合が多い
pyenv使ってるもののデフォルトが2じゃないとその辺でいちいち失敗するしストレスがマッハだわ
- 821 :デフォルトの名無しさん:2014/10/17(金) 10:38:39.55 ID:ETQxRSUe
- C:\work>python -V
Python 3.2
- 822 :デフォルトの名無しさん:2014/10/17(金) 11:10:08.40 ID:HZvg3la9
- >>813
確かに日本人がフランス語を習うときに
英語ではこういうことです
とか多言語の知識前提に教えられても困る罠
- 823 :デフォルトの名無しさん:2014/10/17(金) 11:13:12.15 ID:HZvg3la9
- python3 は perl6 と同じ運命をたどると予想
- 824 :デフォルトの名無しさん:2014/10/17(金) 11:20:22.17 ID:Lmpe/lkW
- Pythonを最初の言語に選ぶやつなんていないという前提のチュートリアルなのかも
- 825 :デフォルトの名無しさん:2014/10/17(金) 11:21:58.60 ID:ynxMbyDc
- そこらへんは知ってる人向けなので知らなかったら読み飛ばせばいい
第一 Module-3(ママ)とか誰も知らない
- 826 :デフォルトの名無しさん:2014/10/17(金) 12:02:10.24 ID:88x3y3Tf
- reStructuredTextのインデントってスペース3個なのは何か暗黙の了解なんですか?
Sphinxみると3個なんです
- 827 :デフォルトの名無しさん:2014/10/17(金) 12:09:07.22 ID:HZvg3la9
- rubyist?
- 828 :デフォルトの名無しさん:2014/10/17(金) 19:14:55.01 ID:iuzLbdxk
- >>806
オブジェクト指向プログラミング(OOP)は知ってますか?
OOPが分からないとその書き方であるselfは説明しづらいです
最初は標準ライブラリを使ってOOPを体験するのがいいと思います
datetimeあたりが身近な題材でお勧めです
↑考え方
オブジェクト指向プログラミング(OOP)
クラスベースのOOP
OOPをサポートするためのPythonの構文(selfはここ)
↓やり方
- 829 :デフォルトの名無しさん:2014/10/17(金) 19:38:41.92 ID:JhxOb/La
- オブジェクト指向を覚えても日曜プログラマーの自分には使う機会がなかった・・・・
- 830 :デフォルトの名無しさん:2014/10/17(金) 20:19:23.52 ID:Lmpe/lkW
- 日曜プログラマーの人って本職は何なの?SEとか?
- 831 :デフォルトの名無しさん:2014/10/17(金) 20:26:56.47 ID:jIMeQkH1
- 土曜も日曜も関係なくない?
- 832 :デフォルトの名無しさん:2014/10/17(金) 20:29:15.71 ID:JhxOb/La
- >>830
インフラ系SE
体力勝負w
- 833 :デフォルトの名無しさん:2014/10/17(金) 20:32:57.73 ID:JX57Rjwu
- >>806
ありがとう、分からない。
>>828
オブジェクト指向は、プログラムを部品として扱うことで、再利用したり・バグを少なくするって考え方ですよね。
クラスベースっていうのは、部品をクラスとして定義するということですか?
この程度のあいまいな理解はしているつもりですが、selfについてはまだ理解できません。
概念的なことだけでも、教えてください。
あとは理解できることを期待しながら、プログラムを組むつもりです。
blenderで使うためにpythonをやってるんです。
それと、__init__も躓いている部分です。
initって何でしょうか?初期化(変数の宣言と代入を同時に行う)のために使うと書いてありますが、どんな場合に役立つのですか?
- 834 :デフォルトの名無しさん:2014/10/17(金) 20:47:35.45 ID:JhxOb/La
- プロパティを持たせるのってその処理のデータをそれぞれに維持できるからじゃないの?
なんか違ったらごめん
- 835 :デフォルトの名無しさん:2014/10/17(金) 21:16:08.24 ID:jIMeQkH1
- http://coreblog.org/ats/translation-of-why-explicit-self-has-to-stay/
- 836 :デフォルトの名無しさん:2014/10/17(金) 21:18:23.89 ID:as22cljE
- >>833
>initって何でしょうか?初期化(変数の宣言と代入を同時に行う)のために使うと書いてありますが、どんな場合に役立つのですか?
>このクラスのインスタンス生成操作 (クラスオブジェクトの “呼出し”) を行うと、空のオブジェクトを生成します。
>多くのクラスは、オブジェクトを作成する際に、カスタマイズされた特定の初期状態になってほしいと望んでいます。
>そのために、クラスには __init__() という名前の特別なメソッド定義することができます。
(http://docs.python.jp/3.4/tutorial/classes.html#class-objects)
- 837 :836:2014/10/17(金) 21:27:47.09 ID:as22cljE
- 簡単に言うと、そのクラスを使う上で最低限必要な情報はインスタンス生成時に要求しておきましょうっていうこと
例えば、urllib.request.Requestだと
def __init__(self, url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None):
となってて、__init__内でself.full_urlにurlが定義される
__init__がなければ、いろんなところでurlを引数に要求しないといけないけど、インスタンス生成時にそれを渡してもらえばself.full_urlで他の関数からもアクセスできる
- 838 :836:2014/10/17(金) 22:19:29.48 ID:as22cljE
- >>833
ていうか
>初期化(変数の宣言と代入を同時に行う)のために使うと書いてありますが
この初期化="変数の宣言と代入を同時に行う"って、どこに書いてあるの?
- 839 :デフォルトの名無しさん:2014/10/18(土) 00:02:33.77 ID:T+vEH8Sg
- 無限ループをキー入力したら止めるようにしたいのですが、簡単なサンプルがあれば
教えていただけると助かります。
- 840 :デフォルトの名無しさん:2014/10/18(土) 00:13:42.93 ID:H02BWtzc
- ctrl+c
- 841 :デフォルトの名無しさん:2014/10/18(土) 01:21:14.02 ID:SG/PMloy
- 初心者です。Python2.7で、thread.threadingで生成したスレッドを
一時停止させたあとに再開する方法は、無いでしょうか。
threadingで呼び出している関数のなかで、While ループしてて
threadingのEvenがset()されたら、while抜ける仕組みで一時停止っぽい
ことはできたんですけど、またその関数を呼ぶことができない><
startは2回呼んじゃだめって
おこられちゃう。 ><
- 842 :デフォルトの名無しさん:2014/10/18(土) 02:18:23.53 ID:I9h7M137
- >>841
threading.Condition()
- 843 :デフォルトの名無しさん:2014/10/18(土) 04:16:48.35 ID:KHrmHp6N
- >>833
上手い説明が思い浮かばないのでselfの役割をサンプルで書きます
クラス定義の中に現れるselfと外で作られたdを見比べて下さい
import datetime
class MyDate(datetime.date):
def ja_date(self):
return '{}年{}月{}日'.format(self.year, self.month, self.day)
d = MyDate(2014, 10, 18)
print([d.year, d.month, d.day]) # [2014, 10, 18] と表示される
print(d.ja_date()) # 2014年10月18日 と表示される
- 844 :デフォルトの名無しさん:2014/10/18(土) 04:37:41.95 ID:KHrmHp6N
- >>833
他のプログラミング言語から引用せずに私の解釈でOOPを説明します
Q:オブジェクト指向プログラミング(OOP)とは?
A:オブジェクトを単位としてプログラムを組み立てていく設計方法
Q:オブジェクトとは?
A:関連性のあるデータや操作を結びつけてまとめた構造
Q:OOPの利点は?
A:関連するものをまとめることで可読性や改変の容易さが向上する
Q:クラスベースのOOPとは?
A:クラスと呼ばれるオブジェクトの設計図のようなものを作るOOPの方法
クラスを元に生成したオブジェクトは(クラス名)のインスタンスと呼ばれる
- 845 :デフォルトの名無しさん:2014/10/18(土) 07:03:01.65 ID:3SSW63UD
- >>804 の質問をしていた者です。
scoped_session()とsessionmakerを以下のように設定すると
検索での一定時間経過後のエラーは出なくなりました。
○ Session = scoped_session(sessionmaker(autocommit=True, autoflush=True, bind=engine))
× Session = scoped_session(sessionmaker(bind=engine))
× Session = scoped_session(sessionmaker(autocommit=False, autoflush=True, bind=engine))
○ Session = scoped_session(sessionmaker(autocommit=True, autoflush=False, bind=engine))
- 846 :デフォルトの名無しさん:2014/10/18(土) 07:06:57.69 ID:3SSW63UD
- >>818
ご指摘ありがとうございます。
知らなかったらどこかで躓いてしまうところでした。
- 847 :デフォルトの名無しさん:2014/10/18(土) 11:02:42.30 ID:BJVqhy6o
- クラスについては私も勉強中だけど、「Pythonスタートブック」の説明が比較的わかりやすかった。
超シンプルなクラスを、self抜きで作ってどうしてエラーが出るかって感じで説明してくれてる。
__init__についても同様。こっちは「初めてのPython 第3版」も理解しやすかったかな。
- 848 :デフォルトの名無しさん:2014/10/18(土) 11:31:53.24 ID:5/nDFz0B
- 今日は宣伝日和
- 849 :デフォルトの名無しさん:2014/10/18(土) 12:06:27.65 ID:/bV95tiS
- C知ってる前提で教えて良いなら
selfはCではFILE*とかに相当すると思えば良い
- 850 :デフォルトの名無しさん:2014/10/18(土) 13:01:55.22 ID:5xJiSuw7
- 初めてのPythonの原著の評価amazonでみたけど、日本語版と同じようなことになってたな
星5つけてるコメントですら、これだけ分厚い理由を説明させてくれとか初級者にはどうだろうみたいなこと書いてあってわらった
いい本なんだけどね・・
- 851 :デフォルトの名無しさん:2014/10/18(土) 13:07:11.05 ID:5xJiSuw7
- このコメントも面白かった
いいところ : Pythonの全てをカバーしてる
悪いところ: Pythonの全てをカバーしてる
ひどいところ: Pythonの全てをカバーしてる
ほんと、いい本はいい本なんだけどね・・
- 852 :デフォルトの名無しさん:2014/10/18(土) 13:10:43.43 ID:jfF8Y5hT
- >>839
Windowsの例
ESC = '\x1b'
import msvcrt
while True:
print u'Loop中!'
#ESCキーが押されたらloop抜け出る
if msvcrt.kbhit():
inp = msvcrt.getch()
if (inp == ESC): break
- 853 :デフォルトの名無しさん:2014/10/18(土) 13:17:07.05 ID:bNW/9j5P
- 正直Pythonは公式のドキュメントさえ読めば十分だとおも
- 854 :デフォルトの名無しさん:2014/10/18(土) 13:24:51.85 ID:ldjzaz8r
- self はレシーバへの参照
f = Foo(); f.m() ってしたら Foo.m(f) が呼ばれて
self にレシーバである f が入る。それだけ
って言われても狐につままれた気分に違いない
- 855 :デフォルトの名無しさん:2014/10/18(土) 14:39:22.87 ID:mzkaImX0
- >>854
なるほど
しっくりくる
クラスメソッドとかスタティックメソッドの説明が不足してるけど
- 856 :デフォルトの名無しさん:2014/10/18(土) 18:04:22.32 ID:PLV+4ceY
- そもそもスタティックメソッドは関数がない言語だから存在する名前
- 857 :デフォルトの名無しさん:2014/10/19(日) 15:22:01.29 ID:A7yyoHDT
- dicからイテレータを利用して取り出したいですが
i = iter(foo)
next(i)
これだとキーは取り出せますが、ほしいのはキーではなく値のほうなのです。
教えてください。
- 858 :デフォルトの名無しさん:2014/10/19(日) 15:40:15.81 ID:n9kPv86G
- foo[i.next()]
- 859 :デフォルトの名無しさん:2014/10/19(日) 15:46:13.06 ID:A7yyoHDT
- >>858
ありがとうございます。
私の環境では、foo[next(i)] で動きました。
- 860 :デフォルトの名無しさん:2014/10/19(日) 15:48:31.75 ID:5cydbFt+
- d.itervalues()
- 861 :デフォルトの名無しさん:2014/10/19(日) 18:22:53.59 ID:7zD1n8to
- i = iter(foo.values())
- 862 :デフォルトの名無しさん:2014/10/19(日) 20:44:40.80 ID:io6vECig
- 質問させてください
dom = lxml.html.fromstring(html)
results = dom.xpath(xPath)
でやると取得結果がリストで出てきます
それはいいのですが、自分の使っているLinuxのPythonの使用で順不同で格納されてしまい困っています
これはどのようにすれば上から取得順に並べることができるのでしょうか?
- 863 :デフォルトの名無しさん:2014/10/19(日) 20:57:20.20 ID:pAlNrbxL
- >>843
回答ありがとうございます。
なるほど、分からないです。
前提知識が必要なので、今の段階で深く理解しようとしても、無駄かもしれないです。
ある程度いじくりながら、理解できる日を待ちます。
- 864 :デフォルトの名無しさん:2014/10/19(日) 21:20:07.23 ID:5cydbFt+
- >>862
ローカルに保存してある xml をパースしてもそうなるの?
できれば再現コードが欲しい
- 865 :デフォルトの名無しさん:2014/10/22(水) 16:27:03.07 ID:FR4rCNdU
- loggingモジュールを使ったロギングを試しているのですが
logger = logging.getLogger(__name__)
でログを取っている複数モジュールのログを一括して設定するにはどうやるのが一般的でしょうか
import a, b
logger = logging.getLogger(*)
logger.setLevel(logging.DEBUG)
...
的なことをしたいです
モジュールa,bは色々なところから呼ばれる予定です
- 866 :デフォルトの名無しさん:2014/10/22(水) 16:33:03.12 ID:FR4rCNdU
- 単に引数無しでlogging.getLogger()ってすればいいだけでした・・・
ゴメンナサイゴメンナサイ
- 867 :デフォルトの名無しさん:2014/10/22(水) 17:19:22.15 ID:09vRtLa/
- 報告乙
- 868 :デフォルトの名無しさん:2014/10/23(木) 03:57:22.24 ID:Ji0zyhni
- DBから書籍名を取ってきて以下のような日本語フォルダへのリンクをテンプレートに表示したい場合、1・2のどちらの方がいいでしょうか?
<a href="./書籍A/">書籍A</a>
1.DBから書籍名を取得してURLエンコードして書籍名を作り、両方をテンプレートに送る。
2.DBから書籍名を取得して書籍名をURLエンコードする自作の関数に送る。書籍名と返ってきた書籍名をテンプレートに送る。
2は回りくどい気がするのですが、似たような処理がある時には使い回しが出来そうなのでどちらが良いか迷っています。
- 869 :デフォルトの名無しさん:2014/10/23(木) 06:47:36.50 ID:QsQhyUlJ
- 3.
テンプレには<my書籍Alink>みたいな記述をしておく
"<a href="./書籍A/">書籍A</a>"を返す自作関数をつくる
自作関数に書籍名を渡して返って来た文字列をテンプレに送る
- 870 :デフォルトの名無しさん:2014/10/23(木) 09:17:50.80 ID:GQ45cZ/9
- テンプレートエンジンは?
- 871 :デフォルトの名無しさん:2014/10/23(木) 09:56:54.18 ID:Ji0zyhni
- >>869
<my書籍Alink>の部分が初心者の私にはハイレベル過ぎて…。
>>870
jinja2です。
このブログ記事を参考にして作っています。
http://x1.inkenkun.com/archives/221
- 872 :デフォルトの名無しさん:2014/10/24(金) 16:23:10.66 ID:xqerE7s/
- Python Tools for VS
PTVS 2.0: A quick overview (2-4 mins per feature)
https://www.youtube.com/watch?v=JNNAOypc6Ek
- 873 :デフォルトの名無しさん:2014/10/24(金) 17:30:21.32 ID:sqdwGTiq
- 俺の見てるスレに悉く貼ってんじゃねえ
- 874 :デフォルトの名無しさん:2014/10/24(金) 19:55:56.42 ID:sV6ypEtj
- >>873は激務で疲れてて自覚がないんだろうけど、
>>872はお前だよ?
気づいてなかったの?
- 875 :デフォルトの名無しさん:2014/10/24(金) 20:13:39.60 ID:tktTiC6I
- いつの間にか人格が分裂していたのか
- 876 :デフォルトの名無しさん:2014/10/24(金) 20:26:13.39 ID:geiPH72p
- 漏れもたまに寝てる間に自分で書いたんじゃないかと思うスレをみかけることがある
- 877 :デフォルトの名無しさん:2014/10/24(金) 20:27:37.89 ID:geiPH72p
- スレじゃなかった
レスだ
- 878 :デフォルトの名無しさん:2014/10/26(日) 20:39:38.29 ID:riJkIcxu
- すごい大きい辞書をpickleで保存しています
デバッグなどでその辞書を使うモジュールを何回も実行する必要があるとき,
実行する度に一からこのデータをメモリに載せるのですごく時間がかかってしまいます
最初の一回だけデータをメモリ上に載せておいて,モジュールを実行するときにはそれを呼び出すような方法ってありますか?
- 879 :デフォルトの名無しさん:2014/10/26(日) 21:29:38.02 ID:zGPdvemQ
- >>878
def getDic(static=[]):
if static:
d = static[0]
else:
with open("picklefile", "rb") as f:
d = pickle.load(f)
static.append(d)
return d
- 880 :デフォルトの名無しさん:2014/10/27(月) 08:45:28.81 ID:h6rnjEJC
- >>878
cPickle
使ってる?
> 実行する度に一からこのデータをメモリに載せる
って、詳細を考えると「読み込み」と「変換」があるけど、知ってました?
disk ==> on memory(=data)
の read に時間がかかってるとは思わなかったり。
data ==> Python object
の変換に時間がかかってるんじゃないの?
s1 = datetime.datetime.now()
with open("a.txt") as f:
data = f.read()
e1 = datetime.datetime.now()
s2 = datetime.datetime.now()
d = cPickle.loads(data)
e2 = datetime.datetime.now()
(e1 - s1).total_seconds()
(e2 - s2).total_seconds()
len(data)
↑で、disk => on memory の所要時間計測した上での話?
参考までに、
len(data)
の値を教えて欲しかったり。
- 881 :デフォルトの名無しさん:2014/10/27(月) 08:52:19.95 ID:52HwiArl
- まさかファイルだけ読んで辞書にしないでメモリに置くと思ってるの?
後者の話に決まってるじゃん
- 882 :デフォルトの名無しさん:2014/10/27(月) 21:28:52.19 ID:fzHl9qmN
- >>878
コード的に簡単なのは、インタプリタを動かして、その pickle ファイルを読み込んで辞書にしておいて、
デバッグは、スクリプトを import して main() を呼び出すときにその辞書を引数で渡せるようにする。
ってとこかな。
- 883 :デフォルトの名無しさん:2014/10/28(火) 00:27:51.08 ID:tEBKTM0x
- UTCで年月日時だけを表示する方法は無いでしょうか
分と秒はいらないんです
- 884 :デフォルトの名無しさん:2014/10/28(火) 00:29:47.95 ID:ojgQDR0D
- strftime
- 885 :デフォルトの名無しさん:2014/10/30(木) 22:59:39.13 ID:HS4ua6vI
- 【プログラミング言語別!】求人給与額ランキング
http://hrog.net/2014102910652.html
- 886 :デフォルトの名無しさん:2014/10/30(木) 23:03:18.90 ID:isG01Zqw
- python覚えて高年収な人ってスキルがずば抜けてる人ぐらいだろ
- 887 :デフォルトの名無しさん:2014/10/30(木) 23:24:23.71 ID:PI4dm/7f
- 相変わらずPHPとJavaばっかだね
Rubyはやっぱり声がでかいだけだった
- 888 :デフォルトの名無しさん:2014/10/30(木) 23:45:16.46 ID:dZ1XAJfS
- >>885
安すぎだろ
- 889 :デフォルトの名無しさん:2014/10/30(木) 23:47:05.44 ID:lt8zMZcQ
- >>886
そんなことない
スキル普通な個人事業主だけど、消費税払ってる
- 890 :デフォルトの名無しさん:2014/10/30(木) 23:55:28.58 ID:Hek/m3sU
- >>885のランキングの考察が当たってるなら、"日本では" Pythonプログラマーが不足してるから
その供給不足で値段が上がってるだけみたいじゃん。
- 891 :デフォルトの名無しさん:2014/10/30(木) 23:55:35.10 ID:isG01Zqw
- 日本語でおk
- 892 :デフォルトの名無しさん:2014/10/31(金) 00:13:48.49 ID:KvLV+3P1
- >>891
どのスレに言ってんの?
- 893 :デフォルトの名無しさん:2014/10/31(金) 01:23:34.23 ID:3qU5wYGK
- このスレじゃね
- 894 :デフォルトの名無しさん:2014/10/31(金) 01:24:30.35 ID:pjs8kMNX
- なんでこういうの平均ばっかり挙げるんだろう、せめて最小最大中央値辺りみたいじゃん
- 895 :デフォルトの名無しさん:2014/10/31(金) 03:39:39.85 ID:P9Nu5aP4
- この結果を受けてPython関連の書籍がたくさん出版されたら嬉しい。
- 896 :デフォルトの名無しさん:2014/10/31(金) 07:22:03.28 ID:7zJ4k6z8
- 牌が無いのが判明したんだから
減りこそすれ増えるわけがない
同じデータを見てるのに
どうしてこう見当違いの分析をしてしまうのか
- 897 :デフォルトの名無しさん:2014/11/01(土) 08:31:19.58 ID:90vZMt3f
- 需要が増えたのか供給が少ないのかはこのデータからはわからないだろうが
- 898 :デフォルトの名無しさん:2014/11/01(土) 09:10:39.66 ID:VFzoWWB5
- これだけ衝撃的に少ないなら
そんな誤差を加味しても大勢に影響はない
それともなんだ、サイレントマジョリティを考慮に入れるとPHP抜くのか?
- 899 :デフォルトの名無しさん:2014/11/01(土) 09:13:47.40 ID:N73zy/Fb
- ぺちぱー
- 900 :デフォルトの名無しさん:2014/11/02(日) 20:06:38.84 ID:SOlT2V06
- pythonをやろうと思うのですが、入門書は何がいいでしょか? あと、アドバンスド(上級者向け)でいいのありますか?
プログラム経験はありです(C、C++)。
- 901 :デフォルトの名無しさん:2014/11/02(日) 20:09:22.82 ID:q60nWMQW
- pythonのドキュメントで十分だと思うけど
- 902 :デフォルトの名無しさん:2014/11/02(日) 20:15:29.95 ID:YUqViWJV
- プログラム経験あればドキュメントだけで余裕
- 903 :デフォルトの名無しさん:2014/11/02(日) 20:19:26.23 ID:SOlT2V06
- ts
- 904 :デフォルトの名無しさん:2014/11/03(月) 03:25:54.23 ID:Di6XQAPl
- >>900
C,C++できるなら
わからなくなったらググればいい。
どうしても本欲しいなら導入だけ立ち読みしてこい
- 905 :デフォルトの名無しさん:2014/11/03(月) 05:09:22.47 ID:VWaLlR99
- このスレの人はRubyスレの人と比べて親切だから
色々教えてくれるのでありがたい
- 906 :デフォルトの名無しさん:2014/11/03(月) 09:30:07.60 ID:QyHwFOCC
- こんなところで聞くレベルのくせに上級者向けとかギャグか
- 907 :デフォルトの名無しさん:2014/11/03(月) 10:29:38.49 ID:nLUJkLOA
- Windows環境で2.7を試しています。
パイプでMoreに流したときに出る
Error 32 Broken pipe
対策はどの様にすればいいですか?
linuxで動いたSIGDFLすげ替えは動かないです。
- 908 :デフォルトの名無しさん:2014/11/03(月) 10:51:57.75 ID:Avy9gAi6
- codecsが合ってないとか?
- 909 :デフォルトの名無しさん:2014/11/03(月) 10:52:38.02 ID:1DGR/mlS
- python Error 32 Broken pipe
ググレばたくさん情報出てきたけど
- 910 :デフォルトの名無しさん:2014/11/03(月) 12:21:46.10 ID:/LBlrvfE
- cmdじゃなくてmsysのbashとかでも出るの?
- 911 :デフォルトの名無しさん:2014/11/03(月) 16:15:22.47 ID:uequofEA
- >パイプでMoreに流したときに
あるある
- 912 :デフォルトの名無しさん:2014/11/03(月) 17:29:57.88 ID:ZPswqtEs
- Linuxで2.7のモジュール使いたいのに標準で入ってる2.6がインストールされるんですけど
どうにか対処ってできないでしょうか・・・
- 913 :デフォルトの名無しさん:2014/11/03(月) 17:35:18.77 ID:0K+wdDei
- どうにかって何
会社のマシンだから勝手にインストール出来ないみたいな野暮ったい話だったらよそで頼む
- 914 :デフォルトの名無しさん:2014/11/03(月) 17:42:38.10 ID:DIbDX8rG
- >909
いえ、ググって出てきたimport Signalの対処方法は
Windows側だとエラーになります。
linux側だと動いたのですが。
Windowsでの対処方法をご存知でしたら教えてください。
- 915 :デフォルトの名無しさん:2014/11/03(月) 18:00:36.84 ID:dwLQKZMT
- ID変わってるから偽物
- 916 :デフォルトの名無しさん:2014/11/03(月) 18:01:38.54 ID:fCTDh+nn
- は?雑魚は帰れよ
- 917 :デフォルトの名無しさん:2014/11/03(月) 18:25:53.05 ID:h0bCYlRL
- パイプを通るデータのエンコードが合ってないとbrokenになる(ことがある)よ
- 918 :デフォルトの名無しさん:2014/11/03(月) 19:57:32.33 ID:s8zBySEA
- >>912
pyenv
- 919 :デフォルトの名無しさん:2014/11/04(火) 00:08:00.58 ID:mqsyZeNn
- Python勉強したらRubyも勉強する必要ある?
- 920 :デフォルトの名無しさん:2014/11/04(火) 00:09:52.29 ID:IGG5lb2v
- ない
- 921 :デフォルトの名無しさん:2014/11/04(火) 01:37:33.87 ID:UXBRaFUR
- 初心者でも作れるプログラムって何?
たくさん書けって言うけどなにができるんかわからん。
- 922 :デフォルトの名無しさん:2014/11/04(火) 01:44:22.22 ID:YXHSIUkB
- >>921
これとかどうよ?時間あったらやってみたら
http://www.ioi-jp.org/joi/problem_archive-light.html
- 923 :デフォルトの名無しさん:2014/11/04(火) 01:44:27.18 ID:4hH2Cezv
- 誰がそんなこと言ったの
- 924 :デフォルトの名無しさん:2014/11/04(火) 02:09:55.22 ID:UXBRaFUR
- >>922
やってみる。ありがとうございます。
>>923
おれにいってる?
誰というか、ブログとか読み漁ってるとそう言う人が多い。自分の個人の印象だが。
「たくさん書け」というのは、文章も書くことで上達するから妥当性あるかなとは思うけど
畑も違う初学者には辛いお言葉・・。それでも、多くの人は身に着けていったのだから言い訳かなぁ。
- 925 :デフォルトの名無しさん:2014/11/04(火) 04:50:49.89 ID:UYsaPI6O
- 間違ったものをたくさん書いても
間違った書き方が身に付くだけ
- 926 :デフォルトの名無しさん:2014/11/04(火) 07:10:54.42 ID:5vxSHexS
- Python標準リリース - 日本Pythonユーザ会
ttp://www.python.jp/Zope/Zope/download/pythoncore
最新バージョン
Windows用インストーラ
python-3.3.0.msi
最新バージョンを入れたはずなのに
ttp://toro.2ch.net/test/read.cgi/tech/1350718465/631+634
> 631 python: failed to set __main__.__loader__
> 634 それバグ 自分でパッチあててビルドしないと直らない
とかあってびびったけど
ttp://www.python.org/downloads/
見たら 3.4.2 ってのがあって、それダウンロードしたらちゃんと動いたよかったメモ。
ttp://toro.2ch.net/test/read.cgi/tech/1350718465/3
> 最新版直リン - 2.Xが推奨。3.Xはライブラリやドキュメントが使えないことも
やっぱり初心者はお勧め通りにするのがよさげ
- 927 :デフォルトの名無しさん:2014/11/04(火) 07:28:04.75 ID:SfeupY3V
- 最新バージョン(最新とは言ってない)
- 928 :デフォルトの名無しさん:2014/11/04(火) 08:25:39.67 ID:DEPGQlXz
- 3.3って1年以上前じゃねえの
陳腐化した情報さらし続けるって最悪だよな
検索してて思うが、どれだけ世間の時間を無駄にさせてんだろ
- 929 :デフォルトの名無しさん:2014/11/04(火) 09:38:44.93 ID:obX3t5pP
- 2.*のときはもっとひどかったよ
- 930 :デフォルトの名無しさん:2014/11/04(火) 11:00:55.30 ID:QoBkJ2+Q
- >>928
二年以上前
3.3の最新なのかと思ったら3.3.0だし、本当に放置してるんだな
3.3.0からだと脆弱性含めて結構な量の修正入ってるぞ
https://docs.python.org/3.3/whatsnew/changelog.html
最新ニュースが↓だし、移転作業で力尽きたのかな
>2012年8月18日、www.python.jpサーバを移転いたします。
>....
>大規模なリニューアルを行いたいと思ってますので、しばらくお待ち頂きますよう、お願いいたします。
(http://www.python.jp/Zope/Zope.1%3Cscript%3Ealert%28%29;%3C/script%3E)
- 931 :デフォルトの名無しさん:2014/11/04(火) 11:01:55.66 ID:QoBkJ2+Q
- 変なのまじった
http://www.python.jp/Zope/Zope.1
- 932 :デフォルトの名無しさん:2014/11/04(火) 11:04:25.64 ID:srrbBYWq
- pyenv使ってる時に複数の仮想環境にipythonを入れてるんですけど
それぞれの環境ごとにipythonの起動時の処理を記述する方法をおしえてください
何個仮想環境を作ってもipythonの設定ディレクトリって~/.ipythonにしか作られないので
~/.ipython/profile_default\startup\init.pyに書くわけには行きません
- 933 :デフォルトの名無しさん:2014/11/04(火) 11:21:01.17 ID:MltjHLVy
- >>930
移転先は更新されてる
放置されてる古いドキュメントなんて消すか
新しいトップに飛ばすかすればいいのに
- 934 :デフォルトの名無しさん:2014/11/04(火) 11:21:50.23 ID:xwPH9Juu
- ゲームエンジン用に、pythonでパーティクルシステムを作りたいのですが、数学的にどのあたりの知識が必要なんですか?
- 935 :デフォルトの名無しさん:2014/11/04(火) 22:57:05.03 ID:nb8eURc5
- なんで>>1でちゃんと今のpython.jpのURL書いてあんのに古臭いの見て騒いでんのよ。
まあそもそも>>933の言うとおりなんだけど。
- 936 :デフォルトの名無しさん:2014/11/04(火) 23:06:44.25 ID:5vxSHexS
- ぐぐったらあそこが出てきて(震え
- 937 :デフォルトの名無しさん:2014/11/05(水) 00:02:52.86 ID:X+gBZ2Cn
- http://python.rdy.jp/ の公式サイト→日本ユーザー会のリンク先が http://www.python.jp/Zope/ なんだが
- 938 :デフォルトの名無しさん:2014/11/05(水) 01:47:22.74 ID:5zCHFfkS
- >>937
だからなに?
それはそのWikiに文句言う話じゃん。
- 939 :デフォルトの名無しさん:2014/11/05(水) 01:48:07.33 ID:9gbL5eJJ
- ところで、共用体を使おうとするとクラッシュするんですが
ググっても全然出てこないし、使ってないんですかね。
構造体の場合
<Field type=c_ulong, ofs=0, size=4>
<Field type=c_float, ofs=4, size=4>
c_float 型に データ投入
<Field type=c_ulong, ofs=0, size=4>
0.5468
共用体の場合
<Field type=c_ulong, ofs=0, size=4>
<Field type=c_float, ofs=0, size=4>
c_float 型に データ投入
<Field type=c_ulong, ofs=0, size=4>
ここでクラッシュ
↓ここの浮動小数点を使う方法を試したかっただけですが。
ビットを数える・探すアルゴリズム
ttp://www.nminoru.jp/~nminoru/programming/bitcount.html
- 940 :デフォルトの名無しさん:2014/11/05(水) 01:53:05.20 ID:X+gBZ2Cn
- > なんで>>1でちゃんと今のpython.jpのURL書いてあんのに
古いままだってこと
- 941 :デフォルトの名無しさん:2014/11/05(水) 01:59:29.69 ID:5zCHFfkS
- >>940
何が?
- 942 :デフォルトの名無しさん:2014/11/05(水) 08:08:27.65 ID:IDA7DBTr
- >>935へのツッコミだろう
お勉強スレの>>1には移転先のリンクがあるけど
このスレだけ見てても辿りつけない
- 943 :デフォルトの名無しさん:2014/11/05(水) 09:45:13.65 ID:6cY/hPez
- >>939
""
- 944 :デフォルトの名無しさん:2014/11/05(水) 12:01:37.33 ID:9gbL5eJJ
- >>943
.asString() でキャストするのは ctypes では出来ないらしく
str()もcast()もクラッシュします。
コードはこんな感じ
from ctypes import *
#class utest(Structure):
class utest(Union):
pass
utest._fields_ = [("i", c_uint),
("f", c_float)]
print(utest.i)
print(utest.f)
#utest.f = 0.5468
utest.f = cast(0.5468,c_float) ←これはミス
utest.i
print(utest.i)
#これ以降がクラッシュしたり
type(utest.f)
utest.f
print(str(utest.f))
print(cast(utest.f,c_float))
- 945 :デフォルトの名無しさん:2014/11/05(水) 12:38:23.31 ID:IDA7DBTr
- x = utest(f=0.5468)
- 946 :デフォルトの名無しさん:2014/11/05(水) 12:39:09.97 ID:Ez8Dh1St
- なんでutestのインスタンス作らないで直接代入してるの?
- 947 :デフォルトの名無しさん:2014/11/05(水) 13:15:47.45 ID:9gbL5eJJ
- できました。感謝。なるほどなるほどー
基本を押さえてないのに共用体で検索してたから実際のコードがさっぱり出てこなくて。
x = utest(f=0.5468)
print(x)
print(x.i)
print(x.f)
<__main__.utest object at 0x02E88D50>
1057749782
0.5468000173568726
- 948 :デフォルトの名無しさん:2014/11/05(水) 13:28:25.60 ID:DV/kt5fe
- [1,2,3,4,5,6,....,100]
のようなリストを作りたいとき、どうやって記述するのが普通でしょうか?
range(1,101)と書いて作成できるのはわかりましたが、1〜100のリストなのに101がでてきてしっくりきません
なのでほかの書き方があるのではないかと思い質問してます
- 949 :デフォルトの名無しさん:2014/11/05(水) 13:32:30.37 ID:DuWLTClA
- range(1, 101)には101は含まれないけど
- 950 :デフォルトの名無しさん:2014/11/05(水) 13:33:05.30 ID:DuWLTClA
- n = 100
range(1, n+1)
- 951 :デフォルトの名無しさん:2014/11/05(水) 13:43:14.04 ID:DV/kt5fe
- [5,6,...,10]だったら
n=10
range(5,n+1)
とするのでしょうか?
うーんなんか結局直観的じゃなくてすっきりしないですね
- 952 :デフォルトの名無しさん:2014/11/05(水) 14:00:40.81 ID:6PdTuYg9
- 5 から 10 まで数字は 6 個あるだろ
だから
for x in range(6):
print 5 + x
きわめて直観的で判り易いじゃないか
- 953 :デフォルトの名無しさん:2014/11/05(水) 14:20:23.38 ID:DuWLTClA
- 郷に入れば郷に従わないと
こんなところで足止めするようなレベルではない
- 954 :デフォルトの名無しさん:2014/11/05(水) 14:29:16.83 ID:YyHvdJxm
- >>948 は未だ0を発見出来ていない中世ヨーロッパ人程度の知能
- 955 :デフォルトの名無しさん:2014/11/05(水) 14:37:31.07 ID:DV/kt5fe
- >>953
その従うべき郷を知りたかったので質問させてもらった次第です
>>952
要素数から考えるというのはたしかにしっくりしました
こんな風にすればよいですね
ありがとうございます
[i+1 for i in range(100)]
[i+5 for i in range(6)]
- 956 :デフォルトの名無しさん:2014/11/05(水) 14:41:17.26 ID:3/LWbB06
- (ネタだと思いたい)
- 957 :デフォルトの名無しさん:2014/11/05(水) 14:42:51.60 ID:DV/kt5fe
- >>956
この結論は間違っているということ?
- 958 :デフォルトの名無しさん:2014/11/05(水) 14:46:01.80 ID:0NbMP57G
- >>948 は IT 土方の VBer
- 959 :デフォルトの名無しさん:2014/11/05(水) 14:49:41.62 ID:0NbMP57G
- >>957
得られる結果は同じでも
計算量は確実に増えてるんじゃね
- 960 :デフォルトの名無しさん:2014/11/05(水) 14:49:47.70 ID:DV/kt5fe
- 土方や知能は否定しませんので教えてほしいです
みなさんは以下の関数をどう書くのでしょうか?
・5以上10以下の整数を含むリストを戻り値として返す関数
- 961 :デフォルトの名無しさん:2014/11/05(水) 14:55:16.74 ID:qk8qyFWi
- >>960
python2 -> range(-5, 11)
python3 -> list(range(-5, 11))
- 962 :デフォルトの名無しさん:2014/11/05(水) 14:58:30.07 ID:0NbMP57G
- >>> def g(min, max):
......n = min
......while n <= max:
........yield n
........n += 1
...
>>> f = lambda min, max: list(g(min, max))
>>> f(5, 10)
[5, 6, 7, 8, 9, 10]
- 963 :デフォルトの名無しさん:2014/11/05(水) 14:59:19.11 ID:3/LWbB06
- a = range(5, 10); a.append(10)
- 964 :デフォルトの名無しさん:2014/11/05(水) 15:19:54.48 ID:zEGSOnRu
- irb(main):001:0> 5..10
=> 5..10
irb(main):002:0> (5..10).class
=> Range
irb(main):003:0> (5..10).to_a
=> [5, 6, 7, 8, 9, 10]
- 965 :デフォルトの名無しさん:2014/11/05(水) 16:18:08.94 ID:rjAy3mh6
- >>964
おかえりください
てんてんなのかてんてんてんなのかいまだにおぼえられません
- 966 :デフォルトの名無しさん:2014/11/05(水) 16:20:58.05 ID:XPxSL9Pk
- 次スレはよ
- 967 :デフォルトの名無しさん:2014/11/05(水) 16:21:43.43 ID:eEJxm3Ur
- sageteoffでな
- 968 :デフォルトの名無しさん:2014/11/05(水) 16:41:41.95 ID:Awvl8HhM
- くだすれPython(超初心者用) その25©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1415173201/
- 969 :デフォルトの名無しさん:2014/11/05(水) 18:57:17.88 ID:J5dkBHi7
- >>960
>>> def f(n, m):
return list(range(n, m + 1))
>>> f(5, 10)
[5, 6, 7, 8, 9, 10]
>>> l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> l[5:11]
[5, 6, 7, 8, 9, 10]
直感的じゃないとかいってないで慣れた方がいいと思う
むしろシーケンス型の要素の指定ってインデックス(0から数えて何番目)で指定するもんだし
- 970 :デフォルトの名無しさん:2014/11/05(水) 19:07:16.44 ID:IDA7DBTr
- 逆にrandom.randintは何故存在するのか
- 971 :デフォルトの名無しさん:2014/11/05(水) 19:51:09.90 ID:FFOVrxV7
- randintは(]
- 972 :デフォルトの名無しさん:2014/11/05(水) 20:52:34.31 ID:rjAy3mh6
- range が [ ) で randint は [ ] じゃなくて?
- 973 :デフォルトの名無しさん:2014/11/05(水) 21:45:48.79 ID:85jo8McV
- (ネタだと思いたい)
- 974 :デフォルトの名無しさん:2014/11/05(水) 22:19:11.44 ID:aqzat7V7
- (ネタ]
- 975 :デフォルトの名無しさん:2014/11/06(木) 06:23:09.51 ID:oudJfJTT
- [ネタニエフ)
- 976 :デフォルトの名無しさん:2014/11/06(木) 07:23:09.40 ID:1AJgCGK+
- >>962-963
超初心者用スレなんだから
ネタ回答でレスするのはやめとけ
- 977 :デフォルトの名無しさん:2014/11/06(木) 07:37:07.63 ID:z2wp3D5L
- range [) わかる
randrange [) わかる
randint [] は?
- 978 :デフォルトの名無しさん:2014/11/06(木) 09:49:12.99 ID:Jg48RgBo
- randint()が気に入らないなら
choice(range())を使えば良い
- 979 :デフォルトの名無しさん:2014/11/06(木) 09:50:59.46 ID:Jg48RgBo
- ああこっちがいいか
random.randrange([start], stop[, step])
range(start, stop, step) の要素からランダムに選ばれた要素を返します。
この関数は choice(range(start, stop, step)) と等価ですが、実際には range オブジェクトを生成しません。
バージョン 1.5.2 で追加.
random.randint(a, b)
a <= N <= b であるようなランダムな整数 N を返します。
- 980 :デフォルトの名無しさん:2014/11/06(木) 17:48:59.22 ID:vn52qUON
- 「みんなのPython webアプリ編」がhtmlで読めるようになったとツイートされまくってますが、なぜあんなに騒がれているのでしょうか?
情報が古過ぎてあまり役に立たないと思うのですが。
- 981 :デフォルトの名無しさん:2014/11/06(木) 17:51:14.34 ID:i9PeqnZd
- Twitterの愚民なんていつもくだらんこと喋ってるでしょ
気にせんでよろしい
- 982 :デフォルトの名無しさん:2014/11/06(木) 17:51:24.65 ID:ntLQp+bs
- 同意します
- 983 :デフォルトの名無しさん:2014/11/06(木) 18:40:10.70 ID:aYOy4vHI
- >>980
質問してるふりをした宣伝乙
- 984 :デフォルトの名無しさん:2014/11/06(木) 21:24:23.07 ID:vn52qUON
- >>983
ありがとうございます。
大変悲しい気分になりました。
- 985 :デフォルトの名無しさん:2014/11/06(木) 22:30:43.53 ID:M0f05I/w
- さすが便所の落書き
- 986 :デフォルトの名無しさん:2014/11/06(木) 23:14:10.14 ID:hvhAxXTC
- ステマ臭しかしねえ
- 987 :デフォルトの名無しさん:2014/11/07(金) 19:55:22.25 ID:hhmEWezK
- >>986
ソフトバンクが嫌いなのでソフトバンククリエイティブの本を宣伝する気なんてさらさらありません。
- 988 :デフォルトの名無しさん:2014/11/07(金) 20:07:33.70 ID:ZGbVWO01
- 上の口ではそんなこと言ってますが…
- 989 :デフォルトの名無しさん:2014/11/08(土) 09:33:36.81 ID:3dfXBQLl
- >>987
気持ち判ります
わたしも出来るだけ避けてます
246 KB
■ このスレッドは過去ログ倉庫に格納されています
★スマホ版★
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 05.05 2022/08/31 Walang Kapalit ★
FOX ★