Pythonで用意されている組み込み関数の説明です。
abs(-1.23) # => 1.23
abs(3 + 4j) # => 5.0
all([]) # => True
all([1, 2, 3, 4, 5]) # => True
all([0, 1, 2, 3, 4]) # => False
all(["a", "b", "c"]) # => True
all(["a", "", "c"]) # => False
all(["a", None, "c"]) # => False
any([]) # => False
any([0, 1, 2, 3, 4]) # => True
any([0, 0, 0]) # => False
any(["", None, "X"]) # => True
any(["", None, 0]) # => False
ascii("abc⚡de") # => "'abc\\u26a1de'"
bin(10) # => '0b1010'
bool() # => False
bool(None) # => False
bool(False) # => False
bool(0) # => False
bool(0.0) # => False
bool(0j) # => False
from decimal import Decimal
bool(Decimal(0)) # => False
from fractions import Fraction
bool(Fraction(0, 1)) # => False
bool('') # => False
bool(()) # => False
bool([]) # => False
bool({}) # => False
bool(set()) # => False
bool(range(0)) # => False
bool('0') # => True
bool('1') # => True
bool('A') # => True
bool(1) # => True
def func():
breakpoint()
n = 1
n = n + 1
return
if __name__ == "__main__":
func()
上記スクリプトの実行でpdb(Pythonデバッガ)が呼び出される。
コマンドn
等でステップで追える。
# バイト列リテラルからバイト配列を作成
bytearray(b'xyz') # => bytearray(b'xyz')
# 文字列をencode()でバイト配列に変換して作成
bytearray("abc", "utf8") # => bytearray(b'abc')
# 整数を指定するとそのサイズでnullバイトのバイト配列が作成
bytearray(5) # => bytearray(b'\x00\x00\x00\x00\x00')
# 整数値範囲のイテラブルからバイト配列を作成
bytearray(x+65 for x in range(5)) # => bytearray(b'ABCDE')
# バイト列リテラルからバイト配列を作成
bytes(b'xyz') # => b'xyz'
# 文字列をencode()でバイト配列に変換して作成
bytes("abc", "utf8") # => b'abc'
# 整数を指定するとそのサイズでnullバイトのバイト配列が作成
bytes(5) # => b'\x00\x00\x00\x00\x00'
# 整数値範囲のイテラブルからバイト配列を作成
bytes(x+65 for x in range(5)) # b'ABCDE'
def f(a, b):
return a + b
v = 1
x = f
callable(v) # => False
callable(x) # => True
chr(0x1F40D) # => '🐍'
class SampleClass:
@classmethod
def class_method(cls, n):
print(cls, n)
sc = SampleClass()
sc.class_method('a') # => <class '__main__.SampleClass'> a
SampleClass.class_method('b') # => <class '__main__.SampleClass'> b
modeはコンパイルするコードの種類を指定する。
sourcre = '''
x = 123
y = "abc"
print(x, y)
'''
codeobj = compile(sourcre, 'fileName', 'exec')
exec(codeobj) # => 123 abc
codeobj = compile("1 + 2", 'fileName', 'eval')
eval(codeobj) # => 3
a = "abc"
codeobj = compile('a += "123"', 'fileName', 'single')
exec(codeobj)
a # => abc123
complex() # => (0j)
complex("1+2j") # => (1+2j)
complex(1) # => (1+0j)
complex(1.1, 2.2) # => (1.1+2.2j)
class SampleClass:
pass
sc = SampleClass()
sc.val = 1
print(sc.val) #=> 1
delattr(sc,"val")
print(sc.val) # => AttributeError: val
dic1 = dict(a=1, b=2, c=3)
dic2 = dict({'a':1, 'b':2, 'c':3})
dic3 = dict({ chr(x + 97) : x + 1 for x in range(3)})
dic4 = dict({'a':1, 'c':3}, b=2)
dic5 = dict({ chr(x + 97) : x + 1 for x in range(2)},c=3)
dic6 = {'a':1, 'b':2, 'c':3}
dic7 = { chr(x + 97) : x + 1 for x in range(3)}
dic1 == dic2 == dic3 == dic4 == dic5 == dic6 == dic7 # => True
引数なしの場合、現在のスコープで有効な名前のリストを取得する。
abc = 1
dir()
# => ['In', 'Out', '_', '__', '___', '__builtin__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', '_dh', '_i', '_i1', '_ih', '_ii', '_iii', '_oh', 'abc', 'exit', 'get_ipython', 'os', 'quit', 'sys']
class SampleClassBase:
class_variable_1 = 1
def __init__(self, name=""):
self.name = name
class SampleClass(SampleClassBase):
class_variable_2 = 1
def __init__(self, name="", age=0):
super().__init__(name)
self.age = age
scb = SampleClassBase()
dir(scb)
# => ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'class_variable_1', 'name']
sc = SampleClass()
dir(sc)
# => ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'class_variable_1', 'class_variable_2', 'name']
a, b = divmod(10, 3) # => a=3, b=1
a, b = divmod(10.0, 3.5) #=> a=2.0, b=3.0
インデックスとイテレーショで得られる要素の組を取得する。
array = ['a', 'b', 'c', 'd']
for i, item in enumerate(array):
print(i, item) # => 0 a 1 b 2 c 3 d
for i, item in enumerate(array, 2):
print(i, item) # => 2 a 3 b 4 c 5 d
a = 1
b = eval('a+1') #=> 2
sourcre = '''
x = 123
y = "abc"
print(x, y)
'''
codeobj = compile(sourcre, 'fileName', 'exec')
exec(codeobj) # => 123 abc
array = [1, 2, 3, 4, 5, 6, 7]
filterd = filter(lambda x: x%2 == 0, array)
# 以下と同じfilterd = (x for x in array if x%2 == 0)
list(filterd) #=> [2, 4, 6]
float() # => 0.0
float("1.23") # => 1.23
float("-1.23E10") # => -12300000000.0
float("Infinity") # => inf
float("-inf") # => -inf
float("nan") # => nan
format(12,"0>8b")
# => 00001100
frozenset() #=> frozenset()
frozenset({'a', 'c', 'a'}) # => frozenset({'a', 'c'})
frozenset(['a', 'c', 'a']) # => frozenset({'a', 'c'})
frozenset({chr(x + 97) for x in range(3) if x != 1}) # => frozenset({'a', 'c'})
class SampleClass:
def __init__(self, name):
self.name = name
sc = SampleClass("taro")
getattr(sc,"name") # => taro
getattr(sc,"num", 0) # => 0
globals()
class SampleClass:
def __init__(self, name):
self.name = name
sc = SampleClass("taro")
hasattr(sc, "name") # => True
hasattr(sc, "num") # => False
hash("a") #=> 7562440111937489460
help() # 対話的な使用
hex(255) #=> 0xff
class SampleClass:
pass
sc = SampleClass()
id(sc) # => 1479001398408
s = input('input string!')
print(s)
int() # => 0
int(1) # => 1
int(2.5) # => 2
int("100", 2) # => 4
int("F0", 16) # => 240
isinstance("abc", str) # => True
isinstance("abc", (str, int)) # => True
isinstance("abc", (float, int)) # => False
class SampleClassBase:
pass
class SampleClass(SampleClassBase):
pass
scb = SampleClassBase()
sc = SampleClass()
isinstance(scb, SampleClassBase) # => True
isinstance(scb, SampleClass) # => False
isinstance(sc, SampleClassBase) # => True
isinstance(sc, SampleClass) # => True
class SampleClassBase:
pass
class SampleClass(SampleClassBase):
pass
scb = SampleClassBase()
sc = SampleClass()
issubclass(SampleClassBase, SampleClassBase) # => True
issubclass(SampleClassBase, SampleClass) # => False
issubclass(SampleClass, SampleClassBase) # => True
issubclass(SampleClass, SampleClass) # => True
items = [1, 2, 3, 4, 5]
it = iter(items)
while True:
try:
item = next(it)
print(item)
except StopIteration:
break
len("abc") # => 3
len(b"abc") # => 3
len((1, 2, 3)) # => 3
len([1, 2, 3]) # => 3
len(range(3)) # => 3
items = list([1, 2, 3, 4, 5])
items = list((1, 2, 3, 4, 5))
items = list(x+1 for x in range(5))
locals()
list(map(lambda x: x * x , [1, 2, 3])) # => [1, 4, 9]
list(map(lambda x,y: x * y , [1, 2, 3, 4], [10, 20, 30])) # => [10, 40, 90]
max(3, 2) # => 3
max(1, 5, 3) # => 5
max([1, 2, 3, 4, 5]) # => 5
max([1, 2, 3, 4, 5], default=0) # => 5
max([], default=0) # => 0
max([]) # => ValueError: max() arg is an empty sequence
view = memoryview(b'abc')
for item in view:
print(item) # => 97 98 99
min(3, 2) # => 2
min(1, 5, 3) # => 1
min([1, 2, 3, 4, 5]) # => 1
min([1, 2, 3, 4, 5], default=0) # => 1
min([], default=0) # => 0
min([]) # => ValueError: min() arg is an empty sequence
it = iter([1, 2, 3])
print(next(it)) # => 1
print(next(it)) # => 2
print(next(it)) # => 3
print(next(it, -1)) # => -1
# print(next(it)) # => StopIteration:
obj = object()
oct(10) => '0o12'
with open('.sample.txt', mode='w', encoding='utf-8') as f:
f.write('あいうえお')
with open('.sample.txt', mode='r', encoding='utf-8') as f:
print(f.read()) # => あいうえお
with open('.sample.txt', mode='a', encoding='utf-8') as f:
f.write('あいうえお')
with open('.sample.txt', mode='r', encoding='utf-8') as f:
print(f.read())# => あいうえおあいうえお
ord('🐍') # => 128013
pow(2, 10) # => 1024 2**10
pow(2, 10 , 100) # => 24 2**10 % 100
print(1, 2, 3) # => 1 2 3
print(1, 2, 3, sep="-") # => 1-2-3
print(1, 2, 3, sep="=",end="\n----\n") # => 1=2=3\n----
with open('.sample.txt', mode='w', encoding='utf-8') as f:
print(1, 2, 3 , file=f)
with open('.sample.txt', mode='r', encoding='utf-8') as f:
print(f.read()) # => 1 2 3
class SampleClass:
def __init__(self):
self._name = None
def get_name(self):
return self._name
def set_name(self, value):
self._name = value
def del_name(self):
del self._name
name = property(get_name, set_name, del_name, "name property")
デコレータ@property
で読取専用のプロパティを定義できる。
class SampleClass:
def __init__(self, name):
self._name = name
@property
def name(self):
return self._name
sc = SampleClass("taro")
sc.name # => taro
setter,deleterもデコレートできる。
class SampleClass:
def __init__(self):
self._name = None
@property
def name(self):
return self._name
@name.setter
def name(self, value):
self._name = value
@name.deleter
def name(self):
del self._name
sc = SampleClass()
sc.name = "taro"
print(sc.name) # => taro
range(終了する数値)
0から終了する数値-1までの整数range(開始数値, 終了する数値)
開始数値から終了する数値-1までの整数range(開始数値, 終了する数値, ステップ)
開始数値から終了する数値-1までの整数をステップ数刻みfor i in range(5):
print(i)
#=> 0 1 2 3 4
for i in range(2, 12):
print(i)
#=> 2 3 4 5 6 7 8 9 10 11
for i in range(2, 12, 4):
print(i)
#=> 2 6 10
repr(1) # => 1
repr([1, 2, 3]) # => [1, 2, 3]
list(reversed("abc")) # => ['c', 'b', 'a']
list(reversed([1, 2, 3])) # => [3, 2, 1]
list(reversed(range(3, 8, 2))) # => [7, 5, 3]
round(123.456789,2) # => 123.46
round(123.456789,1) # => 123.45
round(123.456789,0) # => 123.0
round(123.456789,-1) # => 120.0
round(123.456789,-2) # => 100.0
set() #=> set()
set({'a', 'c', 'a'}) # => set({'a', 'c'})
set(['a', 'c', 'a']) # => set({'a', 'c'})
set({chr(x + 97) for x in range(3) if x != 1}) # => set({'a', 'c'})
class SampleClass:
def __init__(self, name=""):
self.name = name
sc = SampleClass()
setattr(sc, "name", "taro")
sc.name #=> taro
items = ["a", "b", "c", "d", "e", "f", "g"]
items[slice(3)] # => ['a', 'b', 'c'] items[:3]と同じ
items[slice(2, 6, 3)] # => ['c', 'f'] items[2:6:3]と同じ
items = ["a", "b", "A", "c", "B", "C"]
sorted(items) # => ['A', 'B', 'C', 'a', 'b', 'c']
sorted(items,key=str.lower) # => ['a', 'A', 'b', 'B', 'c', 'C']
sorted(items,key=lambda x: ord(x)) # => ['A', 'B', 'C', 'a', 'b', 'c']
class StaticClassSample:
@staticmethod
def static_method(n):
print(n)
scs = StaticClassSample()
scs.static_method(1) # => 1
StaticClassSample.static_method(2) # => 2
str(123) # => '123'
sum([1, 2, 3, 4]) # => 10
sum(x**2 for x in range(4)) # => 14
sum([1, 2, 3, 4], 100) # => 110
class SampleClassBase:
def __init__(self, name=""):
self.name = name
def print_name(self):
print(self.name)
class SampleClass(SampleClassBase):
def __init__(self, name="", age=0):
super().__init__(name)
self.age = age
def print_name_age(self):
super().print_name()
print(self.age)
sc = SampleClass("taro", 12)
sc.print_name_age() # => taro 12
tuple([1, 2, 3]) # => (1, 2, 3)
tuple((1, 2, 3)) # => (1, 2, 3)
tuple(range(1,4)) # => (1, 2, 3)
type("abc") is str # => True
type(123) is int # => True
class SampleClassBase:
pass
class SampleClass(SampleClassBase):
pass
sc = SampleClass()
type(sc) is SampleClass # => True
type(sc) is SampleClassBase # => False
vars()
items1 = [1, 2, 3, 4]
items2 = ["a", "b", "c"]
zipped = zip(items1, items2)
items = list(zipped) # => [(1, 'a'), (2, 'b'), (3, 'c')]
for x, y in zip(items1, items2):
print(x, y) # => 1 a 2 b 3 c
importで呼び出される関数。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント