こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Python の構文について

Pythonを学び始めたばかりのPython初心者です。
Pythonでは、

#!/usr/bin/env python
principal = 1000 # Initial amount
rate = 0.05 # Interest rate
numyears = 5 # Number of years
year = 1
while year <= numyears :
principal *= 1 + rate
print("%3d %0.2f" % (year, principal)); # Reminder: print(year, principal)in P3
year += 1

のような書き方をしますが、条件式をCみたいに()でくくったり、ブロック{}を使う方法は無いのでしょうか?
(式の最後に;をつける事は出来るのです。)
()や{}を使った方が見やすいので、出来れば()や{}を使いたいと思っています。
よろしくお願いします。

投稿日時 - 2010-12-03 11:18:54

QNo.6359797

暇なときに回答ください

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

インデントを使っていますか?
他の人がPythonで書いたものを見ても不満に思うなら、他の言語を使った方がよいと思います。
それか、他の言語風に書いて保存すると、それを監視して自動的にPythonの文法に反しないように変換するようなプログラムを作ってしまうというのはどうでしょうか。

投稿日時 - 2010-12-05 07:52:25

補足

>インデントを使っていますか?

無論です。(Pythonでは、loop bodyはインデンテーションによってのみ識別されるので。)
OKWaveでは、行頭の空白文字(タブやスペース等)は全て無視されて左側に詰められてしまうので、元のコードよりも、おそろしく見にくいコードになってしまいます。(何でワザと?こんな仕様にしているのか、分かりませんけど…)

>他の人がPythonで書いたものを見ても不満に思うなら、他の言語を使った方がよいと思います。

私は言語オタクではなく、Machine Learning関係の研究がやりたいと思っているのですが、その分野の英語の文献の多くがPythonを使っているので、Pythonを勉強せざるを得ない状況です。

投稿日時 - 2010-12-06 07:38:55

ANo.1

条件式を()で括るのは特に問題なくできるはずですけど。
while (year <= numyears):
のようにしてもエラーにはならないでしょう。
ブロック{}は無理ですね。コメント行で
# {
# }
のように書くことはできると思いますが。

投稿日時 - 2010-12-03 12:00:07

お礼

>while (year <= numyears):
>のようにしてもエラーにはならないでしょう。

出来ました!(何か打ち間違えてたらしいです。)
どうも有難うございました。

投稿日時 - 2010-12-03 12:53:42

あなたにオススメの質問