【シンプル】Pythonっておもしろい【パワフル】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
様々な分野で注目を浴びている言語Pythonについてのスレです。

われらが国産RubyはRoRのお陰で世界的にユーザーが激増しています。
しかし、オブジェクト指向スクリプティング言語で世界的に一番人気なのは、Pythonです。

日本では人気がないようですが、シンプルでいてパワフルなPython。
使い勝手が素晴らしいこの言語についての日本語コミュニティーを作りましょう。
2デフォルトの名無しさん:2008/08/25(月) 08:04:11
インデントがどうもね。
3デフォルトの名無しさん:2008/08/25(月) 08:18:17
Pythonのお勉強 Part 28
http://pc11.2ch.net/test/read.cgi/tech/1217836194/
くだすれPython(超初心者用) その2
http://pc11.2ch.net/test/read.cgi/tech/1218155094/
Python の宿題ここで答えます Part 1
http://pc11.2ch.net/test/read.cgi/tech/1153585095/
Pythonに見られるインデントによる制御構造の是非
http://pc11.2ch.net/test/read.cgi/tech/1169473442/
pythonがこの先生きのこるには
http://pc11.2ch.net/test/read.cgi/tech/1167996371/
【Perl,PHP】LLバトルロワイヤル3【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1215319832/
Pythonについて(アンチ専用)
http://pc11.2ch.net/test/read.cgi/tech/1203557046/
4デフォルトの名無しさん:2008/08/25(月) 13:30:01
>>2
エディタが、自動的かtab一発できちんとインデントしてくれるのに慣れると、気にならなくなる
5デフォルトの名無しさん:2008/08/25(月) 13:50:41
>>4
+p(*a,*b)-q(*a,*b).
+p(*a,*c)-q(*a,*c)-p(*c,*b).

これPrologのマルセイユ版による表記ですが、インデントとか入る
余地ないですね。汚いコードが来ることが前提のインデントなのでは
ないかと。
6デフォルトの名無しさん:2008/08/25(月) 13:52:34
まちがえたw コードの二行め、
+p(*a,*b)-q(*a,*c)-p(*c,*b). でした。
75:2008/08/25(月) 19:07:16
このスレでPython批判をするつもりは全くなかったので、
インデントの件はこれでおしまい。
8デフォルトの名無しさん:2008/08/25(月) 20:31:31
インデントについてはこのスレでどうぞ
http://pc11.2ch.net/test/read.cgi/tech/1169473442/l50
9デフォルトの名無しさん:2008/08/25(月) 22:27:51
ポリデントは?
10デフォルトの名無しさん:2008/08/25(月) 23:30:15
以下、タフデント、トライデント禁止
11デフォルトの名無しさん:2008/08/26(火) 00:17:32
いけずぅ〜
12デフォルトの名無しさん:2008/08/26(火) 01:30:13
なんかいいIDEはあるの?
13デフォルトの名無しさん:2008/08/26(火) 02:10:52
>>12
IDEと言えるか分からないけど、わたくしはemacsでがす
14デフォルトの名無しさん:2008/08/26(火) 08:59:32
シンプルかもしれんがあんましパワフルじゃない
15デフォルトの名無しさん:2008/08/26(火) 12:09:24
十分パワフル
16デフォルトの名無しさん:2008/08/26(火) 13:42:02
>>12
http://wingware.com/

オープンソースやってる奴にはフリーで提供
17デフォルトの名無しさん:2008/08/26(火) 21:59:06
LL書くならvi系しょ
18デフォルトの名無しさん:2008/08/28(木) 23:42:27
定番の入門書って言ったらどれ?
19デフォルトの名無しさん:2008/08/29(金) 00:43:12
20デフォルトの名無しさん:2008/08/29(金) 00:50:27
>>18
英語で原書読めるならO'Reillyの本どれもお勧め
21デフォルトの名無しさん:2008/08/30(土) 13:39:15
pythonほど学習しやすい言語はない。
これで一通りの作業できるようになってから
他言語にいくってのもよいのだろうが現場的に無理か。
22デフォルトの名無しさん:2008/08/30(土) 14:24:13
プログラミング入門にPythonは良い言語
ただオブジェクト指向のアクセス権とか隠蔽に対する考え方が
C++とかJavaとかと全然違うのが難点
23デフォルトの名無しさん:2008/09/01(月) 01:09:48
LLやってるうちに、アクセス権とか言語的にサポートされてなくても
ドキュメントに勝手にアクセスするな!と書いとけばいいような気がしてきた
24デフォルトの名無しさん:2008/09/01(月) 02:03:14
たしかにデザインにじっくり時間を使えない(&コード大人数でシェアしない)環境では
あまりOOにこだわり過ぎるのは労力の無駄という気はするね
25デフォルトの名無しさん:2008/09/01(月) 09:10:25
しかしRubyほどの汎用性にはかなわない糞言語Python
26デフォルトの名無しさん:2008/09/01(月) 09:19:49
Rubyと比べたメリットデメリットがわからん。。。
27デフォルトの名無しさん:2008/09/01(月) 10:32:50
Ruby厨にエサ投下したくないし
28デフォルトの名無しさん:2008/09/01(月) 11:50:51
Pythonの方が、明らかに成熟度は高いです。
これは優劣でなく、Pythonの方が歴史が長いから
細かいところに手が入っているということ。

ただ、Cとかで拡張機能を加えようとすると、Rubyの方が
実はstruct作ったりとか煩雑な準備をしなくて良い分簡単だったりする。
29デフォルトの名無しさん:2008/09/01(月) 20:57:13
確かにctypsはあまりスマートでない
30デフォルトの名無しさん:2008/09/03(水) 23:59:16
pyてょn
るby
ぺrl

ということで、全部引き分け
31デフォルトの名無しさん:2008/09/04(木) 00:24:57
たぶん保守する側からすればLL系はPythonが一番だろう。
教育用言語として生まれてインデント縛りを入れたのは正解だね。

不特定多数を相手にした運用はたいてい性悪説がうまくいく。
ネットワークサービス全般がそうだし、これはコードの保守にもいえる。

Rubyが人気なのは単にRoRが流行ってるって理由と、
プログラムが楽しいって理由からじゃないかな。
32デフォルトの名無しさん:2008/09/04(木) 00:31:13
まぁRubyはPerl譲りで書いてて楽しいってのもあるしな。
後は野となれ山となれだ。
33デフォルトの名無しさん:2008/09/04(木) 01:45:20
煽りではないので、マジレスキボンヌ。
Rubyは楽しいと良く聞くことはたしかです。
Pythoneerとしては、どこがどう楽しいのか、具体的に分かりません。
ちなみ私はPerlは大嫌いです。自分で書いたPerlのコード数ヶ月後に見返すと
何やってんだかまったく分からないことが良くあるからですw
わたしがRubyを楽しく思わないのも、ちょっとPerlの香りがするから
そこらへんの、好みの違いなのかもしれませんね。
34デフォルトの名無しさん:2008/09/04(木) 02:36:06
>教育用言語として生まれて

そんなことはないと作者本人が否定しているんだが?
35デフォルトの名無しさん:2008/09/04(木) 19:37:17
そんなん大した問題じゃない
そういう否定が必要なほど、そう認知されてるってことだ
36デフォルトの名無しさん:2008/09/04(木) 20:08:38
>>33 マジレス
Python では他人のコードを追うことがよく発生する。ライブラリを使おうとして
python document で分らんとき、 google で誰かの解説を探してだめな後は、python の
ソースを追うことになる。場合によっては、Python 英語 document 読むよりもソースを
読んだほうが分りやすいことさえある。bisect モジュールがそうだ。ドキュメントより
ソースの方が短い。

Perl だと他人のコードを読む気にならない。C だと、他人のコードを読もうとしてもマ
クロ定義のさかのぼり探索など迷路に分け入りがちになる。Perl よりはましだが、C で
も他人のコードはあまり読みたくい。Python の場合は、楽しみながら他人のコードを追
える。

後あまり指摘されないが、python は関数プログラミングの良い所を上手く取り込んでいる。
37デフォルトの名無しさん:2008/09/04(木) 20:36:44
Perlは確かに変態チックだがCPANの存在が大きいんだよな。。。
38デフォルトの名無しさん:2008/09/04(木) 21:56:29
> 後あまり指摘されないが、python は関数プログラミングの良い所を
> 上手く取り込んでいる。

そう言ってしまうのはどうかなあ

Guidoはlambdaは失敗だったと言っているし
末尾再帰の最適化には全く興味を示さないし
reduceはbuilt-inから格下げになるし
そもそも普通に副作用使いまくりがデフォで、参照透明性なんて最初から考慮外
39デフォルトの名無しさん:2008/09/04(木) 22:17:39
Perlソースの奔放な読みにくさは、CPANモノに関してはPOD強制がフォローしてる
ドキュメントがないとサイトに登録できない

野良に関しては、まあ、言語仕様がどうあれ設計まずいと読みにくいよなみたいな
40デフォルトの名無しさん:2008/09/04(木) 23:47:06
CommonLispとPython比べてみると共通点が多い
41デフォルトの名無しさん:2008/09/04(木) 23:48:39
>そもそも普通に副作用使いまくりがデフォで、参照透明性なんて最初から考慮外

const 関数さえ作れない python で、参照透明なんて無理だろう。考慮外にするので正解
だけう。参照透明性や const 関数を入れるとしたら、もう python ではなくなってしまう。


>末尾再帰の最適化には全く興味を示さないし

