「Python」試用録(4)」
%4:「Python」試用録(4)」
「WILDの処理系」作成のための「断片的備忘録」です.
/*背景色は(茶: 編集・確認中; 灰色: 確認済; 緑: 非慣用記法; 白色: 初期化済)*/
%41:[@IT_5]/*「文字列の基本 (1/2)」*/`▼
--------------------------------------------------------------------------------
(0)[@IT_5]に戻って復習します.
(1)一番簡単なHello Worldプログラム
In[2]:『print("It's easy to learn Python")』
In[3]:『print('"Deep Insider" is a site for learning "AI"'』
(2)エスケープシーケンス
(3)Python 3では文字コードとしてUnicodeがデフォルトで使われ、
個々の文字に振られた番号のことを「コードポイント」と呼んでいる
(コードポイントの表記方法=符号化方式/エンコーディング方式としてはUTF-8がデフォルト)。
(4)「Unicode★」
★https://ja.wikipedia.org/wiki/Unicode
(5)「UTF-8“N”ってなに?★」
★https://book.studio947.net/article/944/
----------------------------------------
UTF-8Nは、「BOMが付いていないUTF-8」を示す便宜的な名称です。
おもに日本製のテキストエディタの一部がこの名称を使っているにすぎません。
----------------------------------------
(6)このブログの原稿は「Terapad」(Unicode; LF)で作成
①編集時の「半角円記号」が投稿すると「バックスラッシュ」になる
②「CR」は重ね打ちするラインプリンタ用.
%411:[@IT_6]/*「Pythonの文字列の操作」*/`▼
--------------------------------------------------------------------------------
`▲後日全文を削除します.
%413:[@IT_8]/*「コメント」*/
`▼
--------------------------------------------------------------------------------
`▲後日全文を削除します.
%414:[Py_2.4.1文字列およびバイト列リテラル
`▼
--------------------------------------------------------------------------------
(1)文字列リテラルは以下の字句定義で記述されます:
stringliteral ::= [stringprefix](shortstring | longstring)
stringprefix ::= "r" | "u" | "R" | "U" | "f" | "F"
| "fr" | "Fr" | "fR" | "FR" | "rf" | "rF" | "Rf" | "RF"
shortstring ::= "'" shortstringitem* "'" | '"' shortstringitem* '"'
longstring ::= "'''" longstringitem* "'''" | '"""' longstringitem* '"""'
shortstringitem ::= shortstringchar | stringescapeseq
longstringitem ::= longstringchar | stringescapeseq
shortstringchar ::= <any source character except "\" or newline or the quote>
longstringchar ::= <any source character except "\">
stringescapeseq ::= "\" <any source character>
bytesliteral ::= bytesprefix(shortbytes | longbytes)
bytesprefix ::= "b" | "B" | "br" | "Br" | "bR" | "BR" | "rb" | "rB" | "Rb" | "RB"
shortbytes ::= "'" shortbytesitem* "'" | '"' shortbytesitem* '"'
longbytes ::= "'''" longbytesitem* "'''" | '"""' longbytesitem* '"""'
shortbytesitem ::= shortbyteschar | bytesescapeseq
longbytesitem ::= longbyteschar | bytesescapeseq
shortbyteschar ::= <any ASCII character except "\" or newline or the quote>
longbyteschar ::= <any ASCII character except "\">
bytesescapeseq ::= "\" <any ASCII character>
(2)上記の生成規則で示されていない文法的な制限が一つあります。
リテラルの stringprefix や bytesprefix と残りの部分の間に空白を入れてはならないことです。
ソースコード文字セット (source character set) はエンコーディング宣言で定義されます。
エンコーディング宣言がなければ UTF-8 です。
節 エンコード宣言 (encoding declaration) を参照してください。
(3)より平易な説明:
これらの型のリテラルは、対応する一重引用符 (') または二重引用符 (") で囲われます。
また、対応する三連の一重引用符や二重引用符で囲うこともできます
(通常、三重クオート文字列: triple-quoted string と呼ばれます)。
バックスラッシュ (\) 文字で、本来特別な意味を持つ文字、
例えば改行文字、バックスラッシュ自身、クオート文字などを、エスケープできます。
バイト列リテラルには、常に 'b' や 'B' が接頭します。
これらによって、 str 型ではなく bytes 型のインスタンスが作成されます。
バイト列リテラルは ASCII 文字のみ含むことができます。
128 以上の数値を持つバイトはエスケープして表されなければなりません。
--------------------------------------------------------------------------------
`▲
%415:[Py_2.5] 演算子
以下のトークンは演算子です:
`▼
--------------------------------------------------------------------------------
(1)以下のトークンは演算子です:
------------------------------------------------------------
+ - * ** / // % @
<< >> & | ^ ~ :=
< > <= >= == !=
------------------------------------------------------------
(2)「@」は行列の積.「:=」は
「https://docs.python.org/ja/3/library/operator.html」でも不明
--------------------------------------------------------------------------------
`▲
%416:[Py_2.6]デリミタ (delimiter)
`▼
--------------------------------------------------------------------------------
(1)以下のトークンは文法上のデリミタとして働きます:
------------------------------------------------------------
( ) [ ] { }
, : . ; @ = ->
+= -= *= /= //= %= @=
&= |= ^= >>= <<= **=
------------------------------------------------------------
①ピリオドは浮動小数点数や虚数リテラル中にも置けます。
②ピリオド三つの列はスライス表記における省略符号 (ellipsis) リテラルとして特別な意味を持ちます。
③リスト後半の累算代入演算子 (augmented assignment operator) は、
字句的にはデリミタとして振舞いますが、演算も行います。
④以下の印字可能 ASCII 文字は、他のトークンの一部として特殊な意味を持っていたり、字句解析器にとって重要な意味を持っています:
------------------------------------------------------------
' " # \
------------------------------------------------------------
(2)以下の印字可能 ASCII 文字は、Python では使われていません。
これらの文字が文字列リテラルやコメントの外にある場合、無条件にエラーとなります:
------------------------------------------------------------
$ ? `
------------------------------------------------------------
--------------------------------------------------------------------------------
`▲作業中(要対策)
「WILDの処理系」作成のための「断片的備忘録」です.
/*背景色は(茶: 編集・確認中; 灰色: 確認済; 緑: 非慣用記法; 白色: 初期化済)*/
%41:[@IT_5]/*「文字列の基本 (1/2)」*/`▼
--------------------------------------------------------------------------------
(0)[@IT_5]に戻って復習します.
(1)一番簡単なHello Worldプログラム
In[2]:『print("It's easy to learn Python")』
In[3]:『print('"Deep Insider" is a site for learning "AI"'』
(2)エスケープシーケンス
(3)Python 3では文字コードとしてUnicodeがデフォルトで使われ、
個々の文字に振られた番号のことを「コードポイント」と呼んでいる
(コードポイントの表記方法=符号化方式/エンコーディング方式としてはUTF-8がデフォルト)。
(4)「Unicode★」
★https://ja.wikipedia.org/wiki/Unicode
(5)「UTF-8“N”ってなに?★」
★https://book.studio947.net/article/944/
----------------------------------------
UTF-8Nは、「BOMが付いていないUTF-8」を示す便宜的な名称です。
おもに日本製のテキストエディタの一部がこの名称を使っているにすぎません。
----------------------------------------
(6)このブログの原稿は「Terapad」(Unicode; LF)で作成
①編集時の「半角円記号」が投稿すると「バックスラッシュ」になる
②「CR」は重ね打ちするラインプリンタ用.
--------------------------------------------------------------------------------
`▲%411:[@IT_6]/*「Pythonの文字列の操作」*/`▼
--------------------------------------------------------------------------------
`▲後日全文を削除します.
%413:[@IT_8]/*「コメント」*/
`▼
--------------------------------------------------------------------------------
`▲後日全文を削除します.
%414:[Py_2.4.1文字列およびバイト列リテラル
`▼
--------------------------------------------------------------------------------
(1)文字列リテラルは以下の字句定義で記述されます:
stringliteral ::= [stringprefix](shortstring | longstring)
stringprefix ::= "r" | "u" | "R" | "U" | "f" | "F"
| "fr" | "Fr" | "fR" | "FR" | "rf" | "rF" | "Rf" | "RF"
shortstring ::= "'" shortstringitem* "'" | '"' shortstringitem* '"'
longstring ::= "'''" longstringitem* "'''" | '"""' longstringitem* '"""'
shortstringitem ::= shortstringchar | stringescapeseq
longstringitem ::= longstringchar | stringescapeseq
shortstringchar ::= <any source character except "\" or newline or the quote>
longstringchar ::= <any source character except "\">
stringescapeseq ::= "\" <any source character>
bytesliteral ::= bytesprefix(shortbytes | longbytes)
bytesprefix ::= "b" | "B" | "br" | "Br" | "bR" | "BR" | "rb" | "rB" | "Rb" | "RB"
shortbytes ::= "'" shortbytesitem* "'" | '"' shortbytesitem* '"'
longbytes ::= "'''" longbytesitem* "'''" | '"""' longbytesitem* '"""'
shortbytesitem ::= shortbyteschar | bytesescapeseq
longbytesitem ::= longbyteschar | bytesescapeseq
shortbyteschar ::= <any ASCII character except "\" or newline or the quote>
longbyteschar ::= <any ASCII character except "\">
bytesescapeseq ::= "\" <any ASCII character>
(2)上記の生成規則で示されていない文法的な制限が一つあります。
リテラルの stringprefix や bytesprefix と残りの部分の間に空白を入れてはならないことです。
ソースコード文字セット (source character set) はエンコーディング宣言で定義されます。
エンコーディング宣言がなければ UTF-8 です。
節 エンコード宣言 (encoding declaration) を参照してください。
(3)より平易な説明:
これらの型のリテラルは、対応する一重引用符 (') または二重引用符 (") で囲われます。
また、対応する三連の一重引用符や二重引用符で囲うこともできます
(通常、三重クオート文字列: triple-quoted string と呼ばれます)。
バックスラッシュ (\) 文字で、本来特別な意味を持つ文字、
例えば改行文字、バックスラッシュ自身、クオート文字などを、エスケープできます。
バイト列リテラルには、常に 'b' や 'B' が接頭します。
これらによって、 str 型ではなく bytes 型のインスタンスが作成されます。
バイト列リテラルは ASCII 文字のみ含むことができます。
128 以上の数値を持つバイトはエスケープして表されなければなりません。
--------------------------------------------------------------------------------
`▲
%415:[Py_2.5] 演算子
以下のトークンは演算子です:
`▼
--------------------------------------------------------------------------------
(1)以下のトークンは演算子です:
------------------------------------------------------------
+ - * ** / // % @
<< >> & | ^ ~ :=
< > <= >= == !=
------------------------------------------------------------
(2)「@」は行列の積.「:=」は
「https://docs.python.org/ja/3/library/operator.html」でも不明
--------------------------------------------------------------------------------
`▲
%416:[Py_2.6]デリミタ (delimiter)
`▼
--------------------------------------------------------------------------------
(1)以下のトークンは文法上のデリミタとして働きます:
------------------------------------------------------------
( ) [ ] { }
, : . ; @ = ->
+= -= *= /= //= %= @=
&= |= ^= >>= <<= **=
------------------------------------------------------------
①ピリオドは浮動小数点数や虚数リテラル中にも置けます。
②ピリオド三つの列はスライス表記における省略符号 (ellipsis) リテラルとして特別な意味を持ちます。
③リスト後半の累算代入演算子 (augmented assignment operator) は、
字句的にはデリミタとして振舞いますが、演算も行います。
④以下の印字可能 ASCII 文字は、他のトークンの一部として特殊な意味を持っていたり、字句解析器にとって重要な意味を持っています:
------------------------------------------------------------
' " # \
------------------------------------------------------------
(2)以下の印字可能 ASCII 文字は、Python では使われていません。
これらの文字が文字列リテラルやコメントの外にある場合、無条件にエラーとなります:
------------------------------------------------------------
$ ? `
------------------------------------------------------------
--------------------------------------------------------------------------------
`▲作業中(要対策)
コメント
コメントを投稿