1 名前:デフォルトの名無しさん mailto:sageteoff [2015/09/04(金) 07:05:12.28 ID:6Gds/3zT.net] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その26 peace.2ch.net/test/read.cgi/tech/1431763770/ 関連スレ Pythonのお勉強 Part50 peace.2ch.net/test/read.cgi/tech/1413474092/ ◆関連リンク 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 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 07:09:43.39 ID:x7fRT8f0.net] |....,,__ |_::;; ~"'ヽ | //^''ヽ,,) | i⌒" | ∀`) < 誰もいない きのこるならいまのうち |⊂ | ノ _,,,......,,__ /_~ ,,...:::_::;; ~"'ヽ (,, '"ヾヽ i|i //^''ヽ,,) ^ :'⌒i i⌒" |( ´∀`) < きのこ のこーのこ げんきのこ ♪ |(ノ |つ | | ⊂ _ ノ ""U _,,,......,,__ /_~ ,,...:::_::;; ~"'ヽ (,, '"ヾヽ i|i //^''ヽ,,) ^ :'⌒i i⌒" (´∀` )| < エリンギ まいたけ ブナシメジ ♪ ⊂| (ノ | | | ヽ _ ⊃ .U"" | | ミ | ミ サッ! | ミ |
3 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 07:10:37.53 ID:x7fRT8f0.net] ┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘
4 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 10:18:55.12 ID:efXmgHpK.net] ノ ゚.ノヽ , /} ... ,,イ`" 、-' `;_' ' ..::::::::::::::... ,-、 _.._ ( (,(~ヽ'~ ..::::::::::::::::::::::: )'~ レー' 〉 ヽ i`'} .::::::::::::::::::::::: ~つ '-ー、 i | i' ...::::::::::::::::::::::: / < / 。/ ! ......::::::::::::::::::::::::: これは>>1 乙じゃなくて / ~^´ /},-'' ,●:::::::::::::::::::::::::::::::::::: i、 ,i' _,,...,-‐-、/ i :::::::: .::::::::::::: ..ゝ <,,-==、 ,,-,/ .::::::::::: 放射能がうんたら ) {~''~>`v-''`ー゙`'~ ..::::::::: ........::. { レ_ノ ..::::::::. ......::::::::: ノ '' ..::::::: ...::.:...::::::::: .::::::::: ...:......:::::::::::: . .:::::::::::. ..... .. ..:::::::::::::::::::::::: :::. ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. :: ::.. .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::: ::. ::::::::::::::::: :::::::::::::::::::::::::::::: ::::: .:: ::. :::
5 名前:デフォルトの名無しさん [2015/09/04(金) 20:27:20.54 ID:x7fRT8f0.net] 君ら初心者いじめるの好きだねw
6 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 05:28:45.51 ID:ZKXW4+L0.net] 辛辣な人・意地悪な人多いよね 日本じゃマイナーな言語なのに その中で知識を誇っても虚しいだけだ
7 名前:デフォルトの名無しさん [2015/09/05(土) 05:45:34.94 ID:xb8mS1yp.net] で >>973 は どうすればよかった?
8 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 07:07:24.04 ID:SHK8Doz8.net] 前スレ984に書かれてる対処方法でFA
9 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 09:14:00.49 ID:DTTTMVx9.net] numpy.splitの逆をやるルーチンってないですか? ndarrayのリストを渡して任意のaxisで結合してほしい。
10 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 11:25:39.64 ID:yNAOhLZf.net] numpy.stack系関数かな
11 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 08:28:38.97 ID:0LRHIEGw.net] バイナリデータを読み込み、指定したバイト区間ごとに区切って リストやタプルに格納する方法を知りたい Cの構造体定義みたいな感じで指定できると嬉しい
12 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 08:45:32.50 ID:rNg8wlTp.net] >>11 struct.unpack() struct.pack() でできるのでは。
13 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 09:22:56.63 ID:2A7JkPdq.net] >>> import struct >>> a='\x01\x02\x03\x04\x05\x06\x07\x08' >>> a '\x01\x02\x03\x04\x05\x06\x07\x08' >>> struct.unpack('8c', a) ('\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', '\x08') >>> struct.unpack('2i', a) (67305985, 134678021) >>> struct.unpack('i4c', a) (67305985, '\x05', '\x06', '\x07', '\x08') >>> map(hex, struct.unpack('2i', a)) ['0x4030201', '0x8070605']
14 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 09:32:31.32 ID:2A7JkPdq.net] >>> map(hex, struct.unpack('4h', '\x01\x02\x03\x04\x05\x06\x07\x08')) ['0x201', '0x403', '0x605', '0x807'] >>> map(hex, struct.unpack('i2h', '\x01\x02\x03\x04\x05\x06\x07\x08')) ['0x4030201', '0x605', '0x807'] >>> map(hex, struct.unpack('hhhh', '\x01\x02\x03\x04\x05\x06\x07\x08')) ['0x201', '0x403', '0x605', '0x807'] >>> map(hex, struct.unpack('hih', '\x01\x02\x03\x04\x05\x06\x07\x08')) struct.error: unpack requires a string argument of length 10 >>> map(hex, struct.unpack('hih', '\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a')) ['0x201', '0x8070605', '0xa09']
15 名前:デフォルトの名無しさん mailto:sage [2015/09/07(月) 21:32:31.39 ID:4CGTGSEX.net] 失礼いたします。 Webスクレイピングをしたいと思ってPython2.7をインストールし、次のサイト通りに試したんですが、 text_content属性がないとのエラーが起こるので、対処方法を教えていただけると嬉しいです。 qiita.com/beatinaniwa/items/72b777e23ef2390e13f8 (ちょうど最下のコメントと同じ状況です) もう一つ、cssselectorの代わりにXPathを使う方法も試したのですが、 出力結果が"[]"だったのでこっちも失敗してしまったようです。 ソース:print root.xpath('//*[@id=news_body]') 一応、ターゲットのHTMLソースも確認してみましたが、 記述したCSSセレクタが間違っているということもなさそうです。 以下はpip freezeで調べたパッケージのバージョン情報のコピーです。 cssselect==0.9.1 lxml==3.4.4 requests==2.7.0
16 名前:デフォルトの名無しさん mailto:sage [2015/09/07(月) 22:04:59.68 ID:9ljv166A.net] なんでそこで聞かないの?コメント欄あるでしょ?
17 名前:デフォルトの名無しさん mailto:sage [2015/09/07(月) 22:27:39.09 ID:M58p8v+F.net] その記事の頃とサイトの構造が変わったんだろう。 サイトの構造の変化を調べて動くように直すだけ。 その手間が嫌なら(あるいは自力で解決できないなら) スクレイピングなんてやるべきじゃない。
18 名前:デフォルトの名無しさん [2015/09/07(月) 22:28:21.93 ID:LXZrJgTO.net] >>15 エラーは例外 XPathはchromeで抽出できるんだから勝手にやればいい
19 名前:15 mailto:sage [2015/09/08(火) 00:22:09.29 ID:LVYNmHjh.net] >>16 レスにも含んでますが、同じ内容のコメントが数カ月前にあります。 >>17 これも最初に書いた通りですが、一応再確認してきました。 セレクタは#news_body > pで間違いありません。 >>18 あ、chromeで抽出して気づいたんですが、 XPathの方はidを二重引用符で囲んでなかったのが原因みたいです。失礼しました。 っていうかcssselect('body')でもxpath('//*')でも結果は同じなんですが、 このチュートリアルは正しいんですか?
20 名前:デフォルトの名無しさん mailto:sage [2015/09/08(火) 01:36:04.31 ID:WpGjOpsu.net] CSSセレクタでは、#はidを、> は子要素を表すので、 #news_body > p で、 <div class="maintext" id="news_body">タグの子要素の<p>タグを表す text_content()メソッドは、 そのタグ以下にある、すべてのテキストを取得するから、 root.cssselect('#news_body > p').text_content() <id="news_body">タグの子要素の<p>タグの、テキストを取得する このソースコードは、そのサイトを書いた時点では、 正しく動作していたが、その後、 URL(テレ朝)のHTMLの内容が変わったのだろう IEの開発者ツール(F12を押す)などで、 使われているタグを確かめながら、デバッグするべし。 それとHTML, CSSの基礎も勉強した方がよい
21 名前:15 mailto:sage [2015/09/08(火) 02:06:30.22 ID:LVYNmHjh.net] >>20
22 名前: CSSセレクタも開発者ツールから該当する要素のを引っ張ってきたんですが、 これって「#news_body > p」で示されているテキストですよね? <div class="maintext" id="news_body"> <p> 安倍総理大臣は国会で、(略) </p> </div> (09/08現在のテレ朝の記事から抜粋) [] [ここ壊れてます]
23 名前:デフォルトの名無しさん mailto:sage [2015/09/08(火) 02:26:01.65 ID:WpGjOpsu.net] root.cssselect('#news_body > p').text_content() これで取得できないの? print文で、内容を見てみたら? どの命令文でおかしくなるのか、 すべての文を、printしていくなど、 地道に順番に、デバッグしていくしかない
24 名前:デフォルトの名無しさん mailto:sage [2015/09/08(火) 02:54:38.44 ID:G+naPLuH.net] >>21 "'list' object has no attribute 'text_content'" っていうことは「リストオブジェクトにはtext_contentなんてメソッドはないよ」ってことだよね print(type(root.cssselect('#news_body > p'))) してみると確かに <type 'list'> ってなってる print(root.cssselect('#news_body > p')) してみると [<Element p at 0x101baeaf8>] ってなってて、リストの中にlxmlのオブジェクトがひとつ入ってる 一方ネットで見かけたtext_contextの使用例をそのまま使わせてもらうけど >>> p = lxml.html.fromstring(u'<p>はじめ<strong>注意</strong>おわり</p>') >>> print p.text_content() はじめ注意おわり >>> print(type(p)) <class 'lxml.html.HtmlElement'> >>> print(p) <Element p at 0x10156b4c8> この違いの原因をどこに見つけるかだよね
25 名前:15 mailto:sage [2015/09/08(火) 03:03:56.29 ID:LVYNmHjh.net] obj = root for attr in dir(obj): if callable(getattr(obj, str(attr))): print attr ダンプ代わりにこれで最初に調べたときは、rootそのものはtext_contentを持ってますが、 root.cssselect(...)やroot.xpath(...)にはcountとかinsertとか一見配列のプロトタイプっぽいメソッドしかありませんでした。 rootも含めて、どれもprintすると<Element at なんたら>と表示されるのでエラーではなさそう……と悩んでいたんですが、 今さっき、それに[]が付いてたり付いてなかったりするのに気が付きました。 最初は飾りだと思って意識していなかったんですが、きっとリスト?を表す記号ですね。 root.cssselect('#news_body > p')[0].text_content() だと成功しました。 となるとやはりサンプルソースの書き間違いだったようです。
26 名前:デフォルトの名無しさん mailto:sage [2015/09/08(火) 03:23:05.25 ID:WpGjOpsu.net] ああ、そういうことか、 list は、複数のオブジェクト(コンテナ)だから、 [0]で最初の要素を取れる for で、全要素にもアクセスできる
27 名前:デフォルトの名無しさん mailto:sage [2015/09/08(火) 03:55:50.81 ID:haPw6oSa.net] sshでリモートマシンにログインして pyhton main.py で実行しているのですが、sshでの接続が切れるとpythonスクリプト自体も止まってしまいます これを回避する方法は無いのでしょうか
28 名前:デフォルトの名無しさん mailto:sage [2015/09/08(火) 05:10:52.55 ID:WpGjOpsu.net] 端末から起動したシェルスクリプトでも、 その端末を終了したら、そのシェルスクリプトも終了する それは、端末が親プロセスになっていて、 端末から起動したシェルスクリプトが子プロセスだから、 親プロセスが終了すると、子プロセスも終了してしまう つまり、親亀こけたら、子亀もこける たぶん、それと同じで、sshが親プロセスで、 そこから起動したパイソンスクリプトが、 子プロセスになっているのだろう sshにプロセス間の親子関係を切る、 オプションは無いかね?
29 名前:デフォルトの名無しさん mailto:sage [2015/09/08(火) 06:27:30.26 ID:uyQlx19r.net] >>26 $ nohup python main.py & って実行するのが一番手っ取り早い方法かな。 処理に時間がかか
30 名前:驍ゥら実行しといてログアウトしたいだけで、 サーバみたいに常時起動しときたいわけじゃないよね? [] [ここ壊れてます]
31 名前:デフォルトの名無しさん mailto:sage [2015/09/08(火) 08:36:07.19 ID:LW57ufqa.net] tmuxとかscreenとかの仮想端末使うって手もある
32 名前:デフォルトの名無しさん mailto:sage [2015/09/08(火) 22:10:29.11 ID:QvAVInF0.net] urllib.request.urlopenにtimeoutを指定しても効かないんですが何故ですか?
33 名前:デフォルトの名無しさん mailto:sage [2015/09/08(火) 22:40:41.81 ID:XiTHgORh.net] 手元ではtimeout利いてるけど ・環境の問題 ・コードの問題 ・君の問題 さあどれだ
34 名前:デフォルトの名無しさん mailto:sage [2015/09/08(火) 23:32:13.22 ID:UfRS9P/L.net] requestsを使う
35 名前:デフォルトの名無しさん mailto:sage [2015/09/09(水) 07:24:03.26 ID:WpKwoiR8.net] おれいっつもatコマンド使ってたわ
36 名前:デフォルトの名無しさん mailto:sage [2015/09/09(水) 08:04:42.08 ID:kfehcr7u.net] >>32 正解 pythonで最も覚える価値がないのがurlopenと一連のハンドラ 唯一認められる価値は 下手くそな抽象化がどれだけユーザビリティを損ねるかという教材になる、その一点だけ
37 名前:デフォルトの名無しさん mailto:sage [2015/09/09(水) 13:31:50.70 ID:n+TAyw9X.net] sqlite3にjsonの値をそのまま入れて使いたいのですが クォートとかもそのまま入れるのに、どのような処理を入れたら良いでしょうか keyとjson文字列のテーブルを作って使いたいと思っています。
38 名前:デフォルトの名無しさん mailto:sage [2015/09/09(水) 13:48:05.45 ID:cLSarNth.net] そのままjson形式で保存すればいいけど何が問題あるの?
39 名前:デフォルトの名無しさん mailto:sage [2015/09/09(水) 14:05:57.50 ID:9XF7xRTw.net] >>28 ありがとうございます!nohupかなりいいです pythonだけじゃなくてlinux/unix系の勉強もしていこうと思います
40 名前:デフォルトの名無しさん mailto:sage [2015/09/09(水) 14:28:09.61 ID:kfehcr7u.net] >>35 まさかクエリの組み立てでどうエスケープするか聞いているのか? それなら手作業でやるな プレースホルダ使え というかkey-valueならshelve使えば? dictと互換だから下手な考え起こさなくて済むし
41 名前:デフォルトの名無しさん mailto:sage [2015/09/09(水) 17:10:08.25 ID:n+TAyw9X.net] >>38 はいエスケープさせたいのですが、華麗にやる方法はないかと思いききました。 sqlite3よりshelveのほうが便利ですか?2.7で標準なら使ってみようかと思います。 テーブル作成とかも必要なさそうですし
42 名前:デフォルトの名無しさん mailto:sage [2015/09/09(水) 17:12:53.82 ID:n+TAyw9X.net] ん?もしかしてshelveならエスケープする必要もない?
43 名前:デフォルトの名無しさん mailto:sage [2015/09/09(水) 18:31:31.79 ID:z0dYPSvJ.net] shelveすばらしい
44 名前:デフォルトの名無しさん mailto:sage [2015/09/09(水) 18:51:47.12 ID:kfehcr7u.net] エスケープの必要どころか pickleできる型なら何を突っ込んでもいい
45 名前:デフォルトの名無しさん mailto:sage [2015/09/09(水) 22:23:26.23 ID:pI2H1r76.net] テキストファイルを一行ずつ読み 改行のみの行を判定するコードを書いています ifの条件部分の line[0] っていうのがやや泥臭く感じるんですけど 望ましい書き方があるなら教えてください with open('fileread.txt','r') as f: for line in f: if line[0] == '\n': print('改行のみ') else: print(line)
46 名前:デフォルトの名無しさん [2015/09/09(水) 22:34:07.87 ID:gU9sAx8f.net] こっちの方が良いんでない? with open('fileread.txt') as f: for line in f: line = line.strip() if not line: print('空行です。') else: print(line)
47 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 02:47:46.05 ID:OdK7pfyp.net] あくまで'¥n'を使うとしても line == '¥n'でいいように見える
48 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 05:48:45.58 ID:nqOdWtep.net] ありがとうございます 聞いて良かった 自己流は恐い
49 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 20:22:09.14 ID:KmumwdfO.net] 失礼します. YosemiteでJupyterというのを入れたのですが、 線とか円とかテキスト程度の簡単な2Dをやるモジュール (独立ウィンドウがた立ち上がるのではなくブラウザ内に出るような) があれば使いたいのですがデフォルトで何が入ってるのかわからず ivisualやmatplotlibもオーバースペックなので何かよいのがあれば 教えていただけないでしょうか。
50 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 21:37:03.46 ID:VH/iB+Cq.net] processing使えば?
51 名前:デフォルトの名無しさん [2015/09/10(木) 22:25:58.69 ID:t/qMnqiP.net] tkinterでいいんじゃない? 標準で付いてくるし
52 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 00:07:02.78 ID:VUYanu//.net] ありがとうございます. Tkintetはブラウザ内にブラウザのセルとおなじようにたてつづけに出力できるのでしょうか。
53 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 00:32:52.66 ID:7w0dDVba.net] tkinterなら、turtle モジュールで、亀で遊べる
54 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 01:10:41.50 ID:lS37PnBX.net] >>50 tkinterをJupyterでブラウザ内に埋め込むとか聞いたことないなあ。 turtleの描画を埋め込むのはやってる人いるみたいだけど機能を拡張したIPython使ってるみたいだからあなたには敷居が高いんじゃないかな。 俺も前同じこと調べかけて放置してたんで改めて調べたけど、Pythonで気軽に使える2Dグラフィックスライブラリって意外にないね。JupyterのセルでJavaScriptも使えたらprocessing.jsとか使えるんだけど。 目的は何かな?グラフとかを描画するんだったらオーバースペックとか言わずmatplotlib使うのが一番いいんだけど。 jupyterにとってmatplotlibは不可分の一部と言っていいような存在だし、もちろんブラウザ内で表示できるしね。 いちおう図形の描画もできるみたいよ。テキストの描画は厳しそうだけど。 matplotlib.org/examples/shapes_and_collections/artist_reference.html
55 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 01:18:21.77 ID:WbJ+VPpl.net] 標準入出力を用いた独自のコンソールを持つソフトを、pythonのスクリプトから制御するにはどうすればいいのでしょうか? 例(標準入出力で制御する必要がありませんが) mysqlを起動し、mysqlのコンソールでshow databases;コマンドを実行したい 自分の考えたコード >import commands >return = commands.getoutput("mysql -u aaa -p bbb")・・・・ちゃんと起動する >return = commands.getoutput("show databases;")・・・・上手くいかない!
56 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 02:31:50.28 ID:KoJW2sNo.net] 標準入力をパイプしてコマンドをbytesで流し込む >>> import subprocess >>> args = ['mysql', '-u', 'aaa', '-p', 'bbb'] >>> proc = subprocess.Popen(args, stdin=subprocess.PIPE) >>> proc.communicate(b'show database;') >>> proc.returncode
57 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 03:48:03.80 ID:WbJ+VPpl.net] >>54 ありがとうございます 何時間も分からなくて困っていたので本当に助かりました
58 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 12:59:26.56 ID:+0sGE2Zy.net] list1 = [ {"b":1}, {"c":3}, {"a":2}, ] これを数字で昇順にソートする方法を教えてください
59 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 13:07:18.29 ID:Eesd1ubK.net] python2 list1.sort(key=lambda d:d.values()[0]) python3 list1.sort(key=lambda d:list(d.values())[0])
60 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 20:27:40.65 ID:KFEb2g7z.net] hoge.shape=(3, x, y, z) という4次元numpy.arrayから 要素数3の1次元numpy.arrayのlistを内包表記で得るには、 どうしたらいいのでしょうか?
61 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 22:55:06.94 ID:VUYanu//.net] >jupyterにとってmatplotlibは不可分の一部と言っていいような存在だし、もちろんブラウザ内で表示できるしね。 有難うございます。ちょっとやってみます。
62 名前:デフォルトの名無しさん [2015/09/12(土) 00:38:03.31 ID:Y0QkDcDu.net] 2次元のリスト内包表記なら、 vec = [[1,2,3],[4,5,6]] res = [num for elem in vec for num in elem] print(res) #=> [1, 2, 3, 4, 5, 6] [num (for elem in vec) (for num in elem)] まず最初の( )が実行されて、 次に次の( )が実行されて、それが先頭のnumに入る
63 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 09:33:30.79 ID:ZU+GZSdr.net] Python3ってsortメソッド無くならなかったっけ? >>57
64 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 09:35:13.10 ID:ypYaVLmK.net] は?(威圧)
65 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 09:53:07.89 ID:Y0QkDcDu.net] vec = [[1,'a','b','c'],[2,'x','y','z']] not_num = [elem[1:] for elem in vec] print(not_num) #=> [['a', 'b', 'c'], ['x', 'y', 'z']] elem[1:]は、インデックス1〜最後の要素までを、取り出す ちなみに質問とは関係ないが、 Pythonには、インデックス0以外の要素を取り出す、 elem[not 0]のような表記はあるのか?
66 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 09:55:20.42 ID:J6pfiWXJ.net] >>60 >>> import numpy as np >>> a = np.mgrid[0:4,0:5,0:6] >>> a.shape (3,4,5,6) >>> b = [x for z in a for y in z for x in y] >>> len(b) 60 >>> b[0].shape (6,) となりまして、望む結果は得られませんでした。
67 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 10:06:26.07 ID:J6pfiWXJ.net] >>> b.shape (3,4,5,6) >>> b = [a[:,i,j,k] for i in range(a.shape[1]) for j in range(a.shape[2]) for k in range(a.shape[3]) ] これでとりあえず望んだ結果が得られました。 これと等価な結果が得られるコードをもっとシンプルで高速に書けませんか?
68 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 16:04:27.55 ID:EVegchqE.net] >>65 list(a.transpose(1,2,3,0).reshape(a.strides[1],a.shape[0])) これで良いと思うけど内包表記じゃないといかんの?
69 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 22:44:40.18 ID:J6pfiWXJ.net] >>66 実際は b = [ myfunc(a[:,i,j,k]) for i in range(a.shape[1]) for j in range(a.shape[2]) for k in range(a.shape[3])] という処理をやりたいんです。 次にようなループはpythonでは遅いと評判ですので、 内包表記だと速いと聞いて試したいと考えています。 for k in range(a.shape[3]): for j in range(a.shape[2]): for i in range(a.shape[1]): b.append(myfunc(a[:,i,j,k]))
70 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 22:54:47.78 ID:ypYaVLmK.net] 普通は内包表記なんかよりvectorizeを使うと思う
71 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 23:46:18.84 ID:EVegchqE.net] >>67 内包表記のが速いといっても多少効率的なくらいです 素直にnumpyに用意されている物を使いましょう …ところでそれだと順序が違うんですが…たぶんこの辺のどちらか? b = np.apply_along_axis(myfunc, 1, a.T.reshape(-1, a.shape[0])) b = np.apply_along_axis(myfunc, 1, np.rollaxis(a, 0, a.ndim).reshape(-1, a.shape[0]))
72 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 00:11:21.34 ID:3BsRFwaL.net] 内包表記では、List.append()の、 呼び出しコストを、軽減できる
73 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 00:21:30.45 ID:gbWUhzZU.net] forも内包も所詮スクリプト言語の速度範疇だし俺はあんまり気にしないな 行数増えるのが嫌なときはとことん内包で書くぐらいで、 そもそも内包で事足りるぐらいの処理ならforでもあんま変わらないし それに比べてnumpyはそれこそ処理の桁が2~4個違う ユニバーサル関数とかでちゃんと書ければの話だけど、難しいよね…まだ慣れなくてささっと書けない
74 名前:デフォルトの名無しさん mailto:sage [2015/09/
] [ここ壊れてます]
75 名前:13(日) 00:53:31.30 ID:tUSkN1m6.net mailto: ここってpycharmの質問もあり? [] [ここ壊れてます]
76 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 00:53:55.70 ID:0P9tp9Bt.net] >>69 ありがとうございます。 b = np.apply_along_axis(myfunc, 1, a.T.reshape(-1, a.shape[0])) これを使うのが妥当そうですね。 np.apply_along_axisの存在は知りませんでした。 .Tと.reshapeの組み合わせもまったく考えてませんでした。 あとはargsの扱いがわかればいろいろできそうです。 ありがとうございました。
77 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 01:27:57.78 ID:gbWUhzZU.net] 自分使ってますよ バージョン2と古いけど
78 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 11:25:09.70 ID:8QNbCh1F.net] pycharmって使いやすいの?
79 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 12:31:02.93 ID:wQ68FTxr.net] Python3.5のWindows版はコンパイラがVC++2015なのね 2010からずいぶん飛んだな
80 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 14:37:01.47 ID:PRQtmn5E.net] numpyのitemsizeがイマイチわかりません なんで値が1つしか含まれないで8バイトを返すんですか? from numpy import arange a = arange(1).reshape(1, 1) print(a.itemsize)
81 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 14:53:19.49 ID:+IlipKsH.net] エラーが起きた箇所のソースコードのパスを確認する方法ありませんか?
82 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 15:43:23.53 ID:wQ68FTxr.net] >>77 そのnumpyarrayの要素の型が8バイトなのでは(int64とか) 書いてて思ったけど、きみ、itemsizeの意味を勘違いしてないか? >>78 お前のプログラムに書いてあるtry~exceptを全部外せ
83 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 16:30:01.00 ID:tUSkN1m6.net] >>75 ・メソッド書く時にselfを自動で書いてくれる ・docstringにsphinx形式のコメント入れとくと、型を推論して、「.」後に候補出してくれたり、型のミスマッチで警告出しくれたり ・virtualenv対応 でも重い
84 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 16:51:27.34 ID:7OO4CwOO.net] >・docstringにsphinx形式のコメント入れとくと、型を推論して、「.」後に候補出してくれたり、型のミスマッチで警告出しくれたり これは確かに便利。他のIDEでもあるのかもしれないけど おかげでdocstringやannotationちゃんと書く癖がついた
85 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 21:24:08.38 ID:gbWUhzZU.net] numpyって型指定しないとint64かfloat64になるよ
86 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 07:26:20.71 ID:FgrvG3+J.net] 3.5はXP不可か。。。
87 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 07:31:56.77 ID:tOm8GBtx.net] oh goodnews! ドザーと言うだけでアレなのに XPなんて救済しようがないもんね
88 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 07:45:37.19 ID:pXK5pJDJ.net] XP不可は困る まだまだ使うんだ
89 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 08:09:20.42 ID:tOm8GBtx.net] 2015にもプラットフォームツールセットv140_xpがあるのにxp対応しないってことは
90 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 08:28:56.52 ID:tOm8GBtx.net] * いい加減に死ね貧乏人という意思表示 * v140_xpで使えない機能を使っているためやむを得ず 1番なら自分でビルドすればまだ使える 2番だと自分で該当部分のコードを(副作用が出ないように)取り除かなければならない ActiveStateはxp対応すると思うから待ってれば? ただ商用利用するならライセンス買わないとだけど xp更新するよりは安いだろうたぶん
91 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 10:35:57.05 ID:mCvgVIil.net] xp使ってるようなカスは開発陣の邪魔でしか無い さっさと別の言語にいってくれ
92 名前:デフォルトの名無しさん [2015/09/14(月) 12:54:41.78 ID:9k/gGGx4.net] 多分、pythonのバージョン3以上向けに書かれててエンコードエラーみたいなのでるんだけど、どうしたらいいんですかね Traceback (most recent call last): File "2kyoku.py", line 72, in <module> text_pn.pn(s) File "/home/fuj
93 名前:iiiiiiiiiiiiiiiiiiiiiiiiiiiin/2kyoku.py", line 64, in pn print('{0}\npoint = {1}'.format(s, avg_point)) File "/usr/lib/python2.7/codecs.py", line 351, in write data, consumed = self.encode(object, self.errors) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128) [] [ここ壊れてます]
94 名前:デフォルトの名無しさん [2015/09/14(月) 13:00:21.02 ID:9k/gGGx4.net] 多分、pythonのバージョン3以上向けに書かれててエンコードエラーみたいなのでるんだけど、どうしたらいいんですかね Traceback (most recent call last): File "2kyoku.py", line 72, in <module> text_pn.pn(s) File "/home/fujiiiiiiiiiiiiiiiiiiiiiiiiiiiin/2kyoku.py", line 64, in pn print('{0}\npoint = {1}'.format(s, avg_point)) File "/usr/lib/python2.7/codecs.py", line 351, in write data, consumed = self.encode(object, self.errors) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)
95 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 14:31:52.59 ID:tOm8GBtx.net] python3で使えよ
96 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 14:35:45.43 ID:tOm8GBtx.net] エラー自体は print('{0}\npoint = {1}'.format(s, avg_point)) の行でsにunicodeが入ってるせいで、 asciiへの自動エンコードが働いてエラーになってる ここにstrが入るように使用側のコードを修正すればいい できない場合はやはりpython3を使え それも出来ないならお前は力不足だ すべてを諦めろ
97 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 14:39:00.35 ID:tOm8GBtx.net] ライブラリ側を修正していいのなら print(u'{0}\npoint = {1}'.format(s, avg_point)) とする手もあるが、おそらくこれは sys.stdout内でエラーを発生させるので、更にもう一工夫要る
98 名前:デフォルトの名無しさん [2015/09/14(月) 15:21:15.73 ID:6vR7q2Zm.net] 2to3使っても駄目だったのですか?
99 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 16:59:49.83 ID:c4/y2sTK.net] webにあるpythonファイルをそのままimportはさすがに無理ですかね githubでテスト実装されてるのをちょこっと試したい時に import http:~~.py のようにできたら便利だなあと
100 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 17:13:10.00 ID:NxoyOIVd.net] それは危険過ぎて、二の句が継げない
101 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 17:19:37.00 ID:tOm8GBtx.net] 昔このスレで書いたような気がするが module loaderを実装すればgithubのモジュールをimpoptすること自体は不可能じゃない 君の希望しているシンタックスでは無理だがな
102 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 20:18:49.71 ID:cXb4kIiN.net] Cのfwriteに相当するpythonのルーチンってありませんか?
103 名前:デフォルトの名無しさん [2015/09/14(月) 20:30:56.48 ID:6vR7q2Zm.net] >>> import os >>> f = open("a.bin", "wb") >>> f.fileno() 3 >>> os.write(f.fileno(), "hello world!".encode()) 12 >>> f.close() $ cat ./a.bin hello world!%
104 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 21:04:32.25 ID:cXb4kIiN.net] >>99 fwriteはポインタとサイズ、数を指定できますが 型とサイズ、要素数はどう処理しますか?
105 名前:デフォルトの名無しさん [2015/09/14(月) 21:22:17.80 ID:6vR7q2Zm.net] 違うんだ。 bytes書き込みたいって話かと思ったのに。 f.write() も意味ないっぽいな。 型とサイズ、要素数は、 type(obj), obj.__sizeof__(), len(obj) で頑張るんですね。 一体全体何をしたくて、fwrite相当の関数を知りたいんです? ないと思う。が答えだけど。 どうしても、fwrite相当が欲しいなら、C 拡張書いた方が賢いよ。 絶対。
106 名前:デフォルトの名無しさん [2015/09/15(火) 01:48:36.14 ID:OASNotDF.net] ご指導ありがとうございます。 sの中身のテキストをutf-8にしていたので元に戻したのですが以下の様なエラーが出て 戸惑っているんですがわかりますか? Traceback (most recent call last): File "/home/fujiiiiiiiiiiiiiiiiiiiiiiiiiiiin/2kyoku.py", line 72, in <module> text_pn.pn(s) File "/home/fujiiiiiiiiiiiiiiiiiiiiiiiiiiiin/2kyoku.py", line 45, in pn for line in self.mecab_list(s): File "/home/fujiiiiiiiiiiiiiiiiiiiiiiiiiiiin/2kyoku.py", line 40, in mecab_list s = self.m.parse(s) File "/usr/local/lib/python2.7/dist-packages/mecab_python-0.996-py2.7-linux-x86_64.egg/MeCab.py", line 281, in parse def parse(self, *args): return _MeCab.Tagger_parse(self, *args) NotImplementedError: Wrong number or type of arguments for overloaded function 'Tagger_parse'. Possible C/C++ prototypes are: MeCab::Tagger::parse(MeCab::Model const &,MeCab::Lattice *) MeCab::Tagger::parse(MeCab::Lattice *) const MeCab::Tagger::parse(char const *)
107 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 02:37:49.32 ID:8nVq9fpM.net] argsにunicodeを食わせてるせいで C++の関数呼び出し時にwchar_t*になってる で、オーバーロードの解決に失敗してる 何が起きているか自体は一目で分かるが これはこのまま続けでも時間の無駄だろ
108 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 02:45:20.70 ID:8nVq9fpM.net] だいたい初心者がいきなりこんなことに手を出すなよ 登山初体験で雪山チャレンジしてるような感じだ そんなに死にたいのか?
109 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 03:59:55.46 ID:Yag5SRe5.net] >>104 君は病院行ったほうがいいよ 昨日から酷すぎ
110 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 04:09:06.42 ID:XNHa+TUY.net] u"日本".encode('utf-8') Unicode文字列型から、 ByteStr(8bit文字列)へ、encodeすれば?
111 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 08:37:54.75 ID:tzZBlg8k.net] >>105 ゴミ虫が人間様に一丁前の口を聞くんじゃねえ 中央線に突き落とすぞ
112 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 09:57:27.75 ID:8nVq9fpM.net] 俺は他人をこき下ろすのは大好きだが そんな通報されそうな発言しねえよ 不用意な奴
113 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 10:17:50.34 ID:mcggslDF.net] >>107 関係ない人が巻き込まれる恐れがあるためJR東日本に念の為連絡しました
114 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 20:55:08.78 ID:J59fOGwQ.net] 初めてのpython(ver2.71、3版P475)を読んでいるのですが、再帰インポートの動きがわかりません。 #rrecur1.py x = 1 #@ import recur2 #A y = 2 #B #recur2.py from recur1 import x #C from recur2 import y #D A:対話型シェルで import recur1 を実行すると @ACDとなり、Dでエラー ←なんとなくわかる (Cの後に@AとBが実行されないのは、recur1のオブジェクトが不完全でも既にあるから?) B:対話型シェルで import recur2 を実行すると C@ABDとなる ←怪しい (A同様、Aはオブジェクトがあるので、C@ACDにはならない?) C:python recur1.pyを実行すると @AC@ABDとなる ←ものすごく怪しい (@Aは2回実行され、Aの2回めはCでオブジェクトができるからそのまま?) D:python recur2.pyを実行すると C@A(C)Dとなり、DでAと同じエラー ←だいぶ怪しい 理解が間違ってる、足りなさそうな所を指摘してもらえると助かります。
115 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 20:58:49.38 ID:XjGjWAl2.net] 機種依存文字か何か知らないが読めない文字を貼るな
116 名前:デフォルトの名無しさん [2015/09/15(火) 21:15:56.27 ID:Jw4sxLAi.net] これで試して、出力をご自分でご確認下さい。 #rrecur1.py print("0 in recur1.py") x = 1 #@ print("1 in recur1.py") import recur2 #A print("2 in recur1.py") y = 2 #B #recur2.py print("0 in recur2.py") from recur1 import x #C print("1 in recur2.py") from recur2 import y #D print("2 in recur2.py")
117 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 21:40:23.07 ID:J59fOGwQ.net] >>112 確認しました。 最初からprint文挟めばよかったですね、ありがとうございます。
118 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 22:33:38.30 ID:RlUnFo2M.net] >>69 >np.apply_along_axis これじゃ全然速くなんなかったよ バーカバーカ
119 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 22:39:17.01 ID:8nVq9fpM.net] apply_along_axisが速いなんて一言も言ってないレスに安価つけて何言ってんだヌケサク
120 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 02:29:05.06 ID:aiEEwWsO.net] プログラミング未経験者です。 学校にjavaの授業しかありません。 javaを学ぶとpythonを理解しやすくなったりしますか? 逆に混乱するでしょうか?
121 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 03:23:01.55 ID:2Yj1o+46.net] 違いはあるから混乱や困惑、勘違いは当前のこと そこで挫けるか、違いを理解して乗り越えるかが分かれ道 でJava→Pythonのハードルは低くはないと思う 初見のインパクトとして、インデント構文が人を選ぶ曲者
122 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 06:33:05.21 ID:Aossrj8U.net] >>116 基本的にプログラミング言語はひとつ覚えたら次はめっちゃ楽になるよ 条件分岐とかループなどの基礎的な概念はほぼ変わらないからね ただ理想はPythonからのJavaかなあ 自分は色々やってきたけど初学者に最適なメジャー言語としてPythonはかなり優秀だと思う JavaはPythonと違って重厚なんで、ちょっとした事をやるにしてもコードを書く量が半端なく多い 普通はIDEっていう支援ソフトを使う言語だけど授業では全部手打ちだろうし「むきー!」ってなりそう
123 名前:デフォルトの名無しさん [2015/09/16(水) 15:13:00.75 ID:BdvYksDF.net] 俺はJavaを初めにやるべきだと思うな このスレの住人はJavaでもC#でも何でもできるから最初はPythonでいいと思ってるかもしれないけど・・・・ 普通の人は飽きて一つしか習得しない可能性もあるわけで、それを考慮したらJAVAをやるべきだろう
124 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 15:46:15.28 ID:X4VHrapa.net] その辺の最終的な問題もあるよな、Pythonは学習用にも汎用としても悪くない思うけど やはりC/C++、C#、Javaなんかの方が向いてる事もある、しかし覚える必須事項も多い とりあえず言語を通じて原理を学ぶなら、まずは取っ付き易いPythonだけってなるけど 自分は簡便なPHPからPythonに乗り換えC#を経て速度に取り付かれC++/x86まで逝ったが Pythonは文法が少なく抑えられている一方、トリック的にプロパティを実装していたり self引数など内部的にどう作用しているのかも教えてくれる、学習用には最適だと思う
125 名前:スッキリ厨 mailto:sage [2015/09/16(水) 15:54:45.41 ID:9fL6Ueyi.net] 漏れは、短時間で読める、簡単な本をすすめる。 以下が漏れの定番 まずこの本で、オブジェクト指向を学ぶ スッキリわかる Java入門 第2版、2014 その後、この2冊を順に読む たのしいRuby 第4版、2013 みんなのPython 第3版 オブジェクト指向を学ぶと、 C#, JavaScriptも理解しやすいし、 Ruby,Pythonは、お互いに影響を受けているから、 同時に学ぶと、共通点が多い
126 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 19:56:17.21 ID:yg+sr1CP.net] Javaってint()をわざわざInteger.parseInt()って書く基地外言語だからなあ 誰がどう設計するとあんなことになるのだろう
127 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 20:38:43.26 ID:6/Mj4kG1.net] こんな時代にプログラミングを本で勉強するバカって まだ生き残ってるんだな
128 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 23:18:03.83 ID:CBuGCxGj.net] 俺も本で勉強してるよー(^-^)/
129 名前:デフォルトの名無しさん [2015/09/16(水) 23:21:41.06 ID:awIPWlQA.net] は? 本で学んで何がバカなんだよ あと、何が悪い?
130 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 23:23:14.44 ID:9fL6Ueyi.net] 文字列 → 整数を、Rubyでは、String.to_i。 "123".to_i と、Stringのメソッドだが、 Javaでは、Integer.parseInt()と、 Integerのメソッドに、違和感を覚える
131 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 23:55:42.75 ID:jnCVqJ3t.net] ノウハウ系の本は読むかな 奥村先生のアルゴリズム入門以外で入門とかいてある本は買ったことがない
132 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 00:38:19.54 ID:196gWGO2.net] >>116 です まずはjavaを学んで、同一事項もできれば
133 名前:pythonで勉強しようと思います。 皆さん回答ありがとうございました! [] [ここ壊れてます]
134 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 08:15:31.21 ID:SBwAu0s0.net] 本は情報がすぐ古くなるので
135 名前:デフォルトの名無しさん [2015/09/17(木) 14:55:21.13 ID:ku8KDabs.net] >>89 です。 あの後、うまくいかないのpython3から実行してみたのですが、うまくいきませんでした。 内容としては、naokiwatanabe.blogspot.jp/2015/02/judge-positive-vs-negative-of-text.html のサイトに載っているソースコードを実行したいのですが、、、 エラー内容は /usr/lib/python3/dist-packages/numpy/core/_methods.py:55: RuntimeWarning: Mean of empty slice. warnings.warn("Mean of empty slice.", RuntimeWarning) とでています。 python2から実行すると、いろいろ試したのですが文字コードのエラーで実行できませんでした。 知識不足というのは重々承知なのですが解決方法を教えてもらえると幸いです。
136 名前:デフォルトの名無しさん [2015/09/17(木) 14:59:40.79 ID:ku8KDabs.net] pn_ja.dicの中身はこんな感じです。 www.lr.pi.titech.ac.jp/~takamura/pubs/pn_ja.dic
137 名前:デフォルトの名無しさん [2015/09/17(木) 16:46:48.82 ID:iMuV3iOg.net] >>130 2to3.pyはもう実行済みなの? 実行済みという前提でだけど、 48: points_of_s = np.array(points_of_s) 49: avg_point = np.mean(points_of_s) numpy 使ってるのってここの行だけでしょ? 48行目のpoints_of_s に何が入っているかを確かめて、 meanを計算するfunctionを自分で実装すれば? つnumpy.mean docs.scipy.org/doc/numpy/reference/generated/numpy.mean.html
138 名前:デフォルトの名無しさん [2015/09/17(木) 16:48:53.78 ID:iMuV3iOg.net] >>132 の続き >>130 なんか、points_of_s が空で文句言ってそうだけど。 多分、40行目の行が上手くいってない ここもword, i['kanji'], i['yomi'] の中身をprintで見てみるんだね 40: if word == i['kanji'] or word == i['yomi']:
139 名前:デフォルトの名無しさん [2015/09/17(木) 19:26:17.87 ID:JmTKZ5WP.net] cygwin上のutf-8の漢字入力が処理できないので 漢字が混ざっても大丈夫にして欲しい English onlyならば動作する エラー文によればは以下の部分に間違いがある for line in exif_out: key_and_value = line.partition(':') if key_and_value[0].strip() == "File Name": name.append(key_and_value[2].strip()) if key_and_value[0].strip() == "Duration": play_time.append(key_and_value[2].strip())
140 名前:デフォルトの名無しさん [2015/09/17(木) 19:51:59.85 ID:JmTKZ5WP.net] python に問題はなかったので取り下げます pythonスクリプトに接続する前のコマンドの一つが shift-jisで文字を返してきたことが原因で nkf -w を挟むことで修正無く正常に動作しました
141 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 20:15:35.92 ID:CxP5vej7.net] 許さん タイガーアッパーカットの刑だ
142 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 20:10:21.07 ID:STdqpX+z.net] MATLABをずーっと使ってたんですが、簡単にPythonに乗り換えられますか?(´・ω・`)
143 名前:デフォルトの名無しさん [2015/09/18(金) 20:48:38.78 ID:tgrC/XXe.net] はい、scilabとPython3の組み合わせでPythonまでお越し下さい。
144 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 21:00:47.36 ID:iv+WFVpk.net] py2appもしくはcx_freezeでOS Xの配布ファイルを作ろうとしてるのですが、 ある依存モジュールの*.jsonファイルがlibrary.zipアーカイブ下に置かれてしまって、openができなくなってしまいます。 なんとかこれを回避する手段はありませんか?
145 名前:デフォルトの名無しさん [2015/09/19(土) 14:16:36.35 ID:zRSvfcVs.net] スクリプトが長くなってきたので、分割したくなってきたのですが、 importを使うとスコープ
146 名前:でグローバルを拾ってくれないので困っていますが こういう時どうするのが普通でしょうか [] [ここ壊れてます]
147 名前:デフォルトの名無しさん [2015/09/19(土) 14:22:56.25 ID:EhBxb2se.net] 良い機会と捉えて、global変数をなくす設計を考える。
148 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 14:37:57.81 ID:zRSvfcVs.net] グローバルにある一つのオブジェクト中に必要なものを全部入れてあるので 引数で渡してやれば、いちょう解決はするんですが、 これだと必ずその引数を付けなくてはいけなくて、シンプルではないと感じています。
149 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 14:59:47.59 ID:c6kn+dRM.net] python未経験、大学の情報系学科2年でCの経験ありです。 pythonの参考書で迷っています。 『みんなのPython』『プログラミング超初心者が初心者になるためのPython入門』 『Pythonスタートブック』 の3つなのですが、どれがおすすめでしょうか。 また、他にもおすすめがあったら教えていただきたいです。
150 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 15:12:57.41 ID:9MmBL6K2.net] >>143 プログラミング経験あるならみんなのPython。他のは初歩すぎると思う あとこのサイト読むだけで十分だったりもする diveintopython3-ja.rdy.jp/index.html
151 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 15:51:56.79 ID:rqtLrpco.net] >>140 分割したいほど長くなった時点で、もはやスクリプト言語を使う利点は失われている 今後の保守を考えて、Javaなど大規模プロジェクトに対応できる言語へ移行すべきだ
152 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 15:55:05.11 ID:zRSvfcVs.net] >>145 pythonがやりたいことの条件なのでしょうがありません クラス作って__init__の引数で渡して使うことにしようと思います。
153 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 15:57:04.47 ID:IG+tqa6Q.net] 著者の自演きめえ
154 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 16:24:59.93 ID:zRSvfcVs.net] クラスのselfって呪文、短くできないでしょうか
155 名前:デフォルトの名無しさん [2015/09/19(土) 17:27:54.66 ID:KApqc+U6.net] できるよ
156 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 18:14:50.96 ID:iv6k6MQz.net] 教えてください、よろしくお願いします
157 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 19:25:03.83 ID:vrCh8asH.net] もうselfって打ちたくないです… 秘匿するの以外はぜんぶインスタンス変数でいいじゃないか
158 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 19:57:54.93 ID:WfpuSZ1G.net] >>143 俺も144さんと同意見です。 『みんなのPython』と『Dive into Python日本語版』。 あとは公式のドキュメントを調べる癖をつけとくといいと思います。 docs.python.jp/3.4/ 本当は『初めてのPython』もおすすめしたいところだけど、いかんせん内容が古いので…。 でもちゃんとPython2とPython3の違いを勉強した後でなら、挑戦する価値はあると思います。特に情報系の学科の学生さんなら。 Python2とPython3の違いは上記2冊にも説明があります。
159 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 20:09:50.25 ID:jbS3DGgI.net] 宣伝きめえ
160 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 20:52:50.71 ID:vrCh8asH.net] >>152 >あとは公式のドキュメントを調べる癖をつけとくといいと思います。 これ以外必要ない。
161 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 22:47:02.90 ID:3d9rW/SJ.net] 最近の大学生って頭悪いんだね 別に煽ってるつもりはないよ 率直な感想
162 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 00:55:26.23 ID:hPx7plFD.net] jun.2chan.net/31/
163 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 01:28:28.89 ID:Nh5TR33w.net] >最近の大学生って頭悪いんだね 古代エジプトの遺跡にも、そう書いてあったらしいね( ・ω・)y─┛〜〜
164 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 01:37:06.96 ID:NJwlDPWn.net] >>157 それガセネタだってば まだ信じてる人いたんだ
165 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 02:14:36.98 ID:Itn3Bpzp.net] >>158 もっと古いけどな。 せっかくのレスだが、ポイントはそこじゃない。
166 名前:スッキリ厨 mailto:sage [2015/09/20(日) 03:31:11.34 ID:vBjKt0IW.net] 宣伝じゃなくて、漏れが編み出した、 プログラミング最速
167 名前:メソッドでも、 この3冊をこの順番で読むよ まずこの本で、オブジェクト指向を学ぶ スッキリわかる Java入門 第2版、2014 その後、この2冊を順に読む たのしいRuby 第4版、2013 みんなのPython 第3版 [] [ここ壊れてます]
168 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 04:37:13.68 ID:iy8xPLn/.net] >>145 わけわかんない こういう戯言を初心者は真に受けないように
169 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 11:10:20.99 ID:c50Q0ipw.net] >>143 >>152 英語が苦にならないなら、"初めてのパイソン"の原著 Learning Python もお薦めします。原著は2013年に第5版が出ています。改定版を重ねているのは、売れている証。 Learning Python では、mutable と imutable の違いや、変数は参照であるといったあたりの説明が丁寧で良いです。みんなのPython や、codecademy の python コースでは、これらの説明が不十分だったように思います。 m = 1 n = m m = 2 print(m, n) # 2 1 a = [1] b = a c = a[:] a[0] = 2 print(a, b, c) # [2], [2], [1] a = [3] print(a, b, c) # [3], [2], [1]
170 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 11:46:23.95 ID:zfBSqDqL.net] 辞書アクセスについて質問です。 設定ファイルにかかれているキーとなる文字列のみを読み取って 辞書(値の中にさらに辞書やリストが定義されています)アクセスを行いたいのですがどのようなコードを書けば実現可能でしょうか。
171 名前:デフォルトの名無しさん [2015/09/20(日) 11:57:36.33 ID:UBP8lCYf.net] ほいさ。 $ cat tech163.py if __name__ == "__main__": d = {"a": 1, "b": 2} with open("tech163-keys.txt") as f: for line in f: key = line.strip() value = d[key] print("key={}, value={}".format(key, value)) $ cat tech163-keys.txt b a b b b a
172 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 12:04:06.29 ID:vBjKt0IW.net] 辞書の中にさらに、辞書やリストが入っているのは、 何階層ネストするかなど、複雑だから難しい XML,JSONなど、ライブラリがある、 既成のデータ構造を使うべき
173 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 14:36:46.18 ID:3JRegwp7.net] numpy.ctypeslib.load_libraryってなんのためにあるんですか? ctypes.cdll.LoadLibraryじゃダメなケースが?
174 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 16:15:55.92 ID:QY3cLhl9.net] ソース読むと普通にreturn ctypes.cdll[libpath]を返してるな ということは, そこまでの過程に意味があるということ
175 名前:デフォルトの名無しさん [2015/09/21(月) 16:58:58.71 ID:o0er9rYI.net] 意味ある過程を解説しろという事
176 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 17:18:00.57 ID:QY3cLhl9.net] いやずら
177 名前:デフォルトの名無しさん [2015/09/21(月) 17:43:45.00 ID:o0er9rYI.net] シッタカすんなずら
178 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 17:52:42.15 ID:QY3cLhl9.net] ふええ
179 名前:デフォルトの名無しさん [2015/09/22(火) 22:51:54.28 ID:w0LnM0Y7.net] 初歩的な質問で申し訳ないです。Yahooにログインしたいのですがうまくいきません import requests payload = {'username':'user_id','passwd':'user_pass'} r = requests.post('https://login.yahoo.co.jp/config/login?',data=payload) これで実行したんですがエラーログも表示されず困っております。助けてください<(_ _)>
180 名前:デフォルトの名無しさん [2015/09/22(火) 22:56:03.50 ID:w0LnM0Y7.net] 補足です print rとしたら<Response[200]>と返ってきました。ggっても出てこないんですが これって何を表しているのでしょうか?ログイン自体は成功していませんが成功と捕らえても良いのでしょうか?
181 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 23:31:22.08 ID:0pZRAY1l.net] Response[200]は、OKのこと >payload = {'username':'user_id','passwd':'user_pass'} payload = {'username':'本当のユーザー名', 'passwd':'本当のパスワード'} そこに本当のユーザー名・パスワードを入れないと、 ログインできない でも、それらをそのまま、暗号化せずに送るのかな? 暗号化しなかったら、危険な気もする <
182 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 23:35:00.63 ID:+lAdjAEI.net] >>173 200はHTTPステータスコードというものでこの場合は「成功」 ただしこの場合の成功とはログインに成功じゃなくてたんにそのページヘのアクセスが成功したというだけ 一般的にログイン失敗の場合は40*系が返ってくることが多い r.textなどを見たらエラー文というかブラウザに表示されてるはずの文がでるはずです 「現在お使いのブラウザの設定ではログインできません。クッキーの設定を確認し、クッキーを有効にしてください。」 なぜそれでログインできると思ったのか、どこの情報を参考にしたのかわからないけども、それはログインを試みてすらもいない たんにpostでusernameとpasswordを送ってログインできる仕様になってない ログインページにアクセス、ログインフォームを読み取り、そこに値を入力、ログインボタンを押す、ページ遷移後の処理 という一連の流れでやる必要があるので最初はわりと敷居高いです ログイン後のページ遷移等を処理したい場合はそれ専用のライブラリ使ったほうがいいと思います 自分はmechanicalsoupとかでログインしてます あんまり日本語の情報無いからおすすめしづらいけどpython3系対応って少ないんだよね 元気があったら後でログインできるそのまんまのコード書くかも 眠いから書かないかも
183 名前:デフォルトの名無しさん [2015/09/22(火) 23:39:07.37 ID:w0LnM0Y7.net] >>174 回答ありがとうございます 自分はただログインができればそれで良いです。 >>175 回答ありがとうございます 書いていただければ参考にさせてもらいます。勿論書いてもらわなくても大丈夫です!
184 名前:デフォルトの名無しさん [2015/09/22(火) 23:39:44.08 ID:w0LnM0Y7.net] まずは自力でがんばってみます ノシ
185 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 23:42:41.04 ID:+lAdjAEI.net] ちなみにこれじゃダメなんでしょうか? https://gist.github.com/romichi/5567611 自分はmechanize入れてないから試せないけど こういうのはログイン画面の仕様が変わるとダメになるので2年前の記事だとそのまんま使えないかも
186 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 23:44:38.87 ID:0pZRAY1l.net] >payload = {'username':'user_id','passwd':'user_pass'} それにそのサイトのHTMLを分析してから、やっているのか? 'username','passwd'も正しいのか? それに、クエリ文字列は、その2つだけなのか? 本・サイトに書いてある通りに、 プログラミングしても動かないよ
187 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 23:54:17.74 ID:+lAdjAEI.net] 178のやってみたけど成功した なんとなくusernameとpasswordをpostしたらログインできるんじゃ?って最初思うのはしょうがない気が 実際は人間と同じようにページにアクセスしてフォームの場所を特定してusername等を打ち込んで…という泥臭いコードを書く必要が
188 名前:デフォルトの名無しさん [2015/09/22(火) 23:58:50.34 ID:w0LnM0Y7.net] >>178 ありがとうございます。参考にさせてもらいます >>179 そこらへんはしっかりとソースを見てやっています >>180 ほうほう なるほど。 初心者に付き合っていただいて有難うございました、では失礼します<(_ _)>
189 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 08:34:14.30 ID:DOrhv1Zg.net] >>181 wireshark でパケット見た方が早いと思う
190 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 12:08:54.96 ID:bddtCb1z.net] 入れ子のリストで、中のリストごと削除する事って可能ですか? [["a","b"],["c","d"],["e","f"],["g","h"]] ↓ [["a","b"],["e","f"],["g","h"]] としたいんですが、delやpopで消しても以下のように空要素が残ってしまいます [["a","b"],[],["e","f"],["g","h"]]
191 名前:デフォルトの名無しさん [2015/09/23(水) 12:37:13.95 ID:gS0ZJsKt.net] >>> L = [["a","b"],["c","d"],["e","f"],["g","h"]] >>> L.remove(L[1]) >>> L [['a', 'b'], ['e', 'f'], ['g', 'h']]
192 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 12:43:08.41 ID:YxG82JoQ.net] >>> outer = [[1, 2], [3, 4], [5, 6], [7, 8]] >>> del outer[1] >>> outer [[1, 2], [5, 6], [7, 8]] >>> outer.pop() [7, 8] >>> outer [[1, 2], [5, 6]]
193 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 13:02:38.50 ID:bddtCb1z.net] >>184-185 できましたありがとうございます.
194 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 18:05:24.51 ID:mJPpIkis.net] 画像から文字の部分を認識させたいのですが、なにかいい方法があったら教えていただきたいです
195 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 19:38:01.53 ID:fW96BSwR.net] バージョン2.7です。 辞書をリストにしたものから、あるキーを持つものだけを拾い出して、リストにしたいんです。 具体的には mylist = [{'a':12, 'b':8},{a':5, 'b':19}] とあるものから、キーがaのものだけを取って、(12, 5)という配列を作りたいのです。 map(lambda x:x[キー用の変数]), mylist) もしくは、 map(lambda x:x.get(キー用の変数)), mylist) と書いてみたのですが、どちらも None という値が返ってきます。 もう半日これで悩んでいます。 どなたかお詳しい方、教えてください。
196 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 20:00:36.15 ID:2XlOP4Gj.net] >>188 >>> mylist = [{'a':12, 'b':8},{'a':5, 'b':19}] >>> [d["a"] for d in mylist] [12, 5] どの辞書にも"a"がある前提だけど
197 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 20:03:59.03 ID:YxG82JoQ.net] mapでできる >>188 のmapについてはカッコが合ってないから何もいえない >>> L = [{'a': 12, 'b': 8}, {'a': 5, 'b': 19}] >>> map(lambda d: d['a'], L) [12, 5] >>> map(lambda d: d['a'], filter(lambda d: 'a' in d, L)) [12, 5] >>> [d['a'] for d in L if 'a' in d] [12, 5]
198 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 20:04:10.98 ID:2XlOP4Gj.net] >>188 あと,map使いたいんだったら >>> list(map(lambda x:x["a"], mylist)) [12, 5]
199 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 20:33:24.83 ID:IBQotI2X.net] 日時をマイクロ秒まで取る方法を教えてください
200 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 20:46:03.49 ID:fW96BSwR.net] お二方、こんなに短い時間のうちに、どうもありがとうございます。 190様の、一番最初のコードが、自分の意図したものでした。 括弧の間違いなどは直して、再度書いてみたのですが、動きません。 (問題の切り分けのために簡略化してしまったのですが、実際は def mapping(self, key_hensu): map(lambda d: d[key_hensu], self.list) とし、 これに基づいて作ったインスタンスの self.listに辞書を含む配列を入れた後、 newlist = hug_ instance.mapping('a') Print newlist としても、noneが帰ってくるのです) 教えていただいた式で、コードを組み直してみようと思いますが、動かないのはmap以外の部分の問題かもしれません…
201 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 21:18:05.32 ID:VUzU7jGH.net] ひょっとしてmappingからreturnしてないとかいうオチじゃなかったりしない ちなみに特定メンバー抽出だけならlambdaを書くより operatorモジュールに複数指定も可能な専用クラスがあったりするよ >>192 time.time()#POSIXタイムスタンプ(float) datetime.datetime.now()#datetimeインスタンス(microsecond) とかそういうのではなく?
202 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 22:35:52.54 ID:fW96BSwR.net] >>194 お恥ずかしいかぎりです。 Return文がありませんでした。 pythonで本格的にプログラムを組むのが初めてだっので、お騒がせいたしました。 ちなみに、return文は、この場合、MAPの結果を変数に格納し、return その変数、 とやるのでいいのでしょうか。 このメソッドを多用する場合、変数は、プライベート変数にした方がいいですか?
203 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 01:08:23.75 ID:1RjIiiuu.net] mylist = [ {"a":12 , "b":8} , {"a":5 , "b":19} ] L = [] for m in mylist: for key , value in m.items(): if key == "a": L.append(value) これが当然読み書きできた上で、もっとシンプルにor高速にという人ならい
204 名前:いんだけどさ いきなりワンライナー目指そうとして何時間も時間使っちゃうもはもったいない気がする mapとか内包とかlambda使って長時間悩むよりforでシンプルにやってもいいと思うんだよね まあ多分これは書けた上で短く洗練したいという人だと思われるので余計なお世話かもしれんが一応 [] [ここ壊れてます]
205 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 03:21:21.13 ID:KIwTvfAf.net] 関数のIn/Outを確認するのは、 WhiteBox Test の基本だよ rtn = func() func(out) 戻り値・引数のどちらで、結果を返しても、 それらをチェックするのは当然
206 名前:デフォルトの名無しさん [2015/09/24(木) 09:07:42.02 ID:oyhXYwpr.net] シリアル通信をしたいんだけど、 hoge = serial.Serial('/dev/ttyACM0', 9600, timeout = 0.1) で文法エラー吐くんだけど、どんな理由が考えられる? import serialはしてある
207 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 09:19:04.50 ID:XLoPykDH.net] serialという名前の関係ないモジュールをimportしているとか 真っ先に文法エラーの内容を貼るべきだったな
208 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 17:56:16.23 ID:7vafZHZr.net] コーンフレークか
209 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 18:02:55.63 ID:7vafZHZr.net] >>194 それはミリ秒までしか取れなくね
210 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 18:18:35.45 ID:O2om78VJ.net] PHPでいうmicrotimeみたいなものが使いたいんです php.net/manual/ja/function.microtime.php
211 名前:デフォルトの名無しさん [2015/09/24(木) 19:20:18.31 ID:3LIOVMIk.net] >>201 >>194 は小数点以下6桁表示だからmicro秒まで取ってるよ
212 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 20:52:58.68 ID:2Vopl4xt.net] Windows版2系はミリ秒精度っぽいねぇ…しかし本当に必要なのは日時なのか? パフォーマンスカウンタならtime.perf_counter()とか、time.clock()で代用とかだけど
213 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 01:12:24.27 ID:tuRmYaRB.net] >>198 全角文字を使っているとか、 SerialのSが、小文字の間違いとか、 timeout = 0.1 を、辞書にするとか、 ' 'で囲むとか、0.1だけにするとか まあ、エラーメッセージで検索すれば?
214 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 04:44:01.92 ID:tuRmYaRB.net] >>198 「timeout = 0.1」のように、引数の中で、= を使って、 代入されているものを、デフォルト引数といって、 省略可能な引数のこと 引数を省略すると、0.1を渡したのと同じ扱いになる。 この2つは、どちらも同じ hoge = serial.Serial('/dev/ttyACM0', 9600) hoge = serial.Serial('/dev/ttyACM0', 9600, 0.1) もちろん引数を省略せず、任意の数値を渡してもよい hoge = serial.Serial('/dev/ttyACM0', 9600, 0.2) それより、この本でも読んでから、プログラミングしなよ 「みんなのPython 第3版」
215 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 07:40:45.23 ID:OdLQBYES.net] 著者のステマきめえ
216 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 08:12:39.72 ID:EM2/ouOX.net] >>206 > デフォルト引数といって、 名前つき引数だろ ちゃんと覚えておかないと恥ずかしいぞ
217 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 08:31:28.74 ID:rmMgHZ3n.net] キーワード引数だろ Language Referenceにくらいは目を通して喋ってるのか? もちろん英語版な 日本語版は公式でない上に訳がゴミなのは常識だぞ
218 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 08:32:15.00 ID:rmMgHZ3n.net] https://docs.python.org/2.7/reference/compound_stmts.html#def まだ読んでなくて読めるなら読んでおきたまえ
219 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 08:38:33.98 ID:rmMgHZ3n.net] あと、キーワード引数は呼び出し時に特定の引数を指定する方法を指すのであって def文中にある parameter = expression 形式の引数の正しい呼び方は “default parameter values” だ 混同しないように あとステマ野郎は死ね ここ数日しつこいぞお前
220 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 0
] [ここ壊れてます]
221 名前:9:35:38.22 ID:pvZibk7r.net mailto: Listクラスを継承して、リストに色んな計算機能を持たせたAreiというサブクラスをつくりたいです。 class Arei(list): def __init__(self): list.__init__(self) def goukei(self): return sum(self) #sumは元からあるわけですが、例ということで。 このクラスは t = Arei() t.append(1) t.append(2) print t.goukei() とすると、ちゃんと3を返します。 ただ、自分としては、リストクラスの代わりにこれを使っていきたいので、 u = Arei() u = [1,2] print u.goukei() みたいにuの中身を指定したいのですが、 Attribute errorで、リストオブジェクトはそんなメソッド知らないよ、と言われてしまいます。 areiではなく、リストオブジェクトになってしまっているようです。 areiの中身は[ ]で代入したいのですが、何かいい方法はないでしょうか。 [] [ここ壊れてます]
222 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 10:54:47.14 ID:KIr5Cth6.net] しつこい宣伝野郎の本はamazonで悪評価つけんぞ
223 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 11:01:44.67 ID:rmMgHZ3n.net] Twitter(やってたら)荒らすぞ
224 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 11:58:30.93 ID:0lz/blt5.net] >>212 pythonの代入は文であって式ではないので動作を変更するのは不可能です 「何かいい方法」はありません pythonのコレクションは大抵イテレータを受け取るようになっていますので そのスタイルに従うなら t = Arei([1, 2]) などと書くことになるでしょう くどいようですが、あなたの希望は叶いませんのであきらめてください
225 名前:デフォルトの名無しさん [2015/09/25(金) 17:46:42.43 ID:KRQogbtQ.net] u = [1,2] みたいには出来ないです。 諦めてください。 [] を使いたいのであれば、 u.extend([1, 2]) としてください。
226 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 18:38:53.08 ID:APxH2mFV.net] numpyではa[1,...]みたいにしてアクセスできますけど この...っていうのはPythonのなんて機能なんですか?
227 名前:デフォルトの名無しさん [2015/09/25(金) 18:43:08.84 ID:BcpKoy3C.net] >>203 気付いてるひともいるみたいだけど 123.456000 って感じで6桁あっても下3桁が常に000なんで 実質ミリ秒なんですよ
228 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 19:29:40.05 ID:PrLLHSVR.net] >>217 ...はellipsisと呼ぶ その文法自体は拡張スライス構文(extended slicing syntax)と呼ぶ
229 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 19:42:42.20 ID:ktFzwPFO.net] >>218 それはtime.time()の実装しだい、例を挙げると win版2.7.9ではtime()の小数点以下は3桁だった win版3.4.3では6桁計算されてる
230 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 19:55:16.04 ID:EAOTXXYi.net] そんな所で2を差別するとは
231 名前:220 mailto:sage [2015/09/25(金) 20:58:57.37 ID:ktFzwPFO.net] いや、2.xの問題ではない debian 8 jessieの2.7.9のtime.time()は小数点以下6桁でる
232 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 00:10:21.83 ID:bNSOOO19.net] pip install でいろいろとパッケージがインストールできないんですが 先輩方は出来てますか?
233 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 00:14:31.09 ID:uTIKCoPr.net] pythonのバージョンと pipのバージョンと OSと インストールできなかったパッケージの一例を 書 い て ね
234 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 00:19:25.04 ID:bNSOOO19.net] windows 7 pip 7.1.2 python 2.7.10 です
235 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 00:23:00.51 ID:uTIKCoPr.net] 何か足りないんだが きみ、人の話を半分に聞いていると指摘されたことはないか?
236 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 00:26:09.13 ID:bNSOOO19.net] とりあえずあなたができてるのだけ教えて頂けますか?
237 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 00:29:22.09 ID:uTIKCoPr.net] 知らねえよクソ雑
238 名前:魚虫 踏切に飛び込んで死ねや …windowsでは基本的にC拡張を含むパッケージを pipでpypiからインストールすることはできない (コンパイル環境を整えればインストールできるが、かなり面倒) 下記などからコンパイル済みパッケージを入手し、pip install <ファイル名>とやってインストールする http://www.lfd.uci.edu/~gohlke/pythonlibs/ [] [ここ壊れてます]
239 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 00:29:55.36 ID:bNSOOO19.net] pip installできるかどうか自体を聞いてるから>>224 の一部ははスルーしましたよ ちなみに1番最初に書いた内容でわからないのでしたら無理に書き込みしなくてもいいんですよ?
240 名前:デフォルトの名無しさん [2015/09/26(土) 00:30:00.09 ID:SlXJkQSm.net] んっと変数をリストにいやらしくぶち込みたいときって何使うのがいいんですかね
241 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 00:31:21.58 ID:uTIKCoPr.net] >>229 本当に期待を裏切らないなw 殺すぞチンカス
242 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 00:53:44.20 ID:VnXY6/gA.net] >>212 uには、Areiオブジェクトのインスタンスが入る u = Arei() uには、リストオブジェクトのインスタンスが入る u = [1,2] そもそも、最初にuに代入された、Areiオブジェクトは、 使われないオブジェクトになってしまって、 どこからも参照されていない Pythonを基本から勉強すべし。 初心者用の本を読め
243 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 01:11:01.94 ID:IUg2r09A.net] 書名を挙げてもいいのよ? 遠慮なさらずに。 罵倒されるかもしれないけど。
244 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 01:22:48.90 ID:ycKW7TV1.net] このスレでよく名前の出る本って実際どうなの
245 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 01:40:34.00 ID:VnXY6/gA.net] たのしいRuby 第4版、2013 みんなのPython 第3版 どちらも、いい本だよ 図書館では、「みんなの」は常に、 誰かが借りている状態だから、 何年も見たことはない
246 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 08:22:07.31 ID:uTIKCoPr.net] オライリーの奴は2冊ともあまり推奨しない 片方は簡潔すぎ片方はくどすぎ
247 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 09:19:45.50 ID:nnT9rfzZ.net] Rubyのオライリーのまっつが書いたのはいいんだけどな あんな感じのがPythonには無い
248 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 09:28:15.51 ID:YULo0X4G.net] Pythonの和書なんて、書店の本棚一段くらいしかないだろ 悩んだり選んだりしてる暇があったら全部買って片っ端から読破すりゃいい 技術を学ぶのに金は惜しむな時間を惜しめ
249 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 09:37:35.10 ID:K7CQzQ4M.net] 初めてのPythonでもやってろ
250 名前:デフォルトの名無しさん [2015/09/26(土) 09:52:23.29 ID:sS2VkfxB.net] >>212 ここの回答者は馬鹿が多いから、 そんなのに目を付けられたら運が悪かったと思ってね 複数の要素を追加したい時、u.append()ばかり何行も書くのは嫌だから、 []を使って、複数の要素を一行で追加したいという事だろうけど、 それなら、>>216 で書いたように、u.extend()を使えば、 []の表記を使って複数の要素を追加する事が出来ます。
251 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 10:17:36.27 ID:uTIKCoPr.net] 微妙に元の質問から飛躍している気がするなあ 本人が戻ってこないからどうしようもないけど
252 名前:デフォルトの名無しさん [2015/09/26(土) 13:58:51.24 ID:SlXJkQSm.net] 因みにLinuxだったらコマンドだけでパッケージインストールできるからおぬぬめするよ 初心者さん
253 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 15:55:00.04 ID:/Er1ur9S.net] 唐突に何の話してんだこいつ
254 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 16:02:42.71 ID:T6SMaGA2.net] ID:bNSOOO19の話でしょ。 環境より別の問題を抱えてそうだけど。 主に頭に。
255 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 16:28:15.94 ID:ARPouMbC.net] その質問鯖が落ちてるかどうかって質問じゃないの? それに噛み付いた奴も頭悪いけど。
256 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 16:33:54.02 ID:PeXvMpg9.net] >その質問鯖が落ちてるかどうかって質問じゃないの? お前の予想なんか聞いてないから無理に書き込みしなくてもいいんですよ。 断定できるようになったらどうぞ。
257 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 16:41:56.09 ID:uTIKCoPr.net] 当事者で
258 名前:もないのに何を煽ってんだか [] [ここ壊れてます]
259 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 17:58:48.50 ID:A0xbZm86.net] 初心者スレで威張ってる奴もその程度だ
260 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 19:16:59.29 ID:z8a3JaoE.net] pip使うためにLinux使うやつもバカだと思うが
261 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 19:47:50.72 ID:nnT9rfzZ.net] >>240 あんた質問の意味わかってんの? リストを拡張したclassでも完全にリストっぽく扱いたいって話なんだけど
262 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 20:01:43.67 ID:jMWgOOyZ.net] Python人口が増えたお陰か揚げ足鳥とか喧嘩腰の解凍しか出来ないカスが増えたな PHPスレみたいになってきた
263 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 21:58:24.07 ID:6OIyVqiT.net] そうそう 加えて一歩引いた目線で意識高く冷静に事を傍観する俺様系クズとかな
264 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 23:01:17.56 ID:uTIKCoPr.net] 251は定期レスだよ 半年に一回くらいは同じ内容のレスを見るね
265 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 23:23:51.88 ID:P25DxxnJ.net] 馬鹿には無理とpassが短くて好き
266 名前:デフォルトの名無しさん mailto:sage [2015/09/27(日) 10:32:38.05 ID:ChKmlAhY.net] お前らは黙って質問に答えてりゃいいんだよ
267 名前:デフォルトの名無しさん mailto:sage [2015/09/27(日) 10:58:22.61 ID:8A5jeRhu.net] 1~3年くらい前のWin32APIスレのように, 知らないなら黙っててください. ウザイだけです」 の応酬で埋め尽くされるのも時間の問題か
268 名前:デフォルトの名無しさん mailto:sage [2015/09/27(日) 11:08:50.48 ID:Oa1I2Bnn.net] 答えるから状況確認の質問には正確に応答しろよ (バージョンは? 表示されてるエラーを貼れ etc) 素人の判断力で勝手に端折るな
269 名前:デフォルトの名無しさん mailto:sage [2015/09/27(日) 12:13:27.45 ID:ChKmlAhY.net] 俺をあの頭唐澤と一緒にすんなや
270 名前:デフォルトの名無しさん mailto:sage [2015/09/27(日) 17:11:01.07 ID:OFhEpgzS.net] 黙って答えるの難しそう。
271 名前:デフォルトの名無しさん mailto:sage [2015/09/27(日) 17:50:14.04 ID:8A5jeRhu.net] (このように回答するのです)
272 名前:デフォルトの名無しさん mailto:sage [2015/09/27(日) 18:04:52.67 ID:V6V0Y/p4.net] Pythonが国内でメジャーにならないからみんな苛立ってんのさ 自分以外のPythonユーザーに出会うことなんてまずないからな
273 名前:デフォルトの名無しさん mailto:sage [2015/09/27(日) 18:13:58.17 ID:8A5jeRhu.net] (カラコロ民までPython使ってるとは思わなんだ)
274 名前:デフォルトの名無しさん mailto:sage [2015/09/27(日) 18:27:22.29 ID:v7AofSm8.net] django 1.8が無料で使えるクラウドがあれば流行る railsが盛り上がったのはherokuのお陰
275 名前:デフォルトの名無しさん mailto:sage [2015/09/27(日) 18:39:32.12 ID:8A5jeRhu.net] (herokuみたいに料金体系変更した途端 フリーライダーにdisられるのは嫌だろう)
276 名前:デフォルトの名無しさん mailto:sage [2015/09/27(日) 21:03:25.98 ID:JhPkHi9i.net] virtualenvで仮想環境を切り替える時ってdeactivateを実行してから別の仮想環境に切り替えないと何かトラブルになりますか?
277 名前:デフォルトの名無しさん mailto:sage [2015/09/27(日) 21:19:21.14 ID:8A5jeRhu.net] (activeの中で最初にdeactivateを実行してるはず…)
278 名前:デフォルトの名無しさん mailto:sage [2015/09/28(月) 10:43:08.25 ID:0RjOK4Zp.net] >>261 それな プログラマでもpythonなにそれ?っていうのが日本人には多い
279 名前:デフォルトの名無しさん mailto:sage [2015/09/28(月) 10:43:41.72 ID:0RjOK4Zp.net] >>263 GAEとは何だったのか
280 名前:デフォルトの名無しさん mailto:sage [2015/09/28(月) 13:43:06.22 ID:JfTylyW8.net] スレ立て失敗 やっぱりocnってクソだわ
281 名前:デフォルトの名無しさん [2015/09/28(月) 14:52:33.76 ID:izcdLHq/.net] LinuxとWindowsではPythonでの開発環境に差はある? 今まで基本的には開発はlinux派だったんだけど、iTunesとか他のソフトを使いながら出来ないからWindows環境に興味を持ってる フレームワークはDjango、DBはMySQLを使おうと思ってる PHP、MySQL、ApacheのLAMP環境は結構WindowsとcentOSでは差があったけれど
282 名前:デフォルトの名無しさん mailto:sage [2015/09/28(月) 14:55:29.22 ID:JfTylyW8.net] WindowsでVirtualBoxでも使えばいいんでは
283 名前:… [] [ここ壊れてます]
284 名前:デフォルトの名無しさん [2015/09/28(月) 15:31:14.44 ID:izcdLHq/.net] >>271 使った事ないんだけど、重くならないの? 以前VMWare使ってた時は、便利と思ったけど個人使用にはオーバースペックすぎたw ってか皆どんな開発環境でやってるの? 俺はcentOSでLinuxなんだけど、macはまだしも、Windowsの人も多いのかな? 結構、関連ソフト入れに苦労しそうな気がするけど
285 名前:デフォルトの名無しさん mailto:sage [2015/09/28(月) 15:42:48.17 ID:d6SLnFcK.net] 重いとかて何を気にしてのことなの? 開発だけならギリギリのパフォーマンスみたいなのは関係ないだろうし… テキストエディタだけならWinがなれてるとか? 統合開発環境みたいなのが欲しいてこと?
286 名前:デフォルトの名無しさん mailto:sage [2015/09/28(月) 15:45:06.76 ID:dlMXkm1Y.net] windowsをサポートしていないライブラリ使わないならwindowsでもいいんじゃないっすか おれはgunicornを使いたいからlinuxを選んだだけ
287 名前:デフォルトの名無しさん [2015/09/28(月) 16:01:44.58 ID:izcdLHq/.net] >>273 個人的にコンピューターの動作が遅いのは苛々するんよ 例えばEclipseを起動させる、同時に画像処理ソフトを起動させるとか ソフトウェアでの仮想環境ってことはCPUやメモリのリソースも使うだろうし Linuxだけだと、他にExcelでの仕事やAdobe系を呼び出す際に再起動しなくちゃいけないもので 今デュアルブートでやってるから でもWindowsで開発環境をもしできたら再起動いらずに楽かなと まぁLinux環境には敵わないだろうけれども
288 名前:デフォルトの名無しさん [2015/09/28(月) 16:04:58.41 ID:izcdLHq/.net] ちなみに今挑戦したsetuptools, pipからのDjangoインストールは、 import django でinvalid syntaxエラーが出た めんどくさいなぁ...
289 名前:デフォルトの名無しさん mailto:sage [2015/09/28(月) 16:05:51.54 ID:d6SLnFcK.net] 開発をやってるのに今時デュアルブート? 2,3台は常時稼働しておくのが普通じゃないのか? #今現在、4台を自分専用に稼働中、ディスプレイも3台あるよ?
290 名前:デフォルトの名無しさん [2015/09/28(月) 16:07:12.31 ID:izcdLHq/.net] >>277 暫くプログラミングから離れてたのよ
291 名前:デフォルトの名無しさん mailto:sage [2015/09/28(月) 16:07:36.37 ID:s7G6tMwD.net] >>275 > まぁLinux環境には敵わないだろうけれども 答え出てるじゃん
292 名前:デフォルトの名無しさん [2015/09/28(月) 16:13:44.68 ID:izcdLHq/.net] 今度surface pro 4買おうと思って、じゃぁWindows環境で試してみるかと思ったのよ 持ち運び便利そうだからどこでも出来るな、と なんかWindowsに慣れていないせいか、Djangoの件もエラーの詳細が分かりにくい 環境構築はほんとWindowsはめんどくさい気がする ここの人達は流石にWindows環境の人はいないか
293 名前:デフォルトの名無しさん mailto:sage [2015/09/28(月) 16:23:21.76 ID:s7G6tMwD.net] 基本的にエディタあればどんな環境でもコーディングできるんだから 好きなのにすりゃいいと思うよ まさかSurfaceで(本番環境として)django動かす訳じゃないんだろ?
294 名前:デフォルトの名無しさん mailto:sage [2015/09/28(月) 16:50:55.17 ID:dlMXkm1Y.net] 仕事としてないのに見え張るなよ
295 名前:デフォルトの名無しさん mailto:sage [2015/09/28(月) 20:32:49.45 ID:91/ACm3S.net] >>275 > 個人的にコンピューターの動作が遅いのは苛々するんよ とか言ってる奴が > 今デュアルブートでやってるから ってネタか余程の間抜けにしか見えない…
296 名前:デフォルトの名無しさん mailto:sage [2015/09/28(月) 20:54:33.35 ID:EuxVMsYV.net] 仕事をしているような人が聞くレベルの質問じゃねえな
297 名前:デフォルトの名無しさん mailto:sage [2015/09/28(月) 21:00:24.89 ID:OmBgfqlE.net] 動作のもたつきとデュアルブートの煩雑さは別の問題だろ デュアルブートの煩雑さを解消するためにWindows1本にしたいが重くならないか心配だって言ってんだからまったく矛盾はない
298 名前:デフォルトの名無しさん mailto:sage [2015/09/28(月) 21:02:13.54 ID:EuxVMsYV.net] >surface pro 4買おうと思って こういうやつだしな
299 名前:デフォルトの名無しさん mailto:sage [2015/09/28(月) 21:07:00.43 ID:JfTylyW8.net] 疲れた 2時間も遅れて来るなよクソックソッ 重くなるに決まってるが、許容できるかどうかは本人次第だろう 嫌なら我慢
300 名前:してデュアルブート続けるか、意味不明なエラーと死ぬまでつきあってろ [] [ここ壊れてます]
301 名前:デフォルトの名無しさん mailto:sage [2015/09/28(月) 21:11:04.78 ID:OmBgfqlE.net] 重くならないかっていうのは仮想マシンの話の流れか そこは訂正
302 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 10:34:31.22 ID:5DFpZmVK.net] 最近気づいたこと ・PythonでWebサイトを作るな ・コマンドラインツールや機械学習でのみPythonを使うべき
303 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 10:48:20.13 ID:9FBYnxt5.net] CGIがどんな言語や仕組みかって事を気にする人? そんな事気にする前にバグを直せよ…
304 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 12:02:07.30 ID:5DFpZmVK.net] CGIwwwwwww今時CGIはねえわ
305 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 12:52:29.49 ID:qVFuDZbI.net] 芝は心の贅肉
306 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 14:05:42.97 ID:Up7l2XRn.net] >>289 最近全く同じこと思ったわ
307 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 16:19:17.26 ID:9FBYnxt5.net] むう、コマンドラインツールとか言ってるから、それと対応するWeb用のPythonという 前提でCGIという単語を敢えて使ったんだが… >>299 は自分が書いたことを覚えていないのだろうか? それともWSGIはゲートウェイインターフェイスではないと言い張る為だろうか? 変な奴の考える事は謎だ…
308 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 16:30:36.57 ID:qVFuDZbI.net] オトコの未練は醜い
309 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 17:03:47.09 ID:9Cv+9YBr.net] コマンドラインツールから何故CGIが出てくるのか謎杉・・・ CGI==WGSIと考えてるところも理解できない・・・ ちょっとググって間違った知識を植え付けられたか
310 名前:デフォルトの名無しさん [2015/09/29(火) 17:17:36.56 ID:kWYiG2HY.net] コマンドラインの標準出力をブラウザに返せばCGIでしょ
311 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 18:17:12.76 ID:cUhHTA84.net] >>289 どうしてなんですか Webに手を出すつもりはない初心者ですが 理由がちょっと気になるので参考までに教えてください
312 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 20:55:53.94 ID:tsybo51+.net] >>289 ちゃんとフレームワーク使ってる?
313 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 20:56:26.09 ID:r6tWHKV4.net] Python3でファイルを操作する方法を調べてるんだけど 機能があちこちのモジュールに分散していて覚えづらい 歴史を重ねながら拡張してきたからかな? コピー shutil.copyfile shutil.copy shutil.copy2 リネーム os.rename os.replace 移動 shutil.move 削除 os.remove os.unlink 存在確認 os.access os.path.exists ファイル一覧取得 os.listdir glob.glob
314 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 22:10:12.45 ID:Pz1/YzO9.net] ライブラリがたくさんあって困っているそこの奥さん! 実はオブジェクト指向で設計されたpathlibがあります! 今(3.4以降)ならなんと標準ライブラリに入っています!
315 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 22:26:18.69 ID:38981mSj.net] でもお高いんでしょう?
316 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 22:36:08.60 ID:Pz1/YzO9.net] argparseのようにOOP推しなのでPythonに不慣れな方でも使えます! ※個人の感想だけどpathlibはOOP全力なインターフェースで少々くどい でもRubyからライブラリを移植するときに物凄く便利だった
317 名前:デフォルトの名無しさん [2015/09/29(火) 22:45:21.06 ID:kWYiG2HY.net] 一度使うと次々別のライブラリ勧められて、 いつの間にか引き返せなくなりそうですね 引き返すなら今のうち・・・
318 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 22:45:59.57 ID:xmaTIn9P.net] ほほう…「便利」の意味合いをもう少し具体的に知りたいね
319 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 22:51:16.84 ID:WyeI8SJL.net] >>297 知ったかしたいだけでしょ スルーでいいと思うよ
320 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 22:56:57.65 ID:qVFuDZbI.net] pathlibはもう少し標準ライブラリのサポートをなんとかしてくれませんかね strしないと使えないモジュール
321 名前:スすぎますよ [] [ここ壊れてます]
322 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 22:57:22.54 ID:R456hPpB.net] 自演おつかれ
323 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 23:10:32.65 ID:Pz1/YzO9.net] >>305 RubyのPathnameっぽい、というか考え方が同じだからコピペ手直しで大体動く >>307 open()への引数くらいは対応しろとよく思う 関数やオブジェクトを超えてやりとりすると必然的に他も強制されるから嫌い
324 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 03:47:27.46 ID:EX9JFA6F.net] >>289 Pythonには、標準ライブラリだけで動作する、 Bottle というWEBアプリ・フレームワークがある でも、Rubyでsinatraなら、何も考えなくても、 これだけで、hello というWEBサイトが表示されるw require 'sinatra' get '/' do 'hello' // ここに処理を書く end
325 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 04:23:57.36 ID:w7SPUet/.net] 型の扱いがいいかげん言語ってこわくない? 初心者はなんとなく使えて便利だけど 遅かれ早かれ全部確認しないと気が済まなくなる。
326 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 05:20:59.27 ID:YJQV+FkT.net] 次のうちエラーになってほしい式を選べ 1+"1" 1+True 1+1.1 全部選んだ人:演算子オーバーロードは許さないよ派(OCaml) 1+"1"を選んだ人:真偽値ってぶっちゃけ0か1でしょ派(C、Python) 1+"1"と1+Trueを選んだ人:式文の意味を重視するよ派(Haskell、Ruby) 1+Trueを選んだ人:真偽値リテラルはないよ派(Perl5)
327 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 06:18:59.36 ID:4e29nm1y.net] >>309 なるほどありがとう
328 名前:デフォルトの名無しさん [2015/09/30(水) 06:39:52.37 ID:7Lys9n7q.net] >>304 童貞乙
329 名前:デフォルトの名無しさん [2015/09/30(水) 08:00:23.13 ID:BGePcDbg.net] >>311 理解がめちゃくちゃだな
330 名前:デフォルトの名無しさん [2015/09/30(水) 08:02:02.39 ID:BGePcDbg.net] >>275 色んな人に突っ込まれてるけど 君は読解力が無いねってよく言われない?
331 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 08:02:52.14 ID:9ZgwE0tZ.net] pathlibのドキュメントを調べてみた メソッドにファイルのコピーと移動がないっぽい パスを1つのオブジェクトとして扱うクラスがゆえに コピー元、コピー先の2つを指定する必要のある機能は想定していないのか? >>300 の表がますますカオスになる…
332 名前:デフォルトの名無しさん [2015/09/30(水) 08:02:58.84 ID:BGePcDbg.net] >>272 >以前VMWare使ってた時は、便利と思ったけど個人使用にはオーバースペックすぎたw オーバースペックの意味を間違ってるね まるっきり逆の意味で使ってるよ
333 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 08:48:55.48 ID:+AX0hMMC.net] Surface Pro4欲しい君を弄るのはそろそろヤメタマエ
334 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 09:20:28.89 ID:YJQV+FkT.net] >>317 rename()とreplace()で移動はある コピーはない、バグトラッカーでの追加の要望には否定的な回答が付いてる
335 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 12:51:24.45 ID:g5Kwg8L4.net] >>317 ファイルの rename や削除はOSの機能だけどコピーや移動は違うからでしょ
336 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 12:53:57.81 ID:g5Kwg8L4.net] >>318 オーバースペックで重たかったと言ってるんだろ 何も間違えてないと思うが
337 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 13:21:14.91 ID:v45HhpVr.net] >>275 文句を言う前に金払って開発環境を揃えればいいだけ 12万で買えるクラスののデスクトップ買ったばかりだけどストレスを感じたことはない
338 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 13:36:32.56 ID:DDo+L8wA.net] CoreMと噂のsurface pro4が欲しいとか言ってる時点で プログラミングはファッションレベルに決まってるで 開発に使うようなマシンじゃねー
339 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 17:34:03.91 ID:EKYNYvpv.net] うむ
340 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 21:19:52.50 ID:upKJw7Zd.net] デスクトップで開発とかダセーw
341 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 22:17:31.18 ID:4e29nm1y.net]
342 名前:俺はノートでやってるよっ☆ (^-^)/ [] [ここ壊れてます]
343 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 23:13:40.03 ID:NW4C2hiZ.net] 俺はコンピューター持ってないから脳内で
344 名前:デフォルトの名無しさん [2015/09/30(水) 23:36:34.92 ID:aEcL3JaV.net] peace.2ch.net/test/read.cgi/internet/1401535906/107 ↑ ↑ ↑ ↑ ↑
345 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 01:20:40.78 ID:jlLOirXX.net] よくnote pcなんかに無駄金払えるなw
346 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 06:28:28.23 ID:NYBY5O+J.net] タマネギ無しでカレー作るなら甘み出すためにリンゴ入れた方がいいですかね? っていう質問に、タマネギ入れろよって答えるような人が多いよねここ 色々な制約が人によってあってその範囲内での質問回答が求められてるのにタマネギ入れろよしか言えない人 馬鹿だと思う
347 名前:デフォルトの名無しさん [2015/10/01(木) 07:26:15.35 ID:r8teaEYT.net] >>331 ITってとりあえず自分で試せよってのが基本じゃないかなぁ やったことないことにまともな答えなんてできねーじゃん 「俺の質問に答えてくれないから糞」ってのはバカな人の思考だよね
348 名前:デフォルトの名無しさん [2015/10/01(木) 07:37:18.85 ID:/jpbfw6N.net] >>332 >>331 のいう、それ、そのものやないかい 相手の言う事を理解できてなくて、 自分の思う事を言ってるだけって事なんだよね。 要するに。
349 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 08:34:30.11 ID:f5gJwSlF.net] とりあえず>>332 は社会不適合者のバカだという事でw まぁ学校とかでも友達や彼女もいないで一人暗く過ごしてたような奴らが多いからなましてやここは2ch
350 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 10:39:30.62 ID:ZcWNnYYP.net] >>331 スレタイ読めよw お前さんの例えで言えば 質問が「お米は洗剤で洗ったあと何回すすげばいいんですか?」 だとすると、それの答えが「水で洗え、お湯で洗う人もいる」 これの何が悪い?
351 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 11:04:54.82 ID:mpdw7HPU.net] 無洗米買えよ
352 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 11:21:52.65 ID:Td7LqfLC.net] surface君が荒らしてるのか
353 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 12:24:39.57 ID:9rEn1f0E.net] わざわざ下手くそな例えで話を混乱させる人が多いよねここ。
354 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 12:28:09.16 ID:VU6YL+ln.net] >>332 ,335 以外は特に混乱してないように見えるが。
355 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 12:33:38.49 ID:9rEn1f0E.net] つまり混乱してるんだなw
356 名前:デフォルトの名無しさん [2015/10/01(木) 12:41:46.95 ID:/jpbfw6N.net] レスするか迷ったけどレスしちゃう >>335 質問の内容がおかしいだろ 「米を洗剤で洗った」と聞けば、あなた頭おかしいんじゃないの? と普通の人はなる だから、「水で洗え、お湯で洗う人もいる」 という答えになる。 「タマネギ無しでカレー作る」と聞いても、あなた頭おかしいんじゃないの? とはならない 質問を聞いて「あなた頭おかしいんじゃないの?」と、 なる・ならないの前提が違うので話にならない
357 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 13:25:17.91 ID:dS12aCbL.net] >>331-341 タマネギだの米だのスレ違いだろ 続きはここでやってくれ peace.2ch.net/test/read.cgi/tech/1427572389/
358 名前:デフォルトの名無しさん [2015/10/01(木) 13:28:37.33 ID:BBaRIJcZ.net] >>341 なるほど一理ある
359 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 14:42:14.05 ID:Td7LqfLC.net] 最近はモバイルと固定回線とスマホがあるお陰で自演も楽勝だな
360 名前:デフォルトの名無しさん [2015/10/01(木) 14:55:28.04 ID:/jpbfw6N.net] お前がそう思うんならそうなんだろう お前ん中ではな
361 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 16:59:38.46 ID:5+pXOgtK.net] >>341 お前さんが想像力がないやつだと言うのがよくわかったよ 超初心者は米を洗剤で洗うような質問をする Pythonに詳しいやつからみればな お前さんは、米を洗剤で洗わないのは常識だ、というのがただの思い込みだということにそもそも気づいてないだろ だから理解できないんだよ
362 名前:デフォルトの名無しさん [2015/10/01(木) 17:27:16.41 ID:/jpbfw6N.net] 何言ってんだぁ こ
363 名前:「つ [] [ここ壊れてます]
364 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 19:15:47.64 ID:AxFWNbqN.net] あんまり例え話好きじゃないから読んでないや
365 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 19:46:08.96 ID:M/7MGMo6.net] 悔しいのならアンカー打って反論すればいいと思うの
366 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 21:36:59.41 ID:s3U6j/Jt.net] 米は研げよ、洗うな馬鹿タレ。
367 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 21:53:03.78 ID:6DvvsA2I.net] 米洗ふ 前に蛍の 二つ三つ
368 名前:デフォルトの名無しさん mailto:sage [2015/10/02(金) 06:41:28.52 ID:AkqrFCcI.net] >>351 pythonで書けよ。
369 名前:デフォルトの名無しさん [2015/10/02(金) 07:47:24.13 ID:gd9xqVj7.net] print()使うだけ
370 名前:デフォルトの名無しさん mailto:sage [2015/10/02(金) 09:35:38.01 ID:8oryoHg9.net] 負けてるやつ、そろそろ諦めろ 畳み掛けてるやつ、そろそろやめておけ ところで、いま初心者にすすめるんだったら2.7?3?
371 名前:デフォルトの名無しさん mailto:sage [2015/10/02(金) 11:19:05.47 ID:KgiramNs.net] I wish to wash come with me zoo
372 名前:デフォルトの名無しさん mailto:sage [2015/10/02(金) 11:50:00.62 ID:yPSgHmJT.net] >>354 3系 と答えたいが、どっちがいい?ときいてくる人には 最初に学習に使う書籍やWEBサイトを決めて、使っているバージョンに従えと答える あとPythonがプログラミング初学ではないからおススメの書籍とかは分からない
373 名前:デフォルトの名無しさん mailto:sage [2015/10/02(金) 12:27:15.25 ID:7uxKcXjP.net] そもそも初心者が初心者に何かを勧める行為をお勧めしない
374 名前:デフォルトの名無しさん mailto:sage [2015/10/02(金) 17:08:55.30 ID:x7S/CcUO.net] >>310 bottleでHello Worldを出すのも同じぐらい簡単だったと思うのですが。 実際に運用する際はuwsgiやrackなどを使うので全体で比較するとファイルを置くだけでインストールが完了するbottleの方が楽なのではないかと。
375 名前:デフォルトの名無しさん mailto:sage [2015/10/02(金) 19:06:49.68 ID:m/wHrWte.net] >>354 3でしょ 2でしか使えないライブラリがあって,どうしてもそれを使いたいのなら別だけど
376 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 08:59:26.91 ID:fomIpGMD.net] #coding: cp932 import networkx as nx from matplotlib import pyplot def main(): g = nx.Graph() g.add_edge(10,20) g.add_edges_from([(30,40),(40,50),(1,2)]) print(g.edges()) nx.draw(g, node_color = 'b') pyplot.show() if __name__ == '__main__': main()
377 名前:デフォルトの名無しさん mailto:age [2015/10/03(土) 08:59:56.37 ID:fomIpGMD.net] というコードを書いて実行すると、 ○-○ ○‐○ ○‐○-○ とノード付きのグラフが表示されるのはいいのだけど、 ○の中に肝心の数字が何も入らなくて困っています。 くぐっても分からないので、知っている方はご解答、よろしくお願いします。 使っているpythonは、2.7系です。windowsユーザーです。
378 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 09:10:26.14 ID:fomIpGMD.net] '''☆★で出来たピラミッドを表示するコード''' def pyramid(n): # nでピラミッドの段数を指定する i = 0 while i < n: pad = ' ' * (n - i - 1) block = '★' * (2 * i + 1) print pad + block i += 1 def pyramid2(n): i = 0 while i < n: pad = ' ' * (n - i - 1) block = '☆' * (2 * i + 1) print pad + block i += 1
379 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 09:10:58.08 ID:fomIpGMD.net] def pyramid3(n): # 逆ピラミッド print '\n' i = 0 while i < n: block = '★' * (n - i) pad = ' ' * i print pad + block i += 1 def pyramid4(n): #逆ピラミッド print '\n' i = 0 while i < n: block = '☆' * (n - i) pad = ' ' * i print pad + block i += 1
380 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 09:16:04.36 ID:RHKUDZj0.net] >>361 たぶんnodeの追加が足りない ライブラリに詳しくないから検索してヒットしたページを張っとく(@はrockよけ) oceanmarine.sak @ura.ne.jp/sphinx/group/group_networkx
381 名前:.html#networkx-node [] [ここ壊れてます]
382 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 09:22:53.10 ID:RHKUDZj0.net] あ、nodeじゃなくてpath_graphの追加だな
383 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 09:52:32.56 ID:fomIpGMD.net] >>364 >>365 ありがとうございます。教えて頂いたサイトの最後の箇所にあったコードを文字コードをwin用に 変えて実行してみたところ、同じグラフがノードに数字入りで出ました。まだ初心者なので、少し コードを見ただけでは全然分からないのですが、あとで、じっくり検証してみます。ありがとうございました。 windowsユーザーの方もいるかもしれないので、一応、その変更コードも一応、貼っておきます。
384 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 09:53:14.04 ID:fomIpGMD.net] #coding: cp932 import networkx as nx import pylab as plt import matplotlib from pylab import * import matplotlib.font_manager prop = matplotlib.font_manager.FontProperties(fname=r'C:\Windows\Fonts\meiryo.ttc', size=15)
385 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 09:53:45.59 ID:fomIpGMD.net] def graph(): G = nx.Graph() nodes = G.add_nodes_from([0, 1, 2, 3]) G.add_edges_from([(0, 1), (0, 2), (0, 3)]) pos = nx.spring_layout(G) degree_dic = nx.degree(G) print(degree_dic) degree_pos = {} for k, (x, y) in pos.items(): degree_pos[k] = (x+0.05, y+0.05) nx.draw_networkx_nodes(G, pos, node_color='b', alpha=0.5) nx.draw_networkx_edges(G, pos, alpha=0.5) nx.draw_networkx_labels(G, pos) nx.draw_networkx_labels(G, degree_pos, degree_dic) plt.title(u'各ノードの枝数をノードの右上に表示してみた',fontproperties=prop) plt.axis(u'off',fontproperties=prop) plt.show() def main(): graph() if __name__ == '__main__': main()
386 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 10:46:52.36 ID:2BaZKaXa.net] def 関数1: … def 関数2: … def 関数3: … def main: 関数1() 関数2() 関数3() … if __name__ == '__main__': main() という風に関数を上から順に呼び出していく定型処理のスクリプトがあったとして 開始時のユーザー選択により、関数1でなく任意の関数から開始する、という フロー制御は、どう書けば実現できるだろう 関数が20個くらいあるので、呼び出しパターン全てをmainにifで書くのはできればやりたくない GOTOのある言語なら、ラベルを付けておいて各々に飛ばせば済むんだが
387 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 11:04:10.76 ID:tCbgZp8x.net] 自分自身を返す関数のとき,アノテーションはどうかけばいいですか? クラス名を書くとエラーになってしまいます class Test: def func(self) -> Test: return self Test().func() Traceback (most recent call last): File "a.py", line 2, in <module> class Test: File "a.py", line 3, in Test def func(self) -> Test: NameError: name 'Test' is not defined
388 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 11:06:58.47 ID:tCbgZp8x.net] >>369 すごい適当ですけど,関数をリストにいれればいいんじゃないですか?
389 名前:デフォルトの名無しさん [2015/10/03(土) 12:04:35.06 ID:jyP1OZ7g.net] >>369 >開始時のユーザー選択により どう選ばせるかはもう決まってる?
390 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 12:05:48.02 ID:C7I9pgK8.net] >>369 すべての関数をリストに入れて、 インデックスで呼び出す 関数をキーで呼び出したいのなら、辞書に入れる
391 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 12:11:47.91 ID:tCbgZp8x.net] >>370 "Test"のようにするしかないみたいでした
392 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 12:13:10.05 ID:2BaZKaXa.net] >>371 関数をリストに入れられること自体知らなかったよ… >>372 この程度でいいと思ってる 1が先頭の関数を示す a = int(input("開始処理番号を入力してください"))
393 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 12:34:50.58 ID:jyP1OZ7g.net] a = raw_input("開始名を入力してください") locals()[a]() あるいは globals()[a]()
394 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 13:09:33.52 ID:C7I9pgK8.net] >>375 Python,Ruby,JavaScriptなどでは、関数もオブジェクト。 実行コードを持ったオブジェクト 第一級関数とは、変数・配列などに格納できる。 関数に引数として渡したり、 関数の戻り値として返したりできる 関数型プログラミング、高階関数、遅延評価、 クロージャ、ラムダ(無名関数)などを勉強して
395 名前:369 mailto:sage [2015/10/03(土) 15:07:27.49 ID:2BaZKaXa.net] このやり方で何とかできた。アドバイスサンクス def 関数1(): … def 関数2(): … def 関数3(): … def main(): funclist = [関数1, 関数2, 関数3] a = int(input("開始処理番号を入力してください")) -1 for func in funclist[a:] func() if __name__ == '__main__': main()
396 名前:デフォルトの名無しさん [2015/10/03(土) 17:28:27.28 ID:qqIklWzl.net] class Func(object): def func1(): pass def func2(): pass def func3(): pass def exclude(): pass def __init__(): pass func1_var="func1 variable" func2_var="func2 variable"
397 名前:デフォルトの名無しさん [2015/10/03(土) 17:30:32.50 ID:qqIklWzl.net] >>379 続き if __name__ == "__main__": # see unittest/loader.py testMethodPrefix = "func" def isTestMethod(attrname, testCaseClass=Func, prefix=testMethodPrefix): return attrname.startswith(prefix) and \ callable(getattr(testCaseClass, attrname)) D = dir(Func) print("D =", D) testFnNames = list(filter(isTestMethod, D)) print("testFnNames =", testFnNames) print("func1_var =", Func.func1_var)
398 名前:デフォルトの名無しさん [2015/10/03(土) 17:33:40.18 ID:qqIklWzl.net] >>379 ,380は、 >>369 ,378用 これくらいの芸は見せてもらえるんだと思ってました。。。 大丈夫か?日本。
399 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 18:50:36.31 ID:gQH+PRqq.net] >>378 のスクリプトは十分にシンプルでわかりやすいと思うけど 芸ってのはそれをごちゃごちゃこねくり回すことを言うの?
400 名前:デフォルトの名無しさん [2015/10/03(土) 19:15:59.94 ID:qqIklWzl.net] funclist = [関数1, 関数2, 関数3] を自動化する芸くらい見せてもらえると思ってた 関数20までずらっと↓って書くの? funclist = [関数1, 関数2, 関数3, 関数4, 関数5, 関数6, 関数7, 関数8, 関数9, 関数10, 関数11, 関数12, 関数13, 関数14, 関数15, 関数16, 関数17, 関数18, 関数19, 関数20] 関数21とか成長すると、その都度funclist更新するの? ・・・悪いけど、頭悪ーって思うよ。 # see unittest/loader.py の通り、該当箇所を抜き出しただけです。 unittest 使うと testXXX を自動実行してくれる事くらい知ってますよね? source 公開している意味ないよ。。。
401 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 20:09:29.61 ID:TDca+yKY.net] なんで一人で勝手にイライラしてんだろこの人
402 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 20:35:15.81 ID:d7sRTTd7.net] Although never is often better than *right* now.
403 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 22:41:09.78 ID:pj0qXq1g.net] 関数が20個あって任意のから始めたいなんて設計が悪いわ
404 名前:デフォルトの名無しさん [2015/10/04(日) 07:44:18.13 ID:ohsfWQtz.net] Classの使い方とか使い道がわからん。関数だけあればいいんじゃね?
405 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 08:58:12.84 ID:UyyPHyaL.net] それでいつか複雑になりすぎて混乱する時が来る そうなったらclass使う
406 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 09:18:15.75 ID:yoEktSyw.net] クラス変数やインスタンス変数を使った方が 圧倒的に楽になる時が来るんだよな
407 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 10:29:02.28 ID:LEXjibpb.net] それまで辞書とかでやりくりしてた部分なんかが 「多分こういうところでクラスってのを使うと便利なんだろうな」とぼんやり見えてくる時期があって、 でネット上の解説とかを読んだりしてやっぱよくわかんねーわ、というのを何度か繰り返してやっと理解できた
408 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 10:40:27.06 ID:eV6iuRhJ.net] 「在る」から使うんじゃなくて 必要だから「在る」んだよ 必要じゃないと思ってる間は無理して使わなくて良い
409 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 10:42:40.07 ID:J4whK/1Y.net] 関数もオブジェクトだから、クラスと同じ 関数、クロージャ、ラムダ(無名関数)、Procなど、 どういう表現をしようと、オブジェクト(クラス)と同じ つまり、オブジェクトは人間から見て、 わかりやすくした、単なる容れ物(名前空間)で、 その中に、データ・メソッド(実行コード)を持つ
410 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 10:48:23.01 ID:+OAHHRmx.net] 俺もclassなんてさっぱり分からぬが、 よく似た関数の大軍に苦しめられたので、継承だけは使う。
411 名前:369 mailto:sage [2015/10/04(日) 11:03:33.97 ID:KmO0NZWk.net] >>376 や>>379-380 のように Pythonの内部情報をユーザーアプリから利用する手法を リフレクションって言うんだっけ? 超初心者スレにはちと厳しい内容だが、いろいろ参考になるよサンクスコ
412 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 11:26:28.06 ID:clqtTSXW.net] itertoolsを使わずに A-Zの組み合わせを出力する方法をカンマ区切りで教えてください AA,AB・・・ZX,ZY,ZZ
413 名前:デフォルトの名無しさん [2015/10/04(日) 11:34:24.18 ID:4W1SFQbp.net] >>> [chr(x) + chr(y) for x in range(ord('A'), ord('Z')+1) for y in range(ord('A'), ord('Z')+1)]
414 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 11:36:30.63 ID:eV6iuRhJ.net] python.rdy.jp/wiki.cgi?page=%CC%E4%C2%EA%BD%B8 文字候補'python'からn文字の文字列を生成する(重複なしの場合) 文字候補'python'からn文字の文字列を生成する(重複ありの場合)
415 名前:デフォルトの名無しさん [2015/10/04(日) 11:40:47.45 ID:4W1SFQbp.net] if __name__ == "__main__": AZ = "".join(chr(x) for x in range(ord('A'), ord('Z')+1)) print(AZ) xy = [] for y in AZ: for x in AZ: xy.append(x + y) print("xy =") print(xy)
416 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 15:45:40.47 ID:DtYtvb6R.net] s = "10月 4, 2015 15時:2分: 59秒 GMT" この文字列から日本のタイムゾーン(GMT+9)に変換して2015/10/04 0:02:59に変換する方法を教えてください
417 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 18:00:07.02 ID:tfBvgUb1.net] GMT15時はJST0時じゃないけど
418 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 18:04:44.84 ID:m8Ix8uLj.net] >>400 wwp.greenwichmeantime.com/to/jst/
419 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 18:06:31.52 ID:tfBvgUb1.net] ああ 合ってたか 勘違いしてた ごめん
420 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 18:07:12.28 ID:tfBvgUb1.net] だけど 日付変わってないからやっぱり変だな
421 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 19:40:29.06 ID:m8Ix8uLj.net] 5日の打ち間違いでしょ
422 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 05:35:00.42 ID:Efh3UhbF.net] >>399 >>> from datetime import datetime, timedelta, timezone >>> s = '10月 4, 2015 15時:2分:59秒 GMT' >>> d = datetime.
423 名前:strptime(s, '%m月 %d, %Y %H時:%M分:%S秒 %Z').replace(tzinfo=timezone.utc) >>> d = d.astimezone(timezone(offset=timedelta(hours=9))) >>> d.isoformat() '2015-10-05T00:02:59+09:00' %Zはタイムゾーン名からtzinfoを解析しなかった sのタイムゾーンが変わるならサードパーティ製のpytzやdateutilなどを利用する [] [ここ壊れてます]
424 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 12:04:10.12 ID:JPV4Vzjz.net] こういう().().()みたいなのって () .() .() datetime.strptime(s, '%m月 %d, %Y %H時:%M分:%S秒 %Z') ____.replace(tzinfo=timezone.utc) エラーがでます .replace(tzinfo=timezone.utc) ^ IndentationError: unexpected indent
425 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 12:45:10.22 ID:MX7oHHYL.net] >>406 何が言いたいの? エラーが出るんなら直せばいいでしょう。 どう直せばいいか分からないの? 言いたいことを他人にもちゃんと分かるように書いてください。
426 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 12:51:48.03 ID:Efh3UhbF.net] >>406 Pythonは改行で式や文の区切りを判断するから、行を継続する式を書く場合は 下のように全体をカッコでくくって1つの式とするか (foo() .bar() .baz()) 下のように継続させる行の末尾にバックスラッシュを付ける foo()\ .bar()\ .baz()
427 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 22:22:20.57 ID:5PLQveQr.net] 皆はさpyenv使ってる? linuxの時は全然気にしてなかったけどmacはシステムのpython使うの嫌ってpyenv使う人多いのかな?
428 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 22:33:57.30 ID:MI7O5egC.net] pyenv使ってたけどやめたよ 作者にひつ例だからあえて理由は言わない
429 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 00:32:33.09 ID:gui0gkO2.net] >>409 システムのpython使うの嫌ってというよりも、最初はPython3を使いたい、もしくは2.7の最新を使いたいっていう理由からじゃないですかね。 何も知らなければシステムのPythonをバージョンアップしようとするかもしれませんが、いろいろ調べる過程でシステムのPythonはそのまま置いておいた方がいいと知って…という感じかと。 しかし同じ理由から入るにしても、公式のインストーラ使うとかAnacondaなどのディストリビューション使うとか複数の選択肢があるわけで、その中からpyenvを使うのを選ぶっていうのは、多分に偶然が作用していると思います。 私自身は公式→pyenv→Anacondaっていう感じに流れて、今はAnacondaで落ち着いてますね。
430 名前:デフォルトの名無しさん [2015/10/06(火) 02:00:25.19 ID:ECst51So.net] macはpyenv使わないと、自分の使いたいバージョンのPythonいれることすらできないの?
431 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 02:22:15.60 ID:9QX2zML5.net] いやそんなことは無いよ ただシステムのは古いんじゃなかったけ だから新しいのに入れ替えると元から入ってたのとごちゃごちゃになって os詳しくない人は混乱する恐れあるのでenv使うみたいな ubuntuはわりと新しいの入ってるから楽だよね Windowsってデフォルトで入ってるのかな?
432 名前:デフォルトの名無しさん [2015/10/06(火) 02:31:15.46 ID:ECst51So.net] >>413 >ただシステムのは古いんじゃなかったけ >だから新しいのに入れ替えると元から入ってたのとごちゃごちゃになって システムのは入れ替えずに、それとは別に使いたいバージョンのPythonをいれて、そっちを使うといいじゃない Macではそれをpyenv使わずにできないの?
433 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 07:43:44.36 ID:PGXF9dFG.net] できるよ 誰もpyenv使わないとできないとは言ってないでしょ 最初のネタふりがpyenv使ってる?だったからpyenv中心に話が流れてるだけでしょうに
434 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 18:09:20.96 ID:9QX2zML5.net] >>414 日本語不自由なのかな… できるけどパス設定等自信ない人はデフォルトを弄りたくないんじゃないのっていう話
435 名前:デフォルトの名無しさん [2015/10/06(火) 18:58:10.30 ID:qzKSIZnO.net] gccなどのcコンパイラがない環境でも、easy_installやpipは使えますか。
436 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 19:00:13.29 ID:zH4YnSEx.net] 使える
437 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 19:10:38.33 ID:rjAeuINg.net] >>414 はまずpyenvがなにをするのかドキュメントを読むところから始めたほうがいいよ
438 名前:417 mailto:sage [2015/10/06(火) 19:57:09.50 ID:qzKSIZnO.net] ありがとうございます。 自分はMacのXcodeの環境なので、gccがない環境のことがよくわかりませんでした。
439 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 20:24:51.24 ID:I6zakUtC.net] 411ですがまあ私の書き方もちょっと曖昧で誤解を招く書き方だったかもしれませんね。申し訳ない。
440 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 09:40:03.07 ID:1r79YyMu.net] 別に謝る必要無いよ ID:ECst51Soがmacになんか変な憎しみを抱いてそうってだけの話で
441 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 18:54:50.06 ID:aFLFxckR.net] つーか、このスレで質問のレベルの低さに驚いたり 呆れたり侮蔑の色を示す人は、スレの主旨がわかっていないわけだから 来ないで欲しいところ
442 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 19:38:39.70 ID:X5WUW4ju.net] macには水爆を落としてやりたい。
443 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 20:17:30.86 ID:VfagUZdF.net] >>423 叩かれて顔真っ赤になって悔しい思いをしたのはわかるけど その発言は火に油を注ぐことになることを忘れるな
444 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 21:07:09.24 ID:jcTVQzQq.net] 質問するにも最低限の礼儀はあるわな それすらわからん奴は質問しないで欲しい
445 名前:デフォルトの名無しさん [2015/10/07(水) 21:29:59.61 ID:iZEXRK2I.net] Pythonの次にJavaかC++どっちに行こうか悩んでいるんだが、C#はキライ
446 名前:デフォルトの名無しさん [2015/10/07(水) 22:33:15.73 ID:ax7wmSsY.net] みんな、喧嘩しないで
447 名前:スッキリ厨 mailto:sage [2015/10/07(水) 22:49:29.29 ID:0iwSPjqO.net] 漏れが薦める、勉強の順番 まずこの本で、オブジェクト指向を学ぶ スッキリわかる Java入門 第2版、2014 その後、この2冊を順に読むと、すごくよくわかる たのしいRuby 第4版、2013 みんなのPython 第3版
448 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 23:59:44.13 ID:DipKTZIc.net] >>427 無難にJava? でもPythonと比べたらまどろっこしいと思う
449 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 01:42:29.21 ID:jk8nLMhn.net] 順番とか言ってないでさっさと 作るもん作れよ
450 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 02:41:43.60 ID:pfU24EX7.net] いつからこういう上から目線の回答者が多くなっちゃったんだろ スレ見始めた四年前はこんな人あんまりいなかったけどなあ
451 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 03:29:15.17 ID:TuKbDO7s.net] >>432 ここ以外のPythonスレはひどく過疎っている つまり上級ユーザー同士で語り合える場所がない そのため比較的活発なこのスレに来て初心者に当たり散らす 正義に燃える魔法少女が、成長し強大な力を身につけると 魔女となり害悪をもたらす存在に変わる、という某アニメで見た光景
452 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 05:19:20.93 ID:clkY52aF.net] むしろ成長しそこねたから初心者に向かって偉そうにしてるんだけどな
453 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 10:41:54.11 ID:2A2luB2d.net] また燃料投下してるバカが湧いちゃった
454 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 11:54:07.65 ID:1kxTq/Y8.net] ダメな質問の仕方をしたらどこで聞いても答えてもらえない例 qiita.com/s15007/items/17d492c48c326c737ec1
455 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 13:12:46.49 ID:sRIRMnFE.net] import random def anyProb(numTrials): anyMonth48=0 for trials in range(numTrials): months = [0]*12 for i in range(446): months[random.randint(0,11)] += 1 if max(months) >= 48: anyMonth48 += 1 aProb =anyMonth48/float(numTrials) print u'\n446人の拒食症患者のうち、同一の誕生月の患者が48人以上になるケースが\n少なくとも1つは存在する確率は、', aProb,'です。'
456 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 13:13:21.84 ID:sRIRMnFE.net] このコードの意味が、初心者なので分からないのです。まず、 months = [0]*12 のところで12個分の誕生月の箱をリスト形式か 何かで作っていると思うのですが、実際にインタラクティヴシェルでこの部分だけを実行してみると、 [0]*12 = [0,0,0,0,0,0,0,0,0,0,0,0]となります。months[random.randint(0,11)]の箇所で、0〜11の乱数を取り出して、それを 変数monthsと紐付けているのはなんとなく分かるのですが、具体的にどういう形式になっているのでしょうか。 たとえば、それがmonths[0]やmonth[10]みたいになのか、それともmonths[0,0,0,0,0,0,0,0,0,0,0,0]になったり、 months[9,9,9,9,9,9,9,9,9,9,9,9]、もしくは、months[1,3,5,7,2,9,11,0,4,8,2,2]みたいな感じでrandint(0,11)の乱数が どのように配分されているのかが、よく分かりません。 anyProb(numTrials)のnumTrialsの箇所で試行回数を設定するのですが、これを仮に10000に設定します。この意味は、たぶん range(446)分あるfor文の式を1万回繰り返して、それを0〜11のmonthsにランダムに割り当てて、それを インクリメントしていった値が、48以上になるものをさらにanyMonth48 += 1ところで、+1ずつインクリメントする というものですよね。
457 名前:デフォルトの名無しさん mailto:age [2015/10/08(木) 13:13:48.46 ID:sRIRMnFE.net] その数(anyMonth48)を試行回数で割ったもの(今回は、1万回)の比率を求めています。最終的には、range(446)の範囲での 0〜11へのランダムな配分をしていって、その合計が48以上になる月(0〜11)が少なくとも1つは存在する確率がどれくらい あるかを求めているのですが、 months = [0]*12の部分やmonths[random.randint(0,11)] += 1で本当に行っていることや 、そこで実際に展開されている式などがよく分かりません。その確認のため、[0]*12の部分を[1]や[8]など別の数字を 入れてみると、アウトレンジ、範囲外になっています、みたいなエラーメッセージが出ます。 知っている方がいたら、ご教示をよろしくお願いします。 ちなみに、この確率を何度か計算・実行してみると、0.4…前後の値が出やすい。だからそれは、range(446)の 範囲にあるfor文に1万回の試行をすると、48以上の値を得る月(0〜11)が、40%前後の確率で存在するという意味 だと思われます。
458 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 13:27:57.28 ID:sRIRMnFE.net] '''pythonの最大の特徴であるインデントブロックが全部、潰れて投稿されて 読みづらくなっているので、再投稿する。これでも、ダメだったら今回は諦める。''' def anyProb(numTrials): anyMonth48=0 for trials in range(numTrials): months = [0]*12 for i in range(446): months[random.randint(0,11)] += 1 if max(months) >= 48: anyMonth48 += 1 aProb =anyMonth48/float(numTrials) print u'\n拒食症患者のうち、少なくとも48人以上の患者が発生した誕生月が\n少なくともひとつは存在する確率は、', aProb,'です。'
459 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 13:30:28.89 ID:qk4fmR9D.net] month = [0] * 2 months[0] = 1 months[1] = 2 month[random.randint(0, 1)] = 1000 random.randintが何をするかはドキュメントに書いてある docs.python.jp/2/library/random.html をrandom.randint
460 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 13:31:48.39 ID:qk4fmR9D.net] インデントさせるならcodepadやideoneに投稿するか、アンダーバーを使う def a(): ____print(1) ____return 1
461 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 13:49:51.31 ID:x1B1+vrd.net] >>438 コード全体の流れについてはあなたの見解で合っていると思います 個々の部分、変数への代入やリストの操作について分からないということですね 最初の点、months = [0]*12の内[0]*12の部分の意味はあなたの見解で合っています シェルで確認したとおり[0]*12は[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]へと計算されます この計算を言葉で書き下すと「数値の0が1つ入ったリストを12個複製して1つにつなげる」 この計算結果は=の文でmonthsと名づけた変数へ代入されます Pythonでは変数へ代入によって計算した値を保持し、後のタイミングで再び計算に利用します
462 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 14:07:53.32 ID:sRIRMnFE.net] >>441 >>442 解答ありがとうございます。 months[0] = 1 や months[1] = 2 になっているのですね。ということは、 リストに入る要素の個数を指定出来るということか、あるいは、順番(順・序数)を示しているのかのいずれか という感じ。とりあえず、書いていただいたように months[0] = 1 と考えると、 months = [0]*12 は months = 12 になりそうだけど、詳細の理解はあやしいです。 書いていただいた month[random.randint(0, 1)] = 1000 の意味さえ分からないです。0〜1の範囲にある 無限の実数の中かから1000個分の要素を取り出すのか、あるいは、それが1000と等しくなるようになにかの 作業をするのか。この程度の初心者です。 >>443 解答ありがとうございます。ご指摘頂いた段階までの計算の展開は分かりました。もしよろしければ、 その次段階で、どのような式が展開されているのかを、ご教示して下さい。変数monthsに紐づけられた乱数が、 どのように実際に割り当てられているかの例をいくつか式や形式と一緒に挙げて頂ければ、幸いです。 よろしくお願いします。
463 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 14:44:11.87 ID:x1B1+vrd.net] >>444 リストに入っている値には添え字[]を使ってアクセスできます 添え字には通常、先頭(0)から最後尾(リストの長さ-1)まで指定できます months[random.randint(0, 11)] += 1の[]の中の部分を取り出して文を2つにわけると i = random.randint(0, 11) months[i] += 1 「0から11の範囲でランダムな整数値をiに代入する。 monthsの(変数iに入っている数値)番目の値に1加算する。」
464 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 15:21:00.78 ID:sRIRMnFE.net] >>445 解答ありがとうございます。なんとなく少し解ってきた感じです。 入れ子構造で理解できるのですね。それなら、iの部分に実際の乱数(0〜11) を入れてみると、 months[0] months[1] months[2] months[3] months[4] months[5] months[6] months[7] months[8] months[9] months[10] months[11] になるのですが、添え字ということなので、たぶんmonths[_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11] という風な(形)式が見えない内部では展開されていて、イテレーション?みたいな感じで 、添え字に該当している月の数値(0〜11)「ここでは、添え字(_0〜_11)と月を表す0〜11が一致しているので」に、 ランダムに配分された乱数は、リストmonths内の添え字を指示するようになって、それがそれぞれの別の添え字(=月ごと) にランダムに乱数として配分されていくことで、それぞれの添え字=月にインクリメントされていっているという理解でいいのでしょうか。
465 名前:デフォルトの名無しさん mailto:age [2015/10/08(木) 18:21:07.57 ID:sRIRMnFE.net] あと、このコードの分かりづらい点は、months = [0]*12 のコード で実行すると、確率の値 aProbが0.4…の範囲に出やすいの理論上正しい のだけど、たとえば、指定している乱数random.randint(0,11)の中で一番 大きな乱数の値である11を使って、months = [11]*12 のコードに変更して みると、途端に確率が1.0となって、倍以上に増えて表示されてしまう。 その意味は、1万回の試行の全てにおいて、446人の拒食症患者のうち、同じ誕生月の 拒食症患者が48人以上になるケースが少なくともひとつは存在する確率が100%で あるということ。 どうもmonths = [0]*12の[]の部分の数値が大きくなるのと連動して、確率値も どんどん上昇していくようなコードや計算上の仕様になっている感じがする。 months = [0]*12の時が1番低いaProbの確率で、0.4…くらいの値。 months = [11]*12の時は、aProbの確率が1.0、つまり100%。 乱数がリストmonthsの添え字として配分されているのであれば、months = []*12 の[]の箇所に0〜11のどの乱数を入れても、そこに結び付けられる添え字は同じ なのだから、最終確率も類似のものになってもよさそうなのに、どうも []の中に0<1<2<3<4<5<6<7<8<9<10<11という関係と比例する形で、aProbの確率が 最初の0.4〜5の範囲から、最終的には1.0(months = [11]*12の時)にまで達する ぐらいに値が理論上の計算値からズレてきてしまうのです。 その理由が分かりません。
466 名前:デフォルトの名無しさん [2015/10/08(木) 18:56:24.52 ID:2HMBHL9M.net] 確かにスレの伸びはここが一番かも知れんが 読む価値無いわ
467 名前:デフォルトの名無しさん mailto:age [2015/10/08(木) 18:57:04.57 ID:sRIRMnFE.net] 少し考えられそうなのは、months = [0]*12 のコードでの実行時は、 months[0,1,2,3,4,5,6,7,8,9,10,11]、もしくはmonths[1,2,3,4,5,6,7,8,9,10,11,12] といった感じのmonthsリストが形成されて、それに割り振られた0〜11の乱数の 添え字によって、それぞれの月ごとにインクリメントされた値から最終的な確率が 正しく導き出されるのに対して、 months = [11]*12 のコードの実行時は、months[11,11,11,11,11,11,11,11,11,11,11]か months[12,12,12,12,12,12,12,12,12,12,12]みたいに、とにかくリスト内の要素が すべて同一の値(別に11でなくてもいい)になってしまっていて、そのことによって、 0から11の乱数としてどの添え字が配分されても、同一の要素(月)だけが インクリメントされてしまっているので、最終的な確率が1.0=100%と表示されてしまうのかな。 でも、教えてくれた方は、months = [0]*12で、[0,0,0,0,0,0,0,0,0,0,0,0] が作られて、リスト内の要素には添え字でアクセスする、と言っていた。 私は、その添え字をrandom.randint(0,11)から渡される(0〜11)の値だと 思っていたのだけど、その理解が違うのでしょうか。 >>441 さんの month = [0] * 2 months[0] = 1 months[1] = 2 という数え方の方が、なんとなく、計算結果と合致するのですが。
468 名前:デフォルトの名無しさん [2015/10/08(木) 19:05:44.30 ID:/mg/zjar.net] いわゆるsjisのダメ文字といわれるやつですが、回避方法はどんな手がありますか。 MS-Windows版Python 2.6です。 ZipFile.write(u'ソング.txt', u'ソング.txt'.encode('cp932')) で、zip内のファイル名の「ソ」(文字コードにバックスラッシュを含む)が化けます。
469 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 19:48:03.02 ID:29V1SYaY.net] windowsってさutf-16も扱えなかったっけ pythonでutf-16に変換できるか知らないが試してみておしえて
470 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 20:03:10.67 ID:TEWEdEIy.net] >>449 何を勘違いしてるのか謎だけどリストに対する乗算は、それを乗数分繰り返したリストを生成する つまり[0]*12は要素が12個で全てが0のリスト…なのでその理解はいい、そのリストへの参照がmonthsに割り当てられる しかし変数にくっついた鉤括弧はリストに使うと要素に(0から始まる)インデックスよってアクセスすることを意味する random.randintによってそのインデックスをランダムに決定することで患者数をインクリメントする月をランダムにする month = [11] * 12では各月に最初から11人罹患していることになってしまう >>450 ZipInfoにos.sepを/に置き換えるコードが入ってるのでねぇ…手っ取り早くos.sep = '/'とかしても回避できるけど ドライブのセパレータを除去できなくなったりするので大人しくUnicode渡してUTF-8で記録させた方が…
471 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 20:26:13.91 ID:TEWEdEIy.net] あーそうかエクスプローラとかだと未だにUTF-8フラグ対応してないっけ…ZipFile作る前に zipfile.ZipInfo._encodeFilenameFlags = lambda self: (self.filename.encode('cp932'), self.flag_bits) でも挿入してみるとか、ファイル名は全部unicodeで渡して
472 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 00:31:33.88 ID:rd4aRhyU.net] マジックナンバーは氏ね
473 名前:デフォルトの名無しさん mailto:age [2015/10/09(金) 04:06:48.90 ID:351lCfXP.net] >>452 その説明で、ようやく分かりました。感謝です。 リストに複数入った要素へ乱数をインデックスに割り当ててインクリメントしていく状態といった コードが、自分的には見慣れないレアなコードだったので、そのイメージが得にくかったのです。 x+=1やx*=5みたいに1つの変数xに対して、インクリメントするのなら理解しやすいのに。 months = [0]*12で最初の状態は、[0,0,0,0,0,0,0,0,0,0,0,0]になって、range(446)の条件で インデックスに乱数が配分されて、[random.randint(0,11)] += 1でインクリメントされた時は、 たとえば、[33,50,36,42,17,69,24,44,34,35,40,19,43] みたいな感じにリストの値が変わるということ なのでしょう。 > month = [11] * 12では各月に最初から11人罹患していることになってしまう と教えていただいたので、それは、 months[11,11,11,11,11,11,11,11,11,11,11,11] のリストの状態から インクリメントがスタートしてしまっている状態なので、のちに得られる最終的な確率も months = [0]*12の[0,0,0,0,0,0,0,0,0,0,0,0]からスタートしたものよりは、当然上がってくる、ということ なのだろう。教えて頂いて、助かりました。>>452 さん 再感謝です。
474 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 04:58:55.41 ID:
] [ここ壊れてます]
475 名前:SqKziDAZ.net mailto: >>450-453 ファイル名には、半角英数字と、_(アンダーバー)だけを使う 外人が作るアプリでは、 日本語・空白文字・ダメ文字などを想定していないから、 まともには動かない >>437 連想配列と同じ。 文章内に出てくる、単語数を数える処理などで、よく見る words['dog'] += 1 words['cat'] += 1 dogという単語は3回・catは5回、出現したとか そのプログラムも、キーを患者の番号ではなく、 名前・患者IDなどで考えたら、よくわかる 初心者は、>>429 の本を読んだ方が速い [] [ここ壊れてます]
476 名前:名無したん(;´Д`)ハァハァ [2015/10/09(金) 07:26:12.88 ID:R/fihbLN.net] IDEって何使ってる? Vim? Pyscripter? Emacs?
477 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 08:16:42.93 ID:8cGzmkg3.net] spyder 使ってるよ。
478 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 09:42:45.91 ID:Pt9XGpl2.net] Eclipse + PyDev 使ってる
479 名前:450 mailto:sage [2015/10/09(金) 23:14:14.52 ID:CLF1T+DB.net] >>451-453 レスありがとうございます。 ZipInfo.__init__() 内で'\\'を'/'にreplace()した部分を無効化しました。 関数もオブジェクトなので書き換えられるという発想がありませんでした。
480 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 23:30:48.74 ID:LjniZf+R.net] >>457 Visual Studio GUIから仮想環境作ったり、pipでパッケージ入れたりできるの便利だった。
481 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 06:25:13.56 ID:xKeKrZ5a.net] >>455 もう見てないかもしれないけど、コードの意味がわからなかったらそれを逐一printして確認すれば大抵のことは解決します 初心者がプログラムを見て自分でアレコレ推論するほど意味の無い行為はありません 上級者でも袋小路に陥ったらそうします(実際はデバッガーを使うけど初心者はprintで頑張る) 今回の場合はforの中のmonthsをprintしてれば長時間悩むこと無く解決してたかと思います
482 名前:デフォルトの名無しさん [2015/10/10(土) 07:39:28.47 ID:xRAr0t1S.net] えっ、Pythonそんないいdebuggerあったの? わたし、print()、logger()で頑張ってたけど、、、
483 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 08:04:17.66 ID:qrMNhsm1.net] 正しい順番は、仕様書 → ソースコード これを逆にして、ソースコード → 仕様書 では、ソースコードの作者が、 わかりやすく書いているとは限らないから、 理解するのに数倍の時間がかかる ソースコードは読まない方がいい。 達人が書くソースコードは、変数名・関数名を見たら、 すぐに処理がわかるので、読む必要もない 達人は、バーッとすごい勢いで、 ソースコードを書いたりしない 作業時間の1/3はじっくりと、 わかりやすい名前を考えている また1/3は、ソースコードの構成について考えている。 残り1/3が、プログラム・デバッグなのだが、 ほとんどバグを起こさない つまり、バグのほとんどは設計段階で生じるから、 プログラム・デバッグの段階では、生じないのだ
484 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 08:37:11.80 ID:336gnDzB.net] netbeans
485 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 09:48:22.09 ID:GwjphGt7.net] > 463 Spyder だと、コードのステップ実行したり、ブレイクポイント置いたり、実行中の変数を見たりが出来て、便利だよ。 print のみで十分なことの方が多いけどね。
486 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 11:54:13.99 ID:3ApnBNOY.net] pdb
487 名前:デフォルトの名無しさん [2015/10/10(土) 12:27:29.78 ID:/egW/Cb1.net] これか www.oreilly.co.jp/books/9784873114484/
488 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 12:39:41.31 ID:xKeKrZ5a.net] printだ
489 名前:けだと「多分この変数が原因だろう」と自分が注目している変数しか見ないじゃない もしその変数じゃなくて関連する別のやつが原因だった時にそれじゃ特定にめっちゃ時間かかる デバッガ使えばその状態の変数がすべて見られるから片っ端から調べる事が可能 あとprintだと可読性が悪すぎるし(特にclass)GUIデバッガは閲覧性高くて便利 [] [ここ壊れてます]
490 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 13:07:52.25 ID:3vz2/iUj.net] お薦めのGUIデバッガは何がありますか?
491 名前:デフォルトの名無しさん mailto:age [2015/10/10(土) 13:53:22.01 ID:/rn3qk7+.net] >>456 「みんなのPython第3版」は持っています。時々、部分的に参照しています。 連想配列のことも、この本の後ろの索引には載ってましたが、「ディクショナリはハッシュ(連想 配列に似ている)」みたいに書かれているだけでした。 >>462 さっそく、その方法を今、試してみました。range(446)のfor文から print months を対話シェルで実行してみたところ、 [33,28,36,43,41,43,39,36,40,32,40,36] と表示されていました。 私が、こういう感じのものが見えない部分で計算・表示されているのでは?と脳裏に イメージしていたのと同様のものが、実際に表示されてて、嬉しかったです。 ありがとうございます。教えていただいたように、コードが分からない時には、 print文で、小さくチェックして動作検証を行うというスタイルを試すようにしてみます。 「small is beautiful」というプログラミング言語に関する格言もあるようですし。 まさに、pythonの対話シェルの仕様など、その利点を生かせそうです。 ちなみに上記のリストの要素の値を全部足してみたところ、447になっているので、 range(446)=447 ということで、乱数がインデックスに配分されてインクリメント +1された値も、当然ながら無事に合致してました。
492 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 14:07:59.78 ID:UQMKf0jM.net] [hoge, 1] [hog, 2] [ho, 3] [h, 4] . . . というような沢山のリストをループ処理の結果、出力する、というような関数を作ったのですが、返し値にうまく入ってくれません。 一回目のループ結果、つまりこの例で言う一番上の [hoge, 1]だけが値に入って返されてしまいます。 とうすれば全てのループ処理の後のデータが返し値に入ってくれるでしょうか。 ループの外にreturnをおいてもダメでした。 宜しくお願いします。
493 名前:デフォルトの名無しさん [2015/10/10(土) 14:12:03.68 ID:/egW/Cb1.net] >range(446)=447 ???
494 名前:デフォルトの名無しさん [2015/10/10(土) 14:13:33.49 ID:/egW/Cb1.net] >>472 関数のソース貼る気は無い?
495 名前:デフォルトの名無しさん mailto:age [2015/10/10(土) 15:06:45.71 ID:/rn3qk7+.net] >>473 range(10)だと、0〜9の意味なので、 range(446)たと、0〜445になって、 各インクリメントごとに+1の仕様なので、ご指摘の疑問のように 計446になっていてよさそうなものなのに、でも、理由が分かりました。 別の計算をしてリストの要素のひとつに1が入った状態のまま合計してしまったので +1増えた状態で計算してしまったみたい。 なので、もう一度、対話シェルを使ってやり直してみると、 months[34,34,39,33,34,38,27,41,33,46,46,41] で各要素を合計したところ、446になったので=range(446)で、今度は合ってますね。 たぶん、インデックスの数え方が0から始まるので+1なっていてもいいのだと、 勘違いしていたので、range(446)=447でOKなのだと、誤解していました。 ご指摘、ありがとうございます。
496 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 16:13:00.22 ID:jcnnPVwy.net] キミは大体いつも難しく考え過ぎなのでR
497 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 16:28:13.84 ID:5vRp+uuJ.net] ここソース貼ってもインデントちゃんと付かないじゃん 質問に不向きなんだよ
498 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 18:05:20.74 ID:UQMKf0jM.net] >>474 すみません、こんな感じです f = open(u"data.txt") data1 = f.readlines() f.close f = open(u"de
499 名前:l.txt", "r") del = [line.strip("\n") for line in f] f.close number = "150" def get(): _____for data in data1: _____list_a = data.strip("\n").split("\t") _____dict_a = {"name":list_a[0], "cluster":list_a[1]}_____if number in dict_a.values(): _______data2 = dict_a["name"].split() _______del_data = [d for d in data2 if d not in del] _______return del_data data.txtには 文字列、番号のセットのデータが大量に、 del.txtには削除したい文字列が改行区切りで入ってます。 番号は被っており、番号というよりかはグループのイメージです。 このコードだと、150という番号を持った文字列を抜き出し、さらにそこから所定の文字列を削除する、という処理が目的です。 宜しくお願いします。 [] [ここ壊れてます]
500 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 18:26:22.18 ID:LR5ASwn1.net] numpyまじで難しすぎる 数学の知識が無いときついな
501 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 18:30:55.73 ID:LR5ASwn1.net] >>478 とりあえず短めのサンプルデータと、そのサンプルデータを使って返されるデータを張って
502 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 18:53:57.48 ID:evwOALkb.net] 質問の答えじゃないけど del って変数名に使えるか?エラーでない?
503 名前:デフォルトの名無しさん [2015/10/10(土) 19:02:30.99 ID:UQMKf0jM.net] >>480 例えばdata.txtの中身が abcd 1 efgh 1 ijkl 1 mnop 2 qrst 2 uvwx 2 yz12 3 3456 3 789@ 3 (全てタブ区切り) だとして、numberを”1”とした場合、本当は ['abcd'] ['efgh'] ['ijkl'] が返ってきてほしいのにこのままだと ['abcd'] しか返ってこない、ということです。 >>481 変数名は適当に変えただけなので、都合のいいものに変換してくださると助かります。
504 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 19:12:43.97 ID:evwOALkb.net] return del_dataのせいかな 最初に条件に合うものが見つかった時点で処理が終了してしまうから 返り値用のリストをつくってそれにappendしてさいごにそのリストを返すとか yield文つかうとか
505 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 20:06:54.52 ID:KhrHeyZL.net] data = [ ['abcd', 1], ['efgh', 1], ['ijkl', 1], ['mnop', 2], ['qrst', 2], ['uvwx', 2], ['yz12', 3], ['3456', 3], ['789@', 3], ] ary = [] for i in data: ____if i[1] == 1: ________ary.append(i) print(ary)
506 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 20:07:25.80 ID:KhrHeyZL.net] ファイルから扱いやすいようにパースするのは自分でやってね
507 名前:デフォルトの名無しさん [2015/10/10(土) 21:09:48.83 ID:xRAr0t1S.net] >>482 ほらよっ。 if __name__ == "__main__": path = "tech482.txt" number = "1" L = [] with open(path) as f: for l in f: l = l.strip() # print(l) if not l: # 空行 continue key, value = l.split() if value == number: L.append(key) print("L =") print(L)
508 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 21:58:40.61 ID:BkPjyjwr.net] >>486 478によればファイルの1行はタブで区切られた文字列と数字で構成されており、さらに文字列内部にスペースによる区切りを持っている。そのコードでは期待した結果にならないし、質問者を混乱させると思う。 あと、辞書でもなく、keyとvalueの関係でもない値をkey, valueという変数名で受けるのは、初心者を混乱させると思う。
509 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 02:21:59.87 ID:AyUJcJIA.net] >>482 >>478 のgetをジェネレーターにした def get(number, data_list, del_list): for data in data_list: name, cluster = data.strip("\n").rsplit("\t", 2) if number in (name, cluster): yield [d2 for d2 in name.split() if d2 not in del_list] def main(): number = "1" with open(u"data.txt") as f: data1 = f.readlines() with open(u"del.txt") as d: del_list = d.read().split("\n") for L in get(number, data1, del_list): print L if __name__ == '__main__': main()
510 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 07:35:19.16 ID:gtAaD4ZL.net] >>478 if number in dict_a.values(): のところだか、 確認したいのはclusterの値がnumberの値と同じかどうかなんだから、 values()で辞書のすべての値を取得してチェックしているのは、おかしい。 無駄な処理をしてるし、潜在的なバグになる可能性だってないとは言えない。 if dict_a['cluster'] == number: と意図をストレートに反映したプログラムにした方がいい。
511 名前:デフォルトの名無しさん [2015/10/11(日) 09:05:37.55 ID:ejMduT14.net] 様々なアドバイス、有難うございました。 いろいろな手法があり、とても勉強になります。 取り敢えずは堅実にyieldでデータを返してforで回す、という方法をとりたいと思います。 ご協力有難うございました。
512 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 10:42:31.52 ID:ngi+Bnfd.net] >>478 x f.close o f.close()
513 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 20:56:16.47 ID:bs+FqhpV.net] venvでpython2.7の仮想環境を作る方法を教えてください
514 名前:デフォルトの名無しさん [2015/10/11(日) 21:58:33.87 ID:WJzfMgSC.net] python経験者って言えるのってどのくらいのレベル? 学生バイトに申し込みたい
515 名前:デフォルトの名無しさん [2015/10/11(日) 21:59:43.94 ID:WJzfMgSC.net] >>493 です。 連投すいません。 私は、入門書を1周した程度の、超初心者です。。。
516 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 22:04:29.32 ID:Y91Ji1zq.net] pyconやってたんですね 誰も話題にしないから開催前に気づかなかった
517 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 01:24:18.28 ID:3+p+nAKf.net] >>493 経験の意味合いは人によって異なる そのバイト先に問い合わせなさい
518 名前:デフォルトの名無しさん [2015/10/12(月) 09:37:30.89 ID:cfQqiQeE.net] だれかpy2exeより軽量で軽いビルダー作って~
519 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 12:14:02.34 ID:Y/lDePmz.net] pyconなんて6ヶ月前から話題になってましたが アンテナが足りないんじゃねえの人のせいにするなよ
520 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 12:17:32.49 ID:ntYAJ4A2.net] なに14時間前のレスに食ってかかってんだお前 飯でも食えよ腹減ってんだろ?
521 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 12:22:29.41 ID:ObyDPERj.net] キレるポイントが特異な人だなあw
522 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 12:31:32.04 ID:LCoCFKNB.net] >>492 venvモジュールはPython3.3から付属するから、あなたは現在すでに3.3以上をインストールしていて、でも2.7も試したい、それも仮想環境の中で試したい、ということでいいのかな。 結論から言うと、venvモジュールにはPythonのバージョンを指定して切り替える機能はないので、venvではできない。 Pythonのバージョンを指定しつつ仮想環境を構築できる方法としては、大雑把に言うと 1. virtualenvを使う 2. pyenvを使う 3. anacondaを使う の3つがある。 大雑把過ぎてこれだけだと不正確な説明だけど、正確に説明しようとするといくらでも長文になるので、とりあえず方向性としては3つあるんだな、と理解しておいてください。
523 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 12:34:10.25 ID:ntYAJ4A2.net] 誰も話題にしなかったってのは100%嘘だよ 俺2ヶ月前にこのスレでPyConに言及したし ただPyCon行くよりは, その金でyapcに行くか 焼き肉をたらふく食べることを勧めるね 役に立たないから
524 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 14:06:52.66 ID:QD0vOYoj.net] それな
525 名前:デフォルトの名無しさん [2015/10/12(月) 20:45:14.34 ID:TeZNppeg.net] python2.7のscriptをpython3.4に引っ越そうとして、つまづいています。 2.7では、 str_data = str_data + chr(0xfd) + str_adddata などとしていました。 元のstr_dataが"00"でstr_adddataが"11"だとすると、この式の後ろでは、str_dataをhexで表現すると"3030fd3131"となっていました。 これは期待動作でした。 しかし、これをpython3.4で動かすと、"3030c3bd3131"となってしまっています。 どう記述すれば、同じ意味にできるのでしょうか。 教えてください。
526 名前:デフォルトの名無しさん [2015/10/12(月) 21:30:25.92 ID:fqUNFNRv.net] if __name__ == "__main__": str_data = "00" str_adddata = "11" str_data = str_data + chr(0xfd) + str_adddata print("str_data =", str_data) print("str_data =", str_data.encode()) print("len(str_data) =", len(str_data)) print("len(str_data.encode()) =", len(str_data.encode())) print() bytes_data = "00".encode() bytes_adddata = "11".encode() bytes_data = bytes_data + b"\xfd" + bytes_adddata print("bytes_data =", bytes_data) print("len(bytes_data) =", len(bytes_data))
527 名前:デフォルトの名無しさん [2015/10/12(月) 21:56:20.19 ID:TeZNppeg.net] >>505 ありがとうございます。 バイト同士ならOKだったのですね。 期待動作を確認できました。
528 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 23:50:56.76 ID:dF+vuBUQ.net] 三つも聞きたいことがあるのですが、どれでも教えていただけると助かります 環境は関係なさそうですが、一応Python2.7でWindowsです 一つ目: import Aとfrom A import *って同じですか? 二つ目: from ctypes import * windll.user32.SendMessage() 上記のようにしてWin32APIを呼び出しているのですが、 user32.SendMessage()のようにwindllを略して書けるimportの書き方を教えていただけませんか? 以下は自分で試してみたパターンです from ctypes.windll import user32 import ctypes.windll.user32 as user32 from ctypes import windll.user32 as user32 三つ目: ctypesを使って書いたスクリプトをこのモジュールごと同梱して配布したいのですが、 これは内部で_ctypesというモジュールをインポートしているようなので、 ファイル検索してみた結果、DLLs/_ctypes.pydとlibs/_ctypes.libで、 らしきファイルを二つ見つけました。これは両方共必要ですか? 以上です。お手数ですがよろしくお願いします
529 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 00:06:17.74 ID:YzZ6qWCc.net] 一つ目 違う 二つ目 windllはモジュールじゃないからimportでは無理 user32 = windll.user32を自分で書く以外ない 三つ目 libは要らん
530 名前:507 mailto:sage [2015/10/13(火) 00:15:55.77 ID:AORQ6+t2.net] >>508 ありがとうございます!助かりました
531 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 07:04:34.55 ID:mv2XvxUt.net] >import Aと、from A import * って同じですか? import math as m m.cos(1) from math import cos, sin, tan from math import * cos(1) 上のように、モジュール名を付けた方が、わかりやすい
532 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 07:41:15.88 ID:f2cwsjVv.net] >>510 >モジュール名を付けた方が、わかりやすい 一文字が分かり易いか否かは、人によるかと。
533 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 08:19:51.17 ID:YzZ6qWCc.net] 一文字にはしない a, b, c, i, j, k, n, m, v, x, y, zあたりはループやラムダ変数に使うから
534 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 08:24:58.45 ID:YzZ6qWCc.net] e, p, q, w, h, r, s, tもよく使うかな
535 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 08:49:11.87 ID:cqCsA1PS.net] 2バイト文字も使えます
536 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 08:57:46.94 ID:Fh+xbXsm.net] モジュール名はつけておいたほうが弊害無いと思う cosとかはサードパーティライブラリにもあったりする可能性があるので名前が被って思わぬハマりポイントになりがち 短い書捨てコードなら付けなくてもいいけど
537 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 11:01:59.94 ID:ULA4zX5N.net] スコープが狭けりゃモジュールはつけな
538 名前:い [] [ここ壊れてます]
539 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 18:00:29.09 ID:XHQqqM3u.net] a = raw_input() if a == "a": print ("アタリ") else == "b": print ("ハズレ") 入力→結果→再入力の繰り返しにしたいです。 どのように書き加えればうまくいくでしょうか… お願いします
540 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 18:01:40.60 ID:XHQqqM3u.net] >>517 else: print ("ハズレ") 書き間違えました…
541 名前:デフォルトの名無しさん [2015/10/13(火) 20:01:45.04 ID:U/y2WxCw.net] while True: a = raw_input() if a == "a": print ("アタリ") else: print ("ハズレ")
542 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 20:15:14.36 ID:Qx5knz2N.net] >>519 breakする条件も一応は入れてあげた方がいいんじゃないかw
543 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 20:27:20.82 ID:fswW2dsD.net] atan2なんですけど 時計の45分のところを0度、0分を90度として計算するにはどうしたらいいですか?
544 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 20:43:26.84 ID:XHQqqM3u.net] >>519 >>520 ありがとうございます continueについてばかり考えてwhileを忘れてました。 breakについては調べたら分かりましたので多分大丈夫です…
545 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 01:35:04.90 ID:xEnjhypG.net] >>521 グラフを書いてみたらイメージ湧くと思うけど、引数に-1掛けて計算すればいける。
546 名前:デフォルトの名無しさん [2015/10/14(水) 11:47:27.53 ID:NJzvazWx.net] CSVファイルの行を反転させ、保存するのはどうしたらいいでしょうか? 1,2,3 4,5,6 7,8,9 10,11,12 13,14,15 ↓ 13,14,15 10,11,12 7,8,9 4,5,6 1,2,3 このような感じで反転させ、保存したいです。
547 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 11:52:24.96 ID:8Sy25YjX.net] open('out.csv', 'wb').write('\n'.join(reversed(open('in.csv', 'rb').readlines())))
548 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 11:58:10.57 ID:8Sy25YjX.net] ごめん これでいいわ open('out.csv', 'wb').write(''.join(reversed(open('in.csv', 'rb').readlines())))
549 名前:デフォルトの名無しさん [2015/10/14(水) 12:02:14.65 ID:NJzvazWx.net] >>525 こんなに簡単なコードで実現させてくれてありがとうございます。
550 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 12:12:04.99 ID:8Sy25YjX.net] ファイルの最後が改行で終わってない場合は結果が可笑しくなるかも知れない
551 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 13:34:42.51 ID:tbd5i+Zu.net] $ tac a.csv > b.csv
552 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 21:01:13.38 ID:aVFYhswz.net] >>526 ごめんちょっと質問 そういうふうに書いたときと with open('in.csv', 'rb') as f: __tmp = f.readlines() __tmp = ''.join(reversed(tmp) with open('out.csv', 'wb') as f: __f.write(tmp) こんな感じに分けて書いた時とでは、機械語になったときに違いがある? どっちの書き方がいいとかいう話じゃなくて、純粋にマシン語になっても違うのかそれとも最終的に同じになるのかっていう疑問なんだけど。 あとそういう書き方をしたらcloseはしなくてもいい?
553 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 21:51:09.53 ID:O2Vg9iRA.net] pythonで2chに書き込みたい・・・
554 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 21:51:30.64 ID:travUk60.net] >>530 機械語じゃないけどdisを使ってバイトコードを見ることはできる 結果は張らないけどwith文なしの方が簡潔だがクリーンアップ処理をしない closeを呼ばない場合、変数の寿命までファイルハンドルを解放しないだろう
555 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 22:04:45.01 ID:9V9DYJOq.net] バイトコードと機械語は区別しておかないと そのうちモヒカンとレザースーツの怖いオッサンにハンドアックスで襲われるぞw
556 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 22:26:22.36 ID:V5hvgk/k.net] >>530 基本的にはこれがあるので解放されないことはない ttp://docs.python.jp/3/library/io.html#io.IOBase.__del__ が、__del__が呼ばれるタイミングは保証されないので ttp://docs.python.jp/3/reference/datamodel.html#object.__del__ 大人しくwith文を使いましょう、1行にしたければwith ~ as ~,~ as ~: ~
557 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 23:33:45.74 ID:aVFYhswz.net] みんなありがとう ・disモジュール ・バイトコードとはなんぞや、また機械語との違い ・io.IOBase.__del__、object.__del__ ・with文が複数のコンテキスト式を持てること 知らなかったこと、意識したことがなかったことがこんなにたくさん出てくるとは… ひと通りリンク先など公式リファレンスを中心に読んでみて、理解できたことも、理解できなかったこともあったけど、勉強になったよ
558 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 00:11:21.54 ID:E11DY73q.net] おうガンガンdisってやれや
559 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 10:27:00.45 ID:bdlPZJI1.net] 2の頃はopenしてcloseしないプログラムで溢れかえってたな 今でもf=open()してf.closeとか書いちゃうひともいるけど
560 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 11:29:08.43 ID:oh5EEV7k.net] pipでインストールしたライブラリと同名のファイルをカレントディレクトリに配置した場合 両方のライブラリを読む方法を教えてください
561 名前:デフォルトの名無しさん [2015/10/15(木) 12:20:50.64 ID:bdlPZJI1.net] 馬鹿には無理
562 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 12:32:12.53 ID:E11DY73q.net] 無理って何なんですか 死ねの間違いでしょ
563 名前:デフォルトの名無しさん [2015/10/15(木) 20:53:36.44 ID:teOaKAE0.net] >>538 無理です カレントの方を module2.py 等に変更してください
564 名前:デフォルトの名無しさん [2015/10/16(金) 00:48:05.36 ID:NRJXYjK/.net] Yuya-no-MacBook-Pro:~ Yuya$ pyenv versions system * 3.5.0 (set by /Users/Yuya/.pyenv/version) Yuya-no-MacBook-Pro:~ Yuya$ pyenv global 3.5.0 Yuya-no-MacBook-Pro:~ Yuya$ pyenv rehash Yuya-no-MacBook-Pro:~ Yuya$ pyenv version 3.5.0 (set by /Users/Yuya/.pyenv/version) Yuya-no-MacBook-Pro:~ Yuya$ python --version Python 2.7.10 なんかいやってもversion切り替えできませんどうしてですか。
565 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 02:28:13.47 ID:nO2Tiq06.net] bashの設定は?
566 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 07:05:02.10 ID:AgtpvZ0j.net] ゆーやーwww
567 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 08:27:28.01 ID:FC1Yc6+l.net] 使い方を読んでないからだろ RTFM それが嫌なら死ね
568 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 08:32:35.07 ID:jXGfcQ6G.net] pyenvでは、 activate で仮想環境をアクティブにしなくても良いの?
569 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 09:38:35.71 ID:D33QNIgD.net] そうだよ pyenv globalは仮想環境外で使用するpythonを切り替えるコマンドだから ただし, 適切なPATHが設定されていないと動作しない 指摘されているように, READMEに書いてある
570 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 10:47:31.18 ID:x5kkqrSP.net] シェケナベイベー
571 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 10:58:20.93 ID:gZzQyjNX.net] >>542 rehashはinstallしたあとに実行しろ 俺はこうしてるよ systemに最初から入っているpythonは使わない pyenvで2.7.10と3.5.0をインストールする pyenv install 2.7.10 && pyenv rehash pyenv install 3.5.0 && pyenv rehash pyenv global 2.7.10 3.5.0 python --version # これは2.7.10 python3 --version # これは3.5.0 ~/hogeの中ではpythonで3.5.0を使いたいなら cd ~/hoge && pyenv local 3.5.0
572 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 13:11:14.95 ID:ycnfRT7Z.net] Anaconda3でscipyというライブラリを使っているのですが ソースを見てみると"cdef"や"cimport"といった文があります cythonではないAnacondaでこれらの文が使えるのはなぜでしょうか
573 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 13:25:51.00 ID:ycnfRT7Z.net] >>550 自己解決しました コンパイルしたものを使っていたのですね
574 名前:デフォルトの名無しさん [2015/10/17(土) 14:17:16.78 ID:8crV4oii.net] 久々のほほえましいレス
575 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 18:09:19.66 ID:XWWnk8mi.net] pythonって手動GCの方針はあり? デーモンプログラム作ってるんだけど、自動GCだとメモリがどんどん増加したんで、ループの最後とかにgc.collect()を仕
576 名前:桙だらある一定で安定するようになった [] [ここ壊れてます]
577 名前:デフォルトの名無しさん [2015/10/17(土) 18:17:48.87 ID:0116KRBh.net] ありあり。 長時間稼働させる場合は特に必要だと思う。
578 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 21:25:28.58 ID:wyhUq8vl.net] 僕なら10リクエストごとにApacheを再起動しますね
579 名前:デフォルトの名無しさん [2015/10/17(土) 22:10:15.90 ID:FxuDpipI.net] Djangoで生年月日を入力させるフォームを作ろうと思うんだけど、 月、日はChoiceField()でシコシコ打ち込めば問題ないけど、年のところは2015年から1900年とかまでと数が多すぎるので何とかならないかなと 皆はどうしてる?
580 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:49:42.62 ID:uNJQ9dbe.net] 子供の頃見ていたアニメを入れさせて推測してる
581 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 23:04:50.32 ID:wyhUq8vl.net] ドロップダウンが良いか単純入力が良いかクライアントに選ばせる 俺が選んで良いならドロップダウンにする
582 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 01:24:23.00 ID:hYDptRZP.net] >>556 web固有の質問はwebprog板で行うのが2ちゃんのルール 【Python】Webフレームワーク Djangoスレ Part2 kanae.2ch.net/test/read.cgi/php/1323960422/
583 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 05:20:34.38 ID:B0fgHUNR.net] Webの話題多いねえ コマンドウインドウからのローカルテキスト操作がスクリプト言語の本業だと思うけど あらゆる技術がWebに向かっちまってて嫌になるねえ
584 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 09:30:38.82 ID:yRFVTkan.net] 思うのは好きにしとけよ ただしママに報告するかチラシの裏以外に書くな
585 名前:デフォルトの名無しさん [2015/10/18(日) 09:53:23.91 ID:shRS8GNg.net] >>558 いや選択方法じゃなくて、コードの記述方法 choices = ( ('1980', 1980), ('1981', 1981), ... ) とかずっと書いていかんといけないのかなと思って
586 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 10:28:26.07 ID:aPDgrt4L.net] スレ違い
587 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 10:56:32.84 ID:vJDQVwJW.net] >>560 同意
588 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 10:58:51.68 ID:vJDQVwJW.net] >>562 choices = [(_, _) for _ in range(1980, datetime.now().year + 1)]
589 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 13:57:39.20 ID:doKDXU1P.net] Python3歴1日目のド初心者です。 自作classのimportが上手くできず早くも泣きそうです。どなたかお助けください・・・。 下記2ファイルを作成しました。 ・D:\dev\src\Controller.py ・D:\dev\src\Config.py Controller.pyから、Config.pyの中の「Config」クラスを呼び出したいです。 ですが、import文のところに「no module named Config」と表示され 実行すると「TypeError: 'module' object is not callable」とエラーになります。 コードは下記です。 ●Controller.py # -*- coding: utf-8 -*- import Config cfg = Config("config.json") print(cfg.get_all()) ●Config.py # -*- coding: utf-8 -*- import json class Config: def __init__(self, path): file = open(path, mode = "r", encoding = "UTF-8") self.json = json.load(file) file.close() def get_all(self): return self.json どなたかお優しいパイソナーの方いらっしゃいましたら、何とぞよろしくお願いいたします。
590 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 14:20:28.98 ID:1p1QfgSs.net] >>566 import Config ではなくて from Config import Config にすればいけるかと
591 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 14:33:03.80 ID:ePPgzDx9.net] >>566 pythonの場合はPHPみたいにファイル名の先頭を大文字にする慣習はない こういう時のためにipythonを入れなさい import Cを打ったあとにtabをおせば補完候補が出てくる
592 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 15:05:17.61 ID:sPJe7rRi.net] >>510 importの書き方も、参照
593 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 15:55:36.36 ID:81sora9Q.net] >>567 嘘ではないけど その解決方法はおすすめじゃない感じがする
594 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 16:34:04.95 ID:doKDXU1P.net] >>567-569 ありがとうございます!! importの書き方と、ファイル名・クラス名をPEP8準拠に直しました。 おかげさまで、とりあえず動作させることはできました。 ただ、今度は、 「This inspection detects names that should resolve but don't.」 なるエラーが出てしまい、さらにcfg.から先のコード補完が動作してくれません・・・ このエラー文について、stack overflowの英語記事しか引っかからずよくわかりませんが PyCharmのバグ?っぽいです・・・ stackoverflow.com/questions/25147180/opening-attempting-to-read-a-file >>570 もしよければ、よりよい解法をご教示いただけるとありがたいです
595 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 16:39:02.91 ID:doKDXU1P.net] あと直接Pythonに関係なく恐縮なのですが PyCharmでエラーや警告文を常時表示してくれるウィンドウはあれば教えていただけないでしょうか eclipseの「問題」ビューみたいなやつです 標準だと、エラー箇所にカーソルあわせてctrl+F1を押さないとエラー文が表示されないし しかも表示してくれるエラー文がポップアップのためコピペできず 非常に不便です・・・
596 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 16:56:46.31 ID:doKDXU1P.net] from src import config とすることで直りました!エラーも出ず、補完もできるように・・・ ありがとうございます。 ただ、この書き方だとディレクトリがsrcじゃなくなったらおしまいですね・・・ 相対パスで上手く書けないんでしょうか
597 名前:デフォルトの名無しさん [2015/10/18(日) 17:02:08.43 ID:81sora9Q.net] sys.path.append('src') これもおすすめじゃないけど
598 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 17:49:41.55 ID:HDTZmcWK.net] 絶対にアクセスできないクラスのプライベートメソッドってできませんか? class A: __def __m(self): ____print(1) これだとクラスオブジェクトさえあれば_外部から__mにアクセスできてしまいます
599 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 17:53:24.96 ID:sMC62kag.net] 2と3でも動くコードを同じファイルで書きたいんですが 2と3で名前が変わった標準ライブラリがあるじゃないですかurllibとか。 この場合ならrequests使えばいいんですがこれはあくまでも例えってことで。 サードパーティのライブラリを使わない場合でこういうのはどう解決したらいいですか?
600 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 17:57:46.56 ID:IrNm6I6C.net] >>572 Codeメニュー>Inspect Codeで警告やらエラーの一覧がツールウィンドウに表示される https://www.jetbrains.com/pycharm/help/inspection-tool-window.html
601 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 18:02:26.27 ID:IrNm6I6C.net] >>576 Python のバージョン毎の違いとその吸収方法について - CUBE SUGAR CONTAINER blog.amedama.jp/entry/2015/09/06/204552
602 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 18:03:00.25 ID:81sora9Q.net] >>576 これ見たら? https://www.youtube.com/watch?v=U1CSxd-kklY
603 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 18:08:41.08 ID:jvqZfICy.net] pytestのsetup_classとteardow_classってテストの最初と最後には実行されますがテストケース毎に実行されませんよね テストケース毎に実行させるほうほうってありませんか?
604 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 18:20:27.29 ID:zFgX1Igt.net] >>575 アンダースコア2つで
605 名前:アクセス出来なくなるわけじゃないけど みんな大人だからさ、人の意図に反する行為はやらないよね? [] [ここ壊れてます]
606 名前:デフォルトの名無しさん [2015/10/18(日) 18:43:48.85 ID:P+8yiDHO.net] >>566 rename Config.py config.py rename Controller.py controller.py import config cfg = config.Config("") >>573 diveintopython3-ja.rdy.jp/ 一通り読むと良いよ。 >>575 無理です。 紳士協定で、_(under score)付きのmethodは使用しないってなってるので、 def _m(self): pass とでもして下さい。
607 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 18:57:05.39 ID:iFZOaEXb.net] >>576 俺はこんな感じで対処してる import sys if sys.version[0] == '2': __from urllib import urlopen if sys.version[0] == '3': __from urllib.request import urlopen
608 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 19:11:48.90 ID:doKDXU1P.net] constなし privateなし ライブラリはpython2にしがみつく老害のゴミだらけ ideの補完もゴミ 数値と文字列の連結に、型を気にしてstr()をしてあげないといけないなんて 鼻で笑っちまったわ なんだこのゴミ言語 ペチピー以下じゃねえか マイナー言語なわけだわ・・・
609 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 19:13:41.50 ID:doKDXU1P.net] 天才の僕は1日目にして気付いちゃったけれど これ言語仕様酷すぎません?? python作ってる人ってまともな教育受けてなかったのかな・・・なんか憐れみすら覚える
610 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 19:27:51.65 ID:8xhftPvG.net] python書いてると気持ちいいよね
611 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 19:28:34.75 ID:doKDXU1P.net] まともなxlsx読書するライブラリも、いまだ完全に3対応していない 驚きモモヒキケンタッキーだわ こんな糞言語にしがみついて生産性落としてる奴らって・・・ 電気の無駄、時間の無駄、酸素の無駄 公害だわ、全人類の敵、地球の敵、みんなちょっと死んだ方がいいんではないですか?
612 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 19:29:37.82 ID:doKDXU1P.net] >>586 お、ドMゥー!
613 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 19:49:01.65 ID:iFZOaEXb.net] >>580 1つのクラスで1つのテストケースを実装するとして、 単一モジュール内で複数のテストケースを実行する場合に、 それぞれのテストケースごとにそれぞれ違う処理をその前後にさせたいっていうこと?
614 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 21:43:53.39 ID:9gnwfSc1.net] ぺちぱーは10分おきに人生でも再起動してどうぞ
615 名前:デフォルトの名無しさん [2015/10/18(日) 22:23:34.51 ID:Tu8sQdti.net] >>585 天才なら君が選んだ言語を教えてね。あと、名前も付けてね。
616 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 22:28:57.28 ID:s8XdCc41.net] 貶めるために初心者装って真面目にレスしてくれた人を裏切ってそれで満足したかい? さぞや気分がいいんだろうね?
617 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:16:27.50 ID:u1NWdmdH.net] Python使ってていつも思うのは変数宣言があった方が良かったんじゃないかなって点 C#みたいに var i = 0 var str = 'hoge' とか宣言できたらいいのにと思った (もちろん宣言せずにいきなり参照・代入したらエラーで)
618 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:20:56.38 ID:9gnwfSc1.net] yamlが標準ライブラリに含まれるわけでもないのに リファレンス内(logging how toを見よ)で平気でyamlを使う神経だけは理解できない
619 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:34:59.60 ID:B0fgHUNR.net] >>593 何でそう思うの? タイプ量が増えるだけでメリットを感じないが
620 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:39:16.81 ID:zFgX1Igt.net] >>593 既にある変数に再代入するコードと区別がつかないのが問題ということかな 後はif-else文はブロックを作らないから 分岐中に代入して合
621 名前:ャ後に使うコードでNameErrorが発生したり [] [ここ壊れてます]
622 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 00:22:08.90 ID:Oh7pgbBt.net] >>593 IDE使ってればいきなり参照は警告してくれる それよりもmapとかfilterがメソッド形式になってくれた方が嬉しい
623 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 09:24:54.60 ID:0FeynMog.net] >>593 その宣言は無意味なんだ
624 名前:デフォルトの名無しさん [2015/10/19(月) 09:26:07.01 ID:0FeynMog.net] >>584-585 馬鹿には無理
625 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 17:00:46.05 ID:BVriihZ8.net] pytestとpytest-cov使ってるんですがテストでcoverageで100%を取りたいんですが鳥漏れがあります テストされていないコード行が知りたいんですが知る方法ありませんか? pytestにこだわってるわけでもないので別のテストライブラリで実現できるならそれを教えてください phpunitだとこんなふうにテストされた箇所が視覚的にわかるのでこういう風に知りたいです cdn-ak.f.st-hatena.com/images/fotolife/s/secret_hamuhamu/20150527/20150527005349.png
626 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 17:56:28.36 ID:0FeynMog.net] ぺちぱー
627 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 19:31:13.79 ID:TQDUnBKM.net] dict同士の引き算ってどうやるんですか? {"a": 1, "b": 2}から {"b": 2}を引いて{"a": 1}にしたいです
628 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 19:49:18.75 ID:QZomG315.net] >>602 諦めよ dictに集合演算機能はない
629 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 20:26:02.75 ID:OhaGgHJ3.net] 意地悪な奴だ dictに集合演算機能はない(がdictviewにはある)
630 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 20:29:26.87 ID:OhaGgHJ3.net] >>600 pytestの実行時に--cov-report htmlオプションを与えるとhtmlを出力する はず 俺はnose派だから詳しくない
631 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 20:29:35.87 ID:pRRTzcro.net] a = [[[0], [1], [2]],[[3], [4], [5]]] del a[0] print(a) とか a = [[[0], [1], [2]],[[3], [4], [5]]] del a[1][2] print(a) みたいに異なる階層の値を削除したい 深い階層に行くほど[]を複数書いていくことになりますが リストの階層に合わせてハードコーディングしないといけませんよね 上のaの場合だと[n]と[n][i]の2つをハードコーディングしなければいけません aがもっと深い階層まで拡大することに備えて、動的にインデックスを指定して削除したいのですが方法を教えてください 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
632 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 20:30:52.13 ID:OhaGgHJ3.net] 出力例 i.stack.imgur.com/PNhkb.png
633 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 20:33:59.18 ID:CabTOv+a.net] >>602 いくつか引き算の定義が考えられるけど、fooがあるとする >>> foo = {"a": 1, "b": 2} 1.指定したキーを取り除く >>> bar = {"b"} >>> {key: value for key, value in foo.items() if key not in bar} {'a': 1} 2.指定した値を取り除く >>> bar = {2} >>> {key: value for key, value in foo.items() if value not in bar} {'a': 1} 3.キーと値が一致するものを取り除く >>> bar = {"a": 1000, "b": 2} >>> dict(item for item in foo.items() if item not in bar.items()) {'a': 1}
634 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 20:58:50.51 ID:OhaGgHJ3.net] >>606 そーゆーときは一段ずつ処理するんだ 1, 2を消したいならまずa[1]を適当な変数tmpに取り出す それからdel tmp[2]する 同様に1, 2, 3, 4なら tmp = a[1] tmp = tmp[2] tmp = tmp[3] del tmp[4] これをループを使って書き直す その程度は自分でやれ
635 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 21:12:23.56 ID:CabTOv+a.net] >>606 高階関数を定義する funcへ渡す関数をlambdaではなくdefで定義すれば複雑な処理もできる def f(func, a, ns): b
636 名前: = a[ns[0]] for i in ns[1:]: b = b[i] return func(b) >>> a = [[[0], [1], [2]], [[3], [4], [5]]] >>> f(lambda x: print("result =", x), a, [0]) result = [[0], [1], [2]] >>> f(lambda x: print("result =", x), a, [1, 2]) result = [5] [] [ここ壊れてます]
637 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 08:05:56.35 ID:+y34cH6I.net] 急募、タイプヒンティングに自信ニキ PyCharmの補完が糞過ぎて草も生えない
638 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 12:48:49.01 ID:W9uB5SNn.net] >>611 qiita.com/methane/items/e95c578c3d8fc5f1f62e
639 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 16:59:27.98 ID:aHZFphRv.net] IntelliJって褒めるほどの出来じゃねえよな そりゃeclipseみたいなゴミに比べれば良いものだろうけど
640 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 21:35:59.87 ID:TC/ibFEV.net] タイプヒンティングに頼るんだったら静的型付けの方が手っ取り早いよな… >>612 ofなんて使えたのか list[str]って書いてたわ
641 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 21:44:43.19 ID:IcBvDclU.net] pycharmなんかよりjediのほうがすごいんだぞ!
642 名前:デフォルトの名無しさん [2015/10/20(火) 22:25:47.27 ID:7U/Y/4//.net] アルファベットの増減てどう書くといいの。 char value_a = 'b' - 1; char value_c = 'a' + 2; のような。
643 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 22:37:00.70 ID:A1vNd6F7.net] chr(ord(c)+n)
644 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 22:49:37.80 ID:aHZFphRv.net] aの次がbだと思うなよとプログラミングの師匠からは教わった
645 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 01:44:43.22 ID:k2x/6pgE.net] std::istream_iterator<char> is(ifs); の行不要な あとcoutの最後にstd::endlもつけてやってくれ。
646 名前:デフォルトの名無しさん [2015/10/21(水) 05:26:59.47 ID:YZnuen5o.net] >>618 特殊な環境だけ
647 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 10:28:15.90 ID:TJeiUleN.net] array = [1, 2, [3, 4]] を array = [ __1, __2, __[ ____3, ____ 4 __] ] こんなふうに深さを視覚的に見やすく出力する方法ありませんか?
648 名前:デフォルトの名無しさん [2015/10/21(水) 10:35:46.90 ID:4CVMjexC.net] pprint
649 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 11:19:38.96 ID:TJeiUleN.net] pprintではできません
650 名前:デフォルトの名無しさん [2015/10/21(水) 11:25:07.13 ID:zc5Cc/IW.net] YAML
651 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 11:51:29.99 ID:az0eFhYY.net] def f(a): b = a del b[0] print(a) print(b) f([0, 1]) aとbが同じなんですが何故ですか? 何でbの値を消したのにaの値も消えてるんですか?
652 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 11:59:23.07 ID:/9+8IY9r.net] 代入は参照のコピーでインスタンスはコピーしない
653 名前:デフォルトの名無しさん [2015/10/21(水) 12:34:35.50 ID:4CVMjexC.net] >>621 , 625 def f(a): # see # diveintopython3-ja.rdy.jp/table-of-contents.html#native-datatypes # diveintopython3-ja.rdy.jp/native-datatypes.html#lists c = a.copy() d = a[:] b = a print("f() ==========================================================") print("id(a) =", id(a)) print("id(b) =", id(b)) print("id(a) == id(b),", id(a) == id(b)) print("id(c) =", id(c)) print("id(d) =", id(d)) print()
654 名前:デフォルトの名無しさん [2015/10/21(水) 12:36:40.14 ID:4CVMjexC.net] >>627 の続き del b[0] # del a[0] と同じ。 # なぜならば、id(a) == id(b) だから。 print(a) print(b) print() a.append(100) # [1].append(100) c.append(200) # [0, 1, 100].append(200) d.append(300) # [0, 1, 100].append(300) print(a) print(b) print(c) print(d)
655 名前:デフォルトの名無しさん [2015/10/21(水) 12:41:02.67 ID:4CVMjexC.net] import pprint def g(): print("g() ==========================================================") # see docs.python.jp/3/library/pprint.html pp = pprint.PrettyPrinter(width=10) pp2 = pprint.PrettyPrinter(width=10, compact=True) # python3.4 array = [1, 2, [3, 4]] pp.pprint(array) pp2.pprint(array) # help(pprint) if __name__ == "__main__": f([0, 1]) g() >>625 b = a だけでは、bもaも同じなの
656 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 12:57:30.65 ID:Zr5MZtBC.net] >>625 b = a[:]
657 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 16:35:41.70 ID:ZXMR/M8n.net] Pythonについてはよく知らないけど、一般的に代入では、 intなどの単純型(primitive)では値自体がコピーされる クラス・配列などの複合型(コンテナ)は、 一々各要素はコピーされず、 複合型を指す参照(アドレス値)だけがコピーされる
658 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 17:00:07.91 ID:t8SS3rgX.net] >>631 > Pythonについてはよく知らないけど、一般的に代入では、 おまえは「くだすれPython(超初心者用) その27」スレで何を言ってるんだ?
659 名前:よこ [2015/10/21(水) 17:43:08.75 ID:mNcocD1t.net] 1レコード読み込むごとに出力するのではなく、 最後に一括して、ファイルに出力する方法を教えて下さい。 例)入力ファイルを最後まで読み込み、全レコードがえらーがない場合のみ、 入力ファイルの全レコードを出力ファイルに出力する。 よろしくお願いいたします。
660 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 18:23:19.49 ID:/9+8IY9r.net] 何でそこまで説明できるのにプログラムに書き下せないんだよ!
661 名前:デフォルトの名無しさん [2015/10/21(水) 18:26:03.86 ID:Lz4gKDdZ.net] u'\xe3\x82\xab\xe3\x83\xa1\xe3\x83\xa9' みたいにutf-8として読まないといけないのにunicodeとして取得しちゃった文字列を 後から u'\xe3\x82\xab\xe3\x83\xa1\xe3\x83\xa9' → '\xe3\x82\xab\xe3\x83\xa1\xe3\x83\xa9' に変換する方法はありますか? よろしくお願いします。 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
662 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 18:27:12.66 ID:/9+8IY9r.net] 何が分からないのか全く分からないから ヒントになるのかどうかも分からないけど list(file)で全行を一旦リストに入れて 書き込む時はfile.writelines使うといい
663 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 18:37:08.05 ID:/9+8IY9r.net] >>635 str.encode('iso-8859-1')
664 名前:デフォルトの名無しさん [2015/10/21(水) 18:41:47.54 ID:Lz4gKDdZ.net] >>637 ありがとうございます! 文字コード関連は難しい…
665 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 19:16:11.15 ID:T5Qpsw3w.net] Class C: def a(self): pass def b(self): pass クラスのメソッド名を取得する方法を教えてください この場合ではaとbの2つのみが知りたいです
666 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 19:33:16.82 ID:C0yBgOIh.net] inspect.getmembersを使う
667 名前:デフォルトの名無しさん [2015/10/21(水) 19:35:52.39 ID:4CVMjexC.net] >>> [func for func in dir(A) if not func.startswith("_")] ['func1', 'func2']
668 名前:デフォルトの名無しさん [2015/10/21(水) 19:51:09.86 ID:4CVMjexC.net] ごめん、こっちの方が良い >>> [name for name, func in A.__dict__.items() if callable(func)] ['func2', 'func1'] >>641 は止めで
669 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 20:43:25.36 ID:T5Qpsw3w.net] >>
670 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 20:47:43.46 ID:T5Qpsw3w.net] >>640 >>642 ライブラリを使う方法使わない方法両方でできました どうもありがとうございました
671 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 20:58:54.64 ID:Lxq5Xv0N.net] utf-8以外はみんな死ねばええねん utf-8以外使ってるど阿呆はrm -rfや
672 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 21:03:13.41 ID:/9+8IY9r.net] utf-8-mac(nfdのutf8)も死んだらええねん
673 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 23:50:21.15 ID:+lQNWzhB.net] pythonもphpみたいに独特な仕様が合ってきもち悪い
674 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 00:10:17.03 ID:TKCRaEBU.net] >>645 つ sudo
675 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 06:53:13.03 ID:oin5XU3S.net] 歯ブラシとプログラミング言語を比べるのはナンセンスでしょう
676 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 07:38:22.61 ID:svRgbvpo.net] パイソニスタだったら歯ブラシは手動だよな?
677 名前:デフォルトの名無しさん [2015/10/22(木) 13:09:56.29 ID:522gqyPw.net] >>645 2ちゃんも消えるな
678 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 14:04:55.07 ID:LYhTv0Jg.net] dic = {"a":1, "b":1, "c":1} print(dic) こうしたときに{"a":1, "b":1, "c":1}ってかいた順番通りに出力させる方法ありませんか? {"b":1, "c":1, "a":1}みたいにランダムで出力されるので
679 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 14:09:07.14 ID:Clh0KPl/.net] つOrderedDict
680 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 14:27:56.50 ID:522gqyPw.net] パフォーマンスどれくらい落ちるんだろ
681 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 14:58:25.49 ID:oin5XU3S.net] Cで書き直されて4倍から100倍高速になった(Python3.5 what's new曰わく) という所から考えるに, 少なくとも4倍遅いでしょう ボトルネックになるかどうかは使用頻度次第でしょうが
682 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 15:43:51.12 ID:522gqyPw.net] OrderedDict の話だよ
683 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 16:23:09.80 ID:ySLNTuee.net] それをCで書き直したら以前はDefaultDictに比べて4倍遅かったけれど今は100倍…あれ?なんか違うな
684 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 16:35:35.84 ID:oin5XU3S.net] OrderedDictの実装はdict+linkedlistだからdictより遅い dict=1とすると 1=dict<OrderedDict Python3.5ではCで書き直されたということだから, OrderedDictの速度はdictに近くなったと考えられるが, アルゴリズム的にdictを上回ることはない したがって 1=dict<OrderedDict(3.5)<OrderedDict(~3.4) で, 右の不等号の部分は4~100倍らしいから, Python3.4までのOrderedDictは, 少なくともdictより4~100倍遅いと見積もれる
685 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 16:38:17.11 ID:oin5XU3S.net] で, 最初から最後までOrderedDictの話をしていたけど 「OrderedDictの話だよ」ってどういう意味?
686 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 17:02:35.71 ID:522gqyPw.net] dict=1とする意味は?
687 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 17:07:06.98 ID:ySLNTuee.net] えー… あかんわ
688 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 17:53:46.10 ID:522gqyPw.net] IDわろた
689 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 18:14:47.89 ID:5FjGz1l/.net] import lxml print(lxml.etree) >>AttributeError: module 'lxml' has no attribute 'etree' from lxml import etree print(etree) こっちはエラーがでません 何でfromでかいたほうがエラーにならないのにlxml.etreeって書くのはエラーになるんですか?
690 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 19:23:19.51 ID:oin5XU3S.net] >>660 さすがに二の句が継げない 数年したら分かるよ >>663 lxmlパッケージの__init__.pyが何もimportしてないから パッケージ配下のモジュールが暗黙的にimportされることはない 一部のライブラリで import パッケージ名 するとモジュールも使用可能になるのは __init__.pyの中にimportが書いてあるから
691 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 19:58:24.03 ID:Gknfkluf.net] >>658 > アルゴリズム的にdictを上回ることはない アルゴリズムはいいけどクソ実装の可能性を何故無視する?
692 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 20:34:39.24 ID:bQPHsZ7G.net] そんな詭弁のガイドラインの定番を持ち出しても仕方ないでしょ。 そんなんだから馬鹿にされるんだよ。
693 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 20:42:33.47 ID:+naZ/uDa.net] a/lib.py b/lib.py b/lib.pyでimport a.libしてもインポートできませんが 空のb/__init__.pyを作成するとインポートできるようになりました 何故インポートできるんですか?
694 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 20:51:04.42 ID:oin5XU3S.net] >>665 そりゃあ最初の書き込み前にソースコードを読んで断定しましたから 可能性が割り込む余地はないですね
695 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 21:57:09.36 ID:svRgbvpo.net] >>668 んで、何が素のdictより遅くなる原因なの? dict+linkedlistだったら参照コストは素のdictと同じでも良さそうなもんだけど?
696 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 22:08:14.49 ID:kinLxVE3.net] >>666 詭弁のガイドラインなんて久々に聞いたわ w 爺乙
697 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 22:13:34.49 ID:lrbbaRKO.net] Python自体が糞だしその上にこさえられた糞の糞っぷりを競い合っても仕方なかろうもん
698 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 22:54:36.60 ID:svRgbvpo.net] アレアレ? ID:oin5XU3S居なくなっちゃった?w
699 名前:デフォルトの名無しさん [2015/10/23(金) 02:51:11.81 ID:KbxpAfMH.net] >>667 パッケージは普通のディレクトリで、 そのディレクトリ内に、__init__.pyモジュールが必要で、 __init__.py内に、定数なども定義できる import パッケージ で、__init__.pyの内容が読み込まれる from パッケージ import モジュール の形式もあ
700 名前: パッケージ内には、サブパッケージ・モジュールを置ける [] [ここ壊れてます]
701 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 04:10:41.08 ID:bes8qU3y.net] >>669 参照コストは変わらんと思うよ 誰も参照コストに限定した話なんてしてないけどね... アホが必死にマウント取ろうとしてる姿は哀れだな shi3zみたいだ
702 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 04:17:10.90 ID:bes8qU3y.net] まあ下らない揚げ足取りにはこれ以上付き合わないさ 「OrderedDictの話だよ」を好きなだけ続ければいい
703 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 04:27:56.04 ID:bes8qU3y.net] >>667 その構造ではb/__init__.pyがあってもimport a.libではimportできない... 状況説明が不正確か, あるいは説明されていない所に理由があると思う
704 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 05:12:27.64 ID:NKqGTZsQ.net] >>674 追加も大して変わらんのだけどな また居なくなっちゃう?w
705 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 05:43:20.27 ID:NKqGTZsQ.net] 暇だから書いておく OrderedDictがdictと同じアルゴリズムでキーの管理にリンクドリストを使っているとすると ・__getitem__l, values 速度は同じ ・__setitem__ リストの末尾に追加する分非常に僅かに遅い可能性がある ・keys, items リストを辿るだけなので実装によってはdictより速い可能性もある という結果になる つまりID:oin5XU3Sによる発言 1. OrderedDictの実装はdict+linkedlist 2. 少なくともdictより4~100倍遅い 3. ソースコードを読んで断定しました このうち、1.を正しいと仮定する事で、2. or 3. のいずれかが誤りである事が分かる 「必死にマウント取ろうと」したいのは分かるけどウソはいかんよ だってすぐバレちゃうんだもんw あとアルゴリズムの勉強しようねw
706 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 11:45:28.19 ID:EGmG1R8f.net] クラウドソーシング使って修行してみたいんだけど クラウドソーシングってどれくらいの腕なら食えるくらい稼げる? 自分プログラミング歴はpython2.7が初学初心者で、 これから「はじめてのPython」をがっつりやってみる予定です。 この本のコードが書けるようになったら挑戦しても大丈夫かな?
707 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 11:49:28.66 ID:KfqstdW8.net] それなりの腕()があっても 平日の昼間から2ちゃんやってる人には頼みたくならない
708 名前:デフォルトの名無しさん [2015/10/23(金) 12:28:02.26 ID:8qkwY/Qu.net] 小数点以下2桁のみ表示するにはどうしらいいでしょうか?整数値はn桁全て無視したいです
709 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 13:19:50.74 ID:EGmG1R8f.net] と思ったけど 初めのpythonが2009年、クックブックが2007年dkr 本は新版待ってsbrkネットで勉強しよう
710 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 13:22:35.30 ID:gdSvDFNq.net] 宣伝成功wwwwwww
711 名前:デフォルトの名無しさん [2015/10/23(金) 15:54:14.99 ID:8qkwY/Qu.net] >>681 自決。普通に正規表現で処理した
712 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 16:41:16.69 ID:aB7VvuXv.net] print("{:.2f}".format(0.12345))
713 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 16:42:56.91 ID:aB7VvuXv.net] print("{}".format(str(0.12345).split('.')[1][0:2]))
714 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 17:27:19.46 ID:1FmkefyV.net] みんPyの宣伝してた奴いつの間にかいなくなったな
715 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 18:11:34.08 ID:CLZQE+Gq.net] 宣伝したらアマゾンで悪口かいてやるから覚悟しろ著者ども!
716 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 21:02:59.00 ID:Mcb87vot.net] みんな女性プロ グラマーと話すとき pypyって何て発音してる?
717 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 21:06:52.18 ID:NKqGTZsQ.net] 女と話せるとかリア充かよwwwwwwwwwww
718 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 21:14:03.19 ID:1FmkefyV.net] 今のところpypyに言及する機会がない
719 名前:デフォルトの名無しさん [2015/10/23(金) 21:17:12.56 ID:Bkh3nx47.net] ぷいぷい ぴいぴい
720 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 21:31:36.92 ID:1egZ0Qog.net] そもそもPythonの話が通じるプログラマー自体非常にレア
721 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 21:40:58.03 ID:1FmkefyV.net] 探せばいくらでもいるけど、偶然遭遇はほとんどないねえ
722 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 22:40:20.71 ID:cNciiAba.net] >>679 Pythonの仕事なんてクラウドソーシングであるの? ちょっと想像できない theano使って論文実装できるレベルの人にならいくらでも仕事頼みたいけどそんな人転がってないし
723 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 22:52:43.10 ID:pRrg/BSt.net] cpython以外を使う必要性がない
724 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 23:55:47.60 ID:KbxpAfMH.net] matplot, R などの処理も、Pythonへ移行しつつある
725 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 12:02:59.08 ID:niXzNvfm.net] >>689 汁出しながら話してる
726 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 19:03:17.43 ID:3slC6hth.net] DOE処理を自動化したいです。 オリジナルファイルがひとつある。 ファイルをコピーして、ファイルを開き、変数部分を書き換えて保存して閉じる。 これを水準数分実行したいです。 ざっくりで良いのでコードを教えて下さい。
727 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 19:22:20.34 ID:Gv3c0teS.net] >>699 ごめんDOEって何?プログラムでやりたいことと関係ある? あと水準っていわれてもわかんないので一般的な言葉で説明してほしい オリジナルファイルが複数あってそのファイルごとに同じ処理を実行したいってことでいいのかな?
728 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 19:31:47.80 ID:wB/X7nCW.net] 実験計画法のことじゃねーかな 水準数って単語が出てくるってことは ただやってることは単なるテキスト処理でDOEは全く関係ないと思うけど ファイルの出所のことであって
729 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 20:32:34.04 ID:Gv3c0teS.net] ははあ でもそう聞くと変数部分を書き換えてっていうのは 変数名を書き換えるってことかと思ってたけどそうじゃなくて変数の値を書き換えるってことで その変数の値を書き換える処理を実験の数の分だけしたいってことなのかな?とかも思っちゃう それだけならわざわざ物理的にファイルをコピーしなくてもいいじゃんとかも思ったり 適切な抽象度で正確にやりたいことを説明してくれないと ざっくりにしろじっくりにしろ回答できないよ
730 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 22:07:12.51 ID:89dPDR9H.net] とりあえず質問者の返信をまとうか
731 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 23:49:34.74 ID:brrrlGfC.net] いまどきPython2にしがみついてる老害のゴミ屑って何なんですか? 死んでほしい
732 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 00:04:58.86 ID:cAm39BSn.net] 特に未だ3未対応のライブラリ!! 作者小一時間ほど説教して引っぱたいてやりたいわ、この無能が
733 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 00:14:42.13 ID:YZ5g+13y.net] >>704 老害のゴミ屑みたいな環境を使わざるを得ないからだよ。 俺は今 python2.4を使ってるよ。何気ないことの実現がひどく難しい。
734 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 00:17:54.93 ID:xV04ZCve.net] 殺せばいいだろ 殺せない無力なガキが喚くな
735 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 00:21:52.09 ID:yRM5qJHB.net] IronPythonとJythonが3対応したらもう2系には用ないわ〜
736 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 00:25:42.91 ID:lfnNH8vu.net] 野良ライブラリに頼った者の末路だね 自業自得というヤツさ
737 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 00:47:38.08 ID:BK3Evb4v.net] OSは何なんだ 今時2.4は酷いわ
738 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 01:30:18.97 ID:xV04ZCve.net] RHEL5かCentOS5だろう 一応現役(ProductionSupport期間内という意味で)だからな 俺は生涯そんな仕事受けないが
739 名前:デフォルトの名無しさん [2015/10/25(日) 02:26:37.55 ID:IGihUR6P.net] >>699-703 copyfile()で、ファイルをコピーする ファイル関連 open(), close() with open() read(), readline(), readlines(), write() データ形式 CSV, YAML, XML, JSON
740 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 10:36:26.32 ID:VXAWkuKH.net] 3.5.0をインストールするんだけど、32bit版64bit版両方入れた方がいいのかな?
741 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 10:50:28.67 ID:yfABSQf+.net] def tasizan(a, b): return a + b メソッドの引数に型を指定する方法ありませんか? 上の例ではaとbはintでくることにしたいんですが 他の言語みたいなdef tasizan(a:int, b:int)みたいに指定することって出来ませんか?
742 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 11:04:56.28 ID:aYhTdN9F.net] 型なし能なしユーザーなしの池沼ゴミ言語なので そんな高度なことはできません 安心してStringのtasizanをお楽しみください
743 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 11:08:56.82 ID:6KzvrzU/.net] 型指定はない。関数アノテーションなら明示はできる def tasizan(a: int, b: int) -> int:
744 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 11:09:52.32 ID:6KzvrzU/.net] 使用してる環境によっては、警告してくれる
745 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 11:28:27.06 ID:yfABSQf+.net] 完全なものはないってことですか doc stringに書いた引数の型をチェックしてくれるテストツールとかもないですか?
746 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 11:51:38.37 ID:6KzvrzU/.net] DocString と関数アノテーションについてはテストツールがある 名前忘れちゃったんで調べてみて pyCharmとかのIDE使えばコーディング時に教えてくれるからオススメ 型アノテーションはまさに今議論されているところ
747 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 13:44:06.22 ID:xV04ZCve.net] 道具選びから間違ってるって馬鹿じゃねえの
748 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 15:00:01.27 ID:aYhTdN9F.net] いや言語選びから間違ってるだろう どーしてもパイチョンでしか実現できない要件以外 こんな言語触れる価値ないわ
749 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 15:12:57.29 ID:ljG3KemP.net] Web限定ならPHP,Rubyのどれか一つを覚えてるなら改めてPythonを学ぶ必要はない。 しかしPythonはこの2つの言語よりもWeb以外で強力なライブラリがある
750 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 15:15:05.59 ID:xV04ZCve.net] 科学計算や機械学習方面でしょ 一般的にはいらねーよな
751 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 15:21:48.75 ID:xV04ZCve.net] その他の利点としてはLSBに含まれていること 古いとは言え、大抵の環境でインストール直後から使える ゴミドザは座ってろ しゃしゃんな Perlも引っ込んでろ暗号コードジェネレータが
752 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 15:41:11.48 ID:aYhTdN9F.net] どやマカパイチョナー顔面しゃしゃ〜んwwwwwwwww
753 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 15:42:26.88 ID:xV04ZCve.net] 残念ながらクソマカーでもないですよゴミドザーくん
754 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 17:02:57.52 ID:BK3Evb4v.net] はあ アホばっかり
755 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 18:16:21.03 ID:aYhTdN9F.net] パイチョンですから
756 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 18:49:35.48 ID:ip/vnDdd.net] マカーはシェア10%にも満たないくせに偉そうだよな 犬糞は2%にも満たないくせに更に偉そう
757 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 20:38:40.30 ID:mN/1fWbV.net] batファイルのECHO offみたいなことってpythonでどうやるのか
758 名前:教えてください ユーザー入力を非表示に出来れば良いんです cursesを使う以外でお願いします [] [ここ壊れてます]
759 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 20:47:13.53 ID:tTPtowO4.net] 出力は手っ取り早いのはsys.stdout乗っ取り 真面目にやるならlogging 入力はgetpass
760 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 00:50:41.23 ID:DUZkD9lW.net] if __name__=="__main__"までは理解できたけどmain()作ってわざわざ呼び出すのなんで?
761 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 01:03:26.03 ID:39wMuITq.net] モジュールが変数であふれかえって汚くなるから、関数の中に隠している
762 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 01:05:56.43 ID:Pu2c6+a/.net] そういうもんだから あえて冗長な記述、おまじないをすることが上級者だと 誰も読めない・読みたくないコードがかっこいいと 本気で信じてる池沼が作ってる言語だから 受け入れるのが大事 上司が右を向けと言ったら右を向くように 思考することをやめ、Pythonこそが至高と唱え続ければ きっと幸せになれます
763 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 01:11:55.55 ID:jSFkYHTf.net] 間抜けな長文の上にまともな回答より遅奴
764 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 01:18:45.17 ID:Pu2c6+a/.net] ほらな、思考停止
765 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 01:20:11.05 ID:jSFkYHTf.net] 7分考えて8文字
766 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 01:25:17.68 ID:39wMuITq.net] もちろん関数やif __name__=='__main__':を書かない場合もあるよ 実行する理由が限られてるスクリプト、例えばsetup.pyとかは setup()を直に呼び出してるパッケージが多数派だと思う
767 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 02:43:29.68 ID:r0xKHFxJ.net] CやJavaでmain()が実行の起点となる仕様に倣っているのでしょ 常にmain()から始まるようにしておけば起点が見つけやすい
768 名前:732 mailto:sage [2015/10/26(月) 05:58:55.24 ID:DUZkD9lW.net] >>733 変数でモジュールが汚れるというのは、inspectでいうとf_globalsに変数が多く存在するということですか? C言語から来たのでグローバル領域に物が沢山あると汚いとは思いますが、同じような理由でしょうか? >>734 私はプログラミング言語の慣習には大抵何か理由があると思っています。 Pythonはインデントスタイルを縛ることでユーザー間の可読率を上げています。 そういった縛りや慣習も大勢が使う言語では可読率向上に有効に働くものかと思います。 >>739 確かにそれは他言語のユーザーからでもわかりやすくて良いですね。 しかし言語としてmain()から始まるようには設計していないのにこの書き方が広まっているのは、 言語の開発側とmain()から始めたいユーザーの静かな戦いですね。笑
769 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 06:15:32.44 ID:Mjft3WHN.net] >>740 変数の観点からもう少し突っ込むと関数ブロックでは代入がSTORE_FASTになるけど モジュールやクラスブロックではSTORE_NAMEなのでループになると割合馬鹿に出来ない
770 名前:732 mailto:sage [2015/10/26(月) 09:41:24.58 ID:DUZkD9lW.net] >>741 www.nasuinfo.or.jp/FreeSpace/kenji/sf/python/virtualMachine/PyVM.htm#STORE_GLOBAL_STORE_NAME にあるようにSTORE_NAMEの場合、保存先のオブジェクトの種類を判定する分遅いということでしょうか? pyグラマというのはここまで気にしながらプログラミングしているのですか……脱帽です。
771 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 12:02:42.95 ID:jSFkYHTf.net] そんなわけねえじゃん そんなコンマ数秒の勝負なら無能でなければC/C++使って書くよ
772 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 12:37:33.42 ID:8OJDIDJG.net] 有能な俺はいつもpythonで書く
773 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 13:31:08.66 ID:luKrPwO7.net] >>714 if not isinstance(a, int) or not isinstance(b, int): raise TypeError("not int!")
774 名前:デフォルトの名無しさん [2015/10/26(月) 16:38:17.04 ID:2MNiZRij.net] なんでもかんでもおまじないで済ましてると 原発の非常用電源みたいにSBOになるよ
775 名前:デフォルトの名無しさん [2015/10/26(月) 16:39:27.82 ID:2MNiZRij.net] >>738 __name__ == "__main__" 書かないのと from hoge import * と どっちが許せる?
776 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 17:05:58.94 ID:Mjft3WHN.net] >>742 勿論速度に取り付かれた人だけです、素が倍違えど処理が入ると雀の涙、C/C++拡張へと… ただコンパイラ言語と違って強い最適化は掛けられないので、書き方は結構重要になります いくらか古い情報ですがPythonSpeedの記事はまだ有用でしょう、少し話がそれてきました 結局速度を気にするならasync/awaitが導入されたりとI/Oを非同期でやれということでしょう また限定的用途ですがLLVMでJITするnumbaなる物も台頭してきた模様(anaconda.orgにビルド済み有 話を戻して…スレッド、JIT等にコードを渡すにしてもブロックにしておくと、というのもあります
777 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 17:25:15.26 ID:39wMuITq.net] >>747 許せる場合ならどっちも書く、滅多に書かないけどね zen of pythonで言われてるように、盲目的なルール厳守は上手くないと思う 標準ライブラリにもfrom tkinter import *とか使われている
778 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 17:28:34.67 ID:39wMuITq.net] あ、滅多に書かないはfrom hoge import *の話
779 名前:デフォルトの名無しさん [2015/10/26(月) 17:40:23.13 ID:jZMivBq6.net] tkinter は import * よくやるな
780 名前:デフォルトの名無しさん [2015/10/27(火) 12:43:56.79 ID:XeOEre3W.net] csvファイルを行単位で結合する方法が分かりません。 以下のin1.csvとin2.csvを結合してout.csvを出力する方法を教えてほしいです。 in1.csv 0,1,2 5,6,7 in2.csv 3,4 8,9 out.csv 0,1,2,3,4 5,6,7,8,9
781 名前:デフォルトの名無しさん [2015/10/27(火) 13:05:06.87 ID:dbz6tEeF.net] if __name__ == "__main__": f1 = open("./tech752-2-in1.csv") f2 = open("./tech752-2-in2.csv") while True: l1 = f1.readline() l2 = f2.readline() l1 = l1.strip() l2 = l2.strip() if not l1 and not l2: break print(l1, l2) f2.close() f1.close()
782 名前:デフォルトの名無しさん [2015/10/27(火) 13:17:58.24 ID:dbz6tEeF.net] >>753 は変更で import csv, sys if __name__ == "__main__": f1 = open("./tech752-2-in1.csv") f2 = open("./tech752-2-in2.csv") csv1 = csv.reader(f1) csv2 = csv.reader(f2) csv_writer = csv.writer(sys.stdout)
783 名前:デフォルトの名無しさん [2015/10/27(火) 13:20:03.27 ID:dbz6tEeF.net] >>754 の続き while True: try: row1 = next(csv1) except StopIteration as e: print("except StopIteration by next(csv1)") break try: row2 = next(csv2) except StopIteration: print("except StopIteration by next(csv2)") break csv_writer.writerow(row1 + row2) f2.close() f1.close()
784 名前:デフォルトの名無しさん [2015/10/27(火) 13:45:46.10 ID:XeOEre3W.net] >>755 ありがとうございます 思い通りの処理ができました
785 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 14:20:42.65 ID:Lj8iPgFJ.net] pasteというコマンドがあってだな
786 名前:デフォルトの名無しさん [2015/10/27(火) 14:33:02.28 ID:xzF47nt/.net] PythonのスレでUnix環境依存のコマンドもちだしてくるのって、別言語の関数を持ち出すのに近いものがあるよね
787 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 15:09:50.45 ID:oZ3zd0d4.net] ドザーwwwって煽ろうかと思ったけど 今回の指摘は最もな気がするので止めておきます
788 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 15:13:53.02 ID:D1Dn3dXQ.net] pastebin.com/f1efNtGB 俺ならこう書くかな
789 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 02:17:21.27 ID:Mi86mFov.net] これぐらい、join, paste などで、 簡単に出来なきゃおかしい f1の行 + ',' + f2の行
790 名前:デフォルトの名無しさん [2015/10/28(水) 04:54:06.79 ID:2vlbbPP0.net] Windowsは欠陥OS
791 名前:デフォルトの名無しさん [2015/10/28(水) 17:58:54.09 ID:9t2jSX/t.net] >>762 スレ違い
792 名前:デフォルトの名無しさん mailto:sage [2015/10/29(木) 10:53:51.63 ID:/yhPxtsE.net] ipythonで%pasteを入力すると、ファイルコピーしたものが、インデントした 状態で、ちゃんとコピーされるということを最近、知った。これ、なにげに 便利な機能だった。 あと、IPythonのMagic Functionsで、%save history 数字-数字の指定で で、対話シェルで使ったコードが、pyファイル化してくれる機能も、最近知って 良
793 名前:かった。対話シェルで書いたものが保存できないのが嫌だなと、思っていた のに、その難点が解消された。ファイル名はhistoryだけじゃなくて、なんでも 使えるというのを、今、知ったw pythonのテキストを書く人は、この機能があることをもっと周知して欲しい。 [] [ここ壊れてます]
794 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 11:42:12.01 ID:tF82mK6t.net] ドキュメントに書いてあることをドヤ顔で言われても
795 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 11:57:50.52 ID:4xsCLJ1M.net] 日々忙しい現場の人は膨大なドキュメントを読む暇も気力もないし 読んだだけでは使い方・メリットがわからないことも多い こうやって書いてくれることはありがたいものだよ
796 名前:デフォルトの名無しさん [2015/10/30(金) 12:02:04.54 ID:bGTI8z09.net] >>766 ありがとうω
797 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 12:37:33.93 ID:LbGz8JT9.net] ただ、%pasteを使って対話シェルにペーストしたものを%saveでpyファイル化すると、 そこに出来たpyファイルの中身は、get_ipython().magic(u'paste')みたいに なって、後に使えないような問題が生じていました。 そこで、その理由を調べてみると、 ttp://stackoverflow.com/questions/29968038/how-to-save-an-ipython-session-if-i-used-magic-paste-magic-save-doesnt-wor という英文のサイトに、How to save an ipython session if i used magic %paste ? (magic %save doesn't work) Of course, I would like the pasted code to be saved instead.Any ideas? という同じトラブルの質問がなされていた。
798 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 12:38:03.64 ID:LbGz8JT9.net] その解答の一つにあったのは、 It is only saving the commands you type at the prompt, and the command you entered was paste, which the magic converts to get_ipython().magic(u'paste '). While the first behavior may not be a bug (even if it's not particularly helpful), this editing behavior definitely seems like one. %pasteでIPythonの対話シェルにペーストしたものを%saveでpyファイル化したものは、 get_ipython().magic(u'paste')になるのがデフォルトの仕様です、ユーザーが コマンドを実行した箇所の%paste=(u'paste ')の部分しかファイル化されない仕様になってます。と、 書いてある感じ。%pasteを使わないで、普通にコードをコピペ・ペースト出来たものは、%saveで普通に pyファイル化されている感じでした。
799 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 19:08:49.11 ID:GTAHUN3J.net] csvの書き込みで、特定列のみクオートしない方法ありますか? forで回して特定列のみ数値型にするしか思い当たらなかったのですが、nullの扱いでつまずいてます…
800 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 20:35:32.03 ID:zUZa21Gd.net] pycharmのローカル変数のtype hintingって2種類あるんだが、どっちがいいとかある? @ #: :type: int num = dic['num'] A num = dic['num'] """:type: int""" @って公式から消えてるからAの方がいい?
801 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 21:18:19.73 ID:V5n94Kuv.net] >>770 そのfor文とその中身を提示してみれば? コードを見て改善点を出してくれる人が居るかもよ。
802 名前:デフォルトの名無しさん [2015/10/30(金) 23:42:08.77 ID:k5vGnOwJ.net] ExcelのCSV形式とか、色々な種類があったかな? そういうのを参考にすれば、お好みの形式が見つかるかも
803 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 12:09:44.66 ID:v1FiNzJT.net] >csvの書き込みで、特定列のみクオートしない方法ありますか? >forで回して特定列のみ数値型にするしか思い当たらなかったのですが、nullの扱いでつまずいてます… 値をクオートしたくないから数値に変換したい意味が分からない どのような文字列が使われるのか説明を省くな "a",
804 名前:"b" ↓ a,"b" "\"a\"","\"b\"" ↓ "a","\"b\"" [] [ここ壊れてます]
805 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 12:34:13.12 ID:EqUq4cF0.net] int型とか数値だとクォートしないcsvライブラリー多くない? pythonはどうか知らんけど。
806 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 13:23:56.28 ID:v1FiNzJT.net] csvには明確は仕様がないのでそれがおかしいとも正しいとも言えない
807 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 15:02:35.84 ID:HfRtIykb.net] 途中で改行入るのもあるしな
808 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 22:00:10.15 ID:UVsvdy88.net] python超初心者です。 python 3.4.3 shellで >>>class Prism: def _init_(self,width,height,depth): self.width=width self.height=height self.depth=depth def content(self): return self.width*self.height*self.depth(インデントはしてあります) >>>p1=Prism(10,20,30) TypeError:object() takes no parameters となりました。みんなのpython第3刷です。 超初心者ですいません。回答お願いします。
809 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 22:12:53.41 ID:2GL7tPRL.net] >>778 >python超初心者です。 >return self.width*self.height*self.depth(インデントはしてあります) 超初心者のコードの評価なら、こっちに書いてからリンク貼ってくれたほうが確実です pastebin.com/
810 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 22:17:35.38 ID:/ed7opaB.net] >778 class Prism(): カッコが足りないのでは?
811 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 22:37:57.22 ID:UVsvdy88.net] >>>779 >>>780 ()つけてみましたが、だめでした… すいません>>>778 です pastebin.com/zEKVssb3
812 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 22:46:51.47 ID:kMFTk0iK.net] 回答お願いしますと言いながら質問が書いてないじゃないか。無精なやつだな。 >>778 initの前後のアンダーバーはそれぞれ2つ必要。 _init_ ではなくて __init__
813 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 23:36:52.77 ID:UVsvdy88.net] >>>782 ありがとうございました。解決しました。 質問書くのを忘れていました すいませんでした
814 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 23:50:10.10 ID:9xmCXk3+.net] データベースを文字列として保存して利用できるライブラリってありませんか? select,delete,update,insertができればいいんです sqlite3が使いたかったんですが データベースファイルを暗号化するので、復号化するときにファイルに書き出さないといけないので使えません。
815 名前:デフォルトの名無しさん [2015/11/01(日) 00:02:29.68 ID:cJRHBIPW.net] a.db 自体を暗号化しちゃえば? aes.py なんて腐るほどあるでしょ
816 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 00:14:32.34 ID:ePhs0pxt.net] そのa.dbじたいを暗号化したいので、復号化したらファイルに書き出さないといけませんよね
817 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 01:00:13.13 ID:8yFkftFr.net] Connection.iterdump データベースをSQL testフォーマットでダンプするためのイテレータを返します。 in-memory データベースの内容を、後でリストアするための保存する場合に便利です。
818 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 03:15:39.57 ID:FP4yCWl/.net] >>784 使えないとかじゃなくて、 まず、要件だけ列挙してみ?
819 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 04:42:00.75 ID:8yFkftFr.net] https://github.com/Microsoft/Pyjion それよりIronPythonを…
820 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 10:42:45.97 ID:X/WSAqc0.net] >>787 iterdumpいいですね これでsqlを読み込ませたいんですが 下のコードを実行したらsqlite3.Warning: You can only execute one statement at a time.ってなりました import sqlite3 c = sqlite3.co
821 名前:nnect(':memory:') sql=""" BEGIN TRANSACTION; CREATE TABLE tbl(id, title); INSERT INTO "tbl" VALUES(1,'a'); INSERT INTO "tbl" VALUES(2,'b'); INSERT INTO "tbl" VALUES(3,'c'); COMMIT; """ c.execute(sql) [] [ここ壊れてます]
822 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 10:44:53.49 ID:X/WSAqc0.net] BEGIN TRANSACTION;とCOMMIT;を除いて1行ずつexecuteすればいいんですが sqlをそのまま利用できる方法ありませんか?
823 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 11:45:19.76 ID:8yFkftFr.net] 少しはリファレンス読めよカス
824 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 11:50:17.00 ID:DnVZClsz.net] おまいらというインタラクティブリファレンスを使ってるだけなんだよなあ これだから低脳老害池沼は困るンゴね 頭がしゃしゃしゃんのパイチョナーだからしゃーなしだけど
825 名前:デフォルトの名無しさん [2015/11/01(日) 16:05:16.17 ID:fsJJdRPt.net] matplotlibを用いて株価のチャート図を作成しています。 入力している株価は平日のみなのですが、チャート図には休日部分でも軸があり見辛いです。 平日のみを表示するにはどうしたらいいですか?
826 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 16:37:13.71 ID:MdE+0m3/.net] int, float, strの混在したnumpy array (dtype=object) を非数値と数値に分離したい。 a = [0.2192670820092546 0.38922684417371245 9 9 'A' 0.39194839474978815 4 8 7 'B'] split(a) ['A' 'B'] [ 0.21926708 0.38922684 0.39194839 4. 7. 8. 9. ] 以下のように素朴に組んでみましたが、スマートで高速な方法はないでしょうか。 取りうる値を調べたいのでnp.uniqueをかけています。 def split(a): _nom = [] _num = [] _for i in a: __if isinstance(i, str): ___nom.append(i) __else: ___num.append(i) _return np.unique(nom), np.unique(num)
827 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 17:10:46.37 ID:B8LcATC9.net] numpy.arrayに異なる型の値を入れるところから間違えているのは気にならないの?
828 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 17:18:18.36 ID:eXne5FsE.net] そんな配列作れたっけ? そもそもどうやって作るんだ?
829 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 17:37:27.10 ID:MdE+0m3/.net] 汚いデータを扱う事を想定していて… 異なる型を入れるなと言われたらまあそれまでなのですが 作る分には最初にobject型を指定しておけば作れます a = np.zeros(4, dtype=object) a[0] = 1 a[1] = 1.1 a[2] = "A"
830 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 18:37:42.62 ID:eXne5FsE.net] 速い方法見つからないし、思いつかんな forループあり、取りうる型の範囲の指定もありで 以下の感じしか思い浮かばなかった。 import numpy as np def_type = [str, int, float] a = np.zeros(6, dtype=object) a[0] = 1 a[1] = 1.1 a[2] = "A" a[3] = 2 a[4] = 2.2 a[5] = "B" type__lists = {} for v in a: for t in def_type: if isinstance(v, t): type__lists.setdefault(t, []).append(v) break print type__lists
831 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 19:15:23.10 ID:Unza4uUw.net] >>> a array([0.2192670820092546, 0.38922684417371245, 9, 9, 'A', 0.39194839474978815, 4, 8, 7, 'B'], dtype=object) >>> idx = np.frompyfunc(type, 1, 1)(a) == str >>> a[idx] array(['A', 'B'], dtype=object) >>> a[~idx] array([0.2192670820092546, 0.38922684417371245, 9, 9, 0.39194839474978815, 4, 8, 7], dtype=object)
832 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 19:23:10.95 ID:eXne5FsE.net] 何その万能そうなやつw 俺氏numpy疎すぎ
833 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 20:32:39.16 ID:mdIJAfuo.net] >>794 試してみたが特に軸について指定しなかったら自動的に入力されてる日付だけで描画されるようだが i.imgur.com/ppQAZQ5.png
834 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 21:28:45.75 ID:MdE+0m3/.net] >>799 ありがとうございました。 種々の型に分離できて便利そうです。 setdefaultを初めて知りました。
835 名前:覚えておきます。 >>800 圧倒的にスマートですね。 frompyfuncというのがあるのですね。np.vectrizeでもいけますね。 恐らく ==, [], ~, [] で走査が何回か走っているので実行速度面ではやや遅くなっています。 非常に勉強になりました。ありがとうございました。 [] [ここ壊れてます]
836 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 21:42:10.43 ID:eXne5FsE.net] >>798 >>800 超基礎っぽくて重大なことを2つも知りました どうもです
837 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 22:38:21.96 ID:+Y9Yxcop.net] >>796 そういう質問の前提をひっくり返すような返答しかできないなら黙ってたほうがいいかと 業務で使ってたらいくらでもこういう状況に巡り合うし 前にも書いたけど「タマネギ無しでカレー作りたい」っていう質問に「玉ねぎ入れろよ」は無能回答者の極み
838 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:07:44.84 ID:5bGNIrSn.net] 超初歩的質問ですいません。モジュールをpyscripterで作って保存し、importしようとしたのですが、 ImportError:No module named 'aaaa'というエラーがでます。 どうすればimportできるようになるのでしょうか? 環境変数にはC:\Python34のpassを追加してあります。 スクリプトを保存する場所がまちがっていたのでしょうか? スクリプトの名前の打ち間違えはしてません。
839 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:32:55.24 ID:5bGNIrSn.net] >>806 です。site-packagesに保存したところimportできました。
840 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 10:40:16.36 ID:u1Xcwdjg.net] >>805 今回はやっちゃった後だから仕方ないが次から気を付けようね
841 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 11:08:32.73 ID:NqGvXyH8.net] >>808 うわあ
842 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 11:34:42.87 ID:8MrUu8oz.net] ary = [ [ {"age":20,"tanaka"}, {"age":30, "satou"}, {"age":12, "suzuki}, ], [ {"age":50,"nakano"}, {"age":3, "miura"}, {"age":21, "nakamura", ] ] これをageの値が小さい順で、もし値が同じなら名前順でソートして ary = [ [ {"age":12, "suzuki}, {"age":20,"tanaka"}, {"age":30, "satou"}, ], [ {"age":3, "miura"}, {"age":21, "nakamura", {"age":50,"nakano"}, ] ] となるようにするコードを教えてください
843 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 12:10:41.79 ID:O/IYQSjt.net] > 810 辞書には、キーと値のペアが必要だから、 {"age":12, "name":" Sato"} とかにすることが必要。 for lst in ary: ____lst.sort(key=lambda person: person["age"], person["name"]) で並べ替えできるはず。
844 名前:770 mailto:sage [2015/11/02(月) 12:16:55.14 ID:pKvKRT4w.net] 先日csvまわりで質問させて頂いたものです。 色々と情報足りていませんでした。すいません。 やりたいのは、 ・csvファイルを読み込む ・文字コード、区切り文字、囲み文字、改行コードを変換 ・別ファイルのcsvを出力 です。 csv.readerで読み込んだあと、csv.writerで区切り文字などを変換して出力しようとしたのですが、csv.readerの時点で文字列になってしまうため、変換前はクォートされていなかった項目も囲まれてしまいました。 そこで、特定項目のみ数値型に変換しようとしたのですが、データにnullがあったため、数値型に変換できないレコードがあって。。。 という流れです。 ちなみに、文字コードはcodecs.openで別処理で行います。
845 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 12:48:27.98 ID:u1Xcwdjg.net] pythonをOpenCVで使いたいのですが どのバージョンがおすすめですか?
846 名前:デフォルトの名無しさん [2015/11/02(月) 13:42:34.52 ID:e8sSwe/F.net] 辞書オブジェクトの値を四捨五入して表示したいのですがどうすればいいです? 具体的には print predict_dicの結果を {0: 0.0, 1: 0.53333333333333333, 2: 0.46666666666666662}から {0: 0.0, 1: 0.53, 2: 0.47}
847 名前:としたいです。 [] [ここ壊れてます]
848 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 14:03:29.71 ID:ysex+PeP.net] 四捨五入するprintを実装 or floatを継承して__repr__をオーバーライド
849 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 15:28:13.00 ID:f3Dk5D9Q.net] >>814 str.format
850 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 15:58:48.25 ID:cuo/lEqs.net] ./sample.py def one(): __return 1 ./test/test_sample.py sample.pyをtest/test_sample.pyでテストしたいんですが import sampleってしてもロードできません bottleとかflaskのテストファイルには__init__.pyを使ってないのにimportできてます どういうふうにして__init__.pyを使わないでテストを実現しているのか教えてください
851 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 16:11:03.17 ID:xjce4HXM.net] >>812 具体的にどんな値がいつの時点でどのようにクォートされるって言ってるのかわかりません。 文字列だからクォートされるっていうのもよくわからないし。 それが再現する最低限のプログラムと最小のデータを作って >>>779 のサイトに上げてもらえますか?
852 名前:uy ◆Qawu9.2l1E mailto:sage [2015/11/02(月) 18:46:55.92 ID:SGzzuciz.net] ペイソン知らないけど四捨五入ってsprintfじゃないの
853 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 20:45:56.04 ID:D1MIq598.net] 3.5でようやくtypehintingですか バージョンごとの互換性低いし、言語の可読性も悪いし なんか良いとこなしの言語ですねえ 科学分野の人はなんでこんなゴミ言語ありがたがってるんでしょ? バカなんですかね?
854 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 20:55:08.20 ID:2rFXfmu6.net] はいはいママに聞いてもらってね
855 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 01:37:42.37 ID:GCahsqg0.net] 初心者です。PyQtとPySideって出来ることに差があるんでしょうか? また、それらを使うにはPython2より3の方が良いんですか?
856 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 03:09:22.00 ID:7F8rrZeR.net] >>817 モジュールの検索パス import sys print(sys.path) python a.py のように、ファイル名だけを指定して、パスを付けない場合、 sys.pathの冒頭には、空文字列が表示され、 カレントディレクトリを表すが、 ./test/test_sample.py のように、パスを付けると、./test/ となるので、 ./sample.py のパスとは1階層異なる
857 名前:デフォルトの名無しさん [2015/11/03(火) 03:50:27.00 ID:7F8rrZeR.net] >>812 SQLAlchemyのような、O/Rマッパーを使うのは? 他にも、SQLObject, Django付属のライブラリとか NULL許容のInt型を指定すれば? NULLは例えば、生徒が休んだときの、 テストの点数などで、平均値から除外する CSV → O/Rマッパー → CSV
858 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 04:45:57.16 ID:FYipsz6F.net] 最近居着いた>>820 ってちょっと前に最初は初心者的質問してて同じIDでdisり出した奴だよね多分
859 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 05:02:40.71 ID:7F8rrZeR.net] >>812 sqliteで、CSVでもクォートで囲っていて、その中にカンマがあったり、 クォートの中で開業したりしていたら、インポートできないみたい タブ文字はデータ中で使わないだろうし、 TSV(タブ区切り)がまぎれが無くて、よいかも
860 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 07:08:57.26 ID:Y2+tMywR.net] >>821 , >>825 相手するなよ…
861 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 08:44:08.74 ID:WA/pYWcc.net] >>817 その、bottleやflaskではどういうふうにして__init__.pyを使わないでテストを実現しているのかという質問には、 あなたがbottleやflaskの、あるいは他のモジュールの、どんな機能を利用してテストを書いて、どんなふうにファイルを配置して、どんなテストプログラムを書いて実行したのかが分からないと、答えようがありません。 というのも、あなたが何を指して、何を以って、bottleとかflaskのテストファイルには__init__.pyを使ってないのにimportできてると言っているのかが、あなたのその説明からは、さっぱりわからないからです。 あなたが前段
862 名前:で書いていることは、それを読んだ人が誰でも、同じことを自分でして試してみることができます。 でも後段のbottleやflaskのテストについては、そうじゃないでしょう? その上で、さらに個別のライブラリに関する質問に回答するには、そのライブラリのソースやドキュメントを確認することも必要になることがある、ということも理解してくださいね。 ここで回答してくれる人がみんな、bottleやflaskに詳しいわけじゃないですからね。だから具体的に説明してくれないと、答えようがないんですよ。 [] [ここ壊れてます]
863 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 08:45:27.58 ID:9FtI+eCg.net] 相手してるのも含めて自演に決まってんだろ 俺がFF○○スレを荒らした時は 荒らし役、反応役、茶化し役、諫め役*2で5役を演じたぞ
864 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 09:25:18.42 ID:SQf02+gY.net] Pythonを使っているとここまで醜い生き物になるのか それとも、醜い生き物だからPythonを使っているのか
865 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 10:39:32.94 ID:pSFTI+Np.net] >>828 なんとなくだけど君はあんまりテストを書いたことがない初心者に見える
866 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 13:12:09.08 ID:WA/pYWcc.net] >>831 当たりです。 テスト書いたことって一度だけしかありません。 あと実を言えばインポートの仕組みもまだよくわかってません。 単純に「上の階層にあるモジュールをインポートする方法」を答えればいいものを、それが分からないので、 でもなんか誰もレスつけなくてそのまま流れちゃいそうで可哀想だったから、無理矢理レスつけたら、>>828 みたいになっちゃった。
867 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 13:30:27.73 ID:SQf02+gY.net] 上から目線でドヤってたら指摘受けて情けない言い訳で取り繕い 恥ずかしいな これが平均的パイチョナーか
868 名前:デフォルトの名無しさん [2015/11/03(火) 13:54:53.91 ID:C0Kah9v/.net] >>829
869 名前:デフォルトの名無しさん [2015/11/03(火) 13:56:51.14 ID:C0Kah9v/.net] >単純に「上の階層にあるモジュールをインポートする方法」を答えればいいものを、それが分からないので、 from .. import hoge で出来ますよ
870 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 18:14:34.35 ID:zqIPD6fb.net] >>835 ありがとうございます。 ん〜 SystemError: Parent module '' not loaded, cannot perform relative import って表示されてインポートできません…
871 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 18:36:28.88 ID:SQf02+gY.net] importすらまともにできない完全汚物吐瀉糞言語パイチョン
872 名前:デフォルトの名無しさん [2015/11/03(火) 23:13:09.88 ID:7F8rrZeR.net] 普通、importされるモジュールの方が、 1階層上には来ない 通常、実行ファイルと同じフォルダか、1階層下にある .exe .dll .exe ./lib/dll そもそも、実行ファイルを置いていないフォルダから、 実行できたらおかしいので、 ディレクトリを移動してから、実行すれば? cd test python test_sample.py カレントディレクトリがtestになり、 そこでパス無しファイル名だけで実行する
873 名前:812 [2015/11/03(火) 23:29:30.37 ID:8GVwcxa5.net] >>818 pastebin.com/GZ3KavP5 カンマ区切りをタブ区切りに変更したいのですが、 "uuu",,"ううう" こんなレコードがあると "uuu" "" "ううう" 空文字部分がクオートされてしまうのです
874 名前:デフォルトの名無しさん mailto:sage [2015/11/04(水) 00:23:17.38 ID:UvMmqNQl.net] コーヒー噴いたわ quotingをNONNUMERICにしてるんだから文字列が常にクオートされるのは当たり前だろ オプションの説明読んだのか?
875 名前:デフォルトの名無しさん mailto:sage [2015/11/04(水) 01:16:46.33 ID:J7mxnqPB.net] 一々、CSVからTSV(タブ区切り)へ変換しなくても、 最初にデータを作るときに、 TSVで出力すればよいのでは?
876 名前:812 mailto:sage [2015/11/04(水) 08:00:58.11 ID:FPu3J/EA.net] >>840 文字列はクオートしたいんです したくない項目があるので、NONNUMERICにして無理矢理一部を数値型に変換しようとしました。
877 名前:812 mailto:sage [2015/11/04(水) 08:05:07.71 ID:FPu3J/EA.net] >>841 それが一番いいのですが 既存システムからカンマ区切りで出力されてしまうので指定が出来ないのです
878 名前:デフォルトの名無しさん mailto:sage [2015/11/04(水) 08:24:06.08 ID:JNCv00QT.net] isNu
879 名前:mberしてnumberなら適当にあれすりゃいいんじゃね あとはそのクッサイゴミレガシーシステムを捨てろ [] [ここ壊れてます]
880 名前:デフォルトの名無しさん mailto:sage [2015/11/04(水) 09:00:19.72 ID:UvMmqNQl.net] 無理なことを押し通そうとしてる時点で壊れた玩具の車と変わらない 自殺志願なら駅のホームで好きなだけやってろ
881 名前:デフォルトの名無しさん mailto:sage [2015/11/04(水) 09:02:03.22 ID:UvMmqNQl.net] ほんのカスほどでも頭があったなら QUOTE_NONEにして自力でクオートすればいいと気づくだろ
882 名前:デフォルトの名無しさん mailto:sage [2015/11/04(水) 09:02:19.29 ID:p+tN+eCM.net] 君は病院行ったほうがいい
883 名前:812 mailto:sage [2015/11/04(水) 09:47:11.09 ID:lqTMDHCA.net] >>846 NONEにして手動でダブルクオートなどで囲むと それ自体がエスケープ処理されてしまうのですが 設定で回避出来たりしますか?
884 名前:デフォルトの名無しさん mailto:sage [2015/11/04(水) 10:10:16.47 ID:qgDdiE2u.net] ID変えて煽ってまたID変えてくる陰湿な質問者か
885 名前:デフォルトの名無しさん mailto:sage [2015/11/04(水) 10:11:10.96 ID:JBTH8cVO.net] >>848 writerのオプションでquotechar="$"みたいに別の文字を指定してできないかな? あとプログラムのコメントに「囲み文字変換」って書いてあるけど、これは元のcsvファイルで文字列は既にクォートされてて、それを出力時に別の文字でクォートし直してるってこと? 例えばシングルクォートされてるのをダブルクォートにし直してるとか。
886 名前:デフォルトの名無しさん [2015/11/04(水) 10:28:20.86 ID:wf5P/Bdz.net] [[1, 2, 3],[4, 5, 6]]のような配列を [[1 2 3][4 5 6]]のように変更するにはどうしたらいいですか?
887 名前:デフォルトの名無しさん [2015/11/04(水) 10:51:40.90 ID:9/gYWAho.net] ??? できません。が答えだけど。 docs.python.jp/3.4/library/itertools.html >>> import itertools >>> list(itertools.chain(*L)) [1, 2, 3, 4, 5, 6] これを欲しかったの? >>> L1 = itertools.chain(*L) >>> L1 <itertools.chain object at 0x7fec403ba518> >>> list(L1) [1, 2, 3, 4, 5, 6] >>> L1 <itertools.chain object at 0x7fec403ba518> >>> list(L1) [] itertools.chain()のobjectを受け取る方法では 2回目は空を返すから注意が必要
888 名前:デフォルトの名無しさん mailto:sage [2015/11/04(水) 10:59:31.12 ID:dx4sHopx.net] sed 's/,/\t/g' in.csv > out.tsv
889 名前:デフォルトの名無しさん mailto:sage [2015/11/04(水) 12:54:11.15 ID:HK3+KEXA.net] dictkeys = ["a", "b"] values = [[1, 2], [3, 4]] これを [ {"a": 1, "b": 2}, {"a": 3, "b": 4}, ] ってするコードを教えてください もしdictkeysが["a", "b", "c", "d"]だったら valuesは[[1,2,3,4]]な感じになります valuesの1次元がrow、2次元がcellだとお考えください インデックスをハードコーディングしないで配列のサイズが変わっても対応できるコードを教えてください
890 名前:デフォルトの名無しさん [2015/11/04(水) 14:47:48.67 ID:9/gYWAho.net] if __name__ == "__main__": keys = ["a", "b"] values = [[1, 2], [3, 4]] L = [] for v in values: # v [1, 2] d = dict() for index, k in enumerate(keys): d[k] = v[index] L.append(d) print("L =") print(L) L = [] for v in values: d = dict(zip(keys, v)) L.append(d) print("L =") print(L)
891 名前:デフォルトの名無しさん mailto:sage [2015/11/04(水) 15:07:52.15 ID:GRQA3RSV.net] [dict(zip(dictkeys, value)) for value in values]
892 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 05:24:41.14 ID:eUJR5oE/.net] ややこしいから、自分で変換したらダメ!(車輪の再発明) ライブラリ・O/Rマッパーに変換させる CSV, TSVでも、 文字列中に、" があれば、"" か \" とする 文字列中に改行があっても、行区切りとして扱わない。 文字列中に、カンマがあっても、列区切りとして扱わない
893 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 09:11:13.17 ID:JJ7nSOtG.net] 車輪の再発明だかなんだか知らないけど その辺に転がってる駄文の再記述は必要か? おう駄人間君
894 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 09:35:52.77 ID:ei6H30jI.net] 病気の人来た
895 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 13:51:24.38 ID:6sxJWh0m.net] 来月の6日3.5.1がリリースされるけど そろそろ3.2を切ってくれないかな
896 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 17:06:48.32 ID:+0qX7jvB.net] Ubuntu 16.04 LTS Will Try To Be Python-3-Only, No Python 2 By Default https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-16.04-Python-3-Hopes
897 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 21:56:07.96 ID:2Sos2Ru/.net] マジでいち早く2系滅んで欲しいわ ただでさえ言語仕様が汚いんだから、多少なりともマシな3系にさっさと移れ 2系使ってる下級旧猿人類どもが心臓発作で死ぬようなバグ見つからないかな
898 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 22:17:25.93 ID:ZoSoHeJ6.net] tkinterでフルスクリーンの表示ってできるの? いろいろ調べても出てこない… 他にフルスクリーンの表示ができるものがあったら教えてください
899 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 23:58:54.75 ID:9I1HGcpx.net] 残念だが2.7.11が予定されている
900 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 00:11:40.98 ID:B1D86SPp.net] >>864 カスみたいな言語仕様は直さない上に レガシーにしがみつく老害の糞虫どもと慣れ合う蛆虫 こんなんだからいつまで経ってもシェアゼロコンマ代のドマイナー池沼言語なんだよ 開発はヴァカなのか?俺が足の指でコーディングしてやった方がまだマシなレベルだな
901 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 02:12:26.59 ID:IQJ89P+V.net] >>862 >>865 いつもの病気の人ですね
902 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 04:07:07.10 ID:H5bwMtpa.net] マジで2系が滅びるには西暦3000年までかかるかもなあ 会社の1996年ものHP-UX(当然Pythonなし)が、このたびRHELに更新された これでPyhtonが使える!と勇んで中身を見たら、2.4だった…
903 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 09:17:29.97 ID:lDi+bZZ1.net] 貴重な体験ご苦労様です そんな仕事絶対受けないわ 無能と違って仕事選べるって素晴らしい
904 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 12:39:35.88 ID:Q49rkf95.net] lambdaで複数行で書く方法を教えてください これをlambdaで書いたコードを教えてください def f(): __print(1) __print(1)
905 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 13:37:10.69 ID:qqK0gbSQ.net] >>863 attributes("-fullscreen", True)
906 名前:デフォルトの名無しさん [2015/11/06(金) 17:04:18.62 ID:F7EIvq3A.net] Cでpythonモジュール(*.pyd)作ろうと思って色々ためしてたら PyString_FromFormatで%fとかについ最近まで対応してなかったんだなー
907 名前:デフォルトの名無しさん [2015/11/06(金) 17:05:20.79 ID:F7EIvq3A.net] >>867 2.6じゃないのか
908 名前:デフォルトの名無しさん [2015/11/06(金) 17:06:57.33 ID:F7EIvq3A.net] >>869 lambda: [print(1), print(1)]
909 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 19:45:50.48 ID:H8/mSBf4.net] RHEL5は2.4
910 名前:デフォルトの名無しさん [2015/11/06(金) 20:43:53.17 ID:bL8oHt+C.net] RHELは7でも2系で7のEOLが2024年。Python2は2020年までの延長発表したけど、どうするんだろ。 Fedoraはもう3に変わってるんだけどね。 Debianは次の次ぐらいいけるかな?
911 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 21:07:59.85 ID:H8/mSBf4.net] そんなの何の問題もない /usr/bin/pythonの保守はディストリビューションのメンテナの仕事だから
912 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 22:12:57.42 ID:lDi+bZZ1.net] RHELはpython3に移行する前にyumをdnfに移行しないと yumがどういう状況にあり、なぜpython3への移行を妨げているかは dnfの開発経緯を読めば分か
913 名前: [] [ここ壊れてます]
914 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 22:21:08.44 ID:qoQoDq6D.net] 隣の階層の.pyをインポートしようと思ってやりかた調べたら面倒すぎてわろた 流石に仕様がクソすぎやろ…
915 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 22:21:32.36 ID:lDi+bZZ1.net] まあFedoraの立ち位置を考えると RHEL8か9では移行するんじゃないですかね それでも低能君が使うPythonは2だけどね
916 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 22:22:29.75 ID:lDi+bZZ1.net] 絶対インポート以外書くんじゃねえこのド低能が
917 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 22:34:39.32 ID:H8/mSBf4.net] そういうんじゃなくて、 PYTHONPATHに含まれてないとimport対象にならないことを言ってると思う。 某下品な言語なんかだと、どこからでもインポートできるせいで、 お漏らしの原因になってるでしょ。 汚物好きのマニアックな言語ユーザーが、 なぜPythonを使おうとしているのか、全く分からないけど。
918 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 22:55:38.29 ID:A8OcAOd1.net] PYTHONPATHやパッケージ階層を無視したら、 セキュリティが滅茶苦茶になる chroot, DocumentRootなども効かなくなる そんな危険なアプリは、商用では使えない
919 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 22:55:58.24 ID:3ce6Taxj.net] パッケージ内のモジュールはパッケージのトップからの絶対importを使う そしてsetup.pyを書いてパッケージ化しpipで導入する システム環境へのインストールを避けたいならvirtualenvなどを使う
920 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 04:21:01.63 ID:J5i3UOGI.net] >>877 > dnfの開発経緯を読めば分かる 探すの面倒だから説明して。
921 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 06:17:43.27 ID:zFF1fNmF.net] >>839 クォートもはずせるようだし、 こういうツールで、CSVを変換すれば? 自分で変換するより、安全かも csvkit 0.9.1 ttp://csvkit.readthedocs.org/en/0.9.1/ 日本人のサイトもあるよ csvkit を使ってみる ttp://kshigeru.blogspot.jp/2012/06/csvkit.html 他には、SQLAlchemyのような、O/Rマッパーを使うとか、 SQLObject, Django付属のライブラリとか
922 名前:885 mailto:sage [2015/11/07(土) 11:43:31.50 ID:zFF1fNmF.net] この日本人のサイトが、わかりやすい csvkitの使い方まとめ ttp://qiita.com/gingi99/items/d5add3aa062bf4f10cad csvclean で、正しいファイル形式かどうか、チェックする csvformat -T a.csv で、タブ区切りに変換できる
923 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 13:56:55.26 ID:4yddep+9.net] 3つ以上の積集合の結果を出力したいのですが data = [{5, 6, 7, 9, 10, 11, 13, 14, 15}, {0, 2, 3, 8, 10, 11, 12, 14, 15}, {0, 1, 3, 4, 5, 7, 12, 13, 15}] 個数が固定の場合は data[0] & data[1] & data[2] とすればできるのですが 空のsetだと積集合できないのでいい方法ないでしょうか?
924 名前:887 mailto:sage [2015/11/07(土) 14:11:29.67 ID:4yddep+9.net] >>887 すみませんできました。 data = [{5, 6, 7, 9, 10, 11, 13, 14, 15}, {0, 2, 3, 8, 10, 11, 12, 14, 15}, {0, 1, 3, 4, 5, 7, 12, 13, 15}] if len(data) > 2: ans = data[0] for i in data[1:]: ans &= i else: ans = data[0]
925 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 14:15:11.47 ID:4yddep+9.net] if len(data) > 1: の間違えでした
926 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 14:29:49.04 ID:ys3xAbOv.net] >>887 import functools import operator it = iter(data) ans = functools.reduce(operator.and_, it, next(it, set())) 標準ライブラリを使わない場合は ans, *tail = data or [set()] for s in tail: ans &= s
927 名前:デフォルトの名無しさん [2015/11/07(土) 16:06:19.43 ID:vxghkHwR.net] pythonをうまく使うことって って誰かがつくったアプリを組み合わせて使うやり方みたいなもの? 初心者です
928 名前:デフォルトの名無しさん [2015/11/07(土) 16:08:44.82 ID:vxghkHwR.net] 間違って送信してしまった pythonをうまく使うって 誰かがつくったアプリをうまく組み合わせて使うってこと? 初心者です
929 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 16:10:11.64 ID:E6FLvPzh.net] あの計算ライブラリを使っ
930 名前:てみたいから と手を出すも糞すぎる言語仕様に苦しみのたうち回り 糞尿まみれの汚物パイチョナーの吐瀉物に沈むもののことです パイチョン狂信者はパイソンこそが世界唯一の最強言語だと信じて疑わない基地害しかいないので 彼らの言葉に耳を傾けるのはやめましょう [] [ここ壊れてます]
931 名前:887 mailto:sage [2015/11/07(土) 16:32:21.23 ID:4yddep+9.net] >>890 上の方はよくわからないので勉強します。 functoolsのreduceのサンプルを参考に docs.python.jp/3/library/functools.html reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) は ((((1+2)+3)+4)+5) functools.reduce(lambda x, y: x & y, data) これでも同様の結果ができました。 ありがとうございます。
932 名前:デフォルトの名無しさん [2015/11/07(土) 16:33:27.12 ID:vxghkHwR.net] ある言語の中で、いいライブラリが増えるか増えないか、というのは偶然で決まる?
933 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 17:56:54.73 ID:aWGmA87m.net] いいライブラリを書いてくれるプログラマの食指を動かすような言語仕様とか 使い勝手とかじゃない?
934 名前:uy ◆Qawu9.2l1E mailto:sage [2015/11/07(土) 18:32:03.46 ID:Rb6TxNfK.net] 「お前の左食指の言語仕様スゲーな、剛毅木訥の効果アップとか合成?」 「うん、鉄帽団栗、大蝦蟇、猩猩、大井守の尾肉、鬼鮟鱇の肝臓で合成できる それよりお前のライブラリとフレームワークもスゲーな」 「あーこれか、これは碩老樹瞑想窟で手に入るぞ、馬鳥免許取ったら馬鳥馬留から馬鳥乗ってスグいけるよ 刻苦勉励と天佑神助の効果アップだからマジオススメ」
935 名前:デフォルトの名無しさん [2015/11/07(土) 18:36:03.88 ID:vxghkHwR.net] 人間の問題かも。 人間の言語仕様とか使い勝手を 理解しやすい語彙で 他の言語よりも簡単に改善できる言語だと よいライブラリが増える可能性が増える、 ということになるかも。
936 名前:デフォルトの名無しさん [2015/11/07(土) 18:36:56.26 ID:vxghkHwR.net] 訂正 人間の問題かも。 言語仕様とか使い勝手を 人間が理解しやすい語彙で 他の言語よりも簡単に改善できる言語だと よいライブラリが増える可能性が増える、 ということになるかも。
937 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 18:40:14.59 ID:LOAJFMP+.net] 訂正 人間の問題かも。 言語仕様とか鬼鮟鱇を 人間が理解しやすい語彙で 他の碩老樹瞑想窟よりも簡単に天佑神助できる言語だと よいライブラリが増える可能性が増える、 刻苦勉励ということになるかも。
938 名前:uy ◆Qawu9.2l1E mailto:sage [2015/11/07(土) 18:40:46.36 ID:oj5NSdiM.net] パパパパパイソニスタwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
939 名前:デフォルトの名無しさん [2015/11/07(土) 18:49:25.03 ID:vxghkHwR.net] コピペから変数をいじるのは 初心者からしたら役に立つ 主要なプログラミング技法 だとわかった
940 名前:uy ◆Qawu9.2l1E mailto:sage [2015/11/07(土) 20:56:20.74 ID:SyMt01Zb.net] >>902 SE音声の最初の1語だけをループさせるのも ゲーム製作において初歩的な演出の技術 覚えておいて損はない 主にこれが敵を連続キルした時などに 最初の1語がキル数に応じて連続したりするので 特にゲーム関係スレでは煽りに使われる事が多い このスレでは今 「パパパパパイソニスタwwwwwwwww」という書き込みがありましたね これは 1パ2パ3パ4パ 5パイソニスタ kill streakという意味なのです
941 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 22:26:03.03 ID:7dMVr59b.net] >>870 863です できました! ありがとうございます!
942 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 23:25:46.96 ID:qRUcE/WB.net] このスレにコイルを置いたら発電できそうだゾ〜
943 名前:デフォルトの名無しさん [2015/11/08(日) 16:11:22.60 ID:bzkojXZx.net] pandasについての質問です 値が特定の条件を満たす行を抽出し、その行のインデックスを取得したいのですが どのようにすればいいでしょうか? 以下の例であれば101と102を取得したいです。 iris[iris['Species'] == 'virginica'] # Sepal.Length Sepal.Width Petal.Length Petal.Width Species # 101 6.3 3.3 6.0 2.5
944 名前:virginica # 102 5.8 2.7 5.1 1.9 virginica [] [ここ壊れてます]
945 名前:デフォルトの名無しさん [2015/11/08(日) 17:23:36.71 ID:1OA1jslN.net] ぱよぱよち〜ん(´・ω・`) ぱよ?ぱよぉ〜〜
946 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 17:36:35.67 ID:gCsNpOay.net] >>906 初心者ですが力になりたいと思いますのでまず動くコードで貰えませんか?
947 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 17:56:33.43 ID:QZOkMdD8.net] >>906 iris.index[iris['Species'] == 'virginica']
948 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 18:57:43.50 ID:SrvFrSJP.net] ぱいぱいそ〜ん(笑)
949 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 19:10:42.17 ID:ia91nugD.net] ぱいそタン?
950 名前:デフォルトの名無しさん [2015/11/09(月) 07:49:41.66 ID:+0craglA.net] 逆引きの本かウェブサイトでいいのありませんでしょうか。
951 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 07:54:50.62 ID:eW5XCVAC.net] ないんだな、それが
952 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 10:33:26.93 ID:uso1536/.net] >>912 覚えたことを一つづつwikiに書いていけばいいじゃない 俺はそうやって覚えていったよ
953 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 11:07:35.20 ID:G9VzJ3Ey.net] いい方法なんて聞いてねえんだよ 有るか無いかを聞いてんだ 質問には適切に答えろ Pythonやってると基本的な日本語能力も失われていくのか?
954 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 11:19:25.44 ID:3CasijgB.net] お前の思考だけで成り立ってる掲示板じゃないから
955 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 12:28:06.78 ID:eW5XCVAC.net] 威勢はいいな
956 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 12:57:42.65 ID:xaDjTNLo.net] >>915 答えてるだろ、ボケ ⇒ >>913 基本的な日本語能力すらないのかよ w
957 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 13:23:35.15 ID:eW5XCVAC.net] 俺を引き合いに出すな 殺すぞ
958 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 13:52:30.13 ID:wYunBSWO.net] >1 くらい読んでからレス書き込めカス
959 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 19:58:50.95 ID:IWnxWu8E.net] pythonを使っていると 糞みたいな言語仕様のせいで 心まで糞色の下級国民になる このスレを読んでるとよく分かる
960 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 20:47:09.91 ID:XHl8ePvc.net] 確かにニシキヘビがとぐろ巻いてる様子はまさに巻き糞ですわな
961 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 23:51:55.64 ID:2w0H6sf5.net] 確かに逆引きないよな Rubyは書籍もサイトもあるけど だんだん使用者増えてるし今後出てくるでしょ
962 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 06:02:51.47 ID:7NcmQmNc.net] 厶板の他言語のスレも見てるけども 他言語と比較してなんでpythonの入門者はこんなに質が悪いの?
963 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 06:29:10.56 ID:vvTaEHDB.net] 前はこんなんじゃなかったんだよ むしろRubyが酷かった 機械学習絡みで入ってくる人が多いんじゃないかな Rubyの時はRails全盛期だった
964 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 07:53:03.36 ID:qtRGqLdH.net] rubyが下火になったからバカが流入してきてるのか
965 名前:デフォルトの名無しさん [2015/11/10(火) 11:53:12.11 ID:YT7kbsA+.net] Rubyのコミュニティは近寄り難い雰囲気があるけど Pythonはそれ以上
966 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 12:08:49.93 ID:mVStRMDa.net] ジャップログラマーみたいに英語ほとんど読めないなら 雰囲気なんて感じ取れないから大丈夫だと思うけどなあ
967 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 12:43:17.14 ID:DjP7y1Ap.net] >>924 2chで世界が判った気になり始めたら、色んな意味でヤバい。
968 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 13:06:07.16 ID:mVStRMDa.net] それはまあそうですね
969 名前:デフォルトの名無しさん [2015/11/10(火) 17:55:00.04 ID:76sPbOPF.net] ある特定の文字列以降は削除するにはどうすればいいですか? 以下の文章であれば埼玉を指定することで大阪、奈良を削除したいです。 東京 神奈川 埼玉 大阪 奈良
970 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 18:19:57
] [ここ壊れてます]
971 名前:.63 ID:NawThMKT.net mailto: >>> s = '東京\n神奈川\n埼玉\n大阪\n奈良' 方法1 >>> n = s.index('埼玉') + len('埼玉') >>> s[:n] '東京\n神奈川\n埼玉' 方法2 >>> ''.join(s.partition('埼玉')[:2]) '東京\n神奈川\n埼玉' [] [ここ壊れてます]
972 名前:デフォルトの名無しさん [2015/11/10(火) 18:57:09.26 ID:76sPbOPF.net] ありがとうございます。 方法1を採用し、思い通りのことができました。 もう一つ質問なのですが文章中に埼玉がない場合の例外処理はどのようにしたらいいでしょうか?
973 名前:デフォルトの名無しさん [2015/11/10(火) 19:34:44.64 ID:Qd1cQuvU.net] 方法2を使うべきだと思ったけど 例外は自分で決めなよ
974 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 19:58:18.89 ID:qupILkXi.net] 自分で考えずまるなげするだけのバカは4ね
975 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 20:10:36.11 ID:mVStRMDa.net] str.findだと例外じゃなく戻り値でエラー返すよ ってことではなく?
976 名前:デフォルトの名無しさん [2015/11/10(火) 21:15:15.20 ID:YT7kbsA+.net] for e in open('hoge.txt', 'rb').readlines(): (forの下)if e == '埼玉': break (forの行頭)else: raise Exception('hage')
977 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 01:54:54.80 ID:YoWmnP0i.net] >>933 俺が初心者の頃ならまず文章中に埼玉があるか調べて、あるなら処理続行する 調べ方はfindとかいくらでもある
978 名前:デフォルトの名無しさん [2015/11/11(水) 10:38:24.94 ID:xDrXt5W4.net] 00001〜99999までの数値を出す方法はありますか for i in xrange(100000):などではi=1〜99999となってしまい困っています
979 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 11:50:15.61 ID:1POahPwI.net] "00001"という *文字列* は作れる 数値は無理 print map(lambda x:('%05d' % x), xrange(10000)) print(list(map(lambda x:'{:05}'.format(x), range(10000))))
980 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 20:13:18.99 ID:2zY5wKX6.net] Friends(({"a", "b"}, {"b", "c"}, {"c", "a"}, {"a", "c"})) の{}ってどういう意味? 辞書でもないよね functionのreturnで{"a", "b"}型で返すことを要求されてるんだけどdict()とかしてもエラーになるし 普通にa = {"a", "b"}とかしてもエラーになるし どうすればいい?
981 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 20:37:17.00 ID:ZcY7VKQP.net] >>941 集合型じゃないかな docs.python.jp/3.4/library/stdtypes.html#set-types-set-frozenset
982 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 20:42:16.94 ID:ZcY7VKQP.net] >>941 こっちのほうがよかったかな docs.python.jp/3.4/tutorial/datastructures.html#sets
983 名前:デフォルトの名無しさん [2015/11/11(水) 20:45:27.47 ID:2zY5wKX6.net] >>943 今から読んでみる ありがとう
984 名前:デフォルトの名無しさん [2015/11/11(水) 20:48:00.37 ID:2zY5wKX6.net] >>943 ごめん これってPython3のみ? 自分のPython2.6でやったら basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} はSyntaxError: invalid syntaxが出るんだけど?
985 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 20:55:05.50 ID:2zY5wKX6.net] やっぱPython2ではダメなようだね docs.python.jp/2/tutorial/datastructures.html#tut-sets 教えてくれてありがとう
986 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 20:58:01.18 ID:ZcY7VKQP.net] >>946 2.7なら使えるようだよ docs.python.jp/2.7/library/stdtypes.html#set-set-frozenset
987 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 20:58:34.78 ID:o24YVROx.net] 2.7からだよ… 2.6ってことはCentOS6か
988 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 22:35:41.90 ID:fNWMP0gm.net] 2.4でも3の機能を使えるようにしろ!!
989 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 02:12:32.41 ID:Los5n9AY.net] 馬鹿言ってないでさっさと死ね
990 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 09:32:46.11 ID:temb17Y9.net] 2系は滅びろ
991 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 11:56:24.53 ID:RtfqPlY6.net] javascriptで\uxxxxみたいなunicodeを文字に相互変換する方法を教えてください
992 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 13:32:05.58 ID:VAIEdV8u.net] unicode_escapeだかってcodecを使う
993 名前:デフォルトの名無しさん [2015/11/12(木) 20:42:34.40 ID:pgvdnRZv.net] お前らマジでPython3系使ってるの?
994 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 20:57:07.42 ID:VAIEdV8u.net] 選べる立場にいるなら選ばない理由がないだろ 土方の下っ端の環境は知らないけど
995 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:24:53.24 ID:ek1zC/dA.net] webなら3.5を使う それ以外なら2.7使わないと無駄にトラブルに遭遇する2.7オンリー
996 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:26:24.62 ID:pgvdnRZv.net] 空辞書の判定ってどうすればいい? a = {} a is None # False a is {} # False a == None # False a == {} # True 一番下でもいいのかもだけど、これでいいのかなと思って...
997 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:36:13.57 ID:xD3c0Nin.net] len(a)
998 名前:デフォルトの名無しさん [2015/11/12(木) 23:02:35.96 ID:U/3XcmWu.net] >>957 if a:
999 名前:デフォルトの名無しさん [2015/11/12(木) 23:05:46.77 ID:U/3XcmWu.net] ていうか、isと==の違いちゃんと理解しておいた方がええよ
1000 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:07:11.64 ID:LaziVsQ5.net] >957 a={} if a: ____print("empty") else: ____print("not empty") 空の辞書やリストは、真偽評価のコンテクストでは False として扱われるよ。 len(a)とするのは冗長だけど、可読性は良くなるかもね。
1001 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:11:35.25 ID:LaziVsQ5.net] >961 ごめん。プリント文の中身を間違えた。 if a: __print("not empty") else: __print("empty") とかきたかった。 混乱させたら失礼。
1002 名前:957 mailto:sage [2015/11/12(木) 23:14:23.05 ID:pgvdnRZv.net] 皆、色々教えてくれてありがとう
1003 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 08:06:42.96 ID:4OOsT4lg.net] len(a)が何で冗長?
1004 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 10:14:03.39 ID:2p+ArX3V.net] if a: で済むものを if len(a): とするのは冗長でしょ
1005 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 10:44:57.02 ID:Y7QLtqll.net] a = {} print("{}" == str(a)) a = {"a":1} print("{}" == str(a))
1006 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 11:54:49.21 ID:SOgWzJHN.net] dict={} ele1=("key", "apple") ele2=("key", "orange") ele3=("words", "hat") などがあった際に dict={"key":("apple", "orange", "tiger"), "words":("hat", "hot")} のようにdictにkeyの値によって動的に加えていくにはどうすればいいですか?
1007 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 11:57:54.20 ID:SOgWzJHN.net] dict={"key":["apple", "orange", "tiger"], "words":["hat", "hot"]} でした dict={"key":"apple", "key":"orange"} などはそんな難しくないですが
1008 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 12:27:22.95 ID:umsjSeCw.net] collections.defaultdictを使うのが手っ取り早い import collections es = [('key', 'apple'), ('key', 'orange'), ('words', 'hat')] dic = collections.defaultdict(list) for key, value in es: dic[key].append(value)
1009 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 13:01:14.70 ID:v5Sm1rWO.net] >964 PEP8 の公式スタイルガイドでも、 If seq: が推奨されていて、 If len(seq): は避けるべきとされているよ。 一度 PEP8 に目を通すといいんじゃないかな。 pep8というパッケージもあって、スタイルガイドにそっているか、チェックしてくれるよ。
1010 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 13:08:48.25 ID:SOgWzJHN.net] >>969 助かりました
1011 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 01:21:00.91 ID:yJ0THCOh.net] cd /d %~dp0 d:\Python27\python.exe test.py %1 このバッチファイルに?.txtというファイルをドロップすると コマンドプロンプトには >d:\Python27\python.exe test.py d:\?.txt という風にちゃんと?.txtと表示されますが バッチファイルを d:\Python27\python.exe test.py ?.txt と書き換えて保存しようとするとunicode文字列があると表示されて unicodeで保存するかの選択肢が出ます 保存して実行すると >d:\Python27\python.exe test.py d:\ 笑、.txt こんな感じで文字化けします コマンドプロンプトのコードページはshift-jisなのに unicodeである?が表示されるのはなぜでしょうか? 最終的にはバッチで取得したファイルをpythonで取得して ファイルの存在チェックをしたいんですが print sys.argv[1] とすると?.txtと表示されます 文字コードで躓いてしまって混乱し
1012 名前:てます どなたかお助けください vs2015+python2.7.3 [] [ここ壊れてます]
1013 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 01:25:36.97 ID:yJ0THCOh.net] すみません。こちらでも文字化けした (ハート)の部分はハートの機種依存文字です cd /d %~dp0 d:\Python27\python.exe test.py %1 このバッチファイルに(ハート).txtというファイルをドロップすると コマンドプロンプトには >d:\Python27\python.exe test.py d:\(ハート).txt という風に(ハート).txtと表示されますが バッチファイルを d:\Python27\python.exe test.py (ハート).txt と書き換えて保存しようとするとunicode文字列があると表示されて unicodeで保存するかの選択肢が出ます 保存して実行すると >d:\Python27\python.exe test.py d:\ 笑、.txt こんな感じで文字化けします コマンドプロンプトのコードページはshift-jisなのに unicodeである?が表示されるのはなぜでしょうか? 最終的にはバッチで取得したファイルをpythonで取得して ファイルの存在チェックをしたいんですが print sys.argv[1] とすると?.txtとなりうまく表示されません 文字コードで躓いてしまって混乱してます どなたかお助けください vs2015+python2.7.3
1014 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 06:23:05.33 ID:3qZz0Yz4.net] コマンドプロンプトのコードページがShift_JISだから Shift_JISの範囲に無いUnicode文字を出力するときに文字化け("?"に変換)する コマンドプロンプト上で動くバッチファイルやソフトはコードページの影響を受ける 以下投げやりなツッコミ ファイル名はASCII文字を使え コマンドプロンプトではShift_JISで保存したファイルを使え Unicode文字(例えば♥)を使いたいならコマンドプロンプトはやめとけ
1015 名前:デフォルトの名無しさん [2015/11/14(土) 06:49:27.34 ID:OtdRrL2O.net] 機種依存文字をファイル名に使うとかすごい時代になったな 日本語ファイル名すら滅多に使わないのに…
1016 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 08:08:55.11 ID:Hu5fAc9a.net] ASCII文字は、Shift_JIS系のCP932・UTF-8で共通だから、 ? は、たぶんASCII内にある文字かも? 仕事ではファイル名は、半角英数字と、_ のみを使う 半角空白・ハイフンなども使っちゃダメ!
1017 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 12:10:28.77 ID:kYx4kaK6.net] >>> a = {} >>> a = {'a': a} >>> a = {'a': a} >>> a = {'a': a} >>> a = {'a': a} >>> a = {'a': a} >>> a {'a': {'a': {'a': {'a': {'a': {}}}}}} エラーにならんのかこれ
1018 名前:デフォルトの名無しさん [2015/11/14(土) 12:21:32.79 ID:eCyNFUOR.net] nest してるだけじゃん >>> L = [] >>> L = [L] >>> L = [L] >>> L = [L] >>> L = [L] >>> L = [L] >>> L [[[[[[]]]]]]
1019 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 13:57:20.69 ID:POuVuGhz.net] >>977 当たり前だろ a = {} a = {'a': {}} a = {'a': {'a': {}}}
1020 名前:973 mailto:sage [2015/11/14(土) 14:51:46.82 ID:yJ0THCOh.net] 解決策はないということなんでしょうか? これから作るファイルなど、変更可能ならもちろん機種依存文字は使いませんが 既存のファイル名を変更せずにwindows上で使えるファイル名なら どれでも読めるようにしたいんですが、不可能ですか? コマンドプロンプトを使うなとのことですが pythonにファイル名を引数で渡す場合、他に方法があるのでしょうか?
1021 名前:デフォルトの名無しさん [2015/11/14(土) 14:55:22.21 ID:kYx4kaK6.net] argv を codecs 通して読めばいい
1022 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 15:45:10.68 ID:l5Uj6Um+.net] >>980 Shift_JISのWindowsで範囲外の文字を使うのが間違い
1023 名前:デフォルトの名無しさん [2015/11/14(土) 16:08:44.41 ID:eCyNFUOR.net] >>980 > 既存のファイル名を変更せずに ここを諦めたら?変更しよう > pythonにファイル名を引数で渡す場合、他に方法があるのでしょうか? a.txt の各行にファイル名を書いておいて、 pythonから一行ずつ読めばいいじゃない。 with open("a.txt") as f: for line in f: filename = line.strip() f2 = open(filename) print(f2.read()) f2.close()
1024 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 16:13:21.90 ID:yJ0THCOh.net] >>981 reload(sys) sys.setdefaultencoding('cp932') enc = 'shift-jis' sys.stdin = codecs.getreader(enc)(sys.stdin) sys.stdout = codecs.getwriter(enc)(sys.stdout) sys.stderr = codecs.getwriter(enc)(sys.stdout) if __name__ == "__main__": str=sys.argv[1] if(os.path.exists(str)): print "true" else: print "false" print type(str) print str このようにしても、printした文字列は?.txtになって文字化けしますし ファイルの存在もfalseになります どうすればいいでしょうか? >>982 コードページがshift-jisのコマンドプロンプトでも バッチファイルでの出力に対しては正しくハートが表示されていますが これはなぜですか?
1025 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 16:25:17.15 ID:yJ0THCOh.net] >>983 変更は無理です。商品名なので。 テキストファイル経由するにしても 結局別の言語なりでD&Dしたファイルパスをテキストに 出力する必要があるわけで… IPythonならいけるのかなぁ… 概要見た限
1026 名前:りpythonは記述が簡単でいいなって思ったんだけど 実践すると、まさか、こんなところで躓くとは 今後Webページの情報も取得したいと思ってたけど また文字コードに悩まされそうだし、やめとこうかな [] [ここ壊れてます]
1027 名前:デフォルトの名無しさん [2015/11/14(土) 16:35:01.68 ID:eCyNFUOR.net] python自体は簡単だよ、開発効率良いよ 業務で使うんだったら金払って仕事として誰かに依頼するんだね これで表示されるファイル名を足掛かりに頑張るんだね import fnmatch import os for filename in os.listdir('.'): if fnmatch.fnmatch(filename, '*'): print filename 駄目だったら諦めろ
1028 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 16:36:20.91 ID:EX5Vv4Gf.net] コマンドプロンプトも内部的にはUnicodeなんでね…コードページは入出力時に使われるだけじゃない? Python2はマルチバイト文字セットなんでsys.argvからはエンコード失敗後しか取れない Unicode文字セット対応のPython3を使うか、2ならctypesからGetCommandLineWとCommandLineToArgvWを使うとかかな
1029 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 18:10:26.12 ID:yJ0THCOh.net] >>986 それも文字化けしてます 意図的には文字化け以外をマッチで取得して…的なことですか? 正確性に欠けると思うんだけど この文字列問題さえなければなぁ、確かに色々手軽なのに f = codecs.open('pyfilename.txt', 'w',enc2) # 書き込みモードで開く for filename in os.listdir('.'): if fnmatch.fnmatch(filename, "*"): f.write(filename) # 引数の文字列をファイルに書き込む f.close() これもUnicodeDecodeError なんで?内部でUnicode使っているんじゃないの? もうね、訳わかりません。文字列使うとどれもこんな感じ >>987 コードページに関係なく臨機応変にunicode文字も出力してる感じなんですかね 結局sys.argvでも上記のでもやっぱり文字化け あらゆるデコード、エンコード試したけど、ハート文字だけ文字化け もうpythonで取得している時点で文字コードが壊れてるとしか思えんわ 半日ずっとこんなつまらんところで足踏みしててイライラするわ とりあえず、3かIPython試してみる 2はもう2度と使わない
1030 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 18:24:13.20 ID:3qZz0Yz4.net] 文字化けの回避方法はある PYTHONIOENCODING環境変数にUnicodeを指定して出力はファイルへリダイレクトする argvがどうなるかは分からん set PYTHONIOENCODING="utf-16" c\:python34\python.exe -c "print('\u2665')" >out.txt notepad out.txt
1031 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 18:24:19.89 ID:OtdRrL2O.net] ハートを商品名に使ってる会社もクソだが、構成してる社員もクソみたいだな
1032 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 19:05:46.61 ID:yJ0THCOh.net] いやもう2はアンインストールして3.5いれたわ コマンドライン引数の問題もあっさりクリア これは楽ちん、最初からこっちにしとけばよかったわ
1033 名前:デフォルトの名無しさん [2015/11/14(土) 20:12:05.26 ID:eCyNFUOR.net] えらいっ。
1034 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 20:33:56.54 ID:yJ0THCOh.net] やりたかったことがやっとできた zip解凍>画像処理>zip圧縮 しかも3.5-64bitにしてPillowで画像処理やったら 2と同じコードなのに4倍も速くなった! 4k画像なのに0.1秒もかからない なんでこんなに違うんだ? 未だに2を勧める意味がわからんわ ほんと騙された C#と比べたらかなり簡潔でわかりやすいコーディングができるなあこれ DB操作はEFが圧倒的に楽だからC#でやるとして あとはスクレイピングツールとファイル仕分けツールだなー
1035 名前:デフォルトの名無しさん [2015/11/14(土) 20:34:51.64 ID:Jkl9KIFo.net] 茶番劇やないかw
1036 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 22:25:54.61 ID:duU50ZfM.net] unicodeファイル名でオレも昔かなりはまったな 解決したようでよかった
1037 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 22:55:21.87 ID:0kN6s8T8.net] 全部C#でやりゃいいじゃん…文字コードの問題に引っかかることなんかないぞ
1038 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 23:18:05.48 ID:duU50ZfM.net] そりゃ分かるけど おまえはもっかいスレタイ読んどけよw
1039 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 23:22:13.37 ID:hqNg22Fn.net] numbers=[1,2,3,4,5] def foo(*args): for i in args: print(i) 結果:[1,2,3,4,5] これを 結果:1 2 3 4 5 にするにはどうすればいいですか?
1040 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 23:34:08.80 ID:/ADqMz2d.net] >998 def f(*args) を def f(args) にすればいい。
1041 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 00:45:09.16 ID:D/e506/x.net] 次スレは?
1042 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
1043 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています