[表示 : 全て 最新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 ]
議論よろしく。

231 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 22:14:35 ]
んだから、__fooだの__bar__だのの意味、あんたの言うメタルールは、
教わらなきゃわからんだろ
@と何の違いがあるんだ?

232 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 22:28:05 ]
>>225
>_と@が同じとか言う奴はヤバい

激しく同意。まったく意味不明。

233 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 23:10:33 ]
>>221
メジャーな言語に似せるつもりならインデントなんてやらねーよ。

234 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 23:25:43 ]
#!/bin/env ruby
def class Hage
  fuga = 2

  def hoge
    fuga = 1
  end

  def hige
    p fuga
  end
end

h = Hage
h.hige
f = Hage
f.hoge
f.hige


235 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 23:41:06 ]
Ruby って色んな所で躓くよな
まったく初心者向けじゃない

236 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 23:48:42 ]
RubyのことはRubyのスレでやっとくれ

237 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 15:08:57 ]
しばらくぶりに来てみたらスレが伸びてるw

238 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 19:47:32 ]
>>231
こういうやつは、マニュアルとかは読まないで全て始めるのか?
分かんないもの出てくりゃ調べればいいじゃん。
自分が最初にPythonの__やRubyの@に馴染めませんでしたって、
過去の恥を晒してるだけじゃん。

239 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:09:43 ]
バカがいるとスレが伸びる(wwwww
バカが居なくなったからスレが沈静化した(wwwwwwwwwwwwwwwwwwwwwwww



240 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:36:44 ]
延ばすな馬鹿


241 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:57:38 ]
止まっちゃった・・・

242 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:09:47 ]
本当に止まっちゃったね。

インデントについての話じゃなく、selfの是非とか話題がそれると盛り上がるところを見ると、
Pythonのインデントによる制御構造って言うほど悪くないんじゃない?どっかの専門家が
言った意見を素人がそのまま自分の意見として言っているようにしか感じないね。


243 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:42:40 ]
慣れの問題でしかないからな
要は構造が示せればいいだけなわけだし
括弧でもインデントでもフローチャートでも

インデント使うと括弧の対応を自動でチェックしたりしてくれない
素のエディタでもさほど問題にならない、程度の事じゃないかな

244 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 06:12:37 ]
実際 Python 使ってみると
インデント崩れで起こるトラブルよりも
それ以外の原因でいっぱいトラブルからなぁ


245 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 08:13:34 ]
>>244
ウンウン、頭が悪いといろいろ大変だよね。

246 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 09:28:34 ]
一番トラブルのはcopy忘れだな

247 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 01:06:30 ]
悪くはないけど良いとも思わないってのが正直なところ
実際にはどうでもいい

248 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 01:17:37 ]
インデントは全然苦にならないんだけど式と文が区別されてて
代入したものをすぐ次の用途に使うときとかに面倒なのが気になる


249 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 09:29:59 ]
>>248
>代入したものをすぐ次の用途に使うときとか

そんなuglyなコードを書く人とは一緒に仕事したくありませんね。



250 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 09:50:37 ]
一度代入したら十年は寝かさないとね

251 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 10:03:28 ]
そうじゃなくてさ。
たとえば、代入と評価は分けて書いた方がいいよね。

252 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 10:18:16 ]
おめーの次のセリフはこうだ
「ワンライナーを侮辱するなJOJO」

253 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:37:47 ]
ワンライナーを侮辱するなJOJO!・・・ハッ!

254 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 10:05:16 ]
どうも。インデントは、どうせ言われなくてもやるから、それほどは
違和感を感じてない初心者です。

でも文法的にインデントをブロックの識別に利用しているのなら、
IF 文の末尾に : (コロン) を付けなくても、次の行がインデントして
るならブロック開始なんだから : はいらない子なんじゃないの?
……という疑問が拭えません。

どうして : があるのか、どなたかすっきりさせてください。

255 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 10:11:15 ]
if condition == True: break;

みたいな書き方をしたい場合はある。こういう場合はコロンがないと超不便。

256 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 10:29:49 ]
でもそれは : じゃなくて ; でも同じだからな
次の行に回した時にも省略できない理由にはならないし

257 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 11:43:00 ]
必要か必要でないかだけを言えば必要ない。

でもこの二元論は、
forいらねwhileだけでいいだろとか、
他の言語いらね真のプログラミング言語Lispが既にあるとか(w
そういうたぐいのものに近い。

コロンが使われている理由を探すとすれば、
ABC言語の影響を受けているというのと、ある方が見やすいだろっていう辺りになる。
ttp://mail.python.org/pipermail/python-list/2000-December/063055.html


258 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:07:17 ]
コロンが付いている理由はエディッタのオートインデントの実装が楽だからだと Guido がどっかで言ってた記憶が

259 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:07:39 ]
if の : はなんとか納得できるんだけど
else の : はなくてもいいような気がする



260 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:15:38 ]
あーその話で思い出したけど、
forにelse使えるなんて、最初何かの間違いかと思ったよ

261 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:20:26 ]
>>257
>forいらねwhileだけでいいだろとか、
>他の言語いらね真のプログラミング言語Lispが既にあるとか(w

小さい悩みだなw
そんな事言われて気にしてるなよ…

262 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:23:27 ]
>>260
forとかwhileを抜けたあとで
全部の要素ループして抜けたのか
途中で中断して抜けたのか
知りたいときって結構あるんだよね
Pythonは痒いところに手が届きますな


263 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 01:18:44 ]
>>262
>Pythonは痒いところに手が届きますな

細かいところまで練られている感じがするよね。
Pythonの良いところだと思う。

264 名前:254 mailto:sage [2007/12/05(水) 09:43:14 ]
>>255
そういう書き方が出来なくても、Python 的には困らない気がします。

>>257
良いポインタの紹介ありがとうございます。やはり冗長だと思ってる
人はいるのですね。

それにしても、キータイプ数を減らすのではなく、冗長性を減らすの
でもなく、見易さを求めるのが Pythonic ってことなんだと受け取って
よいのでしょうか。

Python を触り始めて、面白いとは思っていますが、そのコンセプトが
まだ掴めなくて……ちょっともどかしいカンジの初心者です。

265 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 11:10:26 ]
悟れ。

266 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 13:18:56 ]
import this

267 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 21:51:41 ]
かゆい所に手が届くくらい練られてるならswitchを作れ!
手が届く範囲だけ痒いって言ってるだけだろ自己満足だ!

268 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 22:10:29 ]
switchはelseifで大抵代用可能だが
elseifはswitchで代用不可能なケースが多い


269 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 22:45:56 ]
>>267
目の玉がかゆいのなら
目の玉を取り出さないと掻けないぞ(wwwwwwwww



270 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 22:49:44 ]
これか
ja.wikipedia.org/wiki/%E9%A0%AD%E7%97%9B


271 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 12:32:15 ]
:が見やすいかどうかはフォントによるな。
次はエディタのフォントも言語仕様になるのかな。

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 ]
かちゅーしゃ使ってると、全角インデントが一番読みやすいんだけど






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

前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