[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 05/09 21:04 / Filesize : 136 KB / Number-of Response : 655
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pythonに見られるインデントによる制御構造の是非



1 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:44:02 ]
議論よろしく。

272 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 12:42:02 ]
>>268
代用できるっちゃできるが、
if c == 1:
elif c == 2:
elif c == 3:
とかいうif〜elifの羅列は、switchのほうがずっと綺麗に書けるでしょ。
if〜elifだと、変数名を変えたら分岐の数だけ直さなければならなくなる。
「他で代用できるものは要らない」と言うのなら、Pythonは要らないものだらけだよ。

273 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 12:53:00 ]
Pythonっていろいろ理由付けてるけど、
最終的にはGuidoの好みだからなぁ。
まともに反論してると馬鹿を見る

274 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 13:47:59 ]
>>272
それをswitchで書き換えてずっと綺麗になった!と言うのはセンスを疑う

275 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 13:48:20 ]
>>271
>次はエディタのフォントも言語仕様になるのかな。

なるわけないだろバカじゃね???(wwwwwwwwwwwwwwwwww

276 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 14:07:44 ]
>>272
> 変数名を変えたら

そういう状況は、分岐の形式以前の問題になると思う

277 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 16:10:05 ]
>>273
ソースが公開されているんだし、作者の意向に反してこうした方が良いと思える点があるんなら、自分で改良すればいいんじゃないかな?


278 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 22:58:53 ]
>>277
それならPythonベースにする必要はないんじゃないかな?
十分ストレスがない言語が別にあればそれを使えばいいんじゃないかな?

279 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 23:06:48 ]
>>274
まぁ結局センスの問題だわな

280 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 23:08:23 ]
たいてい
if c == 1:
elif c >= 2 and c <= 8:
elif c == 9:
みたいな使い方することの方が多いからなぁ
rubyのswitchはそれが出来るけど




281 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 23:24:01 ]
>>273
>Pythonっていろいろ理由付けてるけど、
>最終的にはGuidoの好みだからなぁ。

Guidoの理由付けに反論できるくらいなら、
Pythonを越える言語をデザインできるセンスがあるってことだと思う。

せいぜいがんばって。

282 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:10:50 ]
それくらいは割と誰でも出来そうだな。
その後のモチベーションをキープするのが一番面倒なんだよ。

283 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:23:39 ]
安奈お前の愛の火はまだ燃えているかい

284 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 01:04:58 ]
>>280
それがswitchでできてもswitchの意味ないわな。


285 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 04:14:01 ]
if c == 1:
elif c == 2:
elif c == 3:

これってかなりダサいプログラムだよ
普通は関数テーブル作ってcでdispatchだろ


286 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 08:06:57 ]
エディタのマクロに「行末セミコロンの後はアウトデント」という俺ルールを仕込んでみた

287 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 08:53:31 ]
じゃあpassのあとに(ry

288 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 09:33:09 ]
じゃあオレは
セミコロンキーに改行+アウトデントを割り当てときますね


289 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 10:09:41 ]
>>282
>それくらいは割と誰でも出来そうだな。

がんばって俺言語作れよ。
言いっぱなしは と て も 恥ずかしいぞ(www

290 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 12:08:50 ]
>>289
恥ずかしいのはお前だよ。本当に丸出しだな。
そんなの大抵のプログラマなら一度は通る道だぜ。



291 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 12:21:53 ]
というか、俺言語を作った事が無いプログラマってそんなに多いのか?

292 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 12:43:08 ]
俺言語を作っても、多くの人に受け入れられるものは少ないんじゃない?それができるのならRubyやPythonの開発者のように、それで食っていけるだろうし。
まぁ、できなくてもプログラマとして食ってるヤツは嫌というほど見てきたし、そんなムキになるほどのことでもないような気がするんだけど。ボクはできない方だな (自爆)


293 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 12:56:52 ]
> それで食っていけるだろうし

えっ、他の仕事もしてるんじゃないの?

294 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 13:13:43 ]
ぼくちんはただいまヒキコモリちうなんですが、
ぱいそんをべんきょうしているので
いずれはGoogleにはいって、
いちねんくらいでいっしょうつかいきれないくらいのおカネをかせぐつもりでいます!!!
こんなぼくちんをおうえんしてくださいね!!!!!!

295 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 14:05:11 ]
> えっ、他の仕事もしてるんじゃないの?
「それで食っていける」と「それだけで食っていける」は意味が違うと思います。

296 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 16:20:46 ]
Pythonに文句あるなら俺言語作れw

297 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 16:30:32 ]
>>292
この流れでは多くの人に受け入れられるかどうかは話してないだろう。
ユーザ多い=良いとか言ってる奴はPerlあたりの真似しまくって結果Perl以下になって
売りは日本製だけ〜みたいなもん平気でつくりそうだ

あとユーザ数で語るならRubyじゃなくてPerlを出さないとお里が知れちゃうゾ懿」

298 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 18:32:33 ]
俺言語の話になってることがアホすぎwww

299 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 19:29:16 ]
>>295
この場合は、
「それで食っていける」=「それで食えるだけの収入がある」=「それだけで食っていける」
じゃないか?

300 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 21:33:16 ]
switch文でbreak無しのcaseで制御が下に落ちていくようなのは
どうやってelseifで書くの?どうせそんな糞プログラム書くなとか
言って正当化されるのがオチだろうけど!



301 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 21:34:21 ]
>>293

「それだけで食っていける」!=「その仕事しかしていない」
じゃないかな?


302 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 22:21:28 ]
>>300

if hoge == 1:
  HOGE
elif hoge == 2:
  FUGA
elif hoge == 3 OR hoge == 2:
  if shine:
    SHINE
  else:
    IKIRO
else:
ORZ


303 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 22:29:45 ]
>>300

if case1:
 CASE1
if case2:
 CASE2
if case3:
 CASE3
...

ということじゃなくて?


304 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 23:31:44 ]
>300
結局その記法ってバグなのか意図なのかが
分かりにくくなることが多いし
できるようにするメリットが少ないって判断じゃなかったか?

305 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 23:34:17 ]
>>303
いや、いちいち break で脱出するコードにしないと次の case もそのまま
実行される仕様の糞言語があるんだ

306 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 01:15:59 ]
>>300はアレだが>>302もちょっとどうかと思うのは俺だけではないはずだ

307 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 01:30:55 ]
>>302
それで納得できるのかお前は

308 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 03:02:42 ]
やっぱRubyだな

309 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 03:36:02 ]
このタイミングでこういうコメントを入れるから、「こういう書き方もできます」というシンタックスシュガーに踊らされてばかりで
きちんとしたドキュメントも書けない上に、生産性がないのが日本のRubyユーザだと思われるんじゃないかな?


310 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 08:39:02 ]
Rubyはソースがドキュントだからってことになってるからなぁ
生産性も糞もないよなぁ



311 名前:デフォルトの名無しさん [2007/12/08(土) 09:40:24 ]
趣味で作ったプログラムを
1年以上経ってからも
保守する気になる言語

ソレがPythonだっただけだ

312 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 10:05:22 ]
どの言語で書いても保守する気になるけど?

313 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 10:12:35 ]
俺はドMなのでRubyで小汚く書いたソースコードでも泣きながら保守するぜ!

314 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 10:25:27 ]
今まで見た中でこれは酷いと思ったのがZopeなんだが・・・・

315 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 11:23:17 ]
>>310
Rubyの生産性がないと言っているんじゃない。日本のRubyユーザの生産性がないと言っている。


316 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 11:42:59 ]
python厨って困るとruby叩きに走るよな。
それも必ず「糞」とか「汚い」とかの言葉が入る。

317 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 12:42:48 ]
>>316
自惚れるなよ

318 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 13:14:09 ]
Rubyの話題はどうでもよくね?

319 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:13:59 ]
そろそろインデントの話に戻ろうぜ

320 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:32:22 ]
ム板でインデントのないコードを書き込む奴はDQN

それと、全角インデントにする野郎は氏んでいいよ^^




321 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:34:49 ]
>>320
そういう話だっけw

322 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:35:52 ]
それは、行頭の空白文字列を nbsp に変更するプログラムを
Python と Ruby と Haskell で書いて比較するというお題と
考えてよろしいかな?

↓じゃあ、まず Python から

323 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 15:46:07 ]
しーん。。。

324 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 15:54:58 ]
s/^[ ]*/&nbsp;/g

325 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:39:31 ]
話しそれるけど、これって行頭だけでなく全部やっちゃってOKじゃね?

326 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:43:54 ]
>>324
TAB は良いんだっけ?

327 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:53:37 ]
>>326
その前にスペース4個でも8個でも1個の になるって問題点が>>324にはあるぞ

328 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:53:52 ]
お楽しみ中のところ申し訳ないが
ソースを追試する側としては迷惑だからやめてくれ
半角空白でも画面に出ないだけでデータは残ってるから
こぴぺするだけで直るんだが
&nbsp;にされると復元操作が必要になる
復元プログラムをセットで提示してもらわにゃ

329 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 18:06:47 ]
ほえ?

330 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 21:20:23 ]
>>328のコピペ環境

&lt; → <
&gt; → >
&amp; → &
&nbsp; → &nbsp; (←何故か変換されない)




331 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 03:06:42 ]
かちゅーしゃ使ってると、全角インデントが一番読みやすいんだけど

332 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 03:08:12 ]
>>324は[ ]*が0回以上の繰り返しだから結論としてインデント消えてないか?
あと、キャレット付いてるからgオプション意味ない

333 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 03:09:39 ]
>>332
いろいろ間違ってる

334 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 03:22:36 ]
>>271
3.0でバッククオートがなくなる理由は`フォントによっては見づらいから`らしい

335 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 03:35:15 ]
>>334
フォント、マジだったのかwwww
確かにそこは見にくいことがあるw

336 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 03:46:38 ]
>>333
うちの環境のsedで試したところ、インデント消えて一律行頭&nbsp;になったけど?
ただし&をエスケープする必要があったけど

337 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 03:52:26 ]
>>336
sed知らんがな。
結果うp。

338 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 12:28:44 ]
>>332,336
すまん。酔っぱらって勘違いしてた。

339 名前:デフォルトの名無しさん [2007/12/24(月) 01:15:37 ]
self 論議乗り遅れた('A`)

Pythonじゃなくて失礼。
Delphi だと、Selfはかけるけど、with Hoge do 内くらいしか使わないんだよね。

Pythonみたいに、宣言が必要ない言語だと、Self相当は必須なんだね。
よくわかった。

とはいえ、Self必須は面倒だな。
スクリプト言語なのに字数が明らかに多くなる・・・。(perlみたいなのも勘弁だが)
わかりやすい点がいいけどさ・・・


:のつけ時は、いっつも、忘れてわからなくなる。

340 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 01:31:57 ]
>>3
($#9737◇$#9737)



341 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 01:32:44 ]
$#9737;

342 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 08:54:54 ]
selfやな奴は普通に s とか _ とか使えば良いと思う。
とくに、人が書き足したりするようなコードでなければ、好き勝手書けば良いと思う。

343 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 22:37:26 ]
>>342
それじゃあインデントでわざわざ記法を強制するような
Pythonの思想に反するんじゃね??なんでもいいなら
そもそもインデントだっていらなくね?

344 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 22:39:38 ]
凄い論理だ

345 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 23:08:44 ]
>>339
何か勘違いしてるような…。

使う使わないは兎も角、大概のOOPLにおいて
self や this みたいな「自身」を参照するものは
何らかの形で存在してる。

Pythonの場合の self 議論は
「メソッドの仮引数に self を明示的に書かなければならない」
ってところじゃないかと。

346 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 23:12:56 ]
だから "書けば" それでいいじゃん



.... 終了

347 名前:デフォルトの名無しさん [2007/12/25(火) 01:21:10 ]
WindowsAPI
hoge(hWnd, xxx);
fuga(hWnd, yyy);


348 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 01:45:19 ]
それはハンドル
そしてAPIは言語じゃない