本当に関数プログラミングに末尾再帰の最適化は必須か?末尾再帰が、λ関数記述に近い
ことは認めるが、それだけだろう。参照透明性の観点からは、for ... iterator でも同
等だろう。

for index in iterator:.... なんて上手くできている。ループ処理部分からは
iterator を全く変更できない。C や Java の for loop とは次元が違う。
42デフォルトの名無しさん:2008/09/04(木) 23:57:32
Python好きな人が多いな
43デフォルトの名無しさん:2008/09/05(金) 00:09:07
>>35
31か?

認知がどうとか、実際にどう使われてるかなんてのはどうでもいんだよ。
自分の思い込みで、さも作者はこう考えてましたってな書き方をするな。っての。
44デフォルトの名無しさん:2008/09/05(金) 00:14:41
>>41
いやべつにpythonを非難してるわけじゃなくて
pythonはよくできた言語だが、「関数型」ってのはどうなん?ってだけだよ

副作用を用いて普通に手続き的に書き、iterative processはループで書くのが
pythonのスタイルでしょ?
どこが関数型なの
45デフォルトの名無しさん:2008/09/05(金) 00:26:38
まあpythonが関数型であるという主張ではなくて関数型の良いところを
取り入れている、という話だったとは思うけど、
どっちかっつーと「関数型」じゃなくてそこは「Lisp」だと思うんだよね単に

そして、Guidoはその方向性を必ずしも好んでない、むしろ嫌っているわけです
lambda式なんかつかわんでdef使え、reduceはわかりにくいからforループでいいだろ
末尾再帰なんて最適化しないよ
そう言ってんだからさ
46デフォルトの名無しさん:2008/09/05(金) 00:35:08
Pythonがインデントなどにはじまりユーザに色々制限をかけている言語だとか
書かれてたりするがそういう奴って使ったことないやつなんだろーなーと最近思う

自由にかけすぎて笑う
47デフォルトの名無しさん:2008/09/05(金) 05:47:29
言語の仕様にして標準的でわかりやすい書き方を強制したいってのはいいんだけど
誰かにとってわかりきった処理やコードってレベルによって様々でしょ
言語入門者にlambdaはわかりにくいかもしれないけど、中規模コードにソートがあって
cmpやkeyがコードのあちこちにとんでいたら、入門者でも読みにくいだろうし
なんでもforループはわかりやすいけどだらだら長いforループはやっぱり読みにくいし
中級者あたりになってreduceに慣れてしまえば、reduceの一行でさっとわかるだろうし
強制しようとするわかりやすさの方向が言語入門者向きに思えるんだよね
48デフォルトの名無しさん:2008/09/05(金) 06:09:15
1行80文字で3行以上続く文があったらreduceやらlambdaは使用を控えるべきだと思う
内包表記も長くなりがちなんだよな
49デフォルトの名無しさん:2008/09/05(金) 16:21:29
lambdaってあまり使わないんだけど、関数に名前を与える必要のない時以外とかで
そんなに便利な使い方あるの?って思い切り厨房なんだけど
50デフォルトの名無しさん:2008/09/05(金) 16:32:10
>>49
lambdaをそんなに重いもんだと思う必要は無くて。

たとえばCでqsort()を使うなら別の場所に比較関数を定義しなきゃいけないわけだが、
それは単に面倒で名前空間を汚染するだけでなくて、
実際にソートする場所から離れるから、
sort { $a <=> $b } @foo
のように直接関数をブロック式の形で記述して
その場でしたいことをはっきり述べられる(もちろんこれがlambda式相当)
Perlのコードに比べて分かりにくくもなるんだよね。
51デフォルトの名無しさん:2008/09/05(金) 16:35:07
そのperlのコードがわかりやすいと思うのはどうなんだ
52デフォルトの名無しさん:2008/09/05(金) 18:04:20
@foo という配列をなんらかのロジックで sort するコードだということは読むとわかる
が、全く無関係の3つの要素が無意味に並べられてるだけって感じで自分からは書けそうにないな

Ruby で言うとこの foo.sort{|a,b| a <=> b} みたいなもん?
53デフォルトの名無しさん:2008/09/05(金) 18:26:55
Perlでは流石に例が良くなかったかw
Perlの$a, $bは一種のspecial nameだからな
Cのqsort()で使う比較関数も比較のために2引数を取るが、
Perlでは$a, $bという変数がsortの比較関数において暗黙に使用されるんだよ

>>52
だな、Ruby(元はSmalltalkだと思うが)のブロック式は実質lambdaだろう
Pythonのlambdaに比べて
Rubyではブロック式が積極的に多用されているというイメージがあるね
54デフォルトの名無しさん:2008/09/05(金) 19:38:32
>>19-20
すみません。
出来れば、日本語の書籍がいいです。
55デフォルトの名無しさん:2008/09/05(金) 19:56:35
>>53
Pythonのlambdaでは、Rubyのブロックみたいに複数のステートメント
羅列できたんでしたっけ?
一つまでだったような気が

