Pythonに見られるイン ..
237:デフォルトの名無しさん
07/11/25 15:08:57
しばらくぶりに来てみたらスレが伸びてるw
238:デフォルトの名無しさん
07/11/25 19:47:32
>>231
こういうやつは、マニュアルとかは読まないで全て始めるのか?
分かんないもの出てくりゃ調べればいいじゃん。
自分が最初にPythonの__やRubyの@に馴染めませんでしたって、
過去の恥を晒してるだけじゃん。
239:デフォルトの名無しさん
07/11/25 20:09:43
バカがいるとスレが伸びる(wwwww
バカが居なくなったからスレが沈静化した(wwwwwwwwwwwwwwwwwwwwwwww
240:デフォルトの名無しさん
07/11/25 22:36:44
延ばすな馬鹿
241:デフォルトの名無しさん
07/11/29 23:57:38
止まっちゃった・・・
242:デフォルトの名無しさん
07/12/01 00:09:47
本当に止まっちゃったね。
インデントについての話じゃなく、selfの是非とか話題がそれると盛り上がるところを見ると、
Pythonのインデントによる制御構造って言うほど悪くないんじゃない?どっかの専門家が
言った意見を素人がそのまま自分の意見として言っているようにしか感じないね。
243:デフォルトの名無しさん
07/12/01 00:42:40
慣れの問題でしかないからな
要は構造が示せればいいだけなわけだし
括弧でもインデントでもフローチャートでも
インデント使うと括弧の対応を自動でチェックしたりしてくれない
素のエディタでもさほど問題にならない、程度の事じゃないかな
244:デフォルトの名無しさん
07/12/01 06:12:37
実際 Python 使ってみると
インデント崩れで起こるトラブルよりも
それ以外の原因でいっぱいトラブルからなぁ
245:デフォルトの名無しさん
07/12/01 08:13:34
>>244
ウンウン、頭が悪いといろいろ大変だよね。
246:デフォルトの名無しさん
07/12/01 09:28:34
一番トラブルのはcopy忘れだな
247:デフォルトの名無しさん
07/12/02 01:06:30
悪くはないけど良いとも思わないってのが正直なところ
実際にはどうでもいい
248:デフォルトの名無しさん
07/12/02 01:17:37
インデントは全然苦にならないんだけど式と文が区別されてて
代入したものをすぐ次の用途に使うときとかに面倒なのが気になる
249:デフォルトの名無しさん
07/12/02 09:29:59
>>248
>代入したものをすぐ次の用途に使うときとか
そんなuglyなコードを書く人とは一緒に仕事したくありませんね。
250:デフォルトの名無しさん
07/12/02 09:50:37
一度代入したら十年は寝かさないとね
251:デフォルトの名無しさん
07/12/02 10:03:28
そうじゃなくてさ。
たとえば、代入と評価は分けて書いた方がいいよね。
252:デフォルトの名無しさん
07/12/02 10:18:16
おめーの次のセリフはこうだ
「ワンライナーを侮辱するなJOJO」
253:デフォルトの名無しさん
07/12/03 23:37:47
ワンライナーを侮辱するなJOJO!・・・ハッ!
254:デフォルトの名無しさん
07/12/04 10:05:16
どうも。インデントは、どうせ言われなくてもやるから、それほどは
違和感を感じてない初心者です。
でも文法的にインデントをブロックの識別に利用しているのなら、
IF 文の末尾に : (コロン) を付けなくても、次の行がインデントして
るならブロック開始なんだから : はいらない子なんじゃないの?
……という疑問が拭えません。
どうして : があるのか、どなたかすっきりさせてください。
255:デフォルトの名無しさん
07/12/04 10:11:15
if condition == True: break;
みたいな書き方をしたい場合はある。こういう場合はコロンがないと超不便。
256:デフォルトの名無しさん
07/12/04 10:29:49
でもそれは : じゃなくて ; でも同じだからな
次の行に回した時にも省略できない理由にはならないし
257:デフォルトの名無しさん
07/12/04 11:43:00
必要か必要でないかだけを言えば必要ない。
でもこの二元論は、
forいらねwhileだけでいいだろとか、
他の言語いらね真のプログラミング言語Lispが既にあるとか(w
そういうたぐいのものに近い。
コロンが使われている理由を探すとすれば、
ABC言語の影響を受けているというのと、ある方が見やすいだろっていう辺りになる。
URLリンク(mail.python.org)
258:デフォルトの名無しさん
07/12/04 21:07:17
コロンが付いている理由はエディッタのオートインデントの実装が楽だからだと Guido がどっかで言ってた記憶が
259:デフォルトの名無しさん
07/12/04 21:07:39
if の : はなんとか納得できるんだけど
else の : はなくてもいいような気がする
260:デフォルトの名無しさん
07/12/04 21:15:38
あーその話で思い出したけど、
forにelse使えるなんて、最初何かの間違いかと思ったよ
261:デフォルトの名無しさん
07/12/04 21:20:26
>>257
>forいらねwhileだけでいいだろとか、
>他の言語いらね真のプログラミング言語Lispが既にあるとか(w
小さい悩みだなw
そんな事言われて気にしてるなよ…
262:デフォルトの名無しさん
07/12/04 21:23:27
>>260
forとかwhileを抜けたあとで
全部の要素ループして抜けたのか
途中で中断して抜けたのか
知りたいときって結構あるんだよね
Pythonは痒いところに手が届きますな
263:デフォルトの名無しさん
07/12/05 01:18:44
>>262
>Pythonは痒いところに手が届きますな
細かいところまで練られている感じがするよね。
Pythonの良いところだと思う。
264:254
07/12/05 09:43:14
>>255
そういう書き方が出来なくても、Python 的には困らない気がします。
>>257
良いポインタの紹介ありがとうございます。やはり冗長だと思ってる
人はいるのですね。
それにしても、キータイプ数を減らすのではなく、冗長性を減らすの
でもなく、見易さを求めるのが Pythonic ってことなんだと受け取って
よいのでしょうか。
Python を触り始めて、面白いとは思っていますが、そのコンセプトが
まだ掴めなくて……ちょっともどかしいカンジの初心者です。
265:デフォルトの名無しさん
07/12/05 11:10:26
悟れ。
266:デフォルトの名無しさん
07/12/05 13:18:56
import this
267:デフォルトの名無しさん
07/12/05 21:51:41
かゆい所に手が届くくらい練られてるならswitchを作れ!
手が届く範囲だけ痒いって言ってるだけだろ自己満足だ!
268:デフォルトの名無しさん
07/12/05 22:10:29
switchはelseifで大抵代用可能だが
elseifはswitchで代用不可能なケースが多い
269:デフォルトの名無しさん
07/12/05 22:45:56
>>267
目の玉がかゆいのなら
目の玉を取り出さないと掻けないぞ(wwwwwwwww
270:デフォルトの名無しさん
07/12/05 22:49:44
これか
Wikipedia項目リンク
271:デフォルトの名無しさん
07/12/06 12:32:15
:が見やすいかどうかはフォントによるな。
次はエディタのフォントも言語仕様になるのかな。
272:デフォルトの名無しさん
07/12/06 12:42:02
>>268
代用できるっちゃできるが、
if c == 1:
elif c == 2:
elif c == 3:
とかいうif〜elifの羅列は、switchのほうがずっと綺麗に書けるでしょ。
if〜elifだと、変数名を変えたら分岐の数だけ直さなければならなくなる。
「他で代用できるものは要らない」と言うのなら、Pythonは要らないものだらけだよ。
273:デフォルトの名無しさん
07/12/06 12:53:00
Pythonっていろいろ理由付けてるけど、
最終的にはGuidoの好みだからなぁ。
まともに反論してると馬鹿を見る
274:デフォルトの名無しさん
07/12/06 13:47:59
>>272
それをswitchで書き換えてずっと綺麗になった!と言うのはセンスを疑う
275:デフォルトの名無しさん
07/12/06 13:48:20
>>271
>次はエディタのフォントも言語仕様になるのかな。
なるわけないだろバカじゃね???(wwwwwwwwwwwwwwwwww
276:デフォルトの名無しさん
07/12/06 14:07:44
>>272
> 変数名を変えたら
そういう状況は、分岐の形式以前の問題になると思う
277:デフォルトの名無しさん
07/12/06 16:10:05
>>273
ソースが公開されているんだし、作者の意向に反してこうした方が良いと思える点があるんなら、自分で改良すればいいんじゃないかな?
278:デフォルトの名無しさん
07/12/06 22:58:53
>>277
それならPythonベースにする必要はないんじゃないかな?
十分ストレスがない言語が別にあればそれを使えばいいんじゃないかな?
279:デフォルトの名無しさん
07/12/06 23:06:48
>>274
まぁ結局センスの問題だわな
280:デフォルトの名無しさん
07/12/06 23:08:23
たいてい
if c == 1:
elif c >= 2 and c <= 8:
elif c == 9:
みたいな使い方することの方が多いからなぁ
rubyのswitchはそれが出来るけど
281:デフォルトの名無しさん
07/12/06 23:24:01
>>273
>Pythonっていろいろ理由付けてるけど、
>最終的にはGuidoの好みだからなぁ。
Guidoの理由付けに反論できるくらいなら、
Pythonを越える言語をデザインできるセンスがあるってことだと思う。
せいぜいがんばって。
282:デフォルトの名無しさん
07/12/07 00:10:50
それくらいは割と誰でも出来そうだな。
その後のモチベーションをキープするのが一番面倒なんだよ。
283:デフォルトの名無しさん
07/12/07 00:23:39
安奈お前の愛の火はまだ燃えているかい
284:デフォルトの名無しさん
07/12/07 01:04:58
>>280
それがswitchでできてもswitchの意味ないわな。
285:デフォルトの名無しさん
07/12/07 04:14:01
if c == 1:
elif c == 2:
elif c == 3:
これってかなりダサいプログラムだよ
普通は関数テーブル作ってcでdispatchだろ
286:デフォルトの名無しさん
07/12/07 08:06:57
エディタのマクロに「行末セミコロンの後はアウトデント」という俺ルールを仕込んでみた
287:デフォルトの名無しさん
07/12/07 08:53:31
じゃあpassのあとに(ry
288:デフォルトの名無しさん
07/12/07 09:33:09
じゃあオレは
セミコロンキーに改行+アウトデントを割り当てときますね
289:デフォルトの名無しさん
07/12/07 10:09:41
>>282
>それくらいは割と誰でも出来そうだな。
がんばって俺言語作れよ。
言いっぱなしは と て も 恥ずかしいぞ(www
290:デフォルトの名無しさん
07/12/07 12:08:50
>>289
恥ずかしいのはお前だよ。本当に丸出しだな。
そんなの大抵のプログラマなら一度は通る道だぜ。
291:デフォルトの名無しさん
07/12/07 12:21:53
というか、俺言語を作った事が無いプログラマってそんなに多いのか?
292:デフォルトの名無しさん
07/12/07 12:43:08
俺言語を作っても、多くの人に受け入れられるものは少ないんじゃない?それができるのならRubyやPythonの開発者のように、それで食っていけるだろうし。
まぁ、できなくてもプログラマとして食ってるヤツは嫌というほど見てきたし、そんなムキになるほどのことでもないような気がするんだけど。ボクはできない方だな (自爆)
293:デフォルトの名無しさん
07/12/07 12:56:52
> それで食っていけるだろうし
えっ、他の仕事もしてるんじゃないの?
294:デフォルトの名無しさん
07/12/07 13:13:43
ぼくちんはただいまヒキコモリちうなんですが、
ぱいそんをべんきょうしているので
いずれはGoogleにはいって、
いちねんくらいでいっしょうつかいきれないくらいのおカネをかせぐつもりでいます!!!
こんなぼくちんをおうえんしてくださいね!!!!!!
295:デフォルトの名無しさん
07/12/07 14:05:11
> えっ、他の仕事もしてるんじゃないの?
「それで食っていける」と「それだけで食っていける」は意味が違うと思います。
296:デフォルトの名無しさん
07/12/07 16:20:46
Pythonに文句あるなら俺言語作れw
297:デフォルトの名無しさん
07/12/07 16:30:32
>>292
この流れでは多くの人に受け入れられるかどうかは話してないだろう。
ユーザ多い=良いとか言ってる奴はPerlあたりの真似しまくって結果Perl以下になって
売りは日本製だけ〜みたいなもん平気でつくりそうだ
あとユーザ数で語るならRubyじゃなくてPerlを出さないとお里が知れちゃうゾ懿」
298:デフォルトの名無しさん
07/12/07 18:32:33
俺言語の話になってることがアホすぎwww
299:デフォルトの名無しさん
07/12/07 19:29:16
>>295
この場合は、
「それで食っていける」=「それで食えるだけの収入がある」=「それだけで食っていける」
じゃないか?
300:デフォルトの名無しさん
07/12/07 21:33:16
switch文でbreak無しのcaseで制御が下に落ちていくようなのは
どうやってelseifで書くの?どうせそんな糞プログラム書くなとか
言って正当化されるのがオチだろうけど!
301:デフォルトの名無しさん
07/12/07 21:34:21
>>293
「それだけで食っていける」!=「その仕事しかしていない」
じゃないかな?
302:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/07 22:29:45
>>300
if case1:
CASE1
if case2:
CASE2
if case3:
CASE3
...
ということじゃなくて?
304:デフォルトの名無しさん
07/12/07 23:31:44
>300
結局その記法ってバグなのか意図なのかが
分かりにくくなることが多いし
できるようにするメリットが少ないって判断じゃなかったか?
305:デフォルトの名無しさん
07/12/07 23:34:17
>>303
いや、いちいち break で脱出するコードにしないと次の case もそのまま
実行される仕様の糞言語があるんだ
306:デフォルトの名無しさん
07/12/08 01:15:59
>>300はアレだが>>302もちょっとどうかと思うのは俺だけではないはずだ
307:デフォルトの名無しさん
07/12/08 01:30:55
>>302
それで納得できるのかお前は
308:デフォルトの名無しさん
07/12/08 03:02:42
やっぱRubyだな
309:デフォルトの名無しさん
07/12/08 03:36:02
このタイミングでこういうコメントを入れるから、「こういう書き方もできます」というシンタックスシュガーに踊らされてばかりで
きちんとしたドキュメントも書けない上に、生産性がないのが日本のRubyユーザだと思われるんじゃないかな?
310:デフォルトの名無しさん
07/12/08 08:39:02
Rubyはソースがドキュントだからってことになってるからなぁ
生産性も糞もないよなぁ
311:デフォルトの名無しさん
07/12/08 09:40:24
趣味で作ったプログラムを
1年以上経ってからも
保守する気になる言語
ソレがPythonだっただけだ
312:デフォルトの名無しさん
07/12/08 10:05:22
どの言語で書いても保守する気になるけど?
313:デフォルトの名無しさん
07/12/08 10:12:35
俺はドMなのでRubyで小汚く書いたソースコードでも泣きながら保守するぜ!
314:デフォルトの名無しさん
07/12/08 10:25:27
今まで見た中でこれは酷いと思ったのがZopeなんだが・・・・
315:デフォルトの名無しさん
07/12/08 11:23:17
>>310
Rubyの生産性がないと言っているんじゃない。日本のRubyユーザの生産性がないと言っている。
316:デフォルトの名無しさん
07/12/08 11:42:59
python厨って困るとruby叩きに走るよな。
それも必ず「糞」とか「汚い」とかの言葉が入る。
317:デフォルトの名無しさん
07/12/08 12:42:48
>>316
自惚れるなよ
318:デフォルトの名無しさん
07/12/08 13:14:09
Rubyの話題はどうでもよくね?
319:デフォルトの名無しさん
07/12/08 14:13:59
そろそろインデントの話に戻ろうぜ
320:デフォルトの名無しさん
07/12/08 14:32:22
ム板でインデントのないコードを書き込む奴はDQN
それと、全角インデントにする野郎は氏んでいいよ^^
321:デフォルトの名無しさん
07/12/08 14:34:49
>>320
そういう話だっけw
322:デフォルトの名無しさん
07/12/08 14:35:52
それは、行頭の空白文字列を nbsp に変更するプログラムを
Python と Ruby と Haskell で書いて比較するというお題と
考えてよろしいかな?
↓じゃあ、まず Python から
323:デフォルトの名無しさん
07/12/08 15:46:07
しーん。。。
324:デフォルトの名無しさん
07/12/08 15:54:58
s/^[ ]*/ /g
325:デフォルトの名無しさん
07/12/08 16:39:31
話しそれるけど、これって行頭だけでなく全部やっちゃってOKじゃね?
326:デフォルトの名無しさん
07/12/08 16:43:54
>>324
TAB は良いんだっけ?
327:デフォルトの名無しさん
07/12/08 16:53:37
>>326
その前にスペース4個でも8個でも1個の になるって問題点が>>324にはあるぞ
328:デフォルトの名無しさん
07/12/08 16:53:52
お楽しみ中のところ申し訳ないが
ソースを追試する側としては迷惑だからやめてくれ
半角空白でも画面に出ないだけでデータは残ってるから
こぴぺするだけで直るんだが
にされると復元操作が必要になる
復元プログラムをセットで提示してもらわにゃ
329:デフォルトの名無しさん
07/12/08 18:06:47
ほえ?
330:デフォルトの名無しさん
07/12/08 21:20:23
>>328のコピペ環境
< → <
> → >
& → &
→ (←何故か変換されない)
331:デフォルトの名無しさん
07/12/09 03:06:42
かちゅーしゃ使ってると、全角インデントが一番読みやすいんだけど
332:デフォルトの名無しさん
07/12/09 03:08:12
>>324は[ ]*が0回以上の繰り返しだから結論としてインデント消えてないか?
あと、キャレット付いてるからgオプション意味ない
333:デフォルトの名無しさん
07/12/09 03:09:39
>>332
いろいろ間違ってる
334:デフォルトの名無しさん
07/12/09 03:22:36
>>271
3.0でバッククオートがなくなる理由は`フォントによっては見づらいから`らしい
335:デフォルトの名無しさん
07/12/09 03:35:15
>>334
フォント、マジだったのかwwww
確かにそこは見にくいことがあるw
336:デフォルトの名無しさん
07/12/09 03:46:38
>>333
うちの環境のsedで試したところ、インデント消えて一律行頭&nbsp;になったけど?
ただし&をエスケープする必要があったけど
337:デフォルトの名無しさん
07/12/09 03:52:26
>>336
sed知らんがな。
結果うp。
338:デフォルトの名無しさん
07/12/09 12:28:44
>>332,336
すまん。酔っぱらって勘違いしてた。
339:デフォルトの名無しさん
07/12/24 01:15:37
self 論議乗り遅れた('A`)
Pythonじゃなくて失礼。
Delphi だと、Selfはかけるけど、with Hoge do 内くらいしか使わないんだよね。
Pythonみたいに、宣言が必要ない言語だと、Self相当は必須なんだね。
よくわかった。
とはいえ、Self必須は面倒だな。
スクリプト言語なのに字数が明らかに多くなる・・・。(perlみたいなのも勘弁だが)
わかりやすい点がいいけどさ・・・
:のつけ時は、いっつも、忘れてわからなくなる。
340:デフォルトの名無しさん
07/12/24 01:31:57
>>3
($#9737◇$#9737)
341:デフォルトの名無しさん
07/12/24 01:32:44
$#9737;
342:デフォルトの名無しさん
07/12/24 08:54:54
selfやな奴は普通に s とか _ とか使えば良いと思う。
とくに、人が書き足したりするようなコードでなければ、好き勝手書けば良いと思う。
343:デフォルトの名無しさん
07/12/24 22:37:26
>>342
それじゃあインデントでわざわざ記法を強制するような
Pythonの思想に反するんじゃね??なんでもいいなら
そもそもインデントだっていらなくね?
344:デフォルトの名無しさん
07/12/24 22:39:38
凄い論理だ
345:デフォルトの名無しさん
07/12/24 23:08:44
>>339
何か勘違いしてるような…。
使う使わないは兎も角、大概のOOPLにおいて
self や this みたいな「自身」を参照するものは
何らかの形で存在してる。
Pythonの場合の self 議論は
「メソッドの仮引数に self を明示的に書かなければならない」
ってところじゃないかと。
346:デフォルトの名無しさん
07/12/24 23:12:56
だから "書けば" それでいいじゃん
.... 終了
347:デフォルトの名無しさん
07/12/25 01:21:10
WindowsAPI
hoge(hWnd, xxx);
fuga(hWnd, yyy);
348:デフォルトの名無しさん
07/12/25 01:45:19
それはハンドル
そしてAPIは言語じゃない
349:デフォルトの名無しさん
07/12/25 04:45:10
WindowsAPIは、C言語レベルのAPIだからな。
ハンドル≒OOPのインスタンス=self という解釈なら正しいが、
そうすると、Python が、C言語レ(ry
350:デフォルトの名無しさん
07/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 URLリンク(kabu.tm.land.to)
Dって微妙だな・・
351:デフォルトの名無しさん
07/12/25 10:38:10
巨大なAAなど:16/349 (4.58%) ってソースコード貼り付けが誤判定されてる気がする
352:デフォルトの名無しさん
07/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 URLリンク(kabu.tm.land.to)
353:デフォルトの名無しさん
07/12/25 22:07:42
>>352
またひとつ糞レスをつけおって・・・
354:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/27 02:28:13
結局インデントでブロック指定するのは
たいして利点は無くて欠点が大きいでOK?
356:デフォルトの名無しさん
07/12/27 06:10:08
欠点が無くて利点が大きい
357:デフォルトの名無しさん
07/12/27 06:44:11
ONE WORD, FORCED INDENTATION OF THE CODE, THREAD OVER!!!!!!!!!!!!!!!!!!!
358:デフォルトの名無しさん
07/12/27 09:11:04
インデントはともかくとして
pythonで書くとコードが綺麗になるのが好き
359:デフォルトの名無しさん
07/12/27 21:12:06
言語仕様に頼らないときれいなコードを書けないおとこの人って・・・
360:デフォルトの名無しさん
07/12/27 23:23:04
そうだね。Perl使いはみんな綺麗なコードを書くよね。
361:デフォルトの名無しさん
07/12/28 03:39:25
インデント否定派の人はエディターで自動ディデントできないからって言うのが主な理由?
362:デフォルトの名無しさん
07/12/28 09:38:20
ディデントって何?
ポリデントみたいな物か?
363:デフォルトの名無しさん
07/12/28 09:47:07
インデントの逆
364:デフォルトの名無しさん
07/12/28 10:53:19
アウトデント?
オフデント
バックデント
モドリデント
365:デフォルトの名無しさん
07/12/28 10:57:03
デデンドモリ
366:デフォルトの名無しさん
07/12/28 14:44:59
マジレスするとアンインデントだろ
367:デフォルトの名無しさん
07/12/28 14:59:26
>>359
誰が書いてもある程度読みやすくなるようにできているのだよ。つまり、書き手よりも読み手を
重視しているんじゃねぇの? (でも、インデントの階層が深くなると、書いていて分かりづらく
なってくる。それも狙いかもしれんが。)
368:デフォルトの名無しさん
07/12/28 16:13:28
>でも、インデントの階層が深くなると、
それは他の言語でも基本的には同じ問題で
そうなったら大抵は何か考え直すべきとされてるでそ
369:デフォルトの名無しさん
07/12/28 16:37:37
Pythonもいろいろ工夫してるけど
へぼが書くとやっぱり読みにくい
370:デフォルトの名無しさん
07/12/28 19:38:58
>>367
そんなに強制したいなら変数の命名規則も強制しろ。
そして変数の名前から型が決まるようにすればいい。
371:デフォルトの名無しさん
07/12/28 20:59:40
つまり「ネストの深さ」にも「暗黙の制限」が
かかっているような言語仕様なんですね。
いくらでも深くネストできるけど、やりすぎちゃダメ!という…
372:デフォルトの名無しさん
07/12/28 21:00:27
つシステムハンガリアン
373:デフォルトの名無しさん
07/12/28 21:31:40
>>362>>364>>366
URLリンク(www.python.jp)
この説明ではdedentと言ってる
374:デフォルトの名無しさん
07/12/28 21:50:46
ついでに関数とかメソッドとかブロックの中の行数も制限しようぜ。
5行以内に。
375:デフォルトの名無しさん
07/12/28 22:27:39
「強制すんな!おれは空白を何個入れるかで自己表現してんだ!」って思うか
「これでアホのゴミネストに付き合わなくてすむぜ」って思うかで
プログラマとしての何かが問われるだろう
376:デフォルトの名無しさん
07/12/28 22:45:40
>>370
そんなの強制しなくても命名規則を決めればいいだけ
従わないヤツはチームから除外すれば済むし
それくらいできないヤツはどうせダメなヤツだから
むしろ除外した方がチームのため
377:デフォルトの名無しさん
07/12/28 23:06:19
>>376
だよな。インデントだってコーディングルールを強制すればよいだけで
従わないやつは排除すればいい。インデントを言語仕様で強制する必用
全然ねえよな。Pythonのインデントに関する理屈は屁理屈
378:デフォルトの名無しさん
07/12/28 23:10:52
>>377
>インデントだってコーディングルールを強制すればよいだけで
そうそう。
インデントを廃止するかわりに,ブラケットやendみたいなキーワードを導入すればいいだけの話だよね。
簡単簡単。
379:デフォルトの名無しさん
07/12/29 01:18:06
ブラケットやendみたいなキーワードを強制されるのは嫌だな
380:デフォルトの名無しさん
07/12/29 01:28:23
Ruby書いてるときに
def range(start, end)
..
って書けないのはちょっといやだな
381:デフォルトの名無しさん
07/12/29 01:30:05
ブラケットがキーワードなのか
382:デフォルトの名無しさん
07/12/29 01:50:36
>>375
どちらもアホプログラマにしか思えない
383:デフォルトの名無しさん
07/12/29 02:12:48
自分たちがちゃんとインデントされてるコードを書いてるかどうかという話と
言語仕様としてインデントでブロックをあらわすということは何の関係も無いわけだけど
>>377と>>378は何を言ってるんだ?完璧に意味不明
384:デフォルトの名無しさん
07/12/29 07:19:11
378は皮肉だろ。多分
385:デフォルトの名無しさん
07/12/29 09:31:12
・378を皮肉だと分からないヤツ
・「キーワード」が「ブラケット」と「end」にかかっていると思っちゃうヤツ
どっちもPythonistaとして失格。
Monty Pythonでも見ながら基本からやり直した方がいい。
386:デフォルトの名無しさん
07/12/29 10:32:26
>>379
Python でもかけませんがあにか
387:デフォルトの名無しさん
07/12/29 10:38:33
>>385
別にPythonistaとやらになりたくはないがな
静的スコープのない言語なんて願い下げ
388:デフォルトの名無しさん
07/12/29 10:53:07
Pythonは思いっきり静的スコープを採用した言語だが…
389:デフォルトの名無しさん
07/12/29 14:06:52
まぁ378は皮肉としてはどうかと思うが
390:デフォルトの名無しさん
07/12/29 14:12:36
そんなこといったら、>>383のもわかってる煽りだろw
391:デフォルトの名無しさん
07/12/29 14:43:48
>>383に食いつくのはプライドが許さない
392:デフォルトの名無しさん
07/12/29 20:17:51
>>386
これできみはしやわせになれると思うよ。
end = 1
393:デフォルトの名無しさん
07/12/29 20:22:38
389=391はおれげんごをつくった。
でもだれもつかわなかった。
394:デフォルトの名無しさん
07/12/30 00:28:21
そうですか
395:デフォルトの名無しさん
07/12/31 12:26:33
そうです
396:デフォルトの名無しさん
08/01/01 07:34:26
おめでとうございます
397:デフォルトの名無しさん
08/01/04 23:16:45
end があると、endだけの行が大量に発生するのが、コードが間延びしてる感じがしてダサい
pythonの方がエディタで眺めたときに、均等に情報が並んでる感じがして気持ちいい
398:デフォルトの名無しさん
08/01/05 04:29:54
Pythonだとここまでで、インデント終わりってのが明確にわからないのだが、
その辺、どうやってみわけるの?
399:デフォルトの名無しさん
08/01/05 07:25:06
>>398
次の命令のインデントでわかる。
インタラクティブモードの場合は空行を入れることでも可。
400:デフォルトの名無しさん
08/01/05 16:34:08
>>399
やっぱそうか・・・
エディタとかブラウザで、どこまでスクロールすればいいんだろとか不安になるもんで
401:デフォルトの名無しさん
08/01/05 18:18:36
why?
kwsk
402:デフォルトの名無しさん
08/01/05 18:50:31
要するに「ブロック終了」に相当する単語なり文字が目に見えないから不安な気がするってことじゃないか?
自分もpythonはじめたかなり最初の方はそういう感覚があったような気がする
403:デフォルトの名無しさん
08/01/05 20:41:45
こういうコードに遭遇すると殺意沸くよね
def ふにゃふにゃ
ぴっぽろ
ぱっぽろ
# 以下不要なのでコメントアウト
# ぷんぱか
# ほにゃらら
(20行続く)
# 2008/1/5 追加しました。
return "こんなところにこんなものが!”
404:デフォルトの名無しさん
08/01/05 20:51:11
それはPythonに限らないだろ
String ふにゃふにゃ() {
ぴっぽろ;
ぱっぽろ;
// 以下不要なのでコメントアウト
// ぷんぱか;
// ほにゃらら;
(20行続く)
// 2008/1/5 追加しました。
return "こんなところにこんなものが!";
}
405:デフォルトの名無しさん
08/01/05 21:30:30
いや、ちがうんだけど、
なんだかとても眠いので寝る。
続きは夢の中で議論しましょう。
406:デフォルトの名無しさん
08/01/05 22:26:02
じゃ、そうしましょう。
おやすみなさい。
407:デフォルトの名無しさん
08/01/06 00:00:56
俺も夢の中で、まってます
408:デフォルトの名無しさん
08/01/06 01:05:14
じゃあ俺はニシキヘビを持って行くね。
409:デフォルトの名無しさん
08/01/06 13:23:26
なんで来なかったんだよ!
410:デフォルトの名無しさん
08/01/06 13:30:56
ごめん、熟睡しちゃった。テヘ
411:デフォルトの名無しさん
08/01/06 15:01:51
寝て起きたらやり合うのめんどくさくなった
412:デフォルトの名無しさん
08/01/06 17:03:06
Pythonの場合、ブロックを跨いだ場所にカット&ペーストしたら
必ず自分でインデント調整せないかんの?
自動整形とか出来なさそう…まぁ、そういう機能ないエディタだと普段やってることだけどさ
413:デフォルトの名無しさん
08/01/06 18:28:56
ブロックを跨いでるなら自動整形出来るだろ
414:デフォルトの名無しさん
08/01/06 19:24:27
インデント調整ってめんどくさくないんだよ!
415:デフォルトの名無しさん
08/01/06 19:30:36
>>412
>Pythonの場合、ブロックを跨いだ場所にカット&ペーストしたら
>必ず自分でインデント調整せないかんの?
そういう場合、ブロックを関数とかメソッドとかに出来るし
何の関係も無い
カット&ペーストしたら大抵は何か考え直すべき
へぼが書くとやっぱり読みにくい
416:デフォルトの名無しさん
08/01/07 08:15:19
考え直して関数・メソッドにする時にカット&ペーストしない?
417:実際に書いたことあれば疑問に思わないんだけどね
08/01/07 10:42:03
ブロックごとペースとしたらそのブロック全体の
インデントをちょちょいと直せばいいだけ
直すインデントの量は先頭を見れば自明
何か疑問でも?
418:デフォルトの名無しさん
08/01/07 10:49:10
dakara sorega mendou datte hanasi dattandaro
419:デフォルトの名無しさん
08/01/07 10:51:54
ペーストした時点で正しいコードになってるのと
ペースト後インデント直さないと正しいコードにならないのとの違いの話だな
420:デフォルトの名無しさん
08/01/07 10:58:26
めんどうじゃないよ
421:デフォルトの名無しさん
08/01/07 11:41:19
めんどうだよ
422:デフォルトの名無しさん
08/01/07 12:27:11
めんどうじゃよ
423:デフォルトの名無しさん
08/01/07 12:31:50
めんどうでござる
424:デフォルトの名無しさん
08/01/07 12:32:58
めんどうだったら
425:デフォルトの名無しさん
08/01/07 13:18:51
めんどうなんだからねっ
426:デフォルトの名無しさん
08/01/07 13:20:16
カッコで照合する言語の場合は尻尾のカッコの数を間違えて
整合性がとれなくなったりコードがおかしくなったりするわけだけど
その際の確認の手間がペーストよりも後ろ側に来てるだけ
面倒もへったくれもないし議論になってねーっつーの
427:デフォルトの名無しさん
08/01/07 13:28:32
カッコの数を間違えたらSyntax Erorrだと思うが
428:デフォルトの名無しさん
08/01/07 15:23:17
Pythonもブロックのインデントレベルが違うと構文エラー
大らかなのはアセンブラぐらいかな
429:デフォルトの名無しさん
08/01/07 15:43:28
何言ってんの?
430:デフォルトの名無しさん
08/01/07 17:19:08
Python でインデントレベルが変わるのは : の次と
戻す時だけだから他言語での括弧の不整合と同じく
エラーが出るね
431:デフォルトの名無しさん
08/01/07 17:48:15
よく考えろよ。
432:デフォルトの名無しさん
08/01/07 18:23:20
お金は大事だぞ
433:デフォルトの名無しさん
08/01/07 18:53:07
あふぉらっく
434:デフォルトの名無しさん
08/01/07 21:00:00
python 書いたことある人間がうだうだ言うのはともかく
全く書いたり試したりしないで
脳内でイチャモン生成されても的外れだってことさ
435:デフォルトの名無しさん
08/01/07 22:00:38
ていうかエラーが出ない人為的なミスに関して話をしてたのに
なんで「エラーが出る状況ではエラーがでるから同じだなんて」
って話になってるの?
436:デフォルトの名無しさん
08/01/07 23:38:37
ネタスレ状態も悪くないと思う俺がいる
437:デフォルトの名無しさん
08/01/08 12:45:19
>435 が思っているのもネタに過ぎないしな
438:デフォルトの名無しさん
08/01/08 15:08:03
そりゃエラーが出ない人為的状況はインデントの有る無しと関係ないから
つまりスレタイ読めという事
439:デフォルトの名無しさん
08/01/08 16:43:39
だからその時のミスを防ぐ手だてとかリカバリーの方法だよ。
カッコとかendとかある言語の方がいろいろ手を打てる。
たいていは自動フォーマッタが視覚的にミスに気づかせてくれる。
インデントとブロックを両方プログラマの手にあずけちゃうと、
プログラマがミスしたときの保険が無くなる。
440:デフォルトの名無しさん
08/01/08 21:11:44
括弧やendの辻褄で自動フォーマッタが気づかせるレベルのエラーなら
Python でもインデントのレベルの辻褄が合わないから同様に気づくと思うが
441:デフォルトの名無しさん
08/01/08 21:17:25
>>440
書き出すインデントのレベルを勘違するのがミスだろ。
既に勘違いしてるのにどうやって辻褄が合わないことに気づくんだよ。
442:デフォルトの名無しさん
08/01/08 22:30:42
if hige:
fuga
fuga
pass
443:デフォルトの名無しさん
08/01/08 22:32:58
んな奴にぬるい気持ちでコピペさせない、が正しい
444:デフォルトの名無しさん
08/01/08 22:50:15
じゃあ熱く「俺にコピペさせてくれ!オゥイェー!ベイベー!」って言われたらどうするんだよ。
445:デフォルトの名無しさん
08/01/08 23:07:35
コードをコピペすんなよキチガイ
446:デフォルトの名無しさん
08/01/08 23:28:17
じゃぁカットアンドペーストにするよ
447:デフォルトの名無しさん
08/01/08 23:54:46
>>446
天才
448:デフォルトの名無しさん
08/01/09 10:28:47
じゃ俺はコードの代わりにコンセントを使うよ
449:デフォルトの名無しさん
08/01/09 19:09:42
【審議中】
_,,..,,,,_ _,,..,,,,_
_,,..,,,_/ ・ω・ヽ/・ω・ ヽ,..,,,,_
./ ・ω_,,..,,,,_ l _,,..,,,,_/ω・ ヽ
| / ・ヽ /・ ヽ l
`'ー--l ll l---‐´
`'ー---‐´`'ー---‐´
450:デフォルトの名無しさん
08/01/15 16:56:52
まずは言語仕様の問題と開発環境の問題を区別しよう。
話はそれからだ。
451:デフォルトの名無しさん
08/01/15 22:41:42
そんなことより449の審議がいつ終わるかのほうが問題だ
452:デフォルトの名無しさん
08/01/15 22:49:01
CM明けなんじゃない?
453:デフォルトの名無しさん
08/01/26 00:00:07
Python 勉強中のヘタレです。
私も昔の >>402 さんのように終了記号が無いのが不安です。
気が緩んでインデントを間違えてしまう
うっかり者は使うな!という言語なんでしょうか…?
前に Python でコード書いてたら、
急に好きなおにゃのこから電話が来て
電話の後インデントしきってないのを忘れて悩みました。
おにゃのこよりインデントを大事にしろ!
おしゃべりしててもインデントを忘れるな!って言語なんでしょうか。
コードを見ていると綺麗だとは思うのですが、
書くときは正しくヘビのように絡み付いて
縛り付けられる感じがして辛いです。
皆さんインデントのミスなんてしないんでしょうか?
ネタじゃなくてホントに。
454:デフォルトの名無しさん
08/01/26 03:26:47
>453
俺は他の言語の出身だが、他でもインデントはキッチリ書くよ。
経験上、そうでないと自分がミスリードするし
インデントをキッチリ書くことは「当たり前のことを当たり前にやってるだけ」と思ってる。
欠点としては、自動整形が効かないってことかな。
場合によってはこれだけが痛い。
455:453
08/01/26 04:14:51
私も普段からインデントはキッチリ書く、
というか書いてないと気がすまないのですが
コードを移動したり、差分をマージする時にドキドキしてしまいます。
マージとか他の言語だと、
ひとまずペーストしてインデント揃えて、ってできるんですが
Python だとペースト〜揃える間を一息でやらないと怖くて緊張します。
456:デフォルトの名無しさん
08/01/26 11:29:03
まずアペンドしてからちまちま直せば良いんじゃないだろうか
% cat code01.py >> code00.py
% vi code00.py
457:デフォルトの名無しさん
08/01/27 13:40:14
#{
#}
というインデントのヒントをコードに埋め込めばいいんだよ。
なんという逆転の発想・・・
458:デフォルトの名無しさん
08/01/28 16:35:23
pass でブロック終端を表すのはかったるいとおもったけど、
...(Ellipsis)なら、それほど悪くないかなと思った・・・
459:デフォルトの名無しさん
08/01/28 22:43:30
> pass でブロック終端を表す
そんなことしたっけ?
もしかして、空ブロックの代わりにpassって書くのと勘違いしてる?
460:デフォルトの名無しさん
08/01/28 23:22:31
目印としてってことじゃねーの
461:デフォルトの名無しさん
08/01/29 00:10:41
emacs だと pass の行の次はインデントが強制的に1つ引っ込むんだよ
他のエディタはどうなってるか知らんが
462:デフォルトの名無しさん
08/01/29 06:10:34
それはEmacs特有のサービス(?)だと思うぞ
463:デフォルトの名無しさん
08/01/29 08:46:39
マクロがあればどんなエディタでもできそうな気がする
464:デフォルトの名無しさん
08/01/29 16:19:17
面白い仕掛けだね、pass でインデント終了って
465:デフォルトの名無しさん
08/01/30 03:26:02
do - end
: - pass
文字数は変わらないね
466:デフォルトの名無しさん
08/01/30 03:48:01
pass って書くなら、4回バックスペース押したほうがいいと思う。
つうか、ブロック毎にいちいち pass pass 書いてる python コードなんて
誰も読む気しない
467:デフォルトの名無しさん
08/01/30 07:49:50
passなんて空ブロック以外で見たことないぜ
468:デフォルトの名無しさん
08/01/30 09:47:35
>>467
>>461
設定次第でバックスペースは1回にできそうだな
469:デフォルトの名無しさん
08/01/30 09:54:52
pass じゃなくて1って書けば?
470:デフォルトの名無しさん
08/01/30 15:17:47
>>466
そうじゃなくて、自動整形するためのtipsの話じゃなかったのか?
471:デフォルトの名無しさん
08/01/30 17:50:00
個人的な感想だけど、自動整形なんてほとんど使う機会がないな。
そもそも他のソースからのコピペをする機会が少ない。その必要があるときも
ブロックを指定してインデントなりデデント(IDLE なら Ctrl-[ と Ctrl-])すれば一瞬で済むし。
ぶっちゃけ、453さんみたいに苦痛を感じる人がいるのが不思議。
経験的に言って、Python のコーディングをきちんとサポートしてくれるツールを使えば
インデントに起因する問題は何も起こらないよ。あとは慣れの問題。
472:471
08/01/30 17:55:50
ふと、インデントに過剰反応する人は考えすぎなのかなーとオモタ。
Python のインデントって自転車みたい。
乗れないうちはバランスとか転んだら痛いとかいろいろ考えちゃうけど、それって無駄。
乗れるようになったら意識しなくても快適に乗りこなせるようになる。
473:デフォルトの名無しさん
08/01/30 18:01:49
いや、だから、
いきなり }<改行> を入力すれば、勝手にインデントを1段戻した位置にズレて
次の行ではそのまま書き続けられる位置にカーソルが移るような環境に生きていると、
いちいちインデントを調整しながらコードを書くことが苦痛だと。
そういうことじゃないかと思うわけだけど。
書くコードの種類にもよるとは思うけど。
474:デフォルトの名無しさん
08/01/30 18:14:51
ブレースだろうがインデントだろうがブロックの把握は行わなきゃいけないものだと思うんだが
475:デフォルトの名無しさん
08/01/30 19:43:40
} 入れるのと Backspace 押すのとじゃ手間に大差ない気がするが
476:デフォルトの名無しさん
08/01/30 19:52:09
勝手に動かされるのキライ
477:デフォルトの名無しさん
08/01/30 20:41:12
他人のソース見るときが一番不安
478:471
08/01/30 21:23:09
>>473
> 勝手にインデントを1段戻した位置にズレて
> 次の行ではそのまま書き続けられる位置にカーソルが移るような環境
すくなくとも IDLE や Emacs の Python モードはそういう環境だよ。
if foo is True: [Enter]
で1段インデントされるし
return [Enter]
で1段デデントされる。return, break, continue, pass 等で終わらないブロックの場合は
Backspace の入力が必要だけど、475さんの言うとおり、C 等で } の入力が必要なのと同じ。
そういえば Emacs の C モードで複数行にわたるマクロを書いてて行末の \ が
あるのとないのとで自動インデントの振舞いが変わって難儀するのを思い出した。
あとで \ をつけてそろえようと思ってても、自動インデントで思わぬ位置までカーソルが飛んでいく。
まあ善し悪しだね。万能じゃない。
479:デフォルトの名無しさん
08/01/30 22:18:18
インデントでブロックをあらわすと、最小コストで構造を表現できる。
記号でブロックをあらわすと、プログラマの意図の通りの構造になっているか
ダブルチェックすることができる。
480:デフォルトの名無しさん
08/01/30 22:23:52
記号でブロックをあらわすと、
見た目と意図が激しく乖離するものが出来上がる現実
481:デフォルトの名無しさん
08/01/30 23:32:28
なんで?
482:デフォルトの名無しさん
08/01/31 18:50:03
>480 は初心者にコード書かせた場合の話だろうな。
確かに、ブロックを正しく書く癖を付けさせるなら、こういう言語かも知れない。
483:デフォルトの名無しさん
08/01/31 20:48:36
インデントブロック無しで書きたいときもあるのだ。たとえば
if (hoge) break;
とか。
switch (var) {
case A: hoge(); break;
case B: huge(); break;
case C: huga(); break;
}
とか。
484:デフォルトの名無しさん
08/01/31 23:22:16
if hoge: break
ってあるよ
485:デフォルトの名無しさん
08/02/01 00:42:51
Python に switch はない。
if var==A:
hoge1()
else if var==B:
hoge2()
else if var==C:
hoge3()
もし A,B,C が 0, 1, 2 というふうに序数になっているなら
(hoge1, hoge2, hoge3)[var]()
だな
486:デフォルトの名無しさん
08/02/01 00:43:53
pythonのインデント構造って、エディタからインタプリタにコードをカットアンド
ペーストするとき、すごくやりにくいよね。
前に、プレゼンのビデオでデモをやってる人がいて、
先頭にスペースが入っちゃったりして、やりにくそうだった。
また、インデントの深いところの複数行をまとめてコピーするのは不可能だよね。
487:デフォルトの名無しさん
08/02/01 01:24:58
先頭に、if 1:
とか入れれば、好きな深さのコード実行できる
>>> if 1:
... print 1
... print 2
... print 4
...
1
2
4
488:デフォルトの名無しさん
08/02/01 06:41:17
if var==A:
hoge1(a+b)
else if var==B:
hoge2(c-d)
else if var==C:
hoge3(e/f)
もし A,B,C が 0, 1, 2 というふうに序数になっているなら
(hoge1, hoge2, hoge3)[var]((a+b, c-d, e/f)[var])
ということか
489:デフォルトの名無しさん
08/02/01 06:41:54
副作用ワロスw
490:デフォルトの名無しさん
08/02/01 09:41:51
俺だったらこうかなあ。
def case_A():
hoge1(a+b)
def case_B():
hoge2(c-d)
def case_C():
hoge3(e/f)
f = (case_A, case_B, case_C)[var]
f()
491:デフォルトの名無しさん
08/02/01 09:54:55
> また、インデントの深いところの複数行をまとめてコピーするのは不可能だよね
それはPythonじゃなくてエディタの機能の話だろ。
492:デフォルトの名無しさん
08/02/01 11:00:13
>> 491
> それはPythonじゃなくてエディタの機能の話だろ。
また、インデントの深いところの複数行をまとめて (エディタからインタプリタに)
コピーするのは不可能だよね、という話?
先頭に空白が入っていると、無理。
493:デフォルトの名無しさん
08/02/01 12:11:32
矩形選択できるエディタで先頭の空白をさければいいんじゃないの?
何を無理とか不可能とか言ってるのかよくわからん。
494:デフォルトの名無しさん
08/02/01 14:25:29
>487 でほとんどの人は困ってないと思うんだよね…
495:デフォルトの名無しさん
08/02/01 14:28:31
そんな石器時代的な方法で我慢しないと駄目なのか。
496:デフォルトの名無しさん
08/02/01 16:53:18
primitive な方法で解決できるのが一番いい
497:デフォルトの名無しさん
08/02/01 16:55:02
ところで、python に else if ってないんだけどさ・・・>>488
498:デフォルトの名無しさん
08/02/01 21:29:48
使ってるエディタによりけりかもな。
なんだかLispみたいだ。
499:デフォルトの名無しさん
08/02/01 21:34:17
>>485
うわあPython読みにくう・・・。
500:デフォルトの名無しさん
08/02/01 23:35:29
なんで行単位で範囲選択できるエディターを使わないんだろう
501:デフォルトの名無しさん
08/02/02 00:53:56
だいたいがだ、インデントに関連したバグで悩まされた経験が
オマエラあるのか。俺は18年のプログラム暦で一度もない。
502:デフォルトの名無しさん
08/02/02 01:01:47
>>501
確かに。俺も 20年位インデント関連のバグ書いて悩んだことはないな。
インデントが見栄えだけしか意味持つ言語使ってないから。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5387日前に更新/136 KB
担当:undef