第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
from ipywidgets import *
from IPython.display import clear_output
pi # エラー表示がなく,πの値が表示されたら,正常動作している
# 課題提出するときは,初期化プログラムをつける必要なし
# 新たに,表形式のデータを扱う,pandas モジュールを利用する
py3Dmol モジュールがないというエラーが出たら,前回のpy3Dmolインストールを再度実施し,再度,初期化プログラムを実行してください。Azura Jupyuter Notebook では,毎回インストールが必要です。
サンプルプログラムは,ここの表示システムのくせで,行が無駄に空いてます。
本来なら,1行あければ十分です。
#単位円(半径1の円)を表示
TH = arange(0, 2*pi, 0.1) # θ を,1回転分を0.1刻みで生成
X1 = cos(TH) #まとめて,cos を計算
Y1 = sin(TH) #まとめて,sin を計算
plot(X1, Y1) #折れ線描画で描く
axis('equal') #縦軸,横軸の比率を等しくする。
show()
360 度にあたるところが欠けるため,回転をすこし余分にさせます。
#単位円(半径1の円)を表示
TH = arange(0, 2*pi + 0.1 , 0.1) #回転をすこし余分にする
X1 = cos(TH)
Y1 = sin(TH)
plot(X1, Y1)
axis('equal')
show()
横,縦に比率を掛けて,楕円を作ります。a が,横比率,b が縦比率です。
a = 2
b = 0.5
TH = arange(0, 2*pi+0.1, 0.1) # θ を,1回転分と少し余分に0.1刻みで生成
X1 = cos(TH) #それぞれに,cos, sin を計算
Y1 = sin(TH)
X = X1 * a
Y = Y1 * b
plot(X1, Y1)
plot(X, Y)
axis('equal') #縦軸,横軸の比率を等しくする。
show()
プログラムは,関数の形にします。そうすると,使うときに使いやすいです。
楕円の線ということで,elliptic_l( ) としました。
def elliptic_l(a, b): #楕円線TH = arange(0, 2*pi+0.1, 0.1) # θ を,1回転分と少し余分に0.1刻みで生成 X1 = cos(TH) #それぞれに,cos, sin を計算 Y1 = sin(TH)
X = X1 * a Y = Y1 * b
plot(X1, Y1) #単位円 plot(X, Y) #楕円 axis('equal') #縦軸,横軸の比率を等しくする。 show()
elliptic_l(3, 0.2)
while ループは,初めて登場です。
input( ) が入力を受け付ける関数です。
float( ) は,受け取った文字列を実数にします。
lp = True #ループをするというフラグ
a = 1.0
b = 1.0
while lp: #条件が True の間ループ
elliptic_l(a, b) a = float(input('横軸の比率(0.1 未満なら終了)')) if a > 0.1: b = float(input('縦軸の比率')) else: lp = False
Python 言語では,繰り返す部分を記述するのに,for ループまたは,while ループを使います。
for ループの方が,単純にかけます。細かい設定が必要なときは,while ループを使います。
#for と while の違い
#for ループはシンプル
#while ループの方が,細かい制御が可能
# 1 から 10 までの合計
s = 0
for i in range(1, 10+1):s = s + iprint(s)
s = 0
i = 1 # for ループではいらない
while i < 11:s = s + i i = i + 1 # for ループではいらないprint(s)
画面上の,ボタン,スライドなど,GUI 部品(グラフィック・ユーザ・インタフェース・パーツ)といいます。
または,ウィジット(widget, 窓を作るガジェット) と言います。
GUI 部品を使うのを自動化的に行う,関数名 interact( ) を使うと
interact(elliptic_l, a = 1, b = 2) #elliptic_l に( ) がないのに注目
While ループで,1から30まで,3の倍数のみ合計し,表示する。
適当な関数と interact を組みあせてみる。
例
def myPrint(x):print(x)
interact(myPrint, x='こんにちは')
それに加えて
「While ループ, interact を使えるようになった」と書き
プログラムも書いてください。
(投稿された他の学生のものはコピーして修正しないこと。これをやると伝言ゲームのようにだんだんおかしなプログラムになる)
講義への質問は,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 言語の仕様上最初から入っているもの標準モジュールインストール時にいっしょに入るもの外部モジュール組込みモジュール,標準モジュール でないモジュール。組込みモジ...