>>54
初心者にはこれが一番のネックかも。英語ならPythonいろいろ良書出てるけど
日本語のがどうも層が薄いみたいです。
56デフォルトの名無しさん:2008/09/05(金) 20:02:49
>>53
さんざ言われてると思うけど特殊変数とか記号とかの暗黙のルールが通じるのは知ってる人だけだしね
三ヶ月後の別人である自分が読めるように書くのがPython流だと思う
57デフォルトの名無しさん:2008/09/05(金) 21:31:27
英語頑張るか…



とか言いつつ、頑張らないんだけどね…はぁ…
58デフォルトの名無しさん:2008/09/05(金) 22:44:19
オラは翻訳出してるじゃん
59デフォルトの名無しさん:2008/09/05(金) 22:44:59
え、お前翻訳だしてるのか悟空?
60デフォルトの名無しさん:2008/09/05(金) 23:45:44
野暮だろうけど、オライリーのことじゃなくて?
61デフォルトの名無しさん:2008/09/06(土) 00:10:21
いや、わかってるって
62デフォルトの名無しさん:2008/09/07(日) 10:30:11
これにて糞スレ終了
63デフォルトの名無しさん:2008/09/07(日) 12:27:41
では次の話題をどうぞ
64デフォルトの名無しさん:2008/09/10(水) 11:05:18
mod_pythonでbase64モジュールが使えません
65デフォルトの名無しさん:2008/09/10(水) 13:54:00
base64ぐらい自分で書けば
66デフォルトの名無しさん:2008/09/10(水) 16:49:04
>>65
なぜ使えないのかが気になるだけです。
import base64でbase64.b64encodeとかすると死ぬんです。
そんな属性ねーよ、と。
機能的な問題は解決したのですが・・・
67デフォルトの名無しさん:2008/09/10(水) 16:55:42
モジュールでAttributeErrorが発生するときは自分で同名モジュールを
作っちゃっているときが多い。
68デフォルトの名無しさん:2008/09/10(水) 17:04:50
base64.__file__ で確認だな
69デフォルトの名無しさん:2008/09/10(水) 19:39:23
なるほど、ありがとうございます。調べてみたいと思います。
70デフォルトの名無しさん:2008/09/14(日) 01:19:09
pygame使いたくてPytnon勉強し始めたけど・・・
Python初心者として素直に言うと下品な言語な気がする。
変数空っぽならFalseを返すってのが特にな〜
インスタントパイソンにある
print a or b
とかはパッと見なんじゃこれ?って感じだわ。

ただ、慣れればかなり具合の良い言語だと思う。
俺の中でJavaとPHPの中間てな感じ

