pythonの復習:基本的な操作

pythonの基本的な操作についてまとめます。出力、繰り返し、リスト、辞書、関数、便利な記述法、クラスについてです。

 

以下の本を参考にしました。

book.mynavi.jp

 

1:pythonの復習:出力、繰り返し

2:pythonの復習:リスト、辞書など

3:pythonの復習:関数、便利な記述法

4:pythonの復習:classについて

 

この順番で説明します。

 

 

   1:pythonの復習:出力、繰り返し

print、input、if、elif、else、pass、for、range、break、continue、変数関数についてです。

#pythonの復習1、出力、繰り返し

grade=2
old=19
print("学部",grade,"年です.",end="")
print("よろしくお願いします") #学部2年です.よろしくお願いします
grade_str=str(grade) print("学部"+grade_str+"年です.") #学部2年です. print("年齢:{0},学年:{1}".format(old,grade)) #年齢:19,学年:2 print("{first}+{second}={result}".format(first=3,second=2,result=5)) #3+2=5
name=input("hello") #helloと表示される。入力できる。nameに代入される。 number=2 #if,elif,else if number%10==0:print("10で割れる") elif number%5==0:print("5で割れる") else:print("わからん")
n=5 #pass、何もしない if n==4:pass else:print(n) for a in range(5):print(a,end="") #01234 for a in range(1,6):print(a,end="") #12345 for a in range(1,6,2):print(a,end="") #135 for a in range(10): print(a,end="") #0123 if a==3:break for a in range(5): print(a,end="") if a%2==0:continue print("odd",end="") #01odd23odd4 a=30 #関数みたいにいろいろできる a=a.__add__(5) #a=35 print(dir(a)) #使える関数一覧が出てくる

 

   2:pythonの復習:リスト、辞書など

 list、enumerate、del、タプル、辞書、keys、values、itemsなどです。

#pythonの復習2、リスト、辞書など

list1=[1,3,5,7]
for a in list1:
    print(a,end="") #1357
    
list2=["a","b","c"]
for a,b in enumerate(list2): #indexと値が入る
    print(a,b)

a=[1,2,3]
a+=[4,5,6] #a=[1,2,3,4,5,6]
print(a[1:3]) #[2,3]
print(a[::2]) #[1,3,5]
print(a[1:5:2]) #[2,4]

a=[1,2,3,4,5,6]
del a[2] #a=[1,2,4,5,6]

a={1,2,3,4}
print(1 in a) #True
b={1,2}
print(a-b) #{3,4}
c={3,4,5}
print(a|c) #{1,2,3,4,5}
print(a&c) #{3,4}

dic={1:11,2:22,3:33}
print(dic[1]) #11
print(list(dic.keys())) #[1,2,3]
print(list(dic.values())) #[11,22,33]
print(list(dic.items())) #[(1,11),(2,22),(3,33)]
for a,b in dic.items():print(a,b) #keyとvalueが入る

a,b,c=[1,2,3]
print(a,b,c) #1 2 3

 

   3:pythonの復習:関数、便利な記述法

 args、lambda、import、map、filter、内包表記などです。

#pythonの復習3、関数、便利な記述法

def sumargs(*args): #引数任意の関数
    result=0
    for a in args:result+=a
    return result
print(sumargs(1,2,3,4,5))#15

def argsargs(**args):return args #引数が辞書に入る
print(argsargs(a=1,b=2,c=3)) #{'a': 1, 'b': 2, 'c': 3}
print(argsargs(a=12,b=13,c=14)) #{'a': 12, 'b': 13, 'c': 14}

x=lambda x:x*2 #気軽に関数定義
print(x(2)) #4
print(x(3)) #6

list3=[1,2,3,4,5] #関数をlistの中身全部に実行するmap
x2=lambda x:x**2
print(list(map(x2,list3))) #[1,4,9,16,25]

x3=lambda x:x%2==0 #フィルターをlistの中身全部に実行filter
print(list(filter(x3,list3))) #[2,4]

from chainer import Link #chainerから選んでimport
from matplotlib import * #matplotから中身全部import

data=[i*2 for i in range(5)] #data=[0,2,4,6,8]
data2=list(map(lambda x:x*2,range(5))) #data2=[0,2,4,6,8]
data3=[i for i in range(5) if i%2==0] #data3=[0,2,4]

base=[1,2,3]
data4=[(x,y) for x in base for y in base]
#data4=[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
data5=[(x,y) for x in base for y in base if x!=y]
#data5=[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]

 

    4:pythonの復習:classについて

class、__init__、継承、__call__などについてです。

#pythonの復習4、classについて

class Student:
    def __init__(self,id,score=0): #__init__で初期化
        self.id=id
        self.score=score
    def setscore(self,score):self.score=score
    def getscore(self):return self.score

class Calc: #classを使うclass
    def __init__(self):self.students=[]
    def add(self,student):self.students.append(student)
    def ave(self):
        result=0
        for i in self.students:result+=i.getscore()
        result=result/len(self.students)
        return result

s1=Student(1,50) #calcに生徒のデータを追加して、成績の平均を求めることができる
s2=Student(2,60)
s3=Student(3,80)
calc=Calc()
calc.add(s1)
calc.add(s2)
calc.add(s3)

class A:
    def printa(self):print("a")
class B:
    def printb(self):print("b")
class C:
    def printc(self):print("c")
class D(A,B,C): #classの継承
    def printd(self):print("d")
    def printall(self):
        self.printa()
        self.printb()
        self.printc()
        self.printd()
d=D()
d.printa()
d.printd()
d.printall()

class Game:
    def __init__(self):
        self.score=100
        self.count=3
    def start(self):print("start")

class Cardgame(Game): #classの継承
    def __init__(self):
        super().__init__()
        self.max=53

    def next(self):print("next turn")
first=Cardgame()
print(first.score)
print(first.max)
first.next()

class List_practice: #__call__でクラス自身を関数みたいに使える
    def __init__(self,length):self.list1=[i for i in range(length)]
    def __call__(self,number):print([i*number for i in self.list1])
    def add(self,number):self.list1.append(number)
    
mylist=List_practice(5)
mylist(2) #[0,2,4,6,8]
print(mylist.list1) #[0,1,2,3,4]

 

pythonの復習をしました。

アドバイス、改善点、質問などがあればお願いします。