「Python試用録(10)」
%A0:「Python試用録(10)」
「WILDの処理系」作成のための「断片的備忘録」です.
/*背景色は(茶: 編集・確認中; 灰色: 確認済; 緑: 非慣用記法; 白色: 初期化済)*/
/*「緑」は定義行のみ(他ではシアン).「茶」の語句があるパラグラフは「IDも茶」*/
%A1:[@IT_27]/*「演算子のまとめ」*/
`▼
--------------------------------------------------------------------------------
(0)「In[1]:」
y = 'py' * 2 # 右辺の式「'py' * 2」を計算した結果である「'pypy'」が代入される
a, b = 2, 3 # 複数のターゲットへの代入
c, d, e, *f = [3, 4, 5] # 変数fの値はどうなる?
(1)参考資料
①https://www.atmarkit.co.jp/ait/articles/1907/23/news010.html
②https://docs.python.org/ja/3/reference/expressions.html
・この章と以降の章での拡張BNF (extended BNF) 表記は、字句解析規則ではなく、
構文規則を記述するために用いられています。
6.5. べき乗演算
左側にある単項演算子よりも強い結合優先順位となります。
一方、右側にある単項演算子よりは弱い結合優先順位になっています。
6.7. 二項算術演算
@ (at) 演算子は行列の乗算に対し使用されます。
/ (除算: division) および // (切り捨て除算: floor division) は、
引数同士の商を与えます。
% (剰余: modulo) 演算は、第一引数を第二引数で除算したときの剰余になる
6.15. 式のリスト
6.16. 評価順序
6.17. 演算子の優先順位
7.2. 代入文
7.2.1. 累算代入文
累算代入文は、二項演算と代入文を組み合わせて一つの文にしたものです:
(2)「(0)」の変数c、d、eには3つの要素が1つずつ代入されていく。
残った変数fには「空のリスト」が代入される。
これは関数の「可変長位置引数」と似た動作だと考えればよいだろう。/*「①」*/
(3)「W6」,「W7」の文字列は先頭文字が整数部,残りが小数部である実数
「W6」では 「'A' .SHIFT,. 3」=「'A' * 8」/*「'A'は 6 ビット」*/
「W7」では「'A' `.shift,. 3」=「'A' * 8」/*「'A'は 7 ビット」*/
①「'ABC' .shift,. 7」=「'BCD'」,「`cut, 'BCD'」=「'B'」
「WILDの処理系」作成のための「断片的備忘録」です.
/*背景色は(茶: 編集・確認中; 灰色: 確認済; 緑: 非慣用記法; 白色: 初期化済)*/
/*「緑」は定義行のみ(他ではシアン).「茶」の語句があるパラグラフは「IDも茶」*/
%A1:[@IT_27]/*「演算子のまとめ」*/
`▼
--------------------------------------------------------------------------------
(0)「In[1]:」
y = 'py' * 2 # 右辺の式「'py' * 2」を計算した結果である「'pypy'」が代入される
a, b = 2, 3 # 複数のターゲットへの代入
c, d, e, *f = [3, 4, 5] # 変数fの値はどうなる?
(1)参考資料
①https://www.atmarkit.co.jp/ait/articles/1907/23/news010.html
②https://docs.python.org/ja/3/reference/expressions.html
・この章と以降の章での拡張BNF (extended BNF) 表記は、字句解析規則ではなく、
構文規則を記述するために用いられています。
6.5. べき乗演算
左側にある単項演算子よりも強い結合優先順位となります。
一方、右側にある単項演算子よりは弱い結合優先順位になっています。
6.7. 二項算術演算
@ (at) 演算子は行列の乗算に対し使用されます。
/ (除算: division) および // (切り捨て除算: floor division) は、
引数同士の商を与えます。
% (剰余: modulo) 演算は、第一引数を第二引数で除算したときの剰余になる
6.15. 式のリスト
6.16. 評価順序
6.17. 演算子の優先順位
7.2. 代入文
7.2.1. 累算代入文
累算代入文は、二項演算と代入文を組み合わせて一つの文にしたものです:
(2)「(0)」の変数c、d、eには3つの要素が1つずつ代入されていく。
残った変数fには「空のリスト」が代入される。
これは関数の「可変長位置引数」と似た動作だと考えればよいだろう。/*「①」*/
(3)「W6」,「W7」の文字列は先頭文字が整数部,残りが小数部である実数
「W6」では 「'A' .SHIFT,. 3」=「'A' * 8」/*「'A'は 6 ビット」*/
「W7」では「'A' `.shift,. 3」=「'A' * 8」/*「'A'は 7 ビット」*/
①「'ABC' .shift,. 7」=「'BCD'」,「`cut, 'BCD'」=「'B'」
②「C言語」の「123%100」は「W7」では
「'100' * `cut, ( 123 / 100 )」=「'23'」
「'100' * `cut, ( 123 / 100 )」=「'23'」
①「'ABC' .shift,. 7」=「'BCD'」,「`cut, 'BCD'」=「'B'」
②「C言語」の「123%100」は「W7」では
「'100' * `cut, ( 123 / 100 )」=「'23'」
③「('A' < 'B') * ('B' < 'C') == 1」,('A' > 'B') + ('B' > 'C') == 0」
(4)「W6」では文字列「□」を「%[□]%」で表示/*「各文字は2桁の8進数」*/
「W7」では文字列「□」を「`{ □ `} 」で表示/*「各文字を ASCII で表示」*/
②「C言語」の「123%100」は「W7」では
「'100' * `cut, ( 123 / 100 )」=「'23'」
③「('A' < 'B') * ('B' < 'C') == 1」,('A' > 'B') + ('B' > 'C') == 0」
(4)「W6」では文字列「□」を「%[□]%」で表示/*「各文字は2桁の8進数」*/
「W7」では文字列「□」を「`{ □ `} 」で表示/*「各文字を ASCII で表示」*/
(5)「(3)③」 の「Spyder」の「実行結果」:
----------------------------------------
「In[4]]」/*「コンソール入力」*/
print('Hello,World')
print(1+1)
x = ('A'<'B')*('B'<'C')
y = ('A'>'B')+('B'>'C')
print(x)
print(y)
----------------------------------------
「In[4]:」/*「コンソール出力」*/
runfile('C:/Users/masa/.spyder-py3/temp.py', wdir='C:/Users/masa/.spyder-py3')
Hello,World
2
1
0
----------------------------------------
(6)「(5)」 の「画面のコピー★」:
★https://drive.google.com/file/d/1KQsYqKdwQ1tD-5BTOz9Kufod2aHOBSaA/view?usp=sharing
`▲----------------------------------------
「In[4]]」/*「コンソール入力」*/
print('Hello,World')
print(1+1)
x = ('A'<'B')*('B'<'C')
y = ('A'>'B')+('B'>'C')
print(x)
print(y)
----------------------------------------
「In[4]:」/*「コンソール出力」*/
runfile('C:/Users/masa/.spyder-py3/temp.py', wdir='C:/Users/masa/.spyder-py3')
Hello,World
2
1
0
----------------------------------------
(6)「(5)」 の「画面のコピー★」:
★https://drive.google.com/file/d/1KQsYqKdwQ1tD-5BTOz9Kufod2aHOBSaA/view?usp=sharing
--------------------------------------------------------------------------------
コメント
コメントを投稿