書式
変数名 = 初期値
型を宣言したい場合
変数名 : 変数の型 = 初期値
組み込み型
var1 = 1 # 整数の代入
var2 : bool = False # 真偽型
var3 : str = "文字列" # 文字型
var4 : int = 100 # 整数型(型宣言有り)
var5 : float = 99.9 # 浮動小数点型
型の確認
型を取得する関数
type(変数)
変数の型が返るので変数同士が同じ型か確認するときなどに使える。
if (type('stirng') is str):
print('文字列です')
型を確認する方法
isinstance()
こちらはオブジェクトがクラスのインスタンスで有ることを確認する関数ですので、サブクラスのインスタンスも含まれます。
動的型付けは型を省略出来きるのはよいですが、反面、変数の型を調べる機会が増えるような気がします。
var6 : int = 0
var6 = 'aaa'
var6をintで使うと宣言し、すぐ心変わりして、次の行で文字列を代入しても誰にもとがめられることは有りません。
配列の初期化
var7 = ['foo','bar','hoge']
配列の要素数を取得
len(var7)
配列に値が存在しているか確認
'hoge' in var7
dict(連想配列)の初期化
var8 = {'key1':'value1','key2':'value2'}
dictの要素数を取得
len(var7)
dictにキーが存在しているか確認
'key1' in var8.keys()
dictに値が存在しているか確認
'key1' in var8.values()
dictにキーと値が存在しているか確認
('key1','value1) in var8.items()
スコープの範囲
def aaa(var9):
var10 = 10
print(var9)
if (True):
var11 = 11
aaa('9')
# print (var10) # NameError: name 'var10' is not defined
print (var11)
上記例では、
・関数のブロックNG
・条件式のブロックOK
となった。
感想文
ブロックが{}ではくインデントで表現したりするので、中身もさぞかし癖のある振る舞いであるかと期待しましたが、変数の定義に関して言えば至って普通の動的型付けのスクリプト言語だと思います。今のところは…
コメント