ユーザー自身によって定義できる「関数」(サブルーチンやファンクション定義に相当する)
def 関数名 ( 引数 ):
←字下げ→関数の処理の内容
←字下げ→return( 戻り値 )
関数を使う処理
・ 関数を使う(参照する)処理が実行される前に定義(Pythonはインタプリタで処理)
・ 変数はローカル(同じ関数定義の中だけで値が保持される)
・ グローバル変数(関数定義の外側の変数)を参照・変更したい場合は、global文を使う
global文
複数の戻り値は、タプル型で戻る
特許に関する事例研究・セミナー資料・ツール
ユーザー自身によって定義できる「関数」(サブルーチンやファンクション定義に相当する)
def 関数名 ( 引数 ):
←字下げ→関数の処理の内容
←字下げ→return( 戻り値 )
関数を使う処理
・ 関数を使う(参照する)処理が実行される前に定義(Pythonはインタプリタで処理)
・ 変数はローカル(同じ関数定義の中だけで値が保持される)
・ グローバル変数(関数定義の外側の変数)を参照・変更したい場合は、global文を使う
global文
複数の戻り値は、タプル型で戻る
他の言語でいう「配列」に相当
リスト:[要素1,要素2,・・・]:先頭から順に、0, 1, ・・・とインデックスされる
タプル:(要素1,要素2,・・・):要素の変更、追加、削除、並べ替えなどできない
辞書:{キー1:要素1,キー2:要素2,・・・}:キーと値との対の集合
1.リスト
1.1 インデックスによる指定
list = [A, B, C, ・・・Z](要素数=26個)のとき、
インデックスは 0~25 さらに -26~-1 も使える。
1.2 リストの編集
リストの長さの取得、要素の値の変更、リストの結合(要素の追加)、要素の削除など、演算式や関数を使って行うことができる。
リストの初期化
1.3 多次元のリスト
リストの要素はリストでもよい。多次元配列を作れる。
多次元配列の初期化
1.4 要素の有無を検査
検査値 in/ not in リスト:リストの要素の中に検査値の要素があるかどうかを調べる。
1.5 forループ
for 各要素を入力する変数 in range(リスト):リストを構成する各要素について、同じ処理を繰り返すようなプログラムに使える。
1.6 メソッド
リスト型オブジェクトを扱うことができるメソッド
2.タプル
リストとほぼ同じだが、値の変更や要素の編集はできない。
[ ・・・ ] に代えて、丸括弧 ( ・・・ ) で記述
list(タプル):タプルをリストに変換
tuple(リスト):リストをタプルに変換
3.辞書
辞書: 各要素についてキーと値を組にして登録する形式のデータ
辞書={キー1:値1, キー2:値2, キー3:値3, ・・・・・・}
keys()メソッド:辞書からキーを取り出す
values()メソッド:辞書から値を取り出す
items()メソッド:辞書からキーと値の組を取り出す。出力はタプル (キー, 値)
in / not in :キーや値が辞書に存在するかどうかの判定
get()メソッド:キーを指定して値を出力。第2引数は指定したキーが存在しないときに出力する値・・・指定したキーが存在していなくてもエラーにならない点がメリット
辞書に要素を追加する
辞書 [追加するキー] = 追加する値
・・・「追加するキー」が辞書になければ「追加する値」追加されるが、
・・・もともとあった「追加するキー」の値が「追加する値」に上書きされる
setdefault()メソッド:第1引数で指定したキーがないとき、第2引数の値を追加
・・・・・・・・・・第1指定したキーがあればその値を出力、第2引数は無視
その他
1.入出力
コマンド | 説明 | 例 |
---|---|---|
input() | 標準デバイス(コンソール)からの入力 | string = input(“Enter string…..”) |
print() | 標準デバイス(コンソール)への出力 | print(string) |
実行例
2.データ型,演算,変数宣言
2.1 データ型
データ型 | 記号 | 例 |
---|---|---|
整数 | int | -1, 0, 1, 2, 100 |
浮動小数点 | float | -1.25, -1.0, 1.38, 3.14, |
文字列 | str | “a”, “Hello”, “2020/1/1” |
変数の型宣言は不要・・・代入した値に応じて決まる。
演算の結果などで、データ型が変わるときには、変換する。
2.2 演算
優先 | 演算子 | 説明 | 例 |
---|---|---|---|
1 | ** | 累乗 | 3**4=81 |
2 | * | 乗算,文字列の繰り返し | 3*4=12, “Hi! “*3=”Hi! Hi! Hi!” |
2 | / | 除算 | 3/4=0.75 |
2 | // | 整数除算 | 4/3=1 |
2 | % | 剰余 | 4%3=1 |
6 | + | 加算,文字列の連結 | 4+3=7, “Hi!”+”How are you?”=”HiHow are you?” |
6 | – | 減算 | 4-3=1 |
2.3 Jupyter Notebookでの実行例
3.If文
if 条件 :
条件が成立したときに実行する命令
else:
条件が成立しなかったときに実行する命令
・if文、else文(省略可)、elif文(後述)は,コロン”:”で終わる
・条件が成立/不成立のときに実行する命令は複数でもよく、字下げで区別する
・条件の書き方は、下の演算子を使う
演算子 | 意味 |
---|---|
== | 等しい |
!= | 等しくない |
< | より小さい |
> | より大きい |
<= | 以下 |
>= | 以上 |
is None | Null(空)データかどうかの判定 |
複数の演算子を使うこともOK
例: ” if 3<= x < 10: “
if文の実行例(単純なif文)
入力されたデータは、一律、文字列型になるらしい。データ型を整数型に変換する。
データ型の変換
関数 | 説明 |
---|---|
int() | 整数型に変換 |
float() | 浮動小数点型に変換 |
str() | 文字列型に変換 |
if文の実行例(if/else文)
if文の実行例(if/elif…elif)
4.whileループ,forループ
while 条件:
条件が成立している間、繰り返し実行される命令
whileループが終了した後、実行される命令
・「条件が成立している間、繰り返し実行される命令」(複数でもよい)と
「whileループが終了した後、実行される命令」とは字下げで区別する。
・強制的にループから抜ける命令=break
・強制的にループの先頭に戻る命令=continue
・無限ループの強制終了=Ctrl+C / [Shell]→[Restart Shell]
whileループの実行例
for i range(n):
条件が成立している間、繰り返し実行される命令
whileループが終了した後、実行される命令
・range関数により i = 0~n-1 まで繰り返し実行
・「条件が成立している間、繰り返し実行される命令」(複数でもよい)と
「forループが終了した後、実行される命令」とは字下げで区別する。
・強制的にループから抜ける命令=break
・強制的にループの先頭に戻る命令=continue
range関数:range([開始値, ]終了値+1[, 増分])
・開始値と増分は省略可
forループ実行例
《 Anaconda 》
Pythonの開発環境を構築するため、Anacondaをインストール。
教科書(Al Sweigart著,相川愛三訳,「退屈なことはPythonにやらせよう」,O’REILLY Japan)で勧められていたので、素直に従った。使ってる人も多いようだし、内包しているパッケージ(モジュール)も充実しているそうだ。
Anacondaの公式サイト(https://www.anaconda.com/)からダウンロード
自分のPCに合ったものをインストール
Python 3.7 (これから勉強なので、新しいバージョンが良いだろう)の
Windows 64-bit版(Mac, Linuxの方が相性がよさそうだが、特許検索ツールがWindows環境なので、Windows PCを選択)
インストールしたAncondaを起動してみるとこんな感じ。
Jupyter Notebookと、Spyderと、Prompt(コマンドプロンプト)を使っている。
《 Jupyter Notebook 》
Jupyter Notebookは、メモ的な文章とpythonコードを混在して書き込めて、書き込んだpythonコードはそのまま実行できるので、初心者にはありがたい。
Jupyter Notebookを使ってグラフを描いてみているところ。
《 Spyder 》
ちょっと複雑なプログラムを書き始めてから使うようになったプログラム開発環境。
右上のウィンドウで変数の値をモニターしながら、プログラムを1行ずつ実行するなど、デバッグに便利。
《 Prompt 》
呼び方はいろいろで、「コマンドプロンプト」「コンソール画面」など。
コマンドを1行ずつ実行する。
主な使い道は、モジュールのインストールと、Anacondaの各パッケージのバージョンアップ。
〈 モジュールのインストール 〉
pythonはプログラムによって使うモジュールが違う。
例えば
Excelファイルを扱うなら”openpyxl”
csvファイルを扱うなら”csv”
コマンドラインに、”pip install モジュール名” を入力して実行。
〈 Anacondaの各パッケージをバージョンアップ〉
Spyderなど各パッケージは、随時アップデートされている。常に新しいバージョンに更新していくことがお勧めかどうかはわからないが、できるだけ最新バージョンにしている。
PCへのアクセス権限の関係で、管理者として実行している。
コマンドラインから”sudo conda update –all”でも良いのかも。(”sudo”はsuper user=管理者としてdo=実行)