「Python」試用録(14)」
%E0:「Python」試用録(14)」/*「Extracted Paragraphs」*/
「OctalPython」作成のための断片的備忘録です.
/*背景色は(茶: 編集・確認中; 灰色: 確認済; 緑: 非慣用記法; 白色: 初期化済)*/
/*「緑」は定義行のみ(他ではシアン).「茶」の語句があるパラグラフは「IDも茶」*/
%E11:資料の参照/*「□で場所を明示」*/
`▼
--------------------------------------------------------------------------------
①[Lang_□]@https://docs.python.org/ja/3/reference/index.html
②[Lib_□]@https://docs.python.org/ja/3/library/index.html#library-index
③[Tutr_□]@https://docs.python.org/ja/3/tutorial/
④[Lib_]https://docs.python.org/ja/3/library/random.html
⑥https://ja.wikipedia.org/wiki/ASCII
--------------------------------------------------------------------------------
`▲例:/*【[Tutr_4.8]全文】*/
%E2:[Trial_□]のパラグラフに関するメモ
`▼
--------------------------------------------------------------------------------
(1)参考資料
①【[%292](3).[Trial_2]】/*「TinyPython」*/
・tinypyは64kのコードでのPythonの最小限の実装です
②【[%291](6).[Trial_2]】/*「OctalPython」*/
・「BabyPython」や「NanoPython」も既存だから「OctalPython」で回避.
③【[%26](6).[Trial_2]】
・これらの文字が文字列リテラルやコメントの外にある場合、無条件にエラーとなる
/*〔これらの文字「$」,「?」,「`」の対策が不可欠〕*/
④【[%51](6).[Trial_5]】@https://oshino3.blogspot.com/2020/05/python5_48.html
・他言語に慣れたプログラマには「elif」が非常に紛らわしい
/*「Wildly Imitated Langage with Danger of misunderstanding」*/
・【[%61](6).[Trial_6]】@https://oshino3.blogspot.com/2020/05/python6.html
・「loop文」は「while文」に対応するが「for文」で代替できる
⑥「W7」の予約トークン【[%121].[Trial_1]】 https://oshino3.blogspot.com/2020/05/python.html
(2)「④」の名前「number」を定義する「W6」の「$」は/*【[%E4](1)⑤】*/で補足
(3)「⑤」の「?」には/*【[%E4](5)】*/で補足
(4)「⑤」の「②」の式「num .= `$ - 1」の「`$」を使えないので「self」を使う.
②〔「W6」の予約語「PORT,.」には「RS-232★」,「GPIB★」等のミニ・コンピュータのソケット
★https://ja.wikipedia.org/wiki/RS-232
★https://ja.wikipedia.org/wiki/IEEE_488
/*「W7」なら「USB-C★」?*/
★https://en.wikipedia.org/wiki/USB-C〕
③ファイルには「load()」「save()」を使う
--------------------------------------------------------------------------------
`▲/*〔□〕*/は灰色
%E3:行番号の付加
`▼
--------------------------------------------------------------------------------
(1)参考資料
①PythonのIDLEで行番号を表示する方法
https://gammasoft.jp/blog/show-line-numbers-in-python-idle/
・Pythonに付属している開発環境の「IDLE」も、
Python本体のバージョンアップに伴い少しずつ進化しています。
・そして、待望の行番号表示機能がPython3.8で追加されました。
以下のようにエディタの左端に行番号を表示できます。
・ちなみに、Python3.7のSettings画面のGeneralタブには、
以下のように「Show line numbers in new windows」の項目がまだありません。
②テキストファイルの行頭に行番号を追加する方法の紹介
https://yukun.info/python-add-line-number-to-text-file/
・コマンドラインで指定されたテキストファイルの行頭に行番号を追加し、
そのデータを新たなファイルに書き出すスクリプトです。
(2)行頭ではなく次のようにしたい/*「'#'を行頭から56文字目に」*/
----------------------------------------
number = int(number) \t #001.1
#002.1
if number % 3 == 0: \t #003.1
print('Fizz') #004.2
elif number % 5 == 0: \t #005.1
print('Buzz') #006.2
elif number % 15 == 0: \t #007.1
print('FizzBuzz') \t #100.2
else: \t #101.1
print(number) \t #102.2
----------------------------------------
・「Nexus7」では「Courier」で「64字/行」は無理なので「48文字」に変更
/*「モバイル端末用にPy8Mを作る?」*/
③ファイルの全角スペースはすべて半角スペース2個と置換
④「OctalPython」のコンソール画面(2枚)は8×16文字
一方で表示し,他方をバックグラウンドで編集.
--------------------------------------------------------------------------------
`▲
%E4:使用不能文字対策
`▼
--------------------------------------------------------------------------------
(0)「$」,「?」,「`」の使い方の暫定案.
(1)参考資料
①【[%26](6).[Trial_2]】@https://oshino3.blogspot.com/2020/05/python_21.html
・これらの文字が文字列リテラルやコメントの外にある場合、無条件にエラーとなる
②【[%62].[Trial_6]】@https://oshino3.blogspot.com/2020/05/python6.html
③[Tutr_9.2]@https://docs.python.org/ja/3/tutorial/classes.html#python-scopes-and-namespaces
④[Lib_]@https://docs.python.org/ja/3/library/random.html
⑤[Lang_8.5]@https://docs.python.org/ja/3/reference/compound_stmts.html
・with文とコンテキストマネージャ セクションを参照してください
⑥https://ja.wikipedia.org/wiki/ASCII
名前空間について知っておくべき重要なことは、
異なった名前空間にある名前の間には全く関係がないということです。
②モジュールのユーザは名前の前にモジュール名をつけなければなりません。
③「OctalPython」のモジュール名を「Py8」とする
(3)「②(0)」の「$NUM」を「Py8.name(NUM)」と表記
(4)「②(0)」の「$」を「Py8.self」と表記
(5)「(2)③」の「 1 ?」を「Py8.num8(1)」と表記
①「 1 ?」は「0」,「1」のいずれかの数.
②「Py8.num8(177)」は8進数「177」を超えない非負の整数(自然数)のいずれか
・【[%61](2)[Trial_6]】の非決定性構文で使用./*〔(1)②〕*/
(6)【[%21](0).[Trial_2]】の「"abcdefg"」を「Py8.str8('abcdefg')」と表記
(7)「Py8.str8('abc\n')」を「Py8.line8('abc')」と略記.
①「Py8.block8(\9002\9line8('abc'))」は
ブロック内の2行目が「str8('abc\n')」であることを明示.
②行頭のインデント量と「\9002\9」から【[%E3](2)】のコンソール画面を作成.
③「Py8.str8('\9002\9abc\n\9003\9def\n')」を
「Py8.line8('\9002\abc')」「Py8.line8('\9003\def')」と略記.
④ブロック内の行数を「511以下」に限定/*「末尾に空白行」*/
https://drive.google.com/file/d/1meOO7wHxcqqvWL5V4Hrk3EVwsyBgQCcY/view?usp=sharing
%E5:「CourierPython」の例/*「未着手」*/
%E6:準備中/*「順不同」*/
`▼
--------------------------------------------------------------------------------
%D0:Dscarding「In[□]:」
%E0:Extracted Paragraphs
%F0:Final Document/*「Trial_15」*/
%G0:Genearated Class for OctalPython
%H0:Help about「Python」/*「OKWave」*/
%I0:「CourierPython」/*【[%E8]】*/
%J0:「KanjiPython」/*【[%E9]】*/
--------------------------------------------------------------------------------
`▲
%E7:「CourierPython」への補足`▼
--------------------------------------------------------------------------------
(0)趣旨:「with all the ASCII characters, including"$", "?" and "`"」
(1)参考資料
①[%61]@https://oshino3.blogspot.com/2020/05/python6.html
(2)非慣用トークンには先頭に「`」を付加して末尾に1個以上の半角スペースを付ける.
・「Courier」は等幅フォントだから見落としにくい.
/*【[%61](2)①】のようにオプションで左端のスペースをシアンにする」*/
--------------------------------------------------------------------------------
`▲
%E8:「KanjiPython」への補足`▼
--------------------------------------------------------------------------------
(0)趣旨:「IDLE」準拠に拘らない./*「(4)②」*/
(1)参考資料
①[Tutr_2.2.1]@https://docs.python.org/ja/3/tutorial/interpreter.html#source-code-encoding
・https://docs.python.org/ja/3/tutorial/
②「ピークの定理(17)」@https://oshino3.blogspot.com/2020/05/17.html
(2)「(1)①」からの引用
・デフォルトでは、Python のソースコードは UTF-8 でエンコードされているものとして扱われます。
UTF-8 では、世界中のほとんどの言語の文字を、同時に文字列リテラル、識別子、コメントなどに書けます。
・ただし、標準ライブラリは識別子に ASCII 文字のみを利用していて、
その他のポータブルなコードもその慣習に従うべきです。
・それらの文字を正しく表示するためには、エディターはそのファイルが UTF-8 である事を識別して、
そのファイルに含まれている文字を全てサポートしたフォントを使わなければなりません。
(3)【[%D39]】からの引用
------------------------------------------------------------
/*「TeXに準じた記法の背景色は Cyan」as「x^{3} - 1 = 0」,「A^{(i, j)}」*/
②[_数学記号の表]@https://ja.wikipedia.org/wiki/数学記号の表
③「+」「-」「*」「/」は「C言語」の算術演算子と同じ./*「%」は使わない */
④比較演算子には「<」,「≦」,「=」,「≧」,「>」,「≠」を使う./*背景色は「Cyan」*/
④非慣用記法は本文中に「□ :=」で定義する./*「□」の背景色は「Green」*/
(4)「(1)②」の数式の例/*「'∠'はJISの数学記号」*/
①「W`(K' / M) = cos`( ∠`(K' / M)) + i_ * sin( ∠(K' / M) )」
②「IDLE★」is an「idle」importer of Library functions.だから気にしない.
★https://ja.wikipedia.org/wiki/IDLE_(Python)
/*〔「JDK★」と類似の「PDK」の方がよい?〕*/
★http://e-words.jp/w/JDK.html
③「C言語」の標準関数を用いて「IDLE」を実装するのが常道?
④「MicroPython★」 is not idle !
★https://ja.wikipedia.org/wiki/MicroPython
(5)【[%I11]①】より【[%I11]③】に準拠した「PDK」を各国が自作すればよい.
------------------------------------------------------------
「OctalPython」作成のための断片的備忘録です.
/*背景色は(茶: 編集・確認中; 灰色: 確認済; 緑: 非慣用記法; 白色: 初期化済)*/
/*「緑」は定義行のみ(他ではシアン).「茶」の語句があるパラグラフは「IDも茶」*/
%E11:資料の参照/*「□で場所を明示」*/
`▼
--------------------------------------------------------------------------------
①[Lang_□]@https://docs.python.org/ja/3/reference/index.html
②[Lib_□]@https://docs.python.org/ja/3/library/index.html#library-index
③[Tutr_□]@https://docs.python.org/ja/3/tutorial/
④[Lib_]https://docs.python.org/ja/3/library/random.html
・数値と数学モジュール random//*「index.html#library-index」*/
・with文とコンテキストマネージャ セクションを参照してください⑥https://ja.wikipedia.org/wiki/ASCII
--------------------------------------------------------------------------------
`▲例:/*【[Tutr_4.8]全文】*/
%E2:[Trial_□]のパラグラフに関するメモ
`▼
--------------------------------------------------------------------------------
(1)参考資料
①【[%292](3).[Trial_2]】/*「TinyPython」*/
・tinypyは64kのコードでのPythonの最小限の実装です
②【[%291](6).[Trial_2]】/*「OctalPython」*/
・「BabyPython」や「NanoPython」も既存だから「OctalPython」で回避.
③【[%26](6).[Trial_2]】
・これらの文字が文字列リテラルやコメントの外にある場合、無条件にエラーとなる
/*〔これらの文字「$」,「?」,「`」の対策が不可欠〕*/
④【[%51](6).[Trial_5]】@https://oshino3.blogspot.com/2020/05/python5_48.html
・他言語に慣れたプログラマには「elif」が非常に紛らわしい
/*「Wildly Imitated Langage with Danger of misunderstanding」*/
・「elif」は「W6」の「;:」とほぼ同じ!/*【W6_191】*/
⑤「loop文」の非決定性構文による定義は・【[%61](6).[Trial_6]】@https://oshino3.blogspot.com/2020/05/python6.html
・「loop文」は「while文」に対応するが「for文」で代替できる
⑥「W7」の予約トークン【[%121].[Trial_1]】 https://oshino3.blogspot.com/2020/05/python.html
(2)「④」の名前「number」を定義する「W6」の「$」は/*【[%E4](1)⑤】*/で補足
(3)「⑤」の「?」には/*【[%E4](5)】*/で補足
(4)「⑤」の「②」の式「num .= `$ - 1」の「`$」を使えないので「self」を使う.
(5)「read,.」,「write..」は「input()」,「print()」に対応.
①「C言語」と同様に入出力はライブラリ関数で実行/*「非言語仕様」*/②〔「W6」の予約語「PORT,.」には「RS-232★」,「GPIB★」等のミニ・コンピュータのソケット
★https://ja.wikipedia.org/wiki/RS-232
★https://ja.wikipedia.org/wiki/IEEE_488
/*「W7」なら「USB-C★」?*/
★https://en.wikipedia.org/wiki/USB-C〕
③ファイルには「load()」「save()」を使う
--------------------------------------------------------------------------------
`▲/*〔□〕*/は灰色
%E3:行番号の付加
`▼
--------------------------------------------------------------------------------
(1)参考資料
①PythonのIDLEで行番号を表示する方法
https://gammasoft.jp/blog/show-line-numbers-in-python-idle/
・Pythonに付属している開発環境の「IDLE」も、
Python本体のバージョンアップに伴い少しずつ進化しています。
・そして、待望の行番号表示機能がPython3.8で追加されました。
以下のようにエディタの左端に行番号を表示できます。
・ちなみに、Python3.7のSettings画面のGeneralタブには、
以下のように「Show line numbers in new windows」の項目がまだありません。
②テキストファイルの行頭に行番号を追加する方法の紹介
https://yukun.info/python-add-line-number-to-text-file/
・コマンドラインで指定されたテキストファイルの行頭に行番号を追加し、
そのデータを新たなファイルに書き出すスクリプトです。
(2)行頭ではなく次のようにしたい/*「'#'を行頭から56文字目に」*/
----------------------------------------
number = int(number) \t #001.1
#002.1
if number % 3 == 0: \t #003.1
print('Fizz') #004.2
elif number % 5 == 0: \t #005.1
print('Buzz') #006.2
elif number % 15 == 0: \t #007.1
print('FizzBuzz') \t #100.2
else: \t #101.1
print(number) \t #102.2
----------------------------------------
・「Nexus7」では「Courier」で「64字/行」は無理なので「48文字」に変更
/*「モバイル端末用にPy8Mを作る?」*/
①「OctalPython」の行番号は奇数桁の8進数
②末尾の1桁の8進数は行末でのレベル③ファイルの全角スペースはすべて半角スペース2個と置換
④「OctalPython」のコンソール画面(2枚)は8×16文字
一方で表示し,他方をバックグラウンドで編集.
--------------------------------------------------------------------------------
`▲
%E4:使用不能文字対策
`▼
--------------------------------------------------------------------------------
(0)「$」,「?」,「`」の使い方の暫定案.
(1)参考資料
①【[%26](6).[Trial_2]】@https://oshino3.blogspot.com/2020/05/python_21.html
・これらの文字が文字列リテラルやコメントの外にある場合、無条件にエラーとなる
②【[%62].[Trial_6]】@https://oshino3.blogspot.com/2020/05/python6.html
③[Tutr_9.2]@https://docs.python.org/ja/3/tutorial/classes.html#python-scopes-and-namespaces
④[Lib_]@https://docs.python.org/ja/3/library/random.html
⑤[Lang_8.5]@https://docs.python.org/ja/3/reference/compound_stmts.html
・with文とコンテキストマネージャ セクションを参照してください
⑥https://ja.wikipedia.org/wiki/ASCII
(2)「③」からの引用
①オブジェクトの属性からなる集合もまた、ある意味では名前空間です。名前空間について知っておくべき重要なことは、
異なった名前空間にある名前の間には全く関係がないということです。
②モジュールのユーザは名前の前にモジュール名をつけなければなりません。
③「OctalPython」のモジュール名を「Py8」とする
(3)「②(0)」の「$NUM」を「Py8.name(NUM)」と表記
(4)「②(0)」の「$」を「Py8.self」と表記
(5)「(2)③」の「 1 ?」を「Py8.num8(1)」と表記
①「 1 ?」は「0」,「1」のいずれかの数.
②「Py8.num8(177)」は8進数「177」を超えない非負の整数(自然数)のいずれか
・【[%61](2)[Trial_6]】の非決定性構文で使用./*〔(1)②〕*/
(6)【[%21](0).[Trial_2]】の「"abcdefg"」を「Py8.str8('abcdefg')」と表記
(7)「Py8.str8('abc\n')」を「Py8.line8('abc')」と略記.
①「Py8.block8(\9002\9line8('abc'))」は
ブロック内の2行目が「str8('abc\n')」であることを明示.
②行頭のインデント量と「\9002\9」から【[%E3](2)】のコンソール画面を作成.
③「Py8.str8('\9002\9abc\n\9003\9def\n')」を
「Py8.line8('\9002\abc')」「Py8.line8('\9003\def')」と略記.
④ブロック内の行数を「511以下」に限定/*「末尾に空白行」*/
(8)「Py8.str9('ab\9embeded\9c\ndef\n')」の「\9embeded\9」はコメント
①インタプリタは「(7)②」の行末の6文字とコメントを削除したファイルを解釈実行
/*「原稿の'\t'を'#\t'で置換」*/
https://qiita.com/ykhirao/items/c7cba73a3a563be5eac6
`▲PageView-1.PNG(Thanks to Watchers, encouraging me)https://qiita.com/ykhirao/items/c7cba73a3a563be5eac6
(9)[@IT_□]の資料の参照/*「辞書・集合」*/
①[@IT_20]@https://www.atmarkit.co.jp/ait/articles/1906/19/news017.html#dict
②[@IT_21]@https://www.atmarkit.co.jp/ait/articles/1906/25/news015.html#set
①[@IT_20]@https://www.atmarkit.co.jp/ait/articles/1906/19/news017.html#dict
②[@IT_21]@https://www.atmarkit.co.jp/ait/articles/1906/25/news015.html#set
(10)[Tutr_□]の対応する資料(逆順)./*「集合型・辞書型」*/
①[Tutr_5.4]@https://docs.python.org/ja/3/tutorial/datastructures.html#sets
・中括弧、または set() 関数は set を生成するために使用することができます。
注: 空集合を作成するためには set() を使用しなければなりません ({} ではなく)。
後者は空の辞書を作成します。辞書は次のセクションで議論するデータ構造。
②[Tutr_5.5]@https://docs.python.org/ja/3/tutorial/datastructures.html#dictionaries
・辞書は キー(key): 値(value) のペアの集合であり、
キーが (辞書の中で)一意でなければならない、と考えるとよいでしょう。
・波括弧 (brace) のペア: {} は空の辞書を生成します。
カンマで区切られた key: value のペアを波括弧ペアの間に入れると、
辞書の初期値となる key: value が追加されます;
・辞書での主な操作は、ある値を何らかのキーを付けて記憶することと、
キーを指定して値を取り出すことです。
del で key: value のペアを削除することもできます。
・すでに使われているキーを使って値を記憶すると、
以前そのキーに関連づけられていた値は忘れ去られてしまいます。
①[Tutr_5.4]@https://docs.python.org/ja/3/tutorial/datastructures.html#sets
・中括弧、または set() 関数は set を生成するために使用することができます。
注: 空集合を作成するためには set() を使用しなければなりません ({} ではなく)。
後者は空の辞書を作成します。辞書は次のセクションで議論するデータ構造。
②[Tutr_5.5]@https://docs.python.org/ja/3/tutorial/datastructures.html#dictionaries
・辞書は キー(key): 値(value) のペアの集合であり、
キーが (辞書の中で)一意でなければならない、と考えるとよいでしょう。
・波括弧 (brace) のペア: {} は空の辞書を生成します。
カンマで区切られた key: value のペアを波括弧ペアの間に入れると、
辞書の初期値となる key: value が追加されます;
・辞書での主な操作は、ある値を何らかのキーを付けて記憶することと、
キーを指定して値を取り出すことです。
del で key: value のペアを削除することもできます。
・すでに使われているキーを使って値を記憶すると、
以前そのキーに関連づけられていた値は忘れ去られてしまいます。
--------------------------------------------------------------------------------
https://drive.google.com/file/d/1meOO7wHxcqqvWL5V4Hrk3EVwsyBgQCcY/view?usp=sharing
%E5:「CourierPython」の例/*「未着手」*/
`▼
--------------------------------------------------------------------------------
%D0:Dscarding「In[□]:」
%E0:Extracted Paragraphs
%F0:Final Document/*「Trial_15」*/
%G0:Genearated Class for OctalPython
%H0:Help about「Python」/*「OKWave」*/
%I0:「CourierPython」/*【[%E8]】*/
%J0:「KanjiPython」/*【[%E9]】*/
--------------------------------------------------------------------------------
`▲
%E7:「CourierPython」への補足`▼
--------------------------------------------------------------------------------
(0)趣旨:「with all the ASCII characters, including"$", "?" and "`"」
(1)参考資料
①[%61]@https://oshino3.blogspot.com/2020/05/python6.html
(2)非慣用トークンには先頭に「`」を付加して末尾に1個以上の半角スペースを付ける.
・「Courier」は等幅フォントだから見落としにくい.
/*【[%61](2)①】のようにオプションで左端のスペースをシアンにする」*/
--------------------------------------------------------------------------------
`▲
%E8:「KanjiPython」への補足`▼
--------------------------------------------------------------------------------
(0)趣旨:「IDLE」準拠に拘らない./*「(4)②」*/
(1)参考資料
①[Tutr_2.2.1]@https://docs.python.org/ja/3/tutorial/interpreter.html#source-code-encoding
・https://docs.python.org/ja/3/tutorial/
②「ピークの定理(17)」@https://oshino3.blogspot.com/2020/05/17.html
(2)「(1)①」からの引用
・デフォルトでは、Python のソースコードは UTF-8 でエンコードされているものとして扱われます。
UTF-8 では、世界中のほとんどの言語の文字を、同時に文字列リテラル、識別子、コメントなどに書けます。
・ただし、標準ライブラリは識別子に ASCII 文字のみを利用していて、
その他のポータブルなコードもその慣習に従うべきです。
・それらの文字を正しく表示するためには、エディターはそのファイルが UTF-8 である事を識別して、
そのファイルに含まれている文字を全てサポートしたフォントを使わなければなりません。
(3)【[%D39]】からの引用
------------------------------------------------------------
/*「TeXに準じた記法の背景色は Cyan」as「x^{3} - 1 = 0」,「A^{(i, j)}」*/
②[_数学記号の表]@https://ja.wikipedia.org/wiki/数学記号の表
③「+」「-」「*」「/」は「C言語」の算術演算子と同じ./*「%」は使わない */
④比較演算子には「<」,「≦」,「=」,「≧」,「>」,「≠」を使う./*背景色は「Cyan」*/
④非慣用記法は本文中に「□ :=」で定義する./*「□」の背景色は「Green」*/
(4)「(1)②」の数式の例/*「'∠'はJISの数学記号」*/
①「W`(K' / M) = cos`( ∠`(K' / M)) + i_ * sin( ∠(K' / M) )」
②「IDLE★」is an「idle」importer of Library functions.だから気にしない.
★https://ja.wikipedia.org/wiki/IDLE_(Python)
/*〔「JDK★」と類似の「PDK」の方がよい?〕*/
★http://e-words.jp/w/JDK.html
③「C言語」の標準関数を用いて「IDLE」を実装するのが常道?
④「MicroPython★」 is not idle !
★https://ja.wikipedia.org/wiki/MicroPython
(5)【[%I11]①】より【[%I11]③】に準拠した「PDK」を各国が自作すればよい.
------------------------------------------------------------
--------------------------------------------------------------------------------
`▲
コメント
コメントを投稿