349 名前:デフォルトの名無しさん [2007/12/25(火) 04:45:10 ]
WindowsAPIは、C言語レベルのAPIだからな。
ハンドル≒OOPのインスタンス=self という解釈なら正しいが、
そうすると、Python が、C言語レ(ry

350 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 05:50:23 ]
タイトル:Pythonに見られるインデントによる制御構造の是非
【糞スレランク:D】
直接的な誹謗中傷:0/349 (0.00%)
間接的な誹謗中傷:19/349 (5.44%)
卑猥な表現:2/349 (0.57%)
差別的表現:16/349 (4.58%)
無駄な改行:0/349 (0.00%)
巨大なAAなど:16/349 (4.58%)
同一文章の反復:1/349 (0.29%)
by 糞スレチェッカー Ver1.12 kabu.tm.land.to/kuso/kuso.cgi?ver=112

Dって微妙だな・・



351 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 10:38:10 ]
巨大なAAなど:16/349 (4.58%) ってソースコード貼り付けが誤判定されてる気がする

352 名前:デフォルトの名無しさん [2007/12/25(火) 22:01:58 ]
タイトル:Pythonのお勉強 Part22
【糞スレランク:E】
直接的な誹謗中傷:0/488 (0.00%)
間接的な誹謗中傷:11/488 (2.25%)
卑猥な表現:8/488 (1.64%)
差別的表現:1/488 (0.20%)
無駄な改行:0/488 (0.00%)
巨大なAAなど:6/488 (1.23%)
同一文章の反復:2/488 (0.41%)
by 糞スレチェッカー Ver1.12 kabu.tm.land.to/kuso/kuso.cgi?ver=112

353 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 22:07:42 ]
>>352
またひとつ糞レスをつけおって・・・

354 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 22:28:04 ]
if hoge == fuga:
HOGE
else:
FUGA

if hoge == fuga: HOGE
else: FUGA

if hoge == fuga:
HOGE
elsif hoge == hemi:
FUGA
else:
HEMI

if hoge == fuga: HOGE
elsif hoge == hemi: FUGA
else: HEMI


355 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 02:28:13 ]
結局インデントでブロック指定するのは
たいして利点は無くて欠点が大きいでOK?

356 名前:デフォルトの名無しさん [2007/12/27(木) 06:10:08 ]
欠点が無くて利点が大きい

357 名前:デフォルトの名無しさん [2007/12/27(木) 06:44:11 ]
ONE WORD, FORCED INDENTATION OF THE CODE, THREAD OVER!!!!!!!!!!!!!!!!!!!

358 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 09:11:04 ]
インデントはともかくとして
pythonで書くとコードが綺麗になるのが好き


359 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 21:12:06 ]
言語仕様に頼らないときれいなコードを書けないおとこの人って・・・

360 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 23:23:04 ]
そうだね。Perl使いはみんな綺麗なコードを書くよね。



361 名前:デフォルトの名無しさん [2007/12/28(金) 03:39:25 ]
インデント否定派の人はエディターで自動ディデントできないからって言うのが主な理由?

362 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 09:38:20 ]
ディデントって何?
ポリデントみたいな物か?

363 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 09:47:07 ]
インデントの逆

364 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 10:53:19 ]
アウトデント?

オフデント
バックデント
モドリデント


365 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 10:57:03 ]
デデンドモリ

366 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 14:44:59 ]
マジレスするとアンインデントだろ

367 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 14:59:26 ]
>>359
誰が書いてもある程度読みやすくなるようにできているのだよ。つまり、書き手よりも読み手を
重視しているんじゃねぇの? (でも、インデントの階層が深くなると、書いていて分かりづらく
なってくる。それも狙いかもしれんが。)

368 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 16:13:28 ]
>でも、インデントの階層が深くなると、

それは他の言語でも基本的には同じ問題で
そうなったら大抵は何か考え直すべきとされてるでそ

369 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 16:37:37 ]
Pythonもいろいろ工夫してるけど
へぼが書くとやっぱり読みにくい

370 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 19:38:58 ]
>>367
そんなに強制したいなら変数の命名規則も強制しろ。
そして変数の名前から型が決まるようにすればいい。



371 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 20:59:40 ]
つまり「ネストの深さ」にも「暗黙の制限」が
かかっているような言語仕様なんですね。
いくらでも深くネストできるけど、やりすぎちゃダメ!という…

372 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 21:00:27 ]
つシステムハンガリアン






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<136KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef