freks blog

Pythonはじめのメモ

少しPythonを触ったのでメモです

ファイルの先頭

# coding: utf-8

インデント

スペース4つ or タブ

出力

print('Hello')
# Hello
print('Hello', 'World')
# Hello World
print('Hello', 'World', end="!!")
# Hello World!!

# 改行しない
print('Hello', 'World', end="")

コメントアウト

# one line

'''
block comment out
'''

代入

num = 10

if文

# インデントでブロックになる
if num < 10:
    print('under 10')
elif num < 20:
    print('under 20')
else:
    print('Hello')

ランダム生成

import random

num = random.random()
# 0-1 random

num = random.randint(1, 100)
# 1-100 random

日付

import datetime
print(datetime.date.today())
# 2018-07-28

for

for i in range(5, 10):
    print(i)

標準入力

word = input()

リスト

list = ["number", 100, 200]
count = len(list)
list.append("sample") # add
list.pop(1) # delete

リストのループ

for v in list:
    print(v)

# indexを使う
for (i, v) in enumerate(list)
    print(str(i) + ": " + v)

リストのソート

# stringは文字コード順になる
sorted(list)
sorted(list, reverse=True)

辞書

d = {"one": 1, "two": 2}
len(d) # size

辞書のループ

for i in d:
    print(d[i])

for i, v in d.items():
    print("i: " + i + " v:" + v)

辞書のソート

# keyでソートされリストが返る
sorted(d)
sorted(d, reverse=True)
# ['one', 'two']

# keyでソートされタプルが返る
sorted(d.items)
# [('one', 1), ('two', 2)]

タプル

リストっぽいけど、内容の変更ができない

多次元リスト

list = [[1,2,3], [4,5,6]]

# add
list.append([7,8,9])

# remove
del list[0]

リストの作成

num = [i * 2 for i in range(10)]
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
num = [[1 for i in range(3)] for j in range(4)]
# [[1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1]]

関数

def say_hello():
    print("hello")

def calc(x, y):
    return x + y

関数の引数

# デフォルト引数
def say(greeting = "hello"):
    print(greeting)

# キーワード引数、順番を自由にできる
def say(name = "someone", greeting = "hello"):
    print(greeting = "ora", name="Hose")

# リストを渡す

def say(*list):
    for greeting in list:
        print(greeting)

say(["ora", "hello"])

# 辞書を渡す
def say(**dic):
    for name, greeting in dic.items():
        print(name + " < " + greeting)

say(Hose="ora", Ben="hello")

クラス

クラス名は最初は大文字

# 引数に自身オブジェクトのselfが必要
class Person:
    power = 100 # class変数

    # constructor
    def __init__(self, name):
        self.name = name # instance変数
        self.__age = 20 # private変数

    def say(self, hello = "hello"):
        self.__lose_power()
        print(self.name + " < " + hello)

    def get_power(self):
        return Person.power

    def __lose_power(self):
        Person.power -= 10

taro = Person("Taro")
taro.say()
print(taro.get_power())