Python の基本文法
Pythonの変数には、オブジェクトの代入が可能です。数値も文字列もオブジェクトの一つとして扱われます。
>>> x = 256 >>> a = "hello"
対話型の操作では、変数名+ [Enter] で変数の内容が表示されます。
>>> a "hello"
整数と浮動小数点数の2種類があります。
>>> text = """ I have a pen. . . . You have a notebook.""" >>> print(text) I have a pen. You have a notebook.
>>> text ="abcdefg" >>> text += "hijklmn" >>> text 'abcdefghijklmn'
>>> text ="abc"*3 >>> text 'abcabcabc'
形式 [ 開始位置 : 終了位置 : ステップ ] ) >>> text = "ABCDEFG" >>> text[1] 'B' >>> text[2:] 'CDEFG' >>> text[3:5] 'DE' >>> text[1:7:2] 'BDF'
コレクション型とは、複数の値をまとめるデータ型で、一般の配列に相当する「リスト」と「タプル」、また一般の連想配列に相当する「辞書」と「集合」、計4つの型が存在します。
x = [ ] (空のリスト) data = [ 60, 70, 85, 40, 65 ] colorlist = [ "Blue", "Red", "Green" ] person = [ 25, "Yamada", True ] (異なるデータ型の指定も可)
x = () (空のタプル) data = ( 5, 8, 2, 9, 3 ) colorlist = ( "Blue", "Red", "Green" ) person = ( 100, "Tokyo", True ) (異なるデータ型の指定も可)
>>> data = { "left":100 , "right":80 }
>>> data["left"]
100
参考:JSONPython で言う「配列」は 「リスト」のことで、[ ] を使って表記しますが、「異なる型のデータを混在できる」、「事後的にデータの追加ができる(要素数を増やせる)」など、他の言語の配列とは様子が異なります。
x = []
for i in range(10):
x.append( i )
print(x)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]x = [0] *10 print(x) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
x = list( range(0,10) ) print(x) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Python で用意されている演算子には以下のようなものがあります。
| 演算子 | 意味 | 例 | 出力 |
| + | 加算 | 2+1 | 3 |
| - | 減算 | 3−4 | -1 |
| * | 乗算 | 4*5 | 20 |
| / | 除算 | 7/8 | 0.875 |
| % | 剰余 | 8%3 | 2 |
| // | 切り捨て除算 | 9/2 | 4 |
| ** | 指数 | 7**2 | 49 |
| divmod | 商と余り | divmod(8,3) | (2,3) |
Python で用意されている比較演算子は以下。結果は True または False です。
| 演算子 | 意味 |
| x == y | x と y が等しい |
| X != y | x と y が等しくない |
| x > y | x は y よりも大きい |
| x < y | x は y よりも小さい |
| x >= y | x は y と等しいか大きい |
| x <= y | x は y と等しいか小さい |
| x in y | x という要素 が y に存在する |
| x not in y | x という要素 が y に存在しない |
Python で用意されている論理演算子は以下。結果は True または False です。
| 演算子 | 意味 | 解説 |
| x or y | 論理和 | どちらか 1 つが True なら True それ以外は False |
| x and y | 論理積 | x と y がどちらも True なら True それ以外は False |
| not x | 否定 | x が True なら False、 x が False なら True |
if 文や for 文などの制御では複合文の記載が必要になるます。JavaScript や PHP では { から } までが複合文が書かれる「ブロック」となりますが、Pythonでは、囲み記号を使わず、同じインデント(字下げ)がなされている文をブロックとして扱います。
if 条件式:
ブロック内の処理1
ブロック内の処理2
インデントの位置をさらにずらすことでブロックの「入れ子」が実現します。
if 条件式:
ブロック内の処理1
ブロック内の処理2
if 条件式:
ブロック内の処理1
ブロック内の処理2
if 条件式1:
条件式1が真の時に実行する文
...
elif 条件式2:
条件式1が偽で条件式2が真の時に実行する文
...
else:
すべての条件式が偽のときに実行する文
...
for 変数 in イテラブルオブジェクト:
実行する文 1
実行する文 2
実行する文 3x = [ "Orange", "Apple", "Lemon" ]
for val in x:
print( val )
Orange
Apple
Lemonfor i in range(10):
print( i )
0
1
:
while 条件式:
条件式が真の時に実行する文1
条件式が真の時に実行する文2
条件式が真の時に実行する文3n = 0
while n < 6:
print( "n = " + str( n ) )
n += 1
n = 1
n = 2
n = 3
n = 4
n = 5
def 関数名( 引数1, 引数2, ... ) :
関数内で実行する処理1
関数内で実行する処理2
関数内で実行する処理3
return 戻り値>> def myfunc( ) : . . . print( "Hello!" ) . . . >> myfunc( ) Hello!
Python では # 記号以降はコメントとして扱われます。プログラム上で文の機能を一時的に無効にする(コメントアウト)場合にも利用可能です。
#から行末までは実行時に無視されます。#より前のコードは有効です。
a = 1 # comment
行頭に#を書くと、行全体コメントとなり、実行時には無視されます。
a = 1 # b = 2 # c = 3 d = 4