Python講座 2017/5/11(木).

Slides:



Advertisements
Similar presentations
山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文.
Advertisements

C 言語講座第 5 回 構造体. 構造体とは ... 異なる型の値をまとめて新しい型とする 機能がある . つまり , 複数の変数を 1 つのまとまりにできる . 配列と違って同じ型でデータをまとめるのではな く違った型のデータをまとめられる .
第 2 章 数値の入力と変数 scanf と変数をやります 第 2 章 数値の入力と変数 1. 以下のプログラムを実行してみよう  C 言語では文の最後に「 ; 」(セミコロン)が付きます 第 2 章 数値の入力と変数 2 #include int main() { int x; x = 3; printf("x.
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
ループで実行する文が一つならこれでもOK
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
プログラミング基礎I(再) 山元進.
スレッドの同期と、スレッドの使用例 スレッドの同期 Lockオブジェクト: lockオブジェクトの生成
ファーストイヤー・セミナーⅡ 第8回 データの入力.
6/19 前回復習 for文による繰り返し計算 演習1:1から10まで足して画面に結果を表示する 提出者: 1人
6/26 前回復習 for文、while文による繰り返し計算
数値計算及び実習 第3回 プログラミングの基礎(1).
基礎プログラミングおよび演習 第9回
プログラミング基礎I(再) 山元進.
最適化ソルバーのための Python言語入門
C言語 配列 2016年 吉田研究室.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
第6章 2重ループ&配列 2重ループと配列をやります.
条件式 (Conditional Expressions)
問題 1 キーボードから入力した数の合計を計算するプログラムを 作成せよ。最初に、何個の数を入力するかその数を入力 するようにする。
ML 演習 第 7 回 新井淳也、中村宇佑、前田俊行 2011/05/31.
第7回 条件による繰り返し.
プログラミング2 関数
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
第二回 VB講座 電卓を作ろう.
第10回関数 Ⅱ (ローカル変数とスコープ).
電気・機械・情報概論 VBAプログラミング 第2回 2018年7月2日
プログラミング入門 電卓を作ろう・パートIV!!.
プログラミング 4 記憶の割り付け.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング序論 2. n人のインディアン.
講義では、Cプログラミングの基本を学び 演習では、やや実践的なプログラミングを通して学ぶ
第7回 条件による繰り返し.
第6回:ラケットを動かそう! (キーボードによる物体の操作)
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
プログラミング入門第6回 ~レゴロボットのプログラミング6~
プログラムの制御構造 配列・繰り返し.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
整数データと浮動小数データ.
情報処理Ⅱ 第2回:2003年10月14日(火).
復習 一定回数を繰り返す反復処理の考え方 「ループ」と呼ぶ false i < 3 true i をループ変数あるいはカウンタと呼ぶ
C言語 はじめに 2016年 吉田研究室.
オブジェクト プログラミング 第2回 プログラムの基本.
C言語ファミリー C# 高級言語(抽象的) Java オブジェクト指向 C++ C 機械語(原始的)
統計ソフトウエアRの基礎.
プログラミングⅡ 第2回.
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
プログラミング入門 電卓を作ろう・パートI!!.
復習 if ~ 選択制御文(条件分岐) カッコが必要 true 条件 false 真(true)なら この中が aを2倍する 実行される
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
プログラミング基礎演習 第4回.
cp-15. 疑似乱数とシミュレーション (C プログラミング演習,Visual Studio 2019 対応)
コンパイラ 2012年10月11日
プログラミング 4 文字列.
プログラミング演習I 数値計算における計算精度と誤差
PROGRAMMING IN HASKELL
第7章 そろそろ int 以外も使ってみよう! ~データ型 double , bool~
情報処理Ⅱ 第2回 2004年10月12日(火).
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
printf・scanf・変数・四則演算
計算技術研究会 第5回 C言語勉強会 関数(function)を使う
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
情報処理Ⅱ 第3回 2004年10月19日(火).
情報処理Ⅱ 2006年10月20日(金).
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
知能情報工学演習I 第10回( C言語第4回) 課題の回答
プログラミング演習I 補講用課題
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
Presentation transcript:

Python講座 2017/5/11(木)

