LoginSignup
0
1

More than 3 years have passed since last update.

Python初心者が「Python文法詳解」を読んだメモ #3

Posted at

バックナンバー

今日は短めですが、少しずつでもやっていこうと思います。
写経メインでサクッと。

累積代入文
>>> spam = 10
>>> spam += 100
>>> spam
110
>>> spam -= 60
>>> spam
50
>>> spam *= 10
>>> spam
500
>>> spam /= 2
>>> spam
250.0
>>> spam //= 3
>>> spam
83.0
>>> spam %= 10
>>> spam
3.0
>>> spam **=4
>>> spam
81.0

# ビット演算
>>> spam = 1024
>>> spam >>= 2
>>> spam
256
>>> spam <<= 2
>>> spam
1024

>>> spam = 0b11110000
>>> spam
240
>>> spam &= 0b00001111  # ビット論理積
>>> spam
0

>>> spam = 0b11110000
>>> spam ^= 0b00111100  # ビット排他的論理和
>>> spam
204   # 0b11001100

>>> spam = 0b11110000
>>> spam |= 0b00001111  # ビット論理和
>>> spam
255  # 0b11111111
変数名はかなり自由度が高い
# こんなこともできるし(別にやりたくないけど)
>>> スパム = 10
>>> def ハム():
...     return  * 3
... 
>>> ハム(スパム)
30

# これもあり
>>> π = 3.14
>>> V = A * Ω

# 大文字と小文字は区別される
>>> spam = 10
>>> Spam = 20
>>> spam
10
>>> Spam
20

# 以下の変数名は全て有効
>>> _spam = 1
>>> スパム = 1
>>>  = 1
>>> Spam = 1

# 以下の変数名は全て無効
>>> $pam = 1    # 記号始まり
>>> 1スパム = 1  # 数値始まり
>>> spam = 1  # 全角数値始まり
>>> スパム = 1 # 句読点はNG

# 変数名として使えるか判定することもできる
>>> 'Spam'.isidentifier()
True
>>> '♪'.isidentifier()
False

# ただし、名前はUnicode標準の正規化形式KCに正規化されるのでこうなる 関数名も同様
# 要するにやらないほうがいい
>>> スパム = '半角'
>>> スパム = '全角'
>>> print(スパム)
全角
>>> print(スパム)
全角
or
# orは「真」の値が返ってくる
>>> 1 or 0
1
>>> 0 or 2
2

>>> 0 or 0.0
0.0  # どちらも「偽」の場合は右辺の値が返ってくる

>>> 1 or 2
1  # どちらも「真」の場合は左辺の値が返ってくる
   # この時、「2」は評価すらされていない(この評価省略を「ショートサーキット」と呼ぶ)


# 実用例
>>> if x:      # このif文は
>>>     z = x
>>> else:
>>>     z = y

>>> z = x or y # こう書ける
and
>>> 1 and 2
2    # 両方「真」なら右辺の値が返ってくる
>>> 0 and 1
0    # どちらかが「偽」なら「偽」の値を返す(ここでも1はショートサーキットされている)
>>> 1 and 0.0
0.0  # どちらかが「偽」なら「偽」の値を返す
not
# notはbool型の値を返す
>>> not 1
False
>>> not 0
True
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1