1 名前:デフォルトの名無しさん mailto:sageteoff [2015/11/15(日) 15:26:08.75 ID:r8bNQIop.net] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その27 peace.2ch.net/test/read.cgi/tech/1441317912/ 関連スレ Pythonのお勉強 Part51 peace.2ch.net/test/read.cgi/tech/1443700103/ ◆関連リンク Python の Home Page ttp://www.python.org/ ◆長いコードはこういうところにはってください ttp://ideone.com/ ttp://codepad.org/ ttp://pastebin.com/ ttp://dpaste.com/ ◆まとめwiki ttp://python.rdy.jp/
465 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 13:33:02.59 ID:JJlxJ852.net] ないぜ(・∀・)ニヤニヤ 欲しけりゃママのおっぱいでも吸ってな
466 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 13:42:55.40 ID:zB17Wept.net] チュートリアル読めばpythonでのやり方が書いてある そのくらい読めよカス
467 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 17:19:12.42 ID:omdbAtLE.net] 久々Pythonして、import feedparserをしたら「ImportError: No module named feedparser」が出た 入ってるはずなのにおかしいと思ってrootになって同じようにimportしたら普通に読み込めた パーミッションは、 $ ll /usr/lib/python2.6/ drwxr-xr-x. 41 root root 4096 12月 28 16:49 2015 site-packages $ ll /usr/lib/python2.6/site-packages/ | grep feedparser drwx--x--x. 3 root root 4096 12月 28 16:49 2015 feedparser-5.2.1-py2.6.egg 755に変えてもダメなんだけど、どうすればいいんかな? それと、皆はこのsite-packagesなどのパーミッションはどうしてる?
468 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 18:11:47.45 ID:JJlxJ852.net] read権限で十分だと思うが、実際にどこを探すかはimportした瞬間のsys.path次第
469 名前:デフォルトの名無しさん [2015/12/28(月) 18:27:38.14 ID:Y4DeX8w+.net] さすがに 711 はだめなんじゃね
470 名前:デフォルトの名無しさん [2015/12/28(月) 18:55:14.16 ID:Bcq1wNMf.net] feedparserってこれのこと? https://pypi.python.org/pypi/feedparser/5.2.1
471 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 20:48:05.95 ID:omdbAtLE.net] >>458 >>> sys.path ['', '/usr/lib64/python26.zip', '/usr/lib64/python2.6', '/usr/lib64/python2.6/plat-linux2', '/usr/lib64/python2.6/lib-tk', '/usr/lib64/python2.6/lib-old', '/usr/lib64/python2.6/lib-dynload', '/usr/lib64/python2.6/site-packages', '/usr/lib64/python2.6/site-packages/gst-0.10', '/usr/lib64/python2.6/site-packages/gtk-2.0', '/usr/lib64/python2.6/site-packages/webkit-1.0', '/usr/lib/python2.6/site-packages', '/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info'] 一応、/usr/lib/python2.6/site-packagesは読み込んでるはずなんだけど /usr/lib64/python2.6/site-packagesの中にはfeedparserは存在しない >>459 $ ls /usr/lib/python2.6/site-packages/ | grep feedparser drwxr-xr-x. 3 root root 4096 12月 28 16:49 2015 feedparser-5.2.1-py2.6.egg $ ls /usr/lib/python2.6/site-packages/feedparser-5.2.1-py2.6.egg/ drwx--x--x. 2 root root 4096 12月 28 16:49 2015 EGG-INFO -rwxr-xr-x. 1 root root 160056 12月 28 16:49 2015 feedparser.py -rw-------. 1 root root 146465 12月 28 16:49 2015 feedparser.pyc 755でもダメなんだよね egg内は上記の通りだけど >>460 そうだと思う 俺もいつ入れたか覚えてないんだけど、他の外部モジュールでなんか使ってるようで
472 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 21:33:13.86 ID:DWhsauMG.net] >>461 > -rw-------. 1 root root 146465 12月 28 16:49 2015 feedparser.pyc 755 になってないじゃん…
473 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 21:37:16.93 ID:omdbAtLE.net] >>462 いやぁ、それ755にしてみたけどダメだった...
474 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 21:39:02.55 ID:JJlxJ852.net] あー、pycのパーミッションか
475 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 22:18:24.30 ID:omdbAtLE.net] 仕方がないので sys.path.append('/usr/lib/python2.6/site-packages/feedparser-5.2.1-py2.6.egg') としたらimport通った でもsys.path.append()とかしたくないんだよね こういう場合はどこが悪いん? 改善方法教えてもらえたらありがたいんだけど
476 名前:デフォルトの名無しさん [2015/12/29(火) 07:57:18.81 ID:uJ7begDl.net] まず、 $ which -a python2.7 で、どこのpython2.7を使っているか確認。 $ python2.7 -c 'import sys;print(sys.path)' $ ls /usr/local/lib/python2.7/dist-packages $ cat /usr/local/lib/python2.7/dist-packages/easy-install.pth import sys; sys.__plen = len(sys.path) ./a.egg ./b.egg /usr/lib/python2.7/dist-packages まで調べて、.eggを自動的にimportするようになってるのか。 と思いましたが、一つ一つ自分で調べてみては? 問題がなく、意図したpathのpython2.7を使っているのなら、 ~/.pythonstartup に、 sys.path.append('/usr/lib/python2.7/site-packages/feedparser-5.2.1-py2.6.egg') を書き加える。
477 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 09:27:21.39 ID:3yCw/m4m.net] >>466 ありがと まず環境として、centOS6のデフォルトのPython使ってる で、feedparser他ライブラリは基本pip installから行なってる で、 $ sudo cat /usr/lib/python2.6//site-packages/easy-install.pth import sys; sys.__plen = len(sys.path) ./pip-1.5.6-py2.6.egg ./pydelicious-0.6-py2.6.egg ./feedparser-5.2.1-py2.6.egg import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new) easy-install.pthはrootじゃないと権限なく読めなかったけれど、feedparserは書かれているので読みこむようになってるのかなと 上記の内容良く分かんないけれど
478 名前:デフォルトの名無しさん [2015/12/29(火) 09:43:57.99 ID:uJ7begDl.net] sudoしたくないんでしょ? だったら、 $ cat /usr/lib/python2.6/site-packages/easy-install.pth じゃないと。↑できないんだから、permissionの問題を 解決する必要があるね。 cat 出来るようになれば解決する問題のようだけどなぁ。 あと、↓を実行できるかも確かめたら? $ cat /usr/lib/python2.6/site-packages/feedparser-5.2.1-py2.6.egg ↑できるんであれば、python2.6からimportできないのは別の問題になるけども。
479 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 10:04:37.52 ID:tu4wvDsf.net] pythonの問題じゃないな 初歩的な問題 ここで答えてもいいがlinuxのくだ質で聞いてこい
480 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 10:13:37.98 ID:3yCw/m4m.net] >>468 でも同じようにpip installしたMySQLdbなんかは普通にimport出来るんだよね cat /usr/lib/python2.6/site-packages/easy-install.pthはパーミッションのせいで読めないままで cat /usr/lib/python2.6/site-packages/feedparser-5.2.1-py2.6.egg/feedparser.pyはrootじゃなくても読み込める >>469 元々はsudo pip installした場合の皆の設定のやり方を知りたくて 今はlinuxのパーミッションの話になってきてしまったけれど... ま、linux板に聞きに行ってくる
481 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 10:16:15.16 ID:S7hPg+te.net] なんか可哀想な奴がいるな。 2つの意味でw
482 名前:デフォルトの名無しさん [2015/12/29(火) 12:56:28.91 ID:X5GhveT8.net] >>454 テンプレート文字列、名前付きテンプレート文字列、formatメソッドを使う
483 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 15:20:27.64 ID:qoFlpoo3.net] windows7 64bit python2.7です make.bcde.jp/category/33/ のサンプルプログラムをテキストエディタでコピペして実行したのですがImportError: No module named htmlとエラーが出てしまいます どうすればいいでしょうか?
484 名前:デフォルトの名無しさん [2015/12/29(火) 15:24:41.93 ID:f6XlG/an.net] とりあえずモジュールを入れてみようか
485 名前:デフォルトの名無しさん [2015/12/29(火) 15:43:10.61 ID:O/+FVQhq.net] >>465 頭が悪い 自分勝手な思い込みを排除しろ >>467 /usr/lib64/python2.6/
486 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 18:44:07.94 ID:qoFlpoo3.net] >>474 pythonのコマンドラインでimport lxml.htmlを打ち込むとエラーが出ないのでlxmlのインストールはできていると思います しかしコマンドプロンプトからプログラムを実行する時にimport lxml.htmlの部分でエラーが出てしまうようなんです
487 名前:デフォルトの名無しさん [2015/12/29(火) 19:19:01.36 ID:Gn86aS5m.net] シバンで変な場所指定してない?
488 名前:デフォルトの名無しさん [2015/12/29(火) 19:37:24.23 ID:Gn86aS5m.net] それか、pythonに変なalias設定してるとか
489 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 23:43:56.01 ID:Kwx+9ABw.net] >>476 サンプルプログラムはimport lxml.htmlってなってるのに なんでエラーメッセージはImportError: No module named htmlなの? エラーメッセージ出るとしたらNo module named lxmlか No module named lxml.htmlのどっちかだと思うんだけど import htmlってしてない?
490 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 23:55:53.20 ID:Kwx+9ABw.net] >>473 ごめん2.7だったか >>479 は忘れて じゃlxmlてフォルダがあるディレクトリから実行してるとか
491 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 00:27:50.04 ID:uyuyJzYk.net] >>480 ディレクトリにlxmlという名前のついたファイルがあったので別のディレクトリに移動させてから実行したら問題なく動きました ありがとうございました
492 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 10:55:34.27 ID:W5tI99Nr.net] pythonディス lingr.com/room/vim/archives/2015/12/29#message-22886194
493 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 12:59:52.00 ID:Jq3rckJ5.net] 何かと思ったらvimlingerの田舎者かよ 一日中冬休みの課題のvimscript書いてろクソカス
494 名前:デフォルトの名無しさん [2015/12/30(水) 19:06:49.42 ID:QhvBZrTC.net] 教えてください sympy geometryで点集合Pと円の交点を求めたいのですがうまくいきません。 Pを線分;sg.Segment(sg.Point(P(X),P(Y)), sg.Point(P(X+1),P(Y+1))) として 円との交点をintersectionにてforで回せば行けるかと思いましたが 2次元のポイントしかサポートしてないよと怒られます。 交点を求める何かよい方法はないでしょうか?
495 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 19:57:45.77 ID:ASJfSghX.net] あなたに足りない内容 ・コピペして確認できるコード ・sympyのバージョン
496 名前:デフォルトの名無しさん [2015/12/30(水) 21:37:31.57 ID:QhvBZrTC.net] sympy 0.7.6-6 簡単に書くと以下です import numpy as np import sympy geometry as sg X = np.array([-5, -3, -1, 0, 1.5, 2, 4]) Y = np.array([1, 4, 6, 10, 7, 5, 2]) center = sg.Point(0,0) radius = 3 circle = sg.Circle(center, radius) for i range(0, len(X)-2) segment = sg.Segment(sg.Point(X[i: i+1], Y[i:i+1]), sg.Point(X[i+1: i+2], Y[i+1:i+2]) ) result = sg.intersection(circle, segment) ちなみにX、Yはlistやdfなど型を変えてもダメでした
497 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 22:41:14.61 ID:HxMCzWTB.net] X[i]って書き方じゃダメなん?
498 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 22:42:57.79 ID:ZdT1nXrn.net] 初心者以前なのですが・・・ プログラムに興味がわいたので勉強してみたいと思っています Pythonが初心者向きだと見たのですが初心者でも分かるように解説されてるサイトってありませんか? バージョンも色々あるようで困惑しています
499 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 22:47:05.00 ID:Q+ZAoAOe.net] 初心者向きかどうかより 目的に合わせて言語を選ぶことを薦めますなあ
500 名前:デフォルトの名無しさん [2015/12/30(水) 23:18:41.00 ID:QhvBZrTC.net] >>487 く、kwskお願いします
501 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 23:59:47.08 ID:ZdT1nXrn.net] >>489 目的は正直今はありません とりあえず自分で考えたものを自分で作れるスキルが欲しいという感じでまだ具体的なものは決まってません プログラムがどんな物か体験してある程度理解できればと考えています
502 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 01:19:08.08 ID:bhirhwXi.net] ここがいいとサイトは紹介できないけど、今は3.5が最新バージョンだから 2.7より前のバージョンを使って説明しているサイトはもう内容が古いと言っておく
503 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 01:31:42.70 ID:WAuc0YK/.net] 公式のチュートリアルでもやってみれば? 3系も日本語訳されてるだろうし
504 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 05:35:10.12 ID:VHsnBJ1x.net] 一冊本買ったほうが良いんじゃね 効率と失う時間を考えたら本代くらいねぇ
505 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 06:34:54.34 ID:EUZydMuq.net] >>486 >segment = sg.Segment(sg.Point(X[i: i+1], Y[i:i+1]), >sg.Point(X[i+1: i+2], Y[i+1:i+2]) ) >X[i: i+1] :
506 名前: は範囲演算子。i=0なら、X[0〜1]という意味だから、以下の意味になる segment = sg.Segment(sg.Point(X[0〜1], Y[0〜1]), sg.Point(X[1〜2], Y[1〜2]) ) Pointに、範囲なんて渡せるかね? 1行ずつデバッグして、エラーメッセージも書くこと。 それか、あちこちにprint関数を書いて、オブジェクトの内容を見る [] [ここ壊れてます]
507 名前:デフォルトの名無しさん [2015/12/31(木) 09:04:27.45 ID:J1JAnlWX.net] >>495 ありがとうございます デバッグしながらやってみます
508 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 10:25:58.11 ID:KKAqg1l1.net] >>491 confreaks.tv/videos/elixirconf2014-introduction-to-elixir-for-rubyists
509 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 10:36:41.84 ID:GIuZkMXN.net] オライリーの入門python3でも買えば良いかな。
510 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 18:24:35.46 ID:qDLLgSp5.net] サイバーセキュリティ方面に進みたいからPythonを選んだ 図書館に入門Python3が入荷してたから借りてきてるんだけどMacでも環境構築は普通に出来るよね?
511 名前:デフォルトの名無しさん [2015/12/31(木) 18:45:56.57 ID:qrFs5ku+.net] はい。
512 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 22:12:57.18 ID:WAuc0YK/.net] >>499 macに標準ではいっているPythonは2系だから注意
513 名前:デフォルトの名無しさん [2016/01/01(金) 00:20:21.25 ID:bne/WG3d.net] >>1 RPGツクール2000 , RPGツクールMV https://tkool.jp/mv/ ( JavaScript 採用 ) WOLF RPGエディター www.silversecond.com/WolfRPGEditor/ デュエル・マスターズ Android版 ,i-OS版、公式 dm.takaratomy.co.jp/extra/dmapp/entrygate_ds/ デュエル・マスターズ対戦CGI ex https://web.archive.org/web/20150809154946/www53.atwiki.jp/dmsuishinparty/pages/314.html デュエル・マスターズ(デュエマ)DM ONLINE 1.8a / VanGuard ONLINE 1.5a https://web.archive.org/web/20150809160254/uhyohyohyo.sak ura.ne.jp/hsp.html ヴァンガード専用ネット対戦ツール【 VanGuard Online 】 https://web.archive.org/web/20150809155032/kiimaa.jugem.jp/?eid=61 「カードファイト!!ヴァンガード」のネット対戦ができる公式オンラインゲーム「Cardfight!! Online」 2015年冬スタート https://web.archive.org/web/20150809153724/supersolenoid.blog63.fc2.com/blog-entry-6886.html 遊戯王 Automatic Dueling System https://web.archive.org/web/20150809164855/www3.atwiki.jp/ads-wiki/pages/20.html 遊戯王 デュエル・オンライン https://web.archive.org/web/20150809171527/www31.atwiki.jp/vipdo/pages/15.html https://web.archive.org/web/20140628005202/do.yugioh-portal.net/ ウィクロス( WIXOSS ) WEBXOSS webxoss.com/about_en.html webxoss.com/DeckEditor/ BG(ボードゲーム)Engine https://web.archive.org/web/20151209080842/https://bgengine.net/ https://web.archive.org/web/20151209172205/14owl.hateblo.jp/entry/2015/12/09/011234 アプレンティス マジック:ザ・ギャザリング(MtG)オンライン化 homepage1.nifty.com/Q_Q/ap.html https://web.archive.org/web/20151202202725/homepage1.nifty.com/Q_Q/ap.html
514 名前:デフォルトの名無しさん [2016/01/01(金) 00:21:33.61 ID:bne/WG3d.net] 【 オンラインTCGエディター 】 >>1 ,>>502 デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。 例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、 当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。 既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。 デュエマ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、旧ガンダム・ウォー、ライブオン、ディメンション・ゼロ、シャーマン・キング、カードヒーローなど のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書け。 マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストしろ。 個vs個、多数乱戦、チームvsチーム、個vsチームを実現し、P2P通信対戦プラグイン有り。 設計思想は 《 RPGツクール 》 が良いかな? 他に、優れたエディター有ったら挙げてみろ。 個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。 ↓ エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。 ↓ 遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。 バトスピ、ヴァンガ、デュエマなど発売済みゲームソフトが存在してるTCGはベンダーに研究させる。 ↓ 各社TCGを再現するテストプレイ ⇒ 更に改良や修正 + コード記述の仕様書(設計書)を作成。 ↓ 機能制限した下位版を制作しても原則として発売せず + 上位版デュエリ−グ用でサーバー稼動。 ↑ 下位版を仮に発売した場合の改造および商用利用には、別途で当社との契約が必要。 さ〜て、インド人ベンダーと日本人の翻訳担当SEを見つけよっと!ww wc2014.2ch.net/test/read.cgi/entrance2/1451262577/-16
515 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 10:21:53.98 ID:HLOoEhqM.net] from time import sleep with open('a.txt', 'r') as f: print(f.read()) f.seek(0) sleep(5) print(f.read()) sleepしてる間にファイルを削除しても 2回目のprintで内容が表示できるのは何故ですか?
516 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 10:43:18.84 ID:NO+H6ZMg.net] >>504 オープンされてるファイルの実体はクローズされるまで削除されないOSがあるから
517 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 10:49:03.83 ID:XgpMEu+t.net] メモリにのってるからじゃなくて?
518 名前:デフォルトの名無しさん [2016/01/01(金) 11:58:37.51 ID:7cWASnpe.net] >>504 環境によりますので、的確な回答を欲しければ、 以下の実行結果を貼り付けて下さいな。 $ python3 -c "import sys;print(sys.platform, sys.version)" linux 3.4.3 (default, Oct 14 2015, 20:28:29) [GCC 4.8.4]
519 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 12:04:03.35 ID:LUOZYrnw.net] >>506 は無視して良いです
520 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 15:51:23.54 ID:5KWVOGWz.net] Windowsだとどうなるの?
521 名前:デフォルトの名無しさん [2016/01/01(金) 19:45:34.10 ID:RO/YvQE1.net] 大抵のosはファイルディスクリプタが存在しているうちは削除されないだろ
522 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 03:40:37.52 ID:onI2UJFj.net] fは完全にメモリに
523 名前:読み込んでると思ったけど違うのか… あんまりファイル扱わないからイマイチよくわかってないわ [] [ここ壊れてます]
524 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 04:14:55.55 ID:hjX3lexE.net] fはHDDのここにファイルがありますよって言ってる目印みたいなもん
525 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 07:28:33.43 ID:B+tUCmqX.net] 誰かが、書き込みで開いているファイルは、 ロックされているから、共有モードでも開けないはず 共有モードで開けるのは、誰かが読み込みのみで、 開いたファイルを、他者が読み込みのみで開けるだけ 誰かが書き込んでいるファイルを、 削除できたというのは、何かの間違いだろう
526 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 10:52:26.33 ID:nyi3fL1v.net] 読み込みの話だから読み込みで試してみたけど ロックされてなければ削除できて当たり前だしメモリ上に読み込んでるんだからデータを出力できて当たり前 from time import sleep from os import unlink filename = 'a.txt' with open(filename, 'r') as f: _unlink(filename) _sleep(1) _print(f.read()) _f.seek(0) _print(f.read())
527 名前:デフォルトの名無しさん [2016/01/03(日) 18:30:38.58 ID:8LluJexJ.net] def hello(): # メインスレッドで実行したい関数 print "hello, world" def handler(): # タイマーハンドラー関数 hello() # 10秒後に handler() を実行する threading.Timer(10, handler) タイマーハンドラー関数によってhello()がサブスレッド上で実行されちゃうのですが メインスレッド上で実行させるにはどうすればいいでしょう???
528 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 18:50:27.90 ID:NsMythuW.net] タイマーハンドラではフラグを立てるだけにしておいて メインスレッドでフラグを逐一チェックして、フラグが立ったら必要な処理をすればいい Python2ってこんなこともできなくて、不憫
529 名前:デフォルトの名無しさん [2016/01/03(日) 18:57:13.00 ID:huNGud9V.net] >>516 やはり、、そうなんでしょうか? 上記のhandler関数から呼び出す方法を期待してたんですが無いんでしょうか? ちなみにPython3ならあるんでしょうか?
530 名前:デフォルトの名無しさん [2016/01/03(日) 19:05:20.57 ID:SszT0QKN.net] >>515 hello() だけど? そんな事聞きたいんじゃないでしょ。 handlerを使いたくなった状況を教えてよ。
531 名前:デフォルトの名無しさん [2016/01/03(日) 20:25:01.98 ID:8LluJexJ.net] >>518 なるべく簡単に説明すると あるリストへ不定期にデータを追加していって10個たまったら HTTPで外部サーバへまとめてPOSTするプログラム(デーモン)を作ってます。 いつ10個たまるかわからないので リストにappend()して1秒経過したらそれまで止まったデータをPOSTするようにしたいです。 そのトリガーをthreading.Timer()で実現できるだろうと思ってやってます
532 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 20:39:13.57 ID:0ubEJ4Ba.net] threadingモジュールは、マルチスレッド用 自分自身のスレッドを呼び出すのは、 10秒sleepすればよいだけ sleepする際、起こす・起こされるスレッドを、常に意識する
533 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 20:49:06.77 ID:0ubEJ4Ba.net] JavaScriptで、関数の引数として関数を渡す(コールバック) 1秒後にalert setTimeout(function(){alert(1)}, 1000); クロージャを使う、書き方かい?
534 名前:デフォルトの名無しさん [2016/01/03(日) 21:16:05.90 ID:SszT0QKN.net] >>519 それくらいなら、threadを別に作って、 def run(): while True: req.post(L) time.sleep(1) if to_end: break でいいんじゃあ? ↑をmainで実行し続けても良いと思うけど。 class 用意しないといけないから、面倒か。
535 名前:デフォルトの名無しさん [2016/01/03(日) 22:18:55.76 ID:8LluJexJ.net] def handler(signum, frame): # メインスレッド上で hello()関数を実行する hello() import signal # シグナル SIGALRM を受信したら handler関数を実行する signal.signal(signal.SIGALRM, handler) # 10秒後に シグナル SIGALRM を送ってもらうようにタイマーをセットする signal.setitimer(signal.ITIMER_REAL, 10) その後いろいろ調べて上記で実現できました!!! ありがとうございました!!
536 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 23:08:12.24 ID:DYf+OrAb.net] 二次元リストa[2][3]に値があるか調べる方法を教えてください if len(a) > 2: __if len(a[0]) > 4: ____print(True) __else: ____print(False) はちょっと長いです
537 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 23:15:53.18 ID:IQm7jbVy.net] try: a[2][3] except IndexError: print(False) else: print(True)
538 名前:デフォルトの名無しさん [2016/01/03(日) 23:52:42.22 ID:SszT0QKN.net] >>524-525 和んだ
539 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 00:06:00.61 ID:s2Af4VzW.net] tryは最終手段だと思ってるんですが他に方法はありませんか?
540 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 00:21:41.72 ID:BRyzgrnr.net] if (len(a) > 2 and len(a[2]) > 3) じゃシンプルじゃないのか?
541 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 00:29:08.30 ID:RAsXEDVI.net] a[2][3]に値がある場合がほとんどなら>>525 の書き方が意味にあってる a[2][3]に値がない場合が多いならif文のほうがいい
542 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 00:40:58.68 ID:UrEM8qI9.net] if len(a[2:3][3:4]): ____print('我ながら馬鹿げている')
543 名前:デフォルトの名無しさん [2016/01/04(月) 02:36:33.02 ID:lELbBk3M.net] >>519 queueを使いなさい
544 名前:デフォルトの名無しさん [2016/01/04(月) 19:02:15.23 ID:uh/Y4MEw.net] >>515 join
545 名前:デフォルトの名無しさん [2016/01/04(月) 19:03:05.25 ID:uh/Y4MEw.net] >>527 PythonはCやJavaとちがってtryを積極的に使っても問題ないとかだれか言ってた
546 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 19:40:01.45 ID:UrEM8qI9.net] C++やJavaほど例外スロー時のコストがでかくないからね その辺はStopIterationが許容できていることからも分かる ただ積極的に使うかどうかは微妙 コードのニュアンスを伝えるのに適切ならいいと思いますけどお
547 名前:デフォルトの名無しさん mailto:sage [2016/01/05(火) 06:55:55.91 ID:lUvBrLqP.net] >>311-314 すげー亀レスだけど LL = [['Japan','apple'],['Korea','orange'],['China',3],['apple',1],[2,'Korea'],['lemon',3],['a','b'],['b','d'],['d','c']] for i, L1 in enumerate(LL[:-1]): for L2 in LL[i+1:]: if L2 and any(map(lambda x: x in L2, L1)): L1[:] = set(L1) | set(L2) L2.clear() LL[:] = filter(None, LL) print(
548 名前:デフォルトの名無しさん [2016/01/05(火) 19:26:21.19 ID:2hXOWLBa.net] >>534 >>525 の書き方だと適切なtryの使い方じゃないように思える。 tryブロックの中にa[2][3]に対する処理が簡潔に収まるならpythonとして分かりやすい書き方になると思う。 a[2][3]が存在した場合になにをしたいかによるね。 例えば、a[x][y]が存在するかどうかを判定したいだけの関数ならifとlenを使い、存在する場合はその要素を存在しない場合はfalseを返す関数ならtryを使うかな。
549 名前:デフォルトの名無しさん [2016/01/06(水) 01:36:58.84 ID:NeF0se+2.net] 配列の範囲外を取得しようとしたらNoneでも返してくれればコードを簡単に出来るのになと思うことが多々ある
550 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 02:50:10.36 ID:TI60mKwS.net] 思うだけにしとけ エラーをよしなにしてくれる機能ってのは加減がすごく難しい 一度依存すれば取り除くのも難しい PHPみたいになってもいいなら止めないけど
551 名前:デフォルトの名無しさん [2016/01/06(水) 09:39:31.66 ID:NeF0se+2.net] rubyの動きを望んだだけでこの扱いである まあ、正論だとは思う
552 名前:デフォルトの名無しさん [2016/01/06(水) 17:19:30.30 ID:VveQPPx+.net] rubyの動きがいいならrubyやった方が(ry
553 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 17:38:37.10 ID:3taoJABm.net] PEP505でNoneとよろしくやる演算子が提案されてるから 将来は>>537 も可能になるかもね
554 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 19:24:54.42 ID:wVWJvRpl.net] 数値を期待して0が良いとか文字列を期待して””が良いとかになるのでは。
555 名前:デフォルトの名無しさん [2016/01/06(水) 20:00:04.76 ID:dKGWEjRg.net] >>537 例外を返してくれるんだから十分
556 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 09:13:38.76 ID:fy/kQKWz.net] やっぱり例外をポンポン使うのかきもい
557 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 09:32:42.26 ID:nXbcU6mx.net] 今回の件はlen使うのが適当に決まってんのに 超初心者特有のスマート脳がくどいとか言い出したから 例外が提案されただけで 違う方法があるなら別に無理に使えとは言わんわ
558 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 12:49:20.99 ID:biQK77Bo.net] 多々あるんならクラス作ったらいいんじゃないの
559 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 13:42:49.81 ID:fsy/sVDL.net] もう関数でいいじゃん func = lambda a, x, y: a[x][y] if len(a)>x and len(a[x])>y else None r = func(a, 2, 3)
560 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 15:03:47.76 ID:XOpkkkUz.net] 間違いがあっても適当に動いてるふりして動き続けるプログラムより 即座に例外で落ちた方が親切 という思想で作られてるのがPython 逆を行くのがRubyPerlPHP
561 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 15:34:48.40 ID:iIS3+qD+.net] >>548 例外はPython以外に無いと思ってるんですね。 馬鹿じゃないかな?
562 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 15:51:36.76 ID:8k4BpzA1.net] もう全部try〜exceptの中にまるごとつめこめよ
563 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 16:38:21.50 ID:Pe5rEwkw.net] そうやって全部の例外を握りつぶす馬鹿がいたなー
564 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 21:26:59.97 ID:AvUDPpyf.net] 例外を握り潰すって言われるとC#スレ思い出す
565 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 00:14:57.20 ID:D7YeVJJQ.net] 僕のpythonは握りつぶさないように握ってください