1 名前:デフォルトの名無しさん [2008/04/11(金) 10:55:10 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 Python 使いが優しくコメントを返しますが、 お礼は Python の布教と初心者の救済をお願いします。
730 名前:デフォルトの名無しさん [2008/07/04(金) 16:22:22 ] 多次元配列を扱いたいんだ・・・ できれば符号なし8ビット整数の。 NumPy ってページを見てみた。 It also adds the features introduced by Numarray and can also be used to replace Numarray. ってことらしいのだが、つーことは今は numpy.array を使えと?
731 名前:デフォルトの名無しさん [2008/07/04(金) 16:29:12 ] A newer implementation, Numarray, is a complete rewrite of Numeric but is also deprecated. NumPy is a merge between the two that builds on the code base of Numeric and adds the features of Numarray. ---- Wikipedia にはこうかかれていました。
732 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 18:47:31 ] ありがとうございました
733 名前:デフォルトの名無しさん [2008/07/04(金) 19:21:43 ] どう見ても精子です。 本当にありがとうございました。
734 名前:デフォルトの名無しさん [2008/07/05(土) 20:03:29 ] 自鯖クラッシュに伴い、Python ベースのブログツールに して気分一新しようと思ってるんですが、この世界は 大体 Zope ベースと TurboGears ベースに収束しつつあるんでしょうか? Apache + Pythonベースの CGI というよりは、 サーバ機能も含めて全部 Python で固めたシステムに してみたいんですが、そうなると Zope ベース一択ですか?
735 名前:デフォルトの名無しさん [2008/07/05(土) 20:34:16 ] Debian に zope3 パッケージが見つかったんで入れちまった。
736 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 20:48:34 ] Zope3はガチで地雷。
737 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 20:50:44 ] 言うな。個々のパーツは素晴らしいと思うんだが
738 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 21:17:12 ] ブログツールってのが既成のなら 何ベースというより機能で選択すればいいとおもうけど 自分で構築するならlighty+WSGIかSCGIなPythonアプリかな。 Zopeは2.6以降追っかけてないけど 当時の設計思想でコアなProductも同等以上なら Python自体がバージョンアップしてる分そうとう楽しく書けるはず。 でも実際は>>736 のとおりなんだろうな。
739 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 22:23:27 ] Zope3はすばらしいと思うが周りに集まってくる日本人がクソ。
740 名前:デフォルトの名無しさん [2008/07/05(土) 22:26:12 ] え?地雷なの? なんか改造したくなったときにPythonだと普段から使っているからやりやすいかと思って。 PerlとかPHPで書かれたやついじりまくって収集つかなくなった。
741 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 22:29:01 ] 舞の海
742 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 23:27:31 ] >>740 >PerlとかPHPで書かれたやついじりまくって収集つかなくなった。 センスのある奴は道具に左右されずそつなくなんでもこなすもんだがね。
743 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 00:25:22 ] クマー
744 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 01:40:50 ] ちょ PHPはセンスあっても無理な時は無理 grobal依存しまくりな著名アプリがほぼ絶滅したら認識改めてもいいが なんかSquirrelMailっての改造作業回された時にほんと死ねクズ開発者共って思った
745 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 03:10:32 ] PHPにはnamespaceすらも無いの?
746 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 03:13:36 ] ねえよンなもん
747 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 04:53:51 ] PHPは言語自体行き当たりばったりなハックで作られてる印象
748 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 08:31:52 ] >>744 >SquirrelMailっての改造作業回された時 ドカタ乙。
749 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 08:45:48 ] ワラ
750 名前:デフォルトの名無しさん [2008/07/06(日) 11:23:57 ] Perlは綺麗なのか? かなりアドホックに建て増ししてるように見えるが。
751 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 11:35:17 ] Zope3の実装はきれいだけど、使っている日本人がババッちい。
752 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 12:02:04 ] zopeはメメタァなだけだろ
753 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 12:49:36 ] >>751 なんでZope関係の日本人は変な感じがするんだろう…
754 名前:デフォルトの名無しさん [2008/07/06(日) 13:35:53 ] CMSでいえば俺が以前使ってた geeklog の人なんて もっと気持ち悪いよ。
755 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 14:39:40 ] CMSスレでも評判悪いなw
756 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 16:02:22 ] >>745 namespaceは5.3で導入される。6.0からunicodeのネイティブサポート。
757 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 16:22:21 ] 総じてCMS開発者は気持ち悪いのか?
758 名前:デフォルトの名無しさん [2008/07/06(日) 16:54:27 ] >>755 俺もね,いろいろと改良しようとはしたんだ. というか,実際やった.自分のブログだけは. でもさ,モジュール化が難しい PHP だと, 上流の変更に合わせてマージできるように確認 するだけでえらい手間がかかるんだ. そこまでしてコントリビューとするのも面倒だったからやめた. 上流での変更範囲のどこまでが自分がコミットした パッチに影響あるか,確信が持てないし, 退行テストするほど時間に余裕もない. つーわけで Zope 3 だとその辺考慮されてるかな? とか淡い期待を抱いてインスコはしてみたものの, まだインスタンス作成すらしてないや. Zope スレも過疎ってるみたいだしさ
759 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 01:30:40 ] 全然話は変わるけど、pythonってなんで file = open('hoge.txt') for line in file : hogehoge() って書けないのよ
760 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 01:33:24 ] 書けるよ
761 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 03:01:11 ] 行毎なのか文字毎なのかバイト毎なのか はっきりしろ
762 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 03:17:19 ] >>759 Oh! Python勉強中なのでその話題は気になります Perlだったらこんな感じ? open(IN, "hoge.txt") or die "Can't open hoge.txt"; while(<IN>) { chomp; print $_; } close(IN); Pythonなら
763 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 03:22:47 ] Pythonならこう? f = open("hoge.txt", 'r') while True: l = f.readline() if l == '': break l = l.rstrip('\n') print l f.close() …もっと上手い書き方・短くなる書き方があるのでしょうか? while True: が気になります ここに条件判断入れて短くできないのでしょうか?
764 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 03:24:57 ] というか Perlの or die "〜" に相当する部分がないのも気になるな… try: 〜 except: 使わなきゃダメなのかな
765 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 04:39:35 ] >>763 ファイルから1行ずつ読むループは for line in file: でいいんだよ。 759が何を駄目と言ってるのか分からない。
766 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 04:58:16 ] >>763 f = open('hoge.txt') for line in f: print f, # 末端にカンマつき f.close() stdout.writeのほうが好みならそっちを あと例外は補足しなければ大概はdieの代わりになるよ
767 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 05:10:36 ] >>765 おお…ホントだ! 試してみたら行けました 「Python ファイル読み込み」で検索すると>>763 のような書き方しか出てこなかったので for line in file: なんて書き方ができるとは知りませんでした …どうして初心者向けの解説ページでは長々とした書き方を紹介してるんだろう もしかして比較的最近の版じゃないと書けないやり方なんでしょうかね? 何にしても短く書けて嬉しい限りです 後は or die "〜" 相当の書き方を調べてこないと…
768 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 05:10:41 ] ごめん間違い for line in f: print line, で
769 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 05:15:50 ] >>766 膝を打ちました print の最後にカンマをつけることで改行を出力しない =読み込んだ行の改行を利用して改行してしまう、ということなのですね 上手いやり方があるなあ… しかもたったの3行になってて感動しました 同じ処理でもこんなに短く書けるのか…
770 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 06:54:27 ] 公式に良いチュートリアルがあるよ。 >>759-769 の内容は網羅されてる。 ttp://www.python.jp/doc/release/tut/
771 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 12:19:44 ] sys.stdout.writelines(open("hoge.txt")) for line in open("hoge.txt"): print line
772 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 20:51:05 ] >>770 「網羅されてる」ようには見えませんが… 7.2 ファイルを読み書きする www.python.jp/doc/release/tut/node9.html#SECTION009200000000000000000 目についたのはこのへんですが、この内容から上記の話を知識として得るには無理がありませんか? それとも、そちらで見ている項が違うんでしょうか? 余談ですが こういってはなんですけど、公式のチュートリアルってなんだか判りづらくないですか…? プログラミングそのものが初めての人向け、のように一見始まりながら しかし噛み砕き方がかなり中途半端で、そのうえ、どこに何が載っているかが判りづらく 初心者にも、他言語習得済みの人にも どちらにもお勧めできない解説になってるように思えます …和訳文書があるだけマシではありますが、おそらくコレは原文からしてよくないんでしょうね
773 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 21:49:17 ] >>772 もっと先のイテレータのところにちょろっと書いてある。
774 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:29:17 ] 余りわかりやすく書いてしまうと本が売れなくなる
775 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:35:07 ] イタリックは止めて欲しいよね
776 名前:770 mailto:sage [2008/07/09(水) 22:43:43 ] ちなみにPython2.4.2以降のチュートリアル(英語)には ファイル読み書きの項にも載ってる ttp://docs.python.org/tut/node9.html#SECTION009210000000000000000 >>772 > 初心者にも、他言語習得済みの人にも > どちらにもお勧めできない解説になってるように思えます 確かにチュートリアルは初心者向けではない ただ良いと感じるかそうでないかは あくまで読む人の経験に左右されるので一概には言えない 良くないと感じたら入門書を買うのが吉
777 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 23:03:38 ] pythonの入門書なんか書籍数が少ない上に中途半端なのばっかじゃん python勉強しようって連中からしたらifとかforとかたらたら書いてあっても無意味なのにさあ EffectiveC++とかEffectiveJava的な本が無いのがいかん
778 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 23:49:04 ] >>773 あっ…そこでしたか。これは失礼しました。たしかにちらりと紹介されてました 9. クラス - 9.8 イテレータ (iterator) www.python.jp/doc/release/tut/node11.html#SECTION0011800000000000000000 頭の中で「ファイル」「for文」のキーワードしか浮かばなくて違うところを探してました… www.python.jp/doc/release/tut/node6.html#SECTION006200000000000000000 4. その他の制御フローツール - 4.2 for 文 Pyhon 2.5.2版チュートリアルでは、ファイル関係の項に事例が載ってるのが興味深いです 版が新しくなるたびに、微妙に改善?されてるのですね>原文
779 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 12:40:48 ] Cookbookでもみたら。 プログラミングの初心者には、 pythonで学ぶプログラミング作法がおすすめなんだがさすがに古いんだよな。
780 名前:デフォルトの名無しさん [2008/07/10(木) 12:41:34 ] is 演算子はオブジェクトに関するアイデンティティテストですが, 定数に対しての式 3 is 3 が True になるのはどういう理屈によるのでしょうか.
781 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 14:01:23 ] 定数じゃないから >>> int(3) is 3 True
782 名前:デフォルトの名無しさん [2008/07/10(木) 15:42:02 ] is ってオブジェクトとして同じってことであって, 値として同じってことじゃないと思うんですよ. i = int(3) j = int(3) print i is j #これは True print i == i #これは True class TestClass(): def __init(self): pass def __eq__(self, right): return True p = TestClass() q = TestClass() print p is q #これは False print p == q #これは True
783 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 15:46:43 ] Pythonの数値はimmutableだから 同じオブジェクトを使いまわしても問題ないんです
784 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 15:48:19 ] int,float,str等の場合はa==bがTrueでもa is bはFalseになる場合もあるので 使うべきではないね
785 名前:デフォルトの名無しさん [2008/07/10(木) 15:50:31 ] 変更不可能なオブジェクトの場合はそういうふるまいなのか? って思ったんだけど…タプルでやってみる x = (1,2) y = (1,2) print x is y #これは False print x == y #これは True
786 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 15:58:30 ] そこらへんは実装依存 変更不可能なオブジェクトは使いまわしてもいいし使いまわさなくてもいい
787 名前:デフォルトの名無しさん [2008/07/10(木) 16:45:27 ] 実装依存 orz 危険だなぁ
788 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 16:52:37 ] そういう比較にisは使わないから危険ではないでしょ
789 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 16:55:37 ] >>> 100+100 is 200 True >>> 100*100 is 10000 False
790 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 17:00:55 ] is をどういうときに使うのか今一つピンとこないなあ… >>784 の事例を考えると 「最初から何でもかんでもできるだけ全部 == でいいじゃねえかそのほうがシンプルだろう」 と思うのだけど…
791 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 17:06:38 ] 値としてイコールなのと、オブジェクトが等しいことは全く別の話だが ポインタがない言語だから分かりにくいのかね。
792 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 17:41:16 ] >>> x = None >>> print x == None True >>> print x is None True None との比較には is None を使うべし、と説明してる記事をよく見かけるのですが 初心者向け記事・最初のうちは x == None だけ使ったほうがいいのかな という気がしただけなんですけどね
793 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 17:42:31 ] なんで各行に改行が入るんだ… orz
794 名前:デフォルトの名無しさん [2008/07/10(木) 17:53:38 ] >>791 でもちゃんと copy.deepcopy() とか用意されてるけどね
795 名前:デフォルトの名無しさん [2008/07/10(木) 19:10:47 ] どのメソッド・関数でどれくらい時間がかかっているかを 測定してくれるプロファイラって Python にないですか? PyDev から容易に使うことができればベストなんですが.
796 名前:デフォルトの名無しさん [2008/07/10(木) 19:53:05 ] import profile でおkでした
797 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 20:05:52 ] hotshotもあるよ
798 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 22:43:38 ] >>762 Python2.5以降 with open('sample.txt','r') as fp: for line in fp: print line
799 名前:798 mailto:sage [2008/07/15(火) 22:47:21 ] ミスった。こうかな? with open('sample.txt','r') as fp: for line in fp: print line
800 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 00:18:35 ] インデントなくても分かるコードならそのままでよくね? 2chの仕様はみんなしってるし。 スレローカルで行頭のある記号(たとえば . とか)は 空白とみなすとかなら楽なんだけど。
801 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 08:09:50 ] プログラマ=アプリを使いこなす、ってイメージがあるから 2chは専用ブラウザで見てるって思ってるんだけど、そうでもないのかな。
802 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 12:45:16 ] htmlソース見たら空白復元出来るけど何が問題?
803 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 21:46:46 ] >>801 自分が使ってるアプリの独自仕様が標準だと思ってる人って痛いよね
804 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:28:40 ] どこにでもいるけどな
805 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 23:27:06 ] いい加減スレ違い
806 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 10:22:46 ] これでいけそうな気が $ python -c "import sys; print sys.stdin.read().replace(' ', ' ')" < test.py #! /bin/env python def main(): for i in range(10): print i if __name__ == '__main__': main()
807 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 10:26:04 ] replace(' ', ' ') -> replace(' ', ' ')
808 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 15:47:25 ] C#使いだけど今日からPython始めるよ みんなよろしく!
809 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 16:04:31 ] つ IronPython いろんな意味で逃げ出せない
810 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 18:55:14 ] それも入れたー とりあえず何か作ってみるわー
811 名前:デフォルトの名無しさん [2008/07/18(金) 07:55:10 ] PythonはTkinterでコマンドラインアプリのラッパーづくり WebアプリはApache+PHPでお手軽に作れる規模で十分な俺が PythonでWebアプリ作ろうと思ったらどんなパッケージ使うべき? ゴツいフレームワークは無しの方向で
812 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 08:04:11 ] 普通にApacheでCGIでいいんじゃね?
813 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 13:42:30 ] web.pyとか?
814 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 18:41:56 ] そういえばdjangoの本でてるね ttp://www.amazon.co.jp/products/dp/4048672096
815 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 10:29:32 ] >>811 ■[Python]web.pyで画像掲示板 d.hatena.ne.jp/nishiohirokazu/20080402/1207116161 ローカルで動かそうとすると画像ファイルが 表示されない…でもシンプル。App engineも似た ようなかんじで組める印象…
816 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 23:04:11 ] 今日初めて生で柴田さんを見た。
817 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 23:46:03 ] 受け付けの柴田さんなら毎日見てる
818 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 00:17:13 ] いくぜっ
819 名前:デフォルトの名無しさん [2008/07/25(金) 01:41:29 ] 一行めの/usr/bin/env pythonのenvって 環境変数無効にするって意味なんですか?
820 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 02:04:09 ] >>819 Unixでの常套句 この場合pythonのフルパスがわからなくても動作する。 PATHはとおっていないとだめだけど。
821 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 02:07:56 ] >>820 あー、環境変数PATHを有効にしてるってことですね。 呪文だと割り切りつつ、ずっと疑問だったのですがすっきりしました。 ありがとうございます!
822 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 02:12:24 ] 正直、俺は呆れたよ…
823 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 02:19:25 ] だってwindows使いなんだもん 超初心者スレだから許してちょ!
824 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 02:37:45 ] Windowsだったらその行消しても問題ないよね?
825 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 02:43:01 ] うん
826 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 14:30:23 ] すると *NIX環境下でも Windows環境下でも Mac環境下でも どこでも動くPythonスクリプトを書こうと思ったら 1行目に必ず #!/usr/bin/env python と書いておくのが定石ということでいんでしょうか
827 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 17:07:33 ] >>819 pythonの実行ファイルが /usr/bin/python にあろうが、 /usr/local/bin/python にあろうが動かそうとする場合に使うんでないかい? ただし、欠点として2つ以上の引数(この場合envの後の python 以降)を認識しなかったはず
828 名前:デフォルトの名無しさん [2008/07/25(金) 17:10:57 ] ちょっと質問があるのですが、 ライブラリのパスにzip付きパスがあるんですが、 これって標準ライブラリ一式を zipに固めて置いておけば動くっチューことなんでしょうか? この編の仕組みについてドキュメントに記述があればどの辺にあるか教えてください。 ライブラリパス表示例: python -c 'import sys; print sys.path;'
829 名前:デフォルトの名無しさん [2008/07/25(金) 17:17:37 ] 別の単語で検索していたら、一発で見つかったw 4.12 zipimport -- Zip アーカイブからモジュールを import する www.python.jp/doc/2.3.5/lib/module-zipimport.html お騒がせしました。 ありがとうございました。
830 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 17:22:07 ] py2exe の _memimporter も調べた方がいいよ