Pythonの記述

プログラミング Python

Pythonの基本的な記述などを紹介します。

実際の記述

コメント

# メモ書き

コンソールに表示

print("文字列など")

変数

name = "代入する値"
# 2単語以上の変数は「_」で繋げる
# 同じように再定義することで値を更新できる

型変換

# 数値を文字列に
str(26)

# 文字列を数値に
int ("300")

リスト(配列みたいなもの)

# 複数のデータをまとめて保管できる
# 通常、変数にリストを代入して扱う
# 文字データと数値データを同じリストに入れることもできる
names = ["Data1", "Data2", "Data3"]

# リストの中身を選択して表示
print(name[1]) #「Data2」と表示される

# リスト要素の更新
name[0] = "DataA"

# リストの一番最後に要素の追加
name.append("Data4")

辞書(オブジェクトみたいなもの)

# リストと似ているが、辞書はキーと呼ばれる名前で管理する
colors = {"re":"red", "ye":"yellow", "gr":"green"}
print(colors[gr]) #「green」が表示される

# 辞書の更新
colors["re"] = "red purple"

# 辞書の追加
colors["pi"] = "pink"

条件分岐

numberA = 5
numberB = 10

if numberA == 5 and numberB >= 8:
  print("OK")
elif numberA == 5 or numberB >= 8:
  print("soso")
elif not numberB <= 5:
  print("NO")
else :
  print("Error")

# 条件式は「5 < numberA < 10」のようにして実質的に複数の条件を同時に指定できる

ループ処理(for)

# リストの中身それぞれに「です」を付けて表示
names = ["Data1", "Data2", "Data3"]

for name in names:
  print(name + "です")

# 辞書の中身それぞれに「~は~です」を付けて表示
colors = {"re":"red", "ye":"yellow", "gr":"green"}

for color_key in colors:
  print(color_key + "は" + colors[color_key] + "です") #「reはredです」のようにそれぞれ表示

# 5回処理を繰り返す(下記の例では0~4の数字が表示される)
for number in range(5):
  print(number)

# 5回処理を繰り返す(下記の例では5~9の数字が表示される)
for number in range(5,10):
  print(number)

# 下記の例では1から2ずつ増加して10以上になる前に終了します
for number in range(1,10,2):
  print(number) #「1 3 5 7 9」が表示される

#条件によって処理を途中停止
for number in range(5):
  print(number) #0~3が表示される
  if number == 3:
    break

#条件によって処理をスキップ(continue以下の処理がスキップ)
for number in range(5):
  if number % 2 == 0:
    print("偶数", number)
    continue
  print("奇数", number)

ループ処理(while)

# forと違う点は条件式で繰り返し回数を決める点です
# そのため、値の更新が必須です。無限ループにならないように注意しましょう
number = 4

while number <= 10:
  print(number)
  number += 1

コンソールからの入力を受け付ける

get_data = input("数字を入力してください")
print(get_data +  "が入力されました")

# inputで受け取った値はすべて文字列型になるため、必要に応じて「int」で数値型にする

小数点を四捨五入

number = 5*0.5
round_number = round(number)

print(round_number)

クラスとインスタンス

商品ページのような同じつくりのアイテムにおいて、そのもととなる作りをクラスと呼び、クラスをもとに作成した一つ一つのアイテムをインスタンスと呼ぶ

クラスの記述方法(処理内容なし)

# クラス名は大文字で始める

class Contents:
  pass //処理内容を記載、処理がない場合「pass」

contents1 = Contents() # 変数にクラスを代入
contents1.name = "りんご" # インスタンス変数の「name」
contents1.price = 250 # インスタンス変数の「price」

print(contents1.name) 

# 出力結果
りんご

クラスの記述方法(関数による処理を追加)その1

# クラスの中で定義した関数を「メソッド」と呼ぶ
class Contents:
  def morning(self): # クラス内の関数の1つ目は必ず「self」
    print("おはよう")

contents1 = Contents() # 変数にクラスを代入
contents1.morning() 

# 出力結果
おはよう

クラスの記述方法(関数による処理を追加)その2

class Contents:
  def item(self): # クラス内の関数の1つ目は必ず「self」
    print("商品名:" + self.name)
    print("価格:" + str(self.price)) #「str」で数値を文字列に

contents1 = Contents() # 変数にクラスを代入
contents1.name = "りんご" # インスタンス変数の「name」
contents1.price = 250 # インスタンス変数の「price」
contents1.item() 

contents2 = Contents() # 変数にクラスを代入
contents2.name = "いちご" # インスタンス変数の「name」
contents2.price = 600 # インスタンス変数の「price」
contents2.item() 

# 出力結果
商品名:りんご
価格:250
商品名:いちご
価格:600

クラスの記述方法(関数による処理を追加)その3

class Contents:
  def sum(self, count): # クラス内の関数の1つ目は必ず「self」
    return self.price * count

contents1 = Contents() # 変数にクラスを代入
contents1.price = 250 # インスタンス変数の「price」
sum_item = contents1.sum(5)
print("合計:" + sum_item + "円")

# 出力結果
合計:1250円

クラスの記述方法(__init__メソッドの利用)その1

# このメソッドはインスタンス生成と同時に自動で実行される
class Contents:
  def __init__(self):
    print("支払金額")
  def sum(self, count): # クラス内の関数の1つ目は必ず「self」
    return self.price * count

contents1 = Contents() # 変数にクラスを代入、__init__実行
contents1.price = 250 # インスタンス変数の「price」
sum_item = contents1.sum(5)
print("合計:" + sum_item + "円")

# 出力結果
支払金額
合計:1250円

クラスの記述方法(__init__メソッドの利用)その2

# このメソッドはインスタンス生成と同時に自動で実行される
class Contents:
  def __init__(self):
    self.name = "りんご"

contents1 = Contents() # 変数にクラスを代入、__init__実行
print(contents1.name)

# 出力結果
りんご

クラスの記述方法(__init__メソッドの利用)その3

# このメソッドはインスタンス生成と同時に自動で実行される
class Contents:
  def __init__(self, name):
    self.name = name

contents1 = Contents("いちご") # 変数にクラスを代入、__init__実行
print(contents1.name)

# 出力結果
いちご

関数を作る

記述方法

# 関数の定義
def 関数名(引数):
  実行処理

# 関数の呼び出し
関数名(引数)

実際の記述

# プログラム
def program_name(yourname, fornumber):
  print(yourname + "さん")
  for fornumber in range(fornumber):
    print(fornumber+1 + "回目")

program_name("ヤマモト", 3)

# 実行結果
ヤマモトさん
1回目
2回目
3回目

引数に初期値を設定することもできる

# プログラム
def program_name(yourname="ゲスト", fornumber=1):
  print(yourname + "さん")
  for fornumber in range(fornumber):
    print(fornumber+1 + "回目")

program_name("ヤマモト")

# 実行結果
ヤマモトさん
1回目

returnを使って値を渡す(戻り値)

# プログラム
def program_name(number1, number2):
  return number1 + number2

sum = program_name(3, 5)
print(sum)

# 実行結果
8

モジュール(複数のファイルに分割する)

関数を別のファイルに分割する場合

まず、center.pyファイルで下記のようなコードが記述されていたとします。

# center.py

def name1(yourname):
  print("はじめましょう、" + yourname + "さん")

def name2(myname):
  print("私の名前は" + myname + "です")

name1("ゲスト")
name2("ヤマモト")

このうちの作成した関数部分を別のファイルに移したい場合を考えます
関数部分を移すファイルを今回はutils.pyとして作成して移動します

# utils.py

def name1(yourname):
  print("はじめましょう、" + yourname + "さん")

def name2(myname):
  print("私の名前は" + myname + "です")

つぎに、center.pyで、このファイルを読み込みます
また、ファイルを参照する関数部分を下記のように書き換えます

# center.py

import utils

utils.name1("ゲスト")
utils.name2("ヤマモト")

クラスを別のファイルに分割する場合

まず、center.pyファイルで下記のようなコードが記述されていたとします。

# center.py

class Contents:
  def __init__(self, name, price):
    self.name = name
    self.price = price

contents1 = Contents("みかん", 100) # 変数にクラスを代入
print(contents1.name)

このうちの作成したクラス部分を別のファイルに移したい場合を考えます
関数部分を移すファイルを今回はitem_class.pyとして作成して移動します

# item_class.py

class Contents:
  def __init__(self, name, price):
    self.name = name
    self.price = price

つぎに、center.pyで、このファイルを読み込みます
また、ファイルを参照する関数部分を下記のように書き換えます

# center.py

import item_class

contents1 = item_class.Contents("みかん", 100) # 変数にクラスを代入
print(contents1.name)

これ以外にも、下記のように記述すればクラスだけを呼び出すこともできます

# center.py

from item_class from Contents

contents1 = Contents("みかん", 100) # 変数にクラスを代入
print(contents1.name)

ライブラリ

先ほど作成した、便利な機能を切り出してまとめたモジュールですが、Pythonでは便利な機能をまとめたモジュールがすでに用意されており、それを利用することもできます
これをPython標準ライブラリと呼びます

ライブラリの使い方

試しに、「random」という乱数を生成するライブラリを利用して、1~10の中からランダムな数字を表示するプログラムを作成しましょう

import random

random_number = random.randit(1,10)
print(random_number)

代表的なライブラリの紹介

基本

os
作業環境に関連する機能を使う
ディレクトリの新規作成、ファイル操作、作業ディレクトリの表示などができる

pip
Pythonで利用するパッケージ管理システム
WebAPIで必要なパッケージなどをまとめてインストールして管理できる

sys
プログラミング言語を機械語に翻訳しながら実行する環境に関することがまとめられている

Pillow
画像処理をする
画像の拡大縮小など、基本的な操作をすることができる
よる高度な処理をしたい場合には「OpenCV」がおすすめ

文字や数値の活用

json
汎用性の高いJSON形式のテキストを扱える

re
正規表現を利用する
文字列による検索や文字列の置き換えなどが可能

random
ランダムな整数を生成する

日時関連

datetime
日付や時間を扱う
現在時刻や、日付同士の計算を行うことができる

dateutil
年単位の日付や時刻の扱いが可能
うるう年の処理などができる

calender
カレンダーを扱える
カレンダーをテキストやHTMLとして利用できる

演算・データ解析関連

math
数学的な演算を行う
指数関数や三角関数、円周率などを用いた計算ができる

Numpy
科学技術計算をする
具体的には機械学習、画像処理、音声処理など

sklearn
機械学習を行う
最近はやりのAIを利用したい場合にも重宝する

pandas
データ解析を行う
データをグラフ化したりデータの並び替えなどデータを扱いやすくできる

matplotlib
データの可視化を行う
3Dグラフを含め、様々なグラフの作成ができる

コメント

タイトルとURLをコピーしました