2
1

Python学んでみた 第4回(関数とラムダ〜例外処理)

Last updated at Posted at 2024-03-03

はじめに

初めまして!
エンジニアになって数年、今まで本を読むだけでしたが、もっとプライベートで楽しみながら成長したい!自分が学んだ足跡を残していきたい!と思い記事を書きました!
最終的には自在に開発できるようになりたいと思っています。:triumph:
いろいろな記事を参考にさせてもらっています。:bow_tone2:
その中でもこれってどういう意味?とかつまづいたところを念入りに書いていこうかと思います。:fist:

今回の目的

前回の続きです。

使用したものや事前準備

・Macbook Pro
・Python
・Anaconda
・jupyter notebook

Python

関数とラムダ

関数

ダブルクォーテーションで囲ったところはDocになります。関数もオブジェクトです。

def add(x,y):
    """加算
    add(2,4)は6を返す
    """
    return x + y 
add(2,4) # 6

Docとして記載されていることを確認します。

add?

スクリーンショット 2024-03-03 19.01.26.png

ラムダ

単一行であれば記述可能です。

adder2 = lambda x, y: x + y
adder2(42, 10) # 52

ラムダを使ったソート条件

通常の昇順ソート

names = ['taro','jiro','saburo','shiro']
sorted(names) # ['jiro', 'saburo', 'shiro', 'taro']

ラムダを使ったソート(文字数の昇順)

names = ['taro','jiro','saburo','shiro']
sorted(names, key=lambda name: len(name)) # ['taro', 'jiro', 'shiro', 'saburo']

ラムダを使ったソート(文字数の降順)
リバース使用

sorted(names, key=lambda name: len(name),reverse=True) # ['saburo', 'shiro', 'taro', 'jiro']

モジュールとパッケージ

モジュール

pyファイル単位。下記記述で関数や変数へアクセスできるようになります。

import モジュール名

パッケージ

モジュールを格納しているディレクトリ。
_init_.pyは省略しない。

import パッケージ名.モジュール名

例:add関数をsample.pyに作成し呼び出し

import sample
sample.add(1,2) # 3

使える関数を改めて確認したい時

dir(sample)

クラス

オブジェクト指向としては必須ですが今回はそこまで深くならなかったので割愛。
下記はコンストラクタでValue(メンバ変数)を作成・引数の値で初期化し、addで加算結果を返却しています。

class MyInt:
    '''Docstring for MyInt'''
    def __init__(self, val): # コンストラクタ
        self.value = val
    def add(self, y): # 自分のインスタンスを引数に含めるため第一引数にselfは必須
        """加算
        add(2,4)は6を返す
        """
        return self.value + y # ex:2+4=6
num = MyInt(30)
num.add(2) # 32

例外処理

スクリーンショット 2024-03-03 20.39.38.png

try文で対応します。上記の赤文字が例外エラー名、キャメルケースで表示されます。
下記、実行結果は"missing"になります。

names = ['taro','jiro','saburo','shiro']
try:
    names.find('ichiro')
except AttributeError:
    print("missing")

明示的な呼び出し方

raise AttributeError("missing") # AttributeErrorが呼び出されます。

続き

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1