目次 P.3 Pythonはどんな言語? P.4 ゲームは作れるの? P.5 変数を使おう P.6 Python三種の神器(仮名) P.7 print文 P.8 input文 P.9 比較演算子いろいろ P.10 if文 P.13 変数の発展 P.13 変数の値の変更 P.14 リストと辞書 P.15 ループ文

Pythonはどんな言語? Pythonは読みやすく、効率も良いコードを簡単に書くツール 登場は早かったが近年になって注目されはじめる ⇒参考書などが豊富 主にWEBアプリケーション、機械学習などに使用 ⇒あのYoutubeもPythonで作られた

ゲームは作れるの? ゲームは頑張れば作れるが… ⇒あまりゲーム分野には強くない 現段階でのPythonは「プログラミングをする」ことを学ぶもの ⇒だからこそプログラムの処理をしっかり理解することを推奨 考え方や計算処理は基本流用可能

変数を使おう 変数とは、数字や文字を代わりに表現するもの ⇒何度も使う数字や文字を変数にするとあとで使いやすくなる 書き方 : 留意点 左辺が変数、右辺が表現する数字や文字 変数はどんな名前でもよいが必ず半角英数字で スペースは必須ではないがあると見やすい(ただし半角で) 数字はそのままで大丈夫だが文字は” ”でくくる ⇒文字をそのままにすると以前に作った変数と解釈してしまう 書き方 : name = “tetuo” point = 100

python三種の神器(仮名) print文 指定した文字などを出力する input文 キーボード入力をとって変数に入れることができる if文 条件が正しいか間違っているかで処理するかどうか決める

print文の書き方 書き方 : print(“点数”) print(name) print(point) 結果 : 点数 tetuo 100 留意点 書いた後にF5キー、もしくは 上の方にある「run」から「Run Module」で動く 変数を使わず直接書き込む(“点数”のように)ことでもprintされる 変数を文字と組み合わせて使うには+でつなげる ⇒数字は下記のようにしないと足し算をしてしまう 変数や文字を複数同時にprintする書き方 : print(name + “の点数は” + “{}”.format(point) + “です”) print(“point + 20 = ” + “{}”.format(point+20)) 結果: tetuoの点数は100です point + 20 = 120

input文の書き方 書き方 : subject = input() print(subject) time = input() print(time + “分”) print(int(time) + 60) 結果 : 数学 90 90分 150 留意点 キーボードで入力後、Enterキーで続行 黒字はキーボードの入力、青字は出力 入力は文字、つまり” ”がかかったものとして扱われるため 数字は「int」を付けて整数に戻す ⇒「time = int(input())」という書き方も可

if文の前に if文では比較演算子を使って条件文を決める point > 50 : pointが50より大きい name == “tetuo” : nameがtetuo(ぴったり) name != “tetuo” : nameがtetuoでない 留意点 以上、以下、~でないは書く順番に注意 数字以外でも文字の比較も可能 ⇒ただしイコールかイコールでないかのみ

if文の書き方 書き方 : 結果 : if point > 50 : tetuo print(name) 哲夫 If name == “tetuo” : print(“哲夫”) print(“こがねこ”) if point < 50 : print(point) if point < 150 : print(“52149”) 結果 : tetuo 哲夫 こがねこ 52149 留意点 条件を満たしたもののみが出力されている 改行は必須ではないがやはりした方が見やすい ⇒改行した場合スペースは必須(ブロックという) if文の中にさらにif文を書くことも可能 (一番下の部分) 後々出てくるが条件文はtrueもしくはfalseを表す 条件を満たすときはtrue、満たさないときはfalse 意味はないけどこんな書き方も : if true : print(“true”) if false : print(“false”)

if文の派生1 elif else 書き方 : If name == “hanako” : print(“female”) elif name == “tetuo” : print(“male”) elif point > 50 : print(“genius”) 結果 : male 書き方 : If name == “hanako” : print(“female”) elif name == “takeo” : print(“male”) else : print(“unknown”) 結果 : unknown 留意点 elifはつまりelse ifの省略 条件を上から順にみて、満たしたものを処理 条件を最初に満たしたものだけを出力 改行をするがスペースは入れない (ブロックを作らない) 留意点 elifと同じように書くが条件文はいらない 書くときは必ず最後に置き、上の条件がすべて 満たされないときに処理される elifを書かなくても良い

if文の派生2 and or 書き方 : if point < 150 and name == “tetuo” : print(“male double”) If point < 150 and name == “hanako” : print(“female double”) 書き方 : if point < 150 or name == “hanako” : print(“伝説って?”) If point > 150 or name == “tetuo” : print(“ああ!”) 結果 : male double 結果 : 伝説って? ああ! 留意点 二つの条件文をandでつなぐ 二つが満たされたときに処理を行う 三つ以上の条件文でも可能 留意点 二つの条件文をorでつなぐ 二つのうち片方でも満たされたときに処理を行う 三つ以上の条件文でも可能

変数の発展 変数の値の変更 変数の値を変えたい : power = 100 print(power) power = power + 5 結果: 100 105 210 220 110 留意点 「(変数) = (変数) (演算子) (数字)」で変更 (1)でpowerの値をpower+5に変える (2)でpowerの値をpower*2(power×2)に変える (3)や(4)のように「(変数) (演算子)= (数字)」でも変更可(推奨) (3)でpowerの値に10を足す (4)でpowerの値を2で割る (1) (2) (3) (4) 演算子いろいろ 足し算 x + y 引き算 x – y 掛け算 x * y 割り算 x / y べき乗 x ** y (xのy乗) あまり x % y

変数の発展 リストと辞書 リスト 辞書 書き方 : command = [1, 2, “fight”, 5, “win”] print(command[0]) If command[2] == “fight” : print(command[4]) 結果 : 1 win 書き方 : code = {“go” : “god”, “lo” : “love”} print(dict[“go”]) If code[“go”] == “god” : print(code[“lo”]) 結果 : god love 留意点 リストの文字や数字(要素と呼ぶ)は command[順番]で呼び出せる リストの最初の要素は0番目、以降一ずつ増加 留意点 “名前” : “要素名”で対応付け リストと違い{ }でくくるが呼び出すときは code[“名前”]と書く おまけ command[1:4]と書くことで commandの1から3までの要素を持つリストが表される

処理のループ for文 while文 書き方 : for x in range(0,5) : print(“回数 : ” + “{}”.format(x)) print(“ループ”) 書き方 : hp = 13 while hp > 0 : hp -= 5 print(“hp : ” + “{}”.format(hp)) 結果 : 回数 : 0 ループ 回数 : 1 回数 : 2 回数 : 3 回数 : 4 留意点 range((数字1),(数字2))で範囲の決定 ⇒(数字1)から(数字2)の 一つ手前まで1ずつループ for文の中身(ブロック)を すべて実行したときが1ループ xにはループ範囲が入る 結果 : hp : 8 hp : 3 hp : -2 留意点 条件文(ここでは「hp > 0」)によって ループするかを決定 ⇒if文の発展に近い ⇒条件を常にtrue(while true)と書くと 無限ループが可能 条件が満たされないときは永遠にループ ⇒書き方を間違えると大量の出力が

ループ専用の文 break continue 書き方 : count = 0 while count < 5: count += 1 if count % 2 == 0 : continue print(count) 結果: 1 3 5 書き方 : hp = 20 while true : hp -= 5 print(hp) if hp <= 0 : break print(“dead”) 結果: 15 10 5 dead 留意点 breakに入った時点でループを終了する ⇒無限ループもこれを使えば終了できる ループを終了する条件が複雑なときに これを使うとよい 留意点 continueに入った時点でそのループ一回分を終了する breakとは違い無限ループは抜けられない

おまけ ランダム 書き方 : Import random print(random.random()) print(random.randint(1, 5)) 結果 : 0.13841169281432508 4 留意点 random.random()によって0から1までの小数点 random.randint((数字1),(数字2))によって数字1から数字2まで(未満)の整数

演習問題① じゃんけんゲームを作ろう ルール: ①「グー」、「チョキ」、「パー」を入力して、CPUと対決する ②結果を出力して、勝っても負けても「続ける」か「やめる」かを 入力し決めて永久に遊び続けられるものを作る ヒント: 別にプログラム内で「グー」、「チョキ」、「パー」という文字列を 認識させなくても良い! 半永久的に回すにはwhile文が最適!

演習問題② ノット30(仮)を作る 準備:対戦は人間VSCPU、先行後攻を決める ルール: ①先行は1から+2した値までの数を選択し相手へ ②相手は選択された数は+1から+3までの数を選択し相手へ ③以降、互いに②を行い30を選択した方が負け ※ゲームの性質上、30を言わせた方が勝ち