しかしこれって本当に教育用言語?
71デフォルトの名無しさん:2008/09/14(日) 01:21:56
              ,、;i彡ミi〃ヾi、
             iヘ〃,!i〃ヾ彡ミ;ヽ、
               iヾミ ミ'`         ヾi
           ミ   〃       ,,,, l
           ヾ  彡   ,,===   "``l
           冫 ∩ '" ィェァ冫  ヤ`.l
           {( j |  ´` ´r-  、 l
               ` l .l へ  /ゝ-、 ハ l  違うよ。全然違うよ。
              l/  ハ__ー=ェェ=' /
            / - ニ二.lノ ` ‐' /、
            l     ,y 〉` ー  l l 、
       _  -‐ ´ l   1<     l l \ー 、
     r'´ ヽ    ノ   l l ,ヘヽ    /y/   \ ` -、
.     l   ヽ ハヽ、  ノ l l ヽ\/イ  ヾ 〃     l
72デフォルトの名無しさん:2008/09/14(日) 02:17:32
>>70
> しかしこれって本当に教育用言語?

Pythonは教育用言語ではありません
既出
73デフォルトの名無しさん:2008/09/14(日) 06:40:05
NaNとかいう気持ち悪いものを返してくるよりはマシなレベル
74デフォルトの名無しさん:2008/09/14(日) 07:36:34
>>変数空っぽならFalseを返す
なにそれ?
NameErrorじゃないの
75デフォルトの名無しさん:2008/09/14(日) 16:14:27
>>74
言い方が悪かったスマンコ
変数が定義されていて空っぽならFalseだ
PHPでいうempty()はtrueの状態。
76デフォルトの名無しさん:2008/09/14(日) 16:16:34
>>75
違うよ。全然違うよ。
77デフォルトの名無しさん:2008/09/14(日) 16:27:14
変数を定義しつつ、どのオブジェクトも指さないようにするのってどうやるの?
78デフォルトの名無しさん:2008/09/14(日) 16:33:26
>>77
Noneでも使うとか?
79デフォルトの名無しさん:2008/09/14(日) 16:51:41
NoneはNoneType型のオブジェクトってことになってる
80デフォルトの名無しさん:2008/09/14(日) 16:53:16
おおかたNoneが偽と判定されるからFalseと勘違いしたんだろ。
プログラム初心者が用語を間違うのはよくあることだから
具体的なコードを示すようにしよう。
81デフォルトの名無しさん:2008/09/14(日) 17:07:21
boolはオブジェクト型じゃないってだけだろ
82デフォルトの名無しさん:2008/09/15(月) 11:07:08
>>76
>>78
>>79
貴様らに何がわかる?
人の発言の真意を見ずに適当にレスしておもしろいか?
83デフォルトの名無しさん:2008/09/15(月) 13:40:06
>>73
あれはあれで理由があるのだよ。
ブラウザ上で動くから、なんでもかんでも例外を発生させて、
コードをストップさせるわけにはいかない。
適当な値を返してできるだけコードを動かした方がいいという判断なんだろ。
84デフォルトの名無しさん:2008/09/15(月) 13:45:21
>>81
こうですか><
わかりません

>>> isinstance(bool, object)
True
85デフォルトの名無しさん:2008/09/15(月) 13:47:21
>>77
全てが何らかのオブジェクトだから無理
86デフォルトの名無しさん:2008/09/15(月) 13:56:44
>>77
やっぱりNoneが最適なんじゃないの?
なんもねーっていう時のためのオブジェクトでしょ?
87デフォルトの名無しさん:2008/09/16(火) 00:10:11
>>75
変数が定義されていて空っぽってのがわからん。
変数に何らかのオブジェクトを関連付けるのが定義じゃないのかな。
他の言語はあまり触ったことないので>>75(=>>70?)の言ってる事がどういうものかさっぱりだ。
88デフォルトの名無しさん:2008/09/16(火) 13:01:11
ていうか、空の変数を定義するのに、なんで「実質空っぽ」のオブジェクトを
取り合えず入れとくのはだめなの?なんでオブジェクトなしにこだわるの?
そこが本質的な問題。
89デフォルトの名無しさん:2008/09/19(金) 18:19:44
変数=箱という思考を捨てなさい
90デフォルトの名無しさん:2008/09/19(金) 20:32:20
「ラベル」ならいい?
91デフォルトの名無しさん:2008/09/29(月) 06:08:21
プロジェクト変更でPHP使わなきゃならなくなった
Pythonの後にPHPとかやると、あまりに使い勝手悪くてウザい
92デフォルトの名無しさん:2008/09/29(月) 11:58:00
そりゃぁ、PHP と Python は思想が違う言語だからねぇ
93デフォルトの名無しさん:2008/09/29(月) 12:14:52
kwsk
94デフォルトの名無しさん:2008/09/29(月) 12:18:23
PHP の唯一のポリシーって、「誰にとってもひたすら便利であればよい」だよな
95デフォルトの名無しさん:2008/09/29(月) 16:44:10
PHP の話始めた奴誰だよ
96デフォルトの名無しさん:2008/10/02(木) 16:37:24
Pythonで、今アツいWebフレームワークって何?
DjangoとTurboGearとかは聞いたことある
Railsに匹敵するものは、まだ無いのかな?
97デフォルトの名無しさん:2008/10/02(木) 17:37:43
98GENTOOOO:2008/10/03(金) 01:56:31
add_add_ad_add&#DOUBLEclick
SOURCE;mode2 LEDfull_choose erabeyoerabe choose choice NEWPLUSnew
TVmonitoroff#&douv#(programLUmda#double)uuuuO // paparapapapapa paparapapapapa paparapapapapa paparapapapapa sigma^4#
enf endroll
moe
commandline####teamqQQQQ
信号ユニットラインの種類をおかきください
パターン2 ユニット2がこたえですね さいごに コメントをのこしてください
lgannma/V-
#;comment UfuffffffffFORTH uS ES ESE
y
lumda
=
l-/
列車でとなりすわってやるように sinngou sing sing ...........dotdotdotdot 
99デフォルトの名無しさん:2008/12/17(水) 18:54:25
pythonのideってなにがいい?
eclipseプラグイン?
wingware?
100デフォルトの名無しさん:2008/12/17(水) 22:56:28
秀丸
101デフォルトの名無しさん:2008/12/17(水) 23:13:57
Windows使っているならPyScripterためしてみれば
102デフォルトの名無しさん:2008/12/17(水) 23:14:47
IDLE
103デフォルトの名無しさん:2008/12/19(金) 03:18:35
秀丸
104デフォルトの名無しさん:2008/12/19(金) 17:29:32
e editor
105デフォルトの名無しさん:2008/12/19(金) 17:31:37
秀丸とかいう回答が来る時点で
ああpython推奨してる連中ってそんなレベルなんだな
って思って使う気が失せる
106デフォルトの名無しさん:2008/12/19(金) 17:52:21
またRuby信者の荒らしですか?
107デフォルトの名無しさん:2008/12/19(金) 17:59:46
インテリセンスみたいな強力な補完機能が欲しい
pythonの言語仕様はそういうのに向いてるはず

あと関数・変数ダブルクリックで定義を参照出来たり
定義から参照一覧を見れたりするといい

要するにクールなIDEが欲しい
108デフォルトの名無しさん:2008/12/19(金) 18:10:35
>>107
> インテリセンスみたいな強力な補完機能が欲しい
> pythonの言語仕様はそういうのに向いてるはず

Pythonは動的型でダックタイピングなのに、どっからそういう発想が出てくるんだ
109デフォルトの名無しさん:2008/12/19(金) 18:18:26
>>108
C#でインテリセンス使った事ある?
110デフォルトの名無しさん:2008/12/19(金) 18:24:28
>>109
ん?俺に突っ込み?
動的型でダックタイピングなPythonで
C#のような言語並に補完等を効かせるのはとても無理だぜ
111デフォルトの名無しさん:2008/12/19(金) 18:33:55
>>110
補完って関数名とかのサジェストだけだと思ってるの?

C#は例えばタブ一発で関数の雛形を作ってくれるんだけど
それはpythonみたいな書式を限定した言語の方が強力に出来ると思うけど
112デフォルトの名無しさん:2008/12/19(金) 18:37:13
IDEでいくつか構文パターン選んで雛形生成して
依存性注入箇所をタブで飛びながら書くみたいな事がやりたい
Pythonならやりやすいはずだよ
113デフォルトの名無しさん:2008/12/19(金) 18:39:04
>>111
ん?インデントの話?
ああ、それなら簡単、補完よりもっと無理

if x:
y
z
が、
if x:
 y
z
のつもりなのか、
if x:
  y
  z
のつもりなのかを、機械的に判断する方法は*存在しない*

補完が無理なのは分かるよな?
def f(x):
 x. # xの型が分からない....

一体何をもってPythonがIDE向きだなどという寝言を言っているのか
俺には理解しかねる
114デフォルトの名無しさん:2008/12/19(金) 18:43:56
だから君はC#でインテリセンス使った事ないでしょうw
発想が入力した文字の自動修正程度にしか至ってない
115デフォルトの名無しさん:2008/12/19(金) 18:50:02
>>114
>「インテリセンスみたいな強力補完機能」

とか言われたら、普通入力補完だと思うと思うんだが、違うのか?
少なくとも入力補完においてC#並みの機能を実現するのは不可能だという
点は、納得できたかい?
116デフォルトの名無しさん:2008/12/19(金) 18:51:32
だから君が言ってるのは自動修正程度の事でしょw
それは普通のインテリセンス
C#にあるインテリセンスは違う
上で説明してるのに
117デフォルトの名無しさん:2008/12/19(金) 18:53:52
>>116
意味が分からんな
雛形をpythonで造れるようになったとする、
んでも補完も自動インデントも効かない

それのどこが
> インテリセンスみたいな強力な補完機能が欲しい
> pythonの言語仕様はそういうのに向いてるはず
になるんだ?
118デフォルトの名無しさん:2008/12/19(金) 19:02:37
うるせーIDE使ってる奴はゆとり論持ち出すぞ
119デフォルトの名無しさん:2008/12/19(金) 19:05:28
Lisperなら雛形のコピペ=自動生成
などというまるでMFCのようなダサダサ手段は持ち出さずに
さっさとマクロを記述するところだな
Pythonにはそのようなものは存在しないが
120デフォルトの名無しさん:2008/12/19(金) 19:12:28
雛形生成はC#でも型とか関係無いし
121デフォルトの名無しさん:2008/12/19(金) 19:39:14
emacs 使ってるけど快適。
indentが曖昧な時は、tab連発で任意のレベルにすればいいだけじゃね?

まあVisualStudioにはかなわんけどね。
122デフォルトの名無しさん:2008/12/19(金) 20:14:20
e editorならtextmateライクなバンドルが使えるよ!!

と、言ってみるテスト
123デフォルトの名無しさん:2009/01/03(土) 07:58:55
>>119
遅延評価はあるから
バックくおーとみたいなのはできるかもしれない
124デフォルトの名無しさん:2009/07/08(水) 20:26:46
>>121
vsは統合開発環境じゃん
125106.79-160-162.customer.lyse.net:2009/08/17(月) 17:53:20
自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L

名言集 その1
『アパッチ砲はワシが作った』

http://jbbs.livedoor.jp/bbs/read.cgi/internet/134/1229674638/5062
自分の管理するしたらばで借りた掲示板にて

> 5062 :自動保守 ◆AOIMAD.NZM [] :2009/08/16(日) 00:46:29 ID:nQYgq9jg0
> そもそも、アパッチ砲っていうのは、私が指揮官になった時代に私の先輩たちが導入して
> 先輩たちが命名したもの、っていうかまぁ、そういう砲は今まで存在してないから
> 名前つけなくちゃいけないしw
>
> ってことで、使っているうちに広まった名前なので、それが正式名称になるんじゃないかと。
>
> http://www.paradisearmy.com/doujin/pasok_apache.htm(俺の先輩が命名)
> http://www.paradisearmy.com/doujin/pasok_hping.htm(俺が命名?)

※注 「アパッチ砲」の正式名称は「Apache Jmeter」で、もちろん自動焼人の先輩が作ったものではありません


----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/
にて自動焼人 ★までご連絡ください
126デフォルトの名無しさん:2009/09/09(水) 23:09:49
pythonはemacsなどのテキストエディタでって人多いよね。
python使うのに、VSを購入するのも、なんというか、、
VSで開発するなら、別にpythonでなくてもいいかっ、て気がする。
127デフォルトの名無しさん:2009/09/15(火) 11:46:50
IronPythonでよければ、IronPython Studioがあるけどね
128デフォルトの名無しさん:2009/09/16(水) 09:52:48
Pydevってここじゃ人気ないの?
129デフォルトの名無しさん:2009/09/29(火) 08:30:07
.
130デフォルトの名無しさん:2009/10/16(金) 10:10:44
.
131デフォルトの名無しさん:2009/11/24(火) 13:44:43
class Thr(object):
  def __init__(self, host, bbs, timeout, key):
    self.host = host
    self.bbs = bbs
    self.timeout = timeout
    self.key = key
    self.frm = 'fusianasan'
    self.cj = cookielib.CookieJar()

  def write(self, frm, mail, msg):
    print 'to bbs: %s key: %d' % (self.bbs, self.key)
    req = urllib2.Request(
      'http://%s.2ch.net/test/bbs.cgi' % self.host,
      urllib.urlencode({
        'bbs': self.bbs, 'key': self.key, 'time': int(time.time()),
        'FROM': self.frm.encode('cp932'), 'mail': mail, 'MESSAGE': msg.encode('cp932'),
        'submit': u'書き込み'.encode('cp932'), 'hana': 'mogera'}),
      {'Referer': 'http://%s.2ch.net/' % self.host})
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
    res1 = opener.open(req).read()
    print res1
    if '<!-- 2ch_X:cookie -->' in res1:
      opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
      res2 = opener.open(req).read()
      print res2
    time.sleep(self.timeout)

t = Thr('pc12', 'tech', 40, 1219618707)
t.write(u'デフォルトの名無しさん', 'sage', u'てすと')
132デフォルトの名無しさん:2011/01/08(土) 06:26:26
テレビ局なんか全部電通の子会社状態だ
電通を弱体化させなければ反日放送は永遠に続く
スパイを頂点にして放送してるようなものだ
133デフォルトの名無しさん:2011/03/15(火) 18:29:49.49
pythonを勉強してみようと思うんだけど
全くの初心者なら入門書ってどれがいいのかな?

Pythonで学ぶプログラム作法?

みんなのPython?

134デフォルトの名無しさん:2011/03/15(火) 19:10:03.43
両方とも他言語経験者向けだな
135デフォルトの名無しさん:2011/03/23(水) 01:58:33.37
はじめてのpython
136デフォルトの名無しさん:2011/03/23(水) 19:07:37.31
みんぱい ぱいそんすたーとぶっく
はじぱい
137デフォルトの名無しさん:2011/05/05(木) 04:42:23.78
.
138デフォルトの名無しさん:2011/05/24(火) 01:19:31.81
公式チュートリアルで十分だろ、本買うなよ
139デフォルトの名無しさん:2011/05/31(火) 22:45:01.87
Pythonで作ったひどいものまとめ
ttp://www.nicovideo.jp/watch/sm4231432

喋り方のひどさ、プレゼンの下手さってもうちょっとなんとかならないのか?
話し方教室行くとかさ、ちょっとの努力でもう少し見苦しくないものにできると
思うよ。
140デフォルトの名無しさん:2011/06/01(水) 04:28:41.09
リバースエンジニアリング ―Pythonによるバイナリ解析技法
ttp://www.amazon.co.jp/gp/product/4873114489/

この本てPython使っている内容だったんだね。実物の副題が見づらくて
気づいてなかったんだけど。
内容ってどんなもんでしょ?
141デフォルトの名無しさん:2011/06/03(金) 08:25:41.58
>>139
これはひどい

>>140
楽しかったお
142デフォルトの名無しさん:2011/08/08(月) 21:23:56.17
最近触ってみたけど、おもしろいね。

プログラミングする上で面倒な所を上手に処理してる。
ドキュメントもちゃんとNET上に転がってるし、良いもんだ。
143デフォルトの名無しさん:2011/08/25(木) 00:37:16.44
そう言えば、くだすれって無くなったのか?
144デフォルトの名無しさん:2011/12/12(月) 11:03:02.02
Linuxのコンソール環境でPython 開発するなら
エディタは?
入力補完やメソッドジャンプ出来るのってありますか?
vimで開発してたけど、その辺皆どうしてるんだろうと思って。
145デフォルトの名無しさん:2011/12/12(月) 22:27:58.35
>>144
Vim標準の入力補完じゃダメなの?
メソッドジャンプってわかんないけど、ctagsじゃダメなの?
146デフォルトの名無しさん:2012/01/28(土) 19:11:19.53
>>144
Pydictionとかpythoncompleteとかpysmellとかneocomplcacheとか
147デフォルトの名無しさん:2012/02/05(日) 22:11:04.71
ちょっとした修正ならまだしも開発をコンソール環境で作れなんていわれたら
荷物まとめて"帰らせてもらいます"っていってドアを蹴飛ばす。
148デフォルトの名無しさん:2012/02/05(日) 23:38:05.25
pass
149デフォルトの名無しさん:2012/02/11(土) 16:34:26.99
そして帰宅後に自分のマシンで開発にいそしみます
150デフォルトの名無しさん:2012/02/11(土) 22:20:52.92
たまりまへんわ
「みんなのPython」のタプルの説明のページ、例として挙げられているのが、
IPとドメインネームの対応表で、IPアドレスがタプルにして、それをキーにした
辞書としているんですけど、これって文字列でも実現できますよね。
わざわざタプルの例にするメリットなんなのでしょう?
読んだけど説明がありませんでした。
> わざわざタプルの例にするメリットなんなのでしょう?

タプルの説明ができる
普通の文字列とかだと苦労するような課題で、タプルを使ったところこんなに
すっきり作れました、とかやるのがタプルの紹介の教育的価値としていいものだと
思うが、意味も無くタプル使ってみました、ってダメな説明だよな。
というかその本そんなにダメ本だったのか。
Pythonにもその本にも興味はないのだが、IPアドレスをdouble値で表現するなんて
それ自体ダメダメだろ。その程度の文字列処理もできないのかPythonて
タプルって言いたいだけちゃうんかと
>>154 寒いボケだな
>>153
>普通の文字列とかだと苦労するような課題で、タプルを使ったところこんなに
>すっきり作れました、とかやるのがタプルの紹介の教育的価値としていいものだと

横からスマソが
そういう例を教えてくれ
private_ipmap = {ip: ipmap[ip] for ip in ipmap if ip[:2] == (192, 168)}
みたいな感じか?まぁIPだったらsplit('.')でもすればいいだけだからなぁ。
複数の引数を取る関数のメモ化とかに使えるか。
IPv6 になったら困るんじゃね?
でタプルはこういうところに使えって良い例早く教えてよ
お前らいつもでかい口叩いているんだからそんなの簡単だよねw
出たよ風紀委員が
何かが気に入らないだけで
本当は知りたくないんだろ?
>>161
>>159の例。引数のタプルをキーにする辞書を使ったメモ化。サンプルはたらい回し関数。
def memoize(func):
 results = {}
  def decorated(*args):
   x = tuple(args)
   if x not in results:
    results[x] = func(*x)
   return results[x]
 return decorated

@memoize
def tak(x, y, z):
 if x <= y:
  return y
 return tak(tak(x - 1, y, z), tak(y - 1, z, x), tak(z - 1, x, y))
別に辞書のキーに使う分にはいいけどさ(ほんとはそれもあまり感心しないけど),
IPアドレスというすべての数値に厳密な値を要求されるデータに対して丸め誤差の
影響が及ぶおそれのあるdouble値を使うのってどうよ、という話なんだが
そういやPerlにもRubyにもタプル無いよな
大して意味の無いいらない子機能なのかもしれん
Lisp の cons は要素 2 個に固定のタプルだし、Haskell とかにもあるし、
意味がないわけじゃない。
167ninja!:2012/04/08(日) 09:41:59.94
Pythonはかなり気に入っているが、タプルは全く使ったことは無い。
リストが高機能すぎてほかはあまり使う気が起きない。

因みに、プログラムは2月ごろから始めた初心者です。
Pythonのタプルは、多重代入や多値リターン、可変長引数等色々なところで
現れるんで、使ってないつもりで実は使ってるんじゃないかな

初心者のうちは、イミュータブル(なタプル)はミュータブル(なリスト)の
機能限定版に見えるかもしれないが、ある程度経験をつめば、
変更が不要なケースならイミュータブルなオブジェクトのほうが安全性や効率面から
好ましいことがわかってくるはず

主にJava方面のデザインパターン用語ではValue Objectという用語があるけれども
Pythonでも考え方は参考にできると思う
>>164
釣れますか?
>>167
2月頃から始めたとの事ですが、
使った参考書と現在どのようにPythonを活用しているか教えて下さい。

ぜひ参考にしたいです。