SlideShare uma empresa Scribd logo
1 de 14
pf-6. 式の抽象化と関数
(Python 入門,Google Colaboratory を使用)
(全8回)
URL: https://www.kkaneko.jp/pro/pf/index.html
1
金子邦彦
関数
2
• この関数の本体は
「return a * 1.1」
• この関数は,式「a * 1.1」に,名前 foo を付
けたものと考えることもできる
式の抽象化
3
類似した複数の式
変数 a を使って,複数
の式を1つにまとめる
(抽象化)
a * 1.1
100 * 1.1
150 * 1.1
400 * 1.1
100 * 1.1
150 * 1.1
400 * 1.1
変数を含む式
a * 1.1
関数
def foo(a):
return a * 1.1
式
この関数は,式「a *
1.1」に,名前 foo を
付けたものと考えるこ
ともできる
関数
5
類似した複数の式
変数 a を使って,複数
の式を1つにまとめる
(抽象化)
a * 1.1
100 * 1.1
150 * 1.1
400 * 1.1
式「a * 1.1」を含む
関数 foo を定義
関数 foo を使用.
100, 150, 400 は引数
式の抽象化と関数
6
類似した複数の式
関数の定義と使用
同じ
実行結果になる
抽象化前 抽象化後
実行結果
抽象化がなぜ大切なのか
• プログラミングでの根本問題は何でしょうか?
• 誤り(バグ)の無いプログラムの作成
• プログラミングの一番の基礎は何でしょうか?
• 抽象化を行うこと.
• 抽象化により,繰り返し同じことを書くことが減り,
バグを防げる.
• プログラムの変更も簡単に.
7
演習
資料:9 ~ 13
【トピックス】
• 関数
• def
8
① Google Colaboratory のWebページを開く
https://colab.research.google.com
9
② 「ファイル」で,「ノートブックを新規作成」を選ぶ
③ Google アカウントでのログインが求められたときはログ
インする
10
④ コードセルを新規作成し,Python プログラムを入れる
def foo(a):
return a * 1.1
print(foo(100))
print(foo(150))
print(foo(400))
⑤ 実行結果を確認
11
すべて半角文字
「*」は掛け算の記号
字下げ.
(ここでは,半角の空白を 2つ)
def foo(a) の直後に「:」
• これでは動かない
12
正しくない字下げ 正しい字下げ
ここでは,半角の空白を 2つ
⑥ コードセルを新規作成し,Python プログラムを入れる
import scipy.optimize
def foo(x):
return 4 * x + 1
print( scipy.optimize.fsolve(foo, 10) )
⑦ 実行結果を確認
13
字下げ.
(ここでは,半角の空白を 2つ)
def foo(x) の直後に「:」
4x + 1 = 0 を解く
(Python の scipy.ptimize を利用)
Python 関連ページ
• Python まとめページ
https://www.kkaneko.jp/tools/man/python.html
• Python プログラミングの基本
Python Tutor, VisuAlgo, Code Combat を使用
https://www.kkaneko.jp/pro/po/index.html
• Python プログラム例
https://www.kkaneko.jp/pro/python/index.html
• 人工知能の実行(Google Colaboratory を使用)
https://www.kkaneko.jp/ai/ni/index.html
• 人工知能の実行(Python を使用)(Windows 上)
https://www.kkaneko.jp/ai/deepim/index.html 14

Mais conteúdo relacionado

Mais de kunihikokaneko1

mi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンmi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンkunihikokaneko1
 
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線kunihikokaneko1
 
mi-6. 画像分類システム
mi-6. 画像分類システムmi-6. 画像分類システム
mi-6. 画像分類システムkunihikokaneko1
 
mi-5. ディープラーニング
mi-5. ディープラーニングmi-5. ディープラーニング
mi-5. ディープラーニングkunihikokaneko1
 
mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習kunihikokaneko1
 
mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例kunihikokaneko1
 
mi-1. 人工知能の概要
mi-1. 人工知能の概要mi-1. 人工知能の概要
mi-1. 人工知能の概要kunihikokaneko1
 
Coding Standards of C++ について
 Coding Standards of C++ について  Coding Standards of C++ について
Coding Standards of C++ について kunihikokaneko1
 
co-3. サブクラス、継承
co-3. サブクラス、継承co-3. サブクラス、継承
co-3. サブクラス、継承kunihikokaneko1
 
co-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しco-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しkunihikokaneko1
 
co-1. クラスとメソッド
 co-1. クラスとメソッド co-1. クラスとメソッド
co-1. クラスとメソッドkunihikokaneko1
 
Visual Studio 2013 の起動とプロジェクトの新規作成
Visual Studio 2013 の起動とプロジェクトの新規作成Visual Studio 2013 の起動とプロジェクトの新規作成
Visual Studio 2013 の起動とプロジェクトの新規作成kunihikokaneko1
 
cp-15. 疑似乱数とシミュレーション
cp-15. 疑似乱数とシミュレーションcp-15. 疑似乱数とシミュレーション
cp-15. 疑似乱数とシミュレーションkunihikokaneko1
 
cp-14. ファイル処理
cp-14. ファイル処理cp-14. ファイル処理
cp-14. ファイル処理kunihikokaneko1
 

Mais de kunihikokaneko1 (20)

mi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンmi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョン
 
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
 
mi-6. 画像分類システム
mi-6. 画像分類システムmi-6. 画像分類システム
mi-6. 画像分類システム
 
mi-5. ディープラーニング
mi-5. ディープラーニングmi-5. ディープラーニング
mi-5. ディープラーニング
 
mi-4. 機械学習
mi-4. 機械学習mi-4. 機械学習
mi-4. 機械学習
 
mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習
 
mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例
 
mi-1. 人工知能の概要
mi-1. 人工知能の概要mi-1. 人工知能の概要
mi-1. 人工知能の概要
 
kaneko202304.pptx
kaneko202304.pptxkaneko202304.pptx
kaneko202304.pptx
 
Coding Standards of C++ について
 Coding Standards of C++ について  Coding Standards of C++ について
Coding Standards of C++ について
 
co-3. サブクラス、継承
co-3. サブクラス、継承co-3. サブクラス、継承
co-3. サブクラス、継承
 
co-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しco-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出し
 
co-1. クラスとメソッド
 co-1. クラスとメソッド co-1. クラスとメソッド
co-1. クラスとメソッド
 
Visual Studio 2013 の起動とプロジェクトの新規作成
Visual Studio 2013 の起動とプロジェクトの新規作成Visual Studio 2013 の起動とプロジェクトの新規作成
Visual Studio 2013 の起動とプロジェクトの新規作成
 
extern の意味
extern の意味extern の意味
extern の意味
 
cp-15. 疑似乱数とシミュレーション
cp-15. 疑似乱数とシミュレーションcp-15. 疑似乱数とシミュレーション
cp-15. 疑似乱数とシミュレーション
 
cp-14. ファイル処理
cp-14. ファイル処理cp-14. ファイル処理
cp-14. ファイル処理
 
cp-13. 構造体
cp-13. 構造体cp-13. 構造体
cp-13. 構造体
 
cp-12. 文字列
cp-12. 文字列cp-12. 文字列
cp-12. 文字列
 
cp-11. ポインタ
cp-11. ポインタcp-11. ポインタ
cp-11. ポインタ
 

pf-6. 式の抽象化と関数