第7回目 関数作成
このページの変更記録08/05 13:36 公開第7回課題実施報告の締め切りは,8/12です。(締め切りに遅れても受付はします)課題報告メールの件名はA-303xxxx-07 名前(漢字名がのぞましい...
教科書『Python Pocket Reference』
⇒ 教科書 p.数字,と書いてあれば,そこをみて,印をつけておくことをおすすめ。
この講義では,自分のために役立つプログラムを作成できるようにする。料理でいうと,自炊ができるレベルを目指す。
前回と変更してます。
⇒ Python の動かし方
講義では,Jupyter Notebook を利用しています。以下を見ておくといいです。
#初期化プログラム。動作確認を含めて,プログラム作成のとき1度実行しておく
from math import * # math モジュールを利用する
from matplotlib.pyplot import * #グラフ関係を利用する
%matplotlib inline
from numpy import * #ベクトル演算,行列演算を効率化
from scipy.stats import norm #正規分布の計算
from pandas import DataFrame, read_csv #表形式を扱う
import py3Dmol #分子モデル表示
pi # πの値が表示されたら,正常動作している
# 課題提出するときは,初期化プログラムをつける必要なし
py3Dmol モジュールがないというエラーが出たら,前回のpy3Dmolインストールを再度実施し,再度,初期化プログラムを実行してください。Azura Jupyuter Notebook では,毎回インストールが必要です。
サンプルプログラムは,ここの表示システムのくせで,行が無駄に空いてます。
本来なら,1行あければ十分です。
⇒ 教科書 (あとで追加する)
以下を実行してください。
私は,化学は詳しくないため,データおよびサンプルプログラムが化学的に妥当でない場合があります。
各自,妥当性は確認すること。
#アミノ酸(amino acid),斎藤が作成のため妥当でないかも。
#A_A[一文字表記] = 英語名,日本語名, PubChem Compound ID
A_A ={} #空の辞書を作る
A_A['A'] = 'alanine', 'アラニン', 5959
A_A['G'] = 'glycine, ', 'グリシン', 750
A_A['M'] = 'methionine', 'メチオニン', 876
A_A['S'] = 'serine', 'セリン', 617
A_A['C'] = 'cysteine', 'システイン', 5862
A_A['H'] = 'histidine', 'ヒスチジン', 773
A_A['N'] = 'asparagine', 'アスパラギン', 236
A_A['T'] = 'threonine', 'トレオニン', 6288
A_A['D'] = 'aspartic acid', 'アスパラギン酸', 424
A_A['I'] = 'isoleucine', 'イソロイシン', 791
A_A['P'] = 'proline', 'プロリン', 145742
A_A['V'] = 'valine', 'バリン', 6287
A_A['E'] = 'glutamic_acid', 'グルタミン酸', 611
A_A['K'] = 'lysine', 'リシン', 5962
A_A['Q'] = 'glutamine', 'グルタミン', 5961
A_A['W'] = 'tryptophan', 'トリプトファン', 6305
A_A['F'] = 'phenylalanine', 'フェニルアラニン', 6140
A_A['L'] = 'leucine', 'ロイシン', 6106
def Amino(ch):
from py3Dmol import view cid_ch = str(A_A[ch][2]) #文字にしたがって,2つ目の情報を文字として取り出す。 E = py3Dmol.view(query='cid:'+cid_ch, viewergrid=(1,2)) E.setStyle({'stick': {}}, viewer=(0,0)) E.setStyle({'sphere': {}}, viewer=(0,1)) return E
L = Amino('L')
L.show()
タプル型,リスト型などデータをまとめて扱えるデータ型をコレクション型といいます。今まで,使用したコレクション型は,以下のものがあります。(コレクション型という用語は,初めて使用)
T = (10, 20, 90) #タプル型,これが基本。( ) は,省略可能
L = [100, 95, 90] #リスト型,項の値を変更する可能性があるとき
A = array(T) #numpy.array 型,ベクトル・行列演算をするとき
Df = DataFrame([T, L]) #表として扱うとき
print(type(T), T)
print(type(L), L)
print(type(A), A)
print(type(Df))
Df
それぞれの個別の項目の値をみるには,変数名[添字]の形式を使います。[添字]は,数列 An の n に当たり,A[n] と表記する。( ) を使うと関数と勘違いされます。
T[2], L[2], A[2], Df.at[1,2]
新しく,辞書型を勉強します。
リスト型の添字にあたるところが文字列となり,辞書のようなデータを保持するのに向いています。
D = {} # 空の辞書を作成
# 変数名['キー語'] = '定義1', '定義2',,,
D['pen'] = 'ペン' #辞書項目を追加
D['desk'] = '机'
D['duck'] = 'アヒル', 'ガーガーと鳴くなく水鳥' #定義部は,複数内容が保持できる。
type(D), D['duck'] # 添字は文字列となる
D['duck'][1]
Python では,文字をデータとして扱うときに,文字列と呼びます。
a = 'abc'
a = 1 #数値として扱う
b = 2 #数値として扱う
s = '1' #文字列として扱う
t = '2' #文字列として扱う
a + b, s + t # 数値として加算,文字列の合体
# a + s を実行しようとすると型不一致エラーとなります。
a + s # TypeError と表示される
#a, s の型をどちらかに合わせる。
#前者は,文字列に合わせた例,後者は,数値に合わせた例(整数のときは,int(), 実数のときは,float()を使用)
str(a) + s, a + int(s)
E = py3Dmol.view(query='cid:611', width=300, height=200)
E.setStyle({'stick': {}})
E.show()
num = 611
num_s = str(num)
E = py3Dmol.view(query='cid:' + num_s, width=300, height=200)
E.setStyle({'stick': {}})
E.show()
以下の4行を参考にして,my3Dmol(num)関数を作成しなさい。num は,整数型変数です。関数の中では show()はかかないこと。
num = 611 #グルタミン酸
E = py3Dmol.view(query='cid:'+str(num), width=300, height=200)
E.setStyle({'stick': {}})
E.show()
G = my3Dmol(750)
G.show( )
myAA3Dmol(ch)関数を作成しなさい。ch は,文字列型変数です。関数の中では show()は書かないこと。
正しく作成できたら,以下の2行で,グルタミン酸の分子が表示されます。
E = myAA3Dmol('E')
E.show()
課題1だけ,または,両方挑戦し,
それに加えて
「辞書型を使用することでき,さらに数値文字列変換ができるようになった」と書き
プログラムも書いてください。
(投稿された他の学生のものはコピーして修正しないこと。これをやると伝言ゲームのようにだんだんおかしなプログラムになる)
講義への質問は,suehiro3721p@gmail.com まで
シェアボタン: このページをSNSに投稿するのに便利です。
このページの変更記録08/05 13:36 公開第7回課題実施報告の締め切りは,8/12です。(締め切りに遅れても受付はします)課題報告メールの件名はA-303xxxx-07 名前(漢字名がのぞましい...
https://wiki3.jp/MathPython 内で書かれていることは,ご自由にご利用ください。管理者により改変されることもあります。工学部学生のための Python 入門(大学のプログラム入...
Jupyter Notebook を使うほぼ互換の Google Colaboratory を使うGoogle ドライブの中で,「新規」の「その他」の中で,Google Colaboratoryを選ぶ...
教科書『Python Pocket Reference』⇒ 教科書 p.数字,と書いてあれば,そこをみて,印をつけておくことをおすすめ。まずは,⇒ 教科書 p.2 教科書の凡例(conventions...
このページの変更記録09/19 執筆中第14回目の課題はありません。今後の Python 利用 Pyrhon プログラムの料理でいうと自炊レベルとは,必要に応じて,自分専用の関数を作れることといってい...
教科書『30時間でアカデミック Office2019 』https://www.amazon.co.jp/dp/440734833X実習データでウンロード先https://www.jikkyo.co....
Python 入門工学部学生のためのPython 入門高校数学統計...
このページの変更記録09/03 16:05 公開09/27 連絡事項を削除09/27 サンプル一部変更教科書『Python Pocket Reference』⇒ 教科書 p.数字,と書いてあれば,そこ...
このページの変更記録08/24 公開09/27 課題報告メモを削除09/27 サンプル一部変更教科書『Python Pocket Reference』⇒ 教科書 p.数字,と書いてあれば,そこをみて,...
このページの更新記録1019 質問への返答追加08/12 00:15 準備運動のようにキーボード練習をする,を追加08/13 13:16 質問への返答追加。締め切りについて。09/19 16:49 課...
このページの変更記録09/09 23:50 公開09/10 01:08 用語一覧の訂正,演算子のオーバーロードを追加09/12 08:37 課題2のテストを修正09/12 08:52 課題2の表現を変...
このページの変更記録08/16 17:12 公開08/31 15:07 分子コードの例を追加,文章の言い回し一部訂正インストールAnaconda(アナコンダ)をインストールする 2020年夏現在,Py...
エラーメッセージが表示されるものJupter notebook のエラーだが,環境によって違う場合がある。name 'array' is not defined訳 名前「array」が定義されていない...
このページの変更記録08/01 09:09 公開 08/01 09:15 訂正 08/01 12:19 サンプルプログラムに行が余分に空いて表示されると書く08/01 12:54 用語に,「ブロック」...
削除予定このページの変更記録08/16 15:00 公開予定インストールAnaconda(アナコンダ) 2020年夏現在,Python プログラムを開発・実行するためには,Anaconda(無料) を...
ブラウザのキャシュエラーキャシュをクリアをする。Ctrl キー押しながら,更新ボタンをおすまたは,キャシュクリアーするツールを起動するChromebook だとhttp://atomurl.net/c...
py3Dmol で画像が出ない。...
このページの変更記録08/07 17:52 公開08/07 18:08 誤字訂正,言い回し変更08/08 00:32 サンプルプログラムに「#確認用表示」のコメントを追加08/08 00:36 課題文...
このページの変更記録08/13 10:45 公開08/13 11:10 プログラム言語の種類を追加コンピュータは,スマフォからスーパーコンピュータまで同じ構造で,ハードウェアとソフトウェアから成り立つ...
ソースプログラムの保管単位 Python 言語の仕様上最初から入っているもの標準モジュールインストール時にいっしょに入るもの外部モジュール組込みモジュール,標準モジュール でないモジュール。組込みモジ...