「Python試用録(5)」

%5:「Python試用録(5)」
「WILDの処理系」作成のための「断片的備忘録」です.
/*背景色は(茶: 編集・確認中; 灰色: 確認済; 緑: 非慣用記法; 白色: 初期化済)*/
/*は定義行のみ.他ではシアン*/

%51:[@IT_10]/*「if文による条件分岐 (2/2)」*/`▼
--------------------------------------------------------------------------------
(0)In[1]:
  number = input('何か数値を入力してください: ')
  number = int(number)
  
  if number % 3 == 0:
      print('Fizz')
  elif number % 5 == 0:
      print('Buzz')
  elif number % 15 == 0:
      print('FizzBuzz')
  else:
      print(number)
(1)参考資料
 ①[Py_8.1]https://docs.python.org/ja/3/reference/compound_stmts.html#the-if-statement
 ②https://www.python-izm.com/basic/if/
https://www.atmarkit.co.jp/ait/articles/1905/07/news019_2.html
(2)「number == 15」とすると「Fizz」が表示される!/*「③」*/
(3)「④」では次のように修正されているが「C」等の「if文」とはかなり異なる
  この場合も、「条件1」から順にそれが成り立つかどうかが判断され、
  いずれかの条件が成立した時点で、その節のコードが実行され、
  if文の実行は終了する。
(4)「①」の説明も「④」と同様で
  if 文は、式を一つ一つ評価してゆき、真になるまで続けて、
  真になった節のスイートだけを選択します
  次に、選択したスイートを実行します
  (そして、 if 文の他の部分は、実行や評価をされません)。
  全ての式が偽になった場合、 else 節があれば、そのスイートが実行されます。
(5)他言語に慣れたプログラマには「elif」が非常に紛らわしい
 ①処理内容は「W6」の「;:」と同じ.
 /*「Wildly Imitated Langage with Danger of misunderstanding」*/
--------------------------------------------------------------------------------
`▲

%52:「W6」の「例9★」`▼
 ★https://drive.google.com/file/d/1191Ev62Uo9yha0w87Kl5A01DsVCP7e-x/view?usp=sharing
--------------------------------------------------------------------------------
%191:ソース9.W8
「$EX9.SAME,.DATA:(
   LET:(
    $&A.LIKE,.' 3';
    $&B.LIKE,.' 4';
    $&C.LIKE,.' 5';
    $A.$B.$C.$X.LIKE,.R7&;
    $P.$Q.LIKE,.A&;
    $SWAP(P;Q).SAME,.DO:(
     X.=R7&@P; R7&@P.=R7&@Q; R7&@P.=X
     )"[SWAP]"
    );
  DO:(
    IF:A<B..SWAP(A#; B#);
    IF:C<B..SWAP(B#; C#);
    X.=A*A+B*B-C*C   
    )"[データは生成しない]"
  IF:A+B>C..DATA:(
  IF:X<0" "..%[鋭角三角形]%
  IF:X=0" "..%[直角三角形]%
  IF:1"   "..%[鈍角三角形]% 
 ;:1"   "..%[  非三角形]%
  )
 」
 ①「SWAP(A#; B#)」:「,」は目立ち難いので「W6」では「;」を使う.
 ②「A」は変数の値(頂点の対辺の長さ),「A#」は変数のアドレス.
 ③字数削減のため「W6」の字下げは2文字./*「コンソール画面は8×64文字」*/
%192: 開き括弧があると行頭の深さを+1、閉じ括弧があると行頭の深さを-1する。
 ・行頭の深さを構文解析時に修正し、短縮コード 「DATA:(74;11;N; &)」の「N」に設定。
 ・解釈実行時に行頭の深さを調べることで、ブロックのスキップが容易になる。
%193: 字句解析時に予約トークンを(「;」でなく )「; 」と考えて、
 空白文字(スペース、タブ、 改行)は無視して中間コードを生成する。
 ①各トークンの末尾にスペースを付加して字句解析を容易にする./*「Pythonも」*/
--------------------------------------------------------------------------------
`▲


コメント

このブログの人気の投稿

「日記帳(2023 冬)」

ブログの教材で学ぶMATH(1)