適当のごった煮

Pythonと境界標とQGISを中心にいろいろと

変数と演算子

スポンサードリンク

Python ドキュメントより自分用の抜粋。

変数の種類

型の種類説明具体例
int 整数 0, 777, -100
float 浮動小数点数 0.0, 57.9, -3.14
complex 複素数 1j, 5+3.5j, 2-9j
bool 真偽値 True, False
str 文字列 'abc', "文字列", "It's ok."
list リスト [1, 'a', 5.5, [1, 2, 3]]
tuple タプル(変更できないリスト) (1, 'a')
dict 辞書 { "key" : 365, "key2" : "boy" }
set 集合(重複しないリスト) {1, 3, 'a'}
bytes バイト b'\xe8\xa9\xa6'

文字列

文字列はシングルクォート(')かダブルクォート(")でくくる。エスケープしたい場合は「\」を使う。「\」を文字として扱う場合は「\\」とする。

改行を含むような長い文字列の場合は、「'''」か「"""」でくくる。その際、行末に「\」を記述して改行すれば、改行とみなされない。

r'文字列' とすれば、文字列がそのまま出力さるが、「r'c:\neet\'」は末尾のシングルクォートをエスケープする意味になってしまいエラーとなる。

input()でエスケープ文字を含む文字列を入力すると、エスケープされた状態で入力されたものとして扱われる。

>>> print('c:\neet') # 改行(\n)を含む文字列と解釈される
c:
eet
>>> print('c:\\neet\\') # これが誤解が少ない書き方と思われる
c:\neet\
>>> print(r'c:\neet') # 末尾に「\」がなければこの書き方ができる
c:\neet
>>> print('c:\neet\') # 末尾の「'」をエスケープしていると解釈されてエラー
      
SyntaxError: EOL while scanning string literal
>>> s = input() # 「\」を含む入力をする
c:\neet\
>>> print(s)
c:\neet\
>>> s 		# 内部的には「\\」方式で保持している
'c:\\neet\\'
>>>

演算子

算術演算子

演算子内容
+, -, *, / 加減乗除(除算結果は小数) 10 / 5 => 2.0
% 余り 17 % 3 => 2
// 割り算(結果は整数) 17 // 3 => 5
** べき乗 3**4 => 27 # pow(x, y)と同じ

論理演算子

演算子内容
or 論理和 None or 10 => 10
and 論理積 'a' and 0 => 0
not 否定 not 1 => False

Falseとみなされるもの

項目
偽, None False, None
数値のゼロ 0, 0.0, 0j
中身のないもの '', (), [], {}

比較演算子

演算子内容
== 等しい 1 == 1 => True
!= 等しくない 1 == 1 => False
< より小さい 5 < 5 => False
<= 以下 5 <= 5 => True
> より大きい 5 > 5 => False
>= 以上 5 >= 5 => True
x < y < z 複数比較 1 < 2 < 3 => True
in 要素に含まれる 'a' in [1, 'a', 99] => True