新年目標として本格的にバックエンド言語を扱い、フロントエンドとの繋がりを確実に作れることにした。最近、仕事で使っているpythonが面白し、会社の先輩からもpythonは初心者が理解し比較的に簡単な言語だと聞いた。
udemyのRestApis with Flask and Python(https://www.udemy.com/share/101sjY3@PBNEDColeMflnyBIaXXCd_dUSPz0Ew8jvSIEsmxgDQ2hjv_L8GCnC9keSptFVBm08g==/)を勉強を完了した後、Reactとのつながりを設計することに決まった。結構pythonの基礎からFlask, Docker, SQLAlquemy回りをしっかり優しく教えてくれるのでおすすめです。
最初に学んだ言語がRubyだったので、色々似ていることに気づいたが、一番慣れているJavaScriptの差があって迷いの中。
Pythonの基礎
#python types
list = ["Bob", "Rolf", "Anne"]
tuple = ("Bob", "Rolf", "Anne") # <-何を入れたり外したりすることができない
set = {"Bob", "Rolf", "Anne"}
#loopの使い方
numbers = [1,3,5]
doubled = [num * 2 for num in numbers]
#下のコードより上の整理されたコードを使うこと
for num in numbers:
doubled.append(num*2)
#dictionaryでkey,valueの値を取得する方法
student_attendancd = {"Rolf": 96, "Lena": 100}
for student, attendance in student_attendance.items():
print(f"{student} : {attendance}")
student_attendence.values()
#mapの使い方
def double(x):
return x*2
sequence = [1,2,3,4]
doubled = [double(x) for x in sequence] #listcomprehension
doubled = map(double, sequence)
#dictionaryを使う方法
users = [(0, "bob"), (1, "lena")]
result = {user[1]: user for user in users}
print(result)
{
"bob": (0, "bob"),
"lena": (1, "lena")
}
#関数で引数を渡す方法
def both(*args, *kwargs)
print(args)
print(kwargs)
both(1,3, 5, name="lena", hobby='dancing')
#classを使い方
class Student:
def __init__(self, name):
self.name = name
self.grades = (90, 35, 62)
def average(self):
return sum(self.grades) / len(self.grades)
#classmethodを使う方法
class Book:
TYPES = ("hard cover", "soft cover")
def __init__(self, name, book_type):
self.name = name
self.book_type = book_type
@classmethod
def hard_cover(cls, name)
return Book(name, Book.TYPES[0])
@classmethod // better way
def hard_cover(cls, name)
return cls(name, cls.TYPES[0])
#first class functions -関数は引数だ。
import functools
user = {"name": "Tom", "access_level": "admin"}
def make_secure(func):
@functools.wraps(func)
def secure_function(*args, **kwargs):
if user["access_level"] == "admin":
return func(*args, **kwargs)
else:
print("you dont have any access right")
return secure_function
@make_secure
def get_password(panel):
if panel == "admin":
return "1234"
elif panel == "billing":
return "super_secure_password"
print(get_password("admin"))
print(get_password("billing"))
udemyで聴く時はちゃんと理解したが、もう一回振り返そうとしたが、もう記憶にあまりなくてびっくり。なんとなく何回の振り返しや実際のアプリ作りが学びの一番大事なことだと思います。
Dockerやflaskについては、まだまだ後で🍋