Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2020_k3_python講座第3回
Search
k3たっつー
June 13, 2020
Education
0
1.1k
2020_k3_python講座第3回
2020年度のk3のpython講座第3回の内容になります
k3たっつー
June 13, 2020
Tweet
Share
More Decks by k3たっつー
See All by k3たっつー
2020_k3_python講座第8回
tattsu_hitsuzi
0
44
2020_k3_python講座第7回
tattsu_hitsuzi
0
39
2020_k3_python講座第6回
tattsu_hitsuzi
0
32
2020_k3_python講座第5回
tattsu_hitsuzi
0
66
2020_k3_python講座第4回
tattsu_hitsuzi
0
33
2020_k3_python講座第2回
tattsu_hitsuzi
0
44
2020_k3_python講座第1回
tattsu_hitsuzi
0
56
Other Decks in Education
See All in Education
【旧:ZEPメタバース校舎操作ガイド】
ainischool
0
800
The World That Saved Me: A Story of Community and Gratitude
_hashimo2
3
510
TeXで変える教育現場
doratex
1
13k
卒論の書き方 / Happy Writing
kaityo256
PRO
54
28k
Introduction - Lecture 1 - Next Generation User Interfaces (4018166FNR)
signer
PRO
2
4.4k
AWS re_Invent に全力で参加したくて筋トレを頑張っている話
amarelo_n24
2
120
令和エンジニアの学習法 〜 生成AIを使って挫折を回避する 〜
moriga_yuduru
0
240
悩める リーダー達に 届けたい書籍|レジリエントマネジメント 書籍イントロダクション-260126
mimoza60
0
300
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
NUTMEG紹介スライド
mugiiicha
0
920
【dip】「なりたい自分」に近づくための、「自分と向き合う」小さな振り返り
dip_tech
PRO
0
230
Surviving the surfaceless web
jonoalderson
0
370
Featured
See All Featured
Faster Mobile Websites
deanohume
310
31k
WENDY [Excerpt]
tessaabrams
9
36k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
The Spectacular Lies of Maps
axbom
PRO
1
520
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
320
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
590
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
Thoughts on Productivity
jonyablonski
74
5k
Tell your own story through comics
letsgokoyo
1
810
Transcript
K3 Python講座 6月13日 担当:夕月 空(ソラ) 今日のテーマ:タートル
前回のおさらい for,whileでプログラムを繰り返し実行できる リストや辞書で数とか文字列とかをまとめられる for a in range(10): ループ変数
(この場合0~9が入る) 繰り返し回数 for a in [4,6,4,9]: ループ変数 (この場合4,6,4,9の順に入る) リスト string list=[“お”,”も”,”て”,”な”,”し”] number list=[1, 1, 2, 3, 5, 8, 13, 21, 34, 55] 文字列リスト 数値リスト 0番目の要素 string list[0] → “お” number_list[5] → 8
復習問題(ファイル名:L3_0.py) 違う文字探すやつ(語彙力)作ってみましょう 10×10の「あ」のなかにランダムで一つ「お」が混 じってる できた人はゲーム化してみましょう 「お」の位置を入力させて正解かどうか判定する
ああああああああああ ああああああああああ ああああああああああ ああああああああああ ああああああああああ ああああああああああ ああおあああああああ ああああああああああ ああああああああああ ああああああああああ ↑こういうの ヒント:「あ」のリスト作って 0~99の乱数で当たったところの要素を「お」に変える 表示のヒント:print(“文字列”,end=“”)で改行せずに表示できる もしくは文字列の足し算でくっつけてみる(“あ”+”お”=“あお”)
復習問題解答 a:0~9、b:0~9なので 10*a+bで0~99を表せる print(“文字列”,end=“”)で 改行無しで表示できる 10文字表示して 改行して の繰り返し ※要素数100個のリスト→0~99番 ”あ”のリストに100をかけると
“あ”が100個のリストができる 単純に作るより奇麗で見やすい 要素番号をランダムに一つ選んで その番号の要素を”お”に変える 改行
復習問題別解 randomの中の関数 (randomのインポートが必要) 空のリストに”あ”を100回入れてる リストの最初の要素を”お”にして リストをシャッフルすることで “お”をランダムな位置に送ってる 外側のforで各周回ごとに空の文字列を作って その中に一列分の文字列を足して表示して を繰り返してる
やり方は一つじゃありません いろいろ探してみましょう
復習問題解答(発展):ゲーム化してみる プレイヤーに行、列を入力してもらって それに対応する番号の要素を見て それが”お”だったら正解と表示する ここでは簡単にしかやってませんが
興味ある人はいろいろいじくってみましょう 入力する行、列の値は1から始まるのに対して 処理上の値は0から始まるのでこんな変な感じ の変形になる Inputの返り値はstr型になるから int()でint型に型変換してる(第1回参照) (´・ω・`)
本題:タートル 今日の大まかな流れ 1、タートルってなんやねん 2、亀さんを動かしてみよう 3、亀さんの特殊な動き 4、色を塗ってみる
タートルって? 今までの講座では数字とか文字の操作をしてきた 今日はPythonで絵を描いてみる Pythonには絵が描く方法がいろいろあって そのうちの一番わかりやすくて簡単なのがタートル ※ちなみにタートルはもともと子供向けだったりする
※他にはTkinter (追々やる) などがあります ※その代わり複雑なことはできない
亀さんでお絵描き いや亀でお絵描きってなんやねん 基本イメージ:鉛筆を持った亀さんを動かしてその 動いた跡に残る線を使う 右からくるぞ 気をつけろ
亀さんを動かす準備 まずturtleが使えるようにする→import turtle 亀さんを一匹召喚して名前を付ける→t=turtle.Pen() まとめると、 import turtle
t=turtle.Pen() これで準備完了 名前 召喚 もちろん名前は 何でもいいです (Steveとか Alexとかでも()) ←命名:t 不憫すぎる()
亀さんを動かしてみよう 亀さんの動かし方(基本) t.forward(100)・・・tを100だけ前に動かす t.backward(100)・・・tを100だけ後ろに動かす t.right(90)・・・tを90°右に回転
t.left(90)・・・tを90°左に回転 各動きの数字の部分を変えるとその分だけ回転したり進んだりできる Ex)t.forword(200)・・・tを200だけ前に動かす 実際に見たほうが早いので実際にやってみます t.fd(100) t.bk(100) t.rt(90) t.lt(90) とかでもできる t.clearで書いたものを全て消せる t.resetで書いたものを全て消して 亀さんを最初の位置に戻せる
例題1(ファイル名:L1_1.py) 亀さんを使って「田」を描いてみましょう 多少歪んでいてもおkです 速く終わった人はクリーパー作ってみましょうw こーいうの Oミノともいいます() ※呼びましたが来ないでください(理不尽)
例題1解答 タートルのプログラムを書くときは どういう風に描いていくのかを 考えてから書き始めると良いです このプログラムでは
前後運動→曲がる→前後運動の流れで 中の十字を描いてから外側の大きい四角 を描くという流れで描いています 外側の大きい四角を描くときはfor文を 使ってます
例題1追加問題解答: クリーパー そのまま貼ると文字がめっちゃこまく なるので分割しました 左側が下半分、右側が上半分を描いて る感じです スタート 動きのイメージ
さらにいろいろ動かしてみる 亀さんの動かし方(特殊) t.circle(100)・・・半径が100の円を描く 動きが特殊なので実際に見てみましょう t.up()・・・亀さんが鉛筆を上げる(線が描かれなくなる) t.down()・・・亀さんが鉛筆を下ろす(線が描かれるようになる)
t.up() t.down() 愛着湧いてきたw
例題2(ファイル名:L3_2.py) 亀さんを使って「円を3つ」 描いてみましょう 多少位置が違くてもおkです 速く終わった人はテトリミノでも (解答は時間の都合上割愛してます())
こーいうの() (怒られないことを願おう) ←とってもいい練習だと思います 興が乗った人は DT砲でも描いてみましょうw 他意はありません()
例題2解答 僕は斜め移動を使いましたがもち ろん縦横移動でやってもおkです 縦横でやった人はおそらく 位置調整が面倒やったかなと スタート かわいい()
色を付けてみる 亀さんの色の付け方 t.color(“red”)・・・亀さんの持ってる鉛筆の色を赤にする t.begin_fill()・・・塗りつぶす準備 t.end_fill()・・・塗りつぶし実行
beginとendで挟んだ間に描いた図形を塗りつぶす ex) t.begin_fill() t.circle(100) t.end_fill() t.fillcolor(“blue”) とかで 塗りつぶす色と 線の色を変えられる
そのほか そのほかのturtleの機能を軽く紹介します t.hideturtle(),t.showturtle() ・・・亀さんを隠したり現れさせたり t.speed(“fast”)・・・fastest,fast,normal,slow,slowest t.write(“Hello,world!”)・・・亀さんがいる位置に
”Hello,world!”と描く t.pos()・・・亀さんのいる座標を返す t.goto(100,100)・・・座標(100,100)に行く
演習(ファイル名:L3_3.py) スターミー(?)を描いてみましょう→ 色とか形とか違くてええです 完成したら より本家に近づけるかコードを簡単にし てみましょう
質問とか受付中です この演習の質問とかでなくてもよきです ←本家スターミー むしろ質問してくれると嬉しい 108° 36°
演習問題解答 動きを ☆を描く動作*2 〇を描く動作*2 と考えて細かいところを変 数で調整する形にしてます
もちろん全部書き並べても おkです 細かい説明は次ページへ
星の中心から星の角に移動する なお、星型の構造的に正確な移動は不可能(多分) なので、中心からはちょっとズレる color=外枠の色 fillcolor=塗りつぶしの色 ☆を描いてる 星の角から星の中心に戻る スタート ここに行く 54°
初期の向きを反対に向けて 同じように描くと 上下ひっくり返った星が描ける
先に黄色の丸を描くので 初期設定は黄色の丸のことにする 半径の分前に進んで丸を描い て戻ってくる スタート 次に描く赤色の丸の設定をしている 初期: 半径:45、色:黄色
次期: 半径:30、色:赤色
まとめ forward left backward right down up circle begin_fill fillcolor
color end_fill hideturtle showturtle speed
余計な話:アニメーション タートルでアニメーションができたりします 興味がある方は調べてみてください(もちろん聞いてもらえれば教えます) from time import sleep
screen=turtle.getscreen() Screen.tracer(0) と最初に追加して 1フレームの絵を描いたら t.update() sleep(0.01) t.clear()
最後に turtleにはいろいろな機能があります 到底紹介しきれない それらは自分で試行錯誤しながら身に着けてほ しい もちろん僕とかに聞いてもらってもいいです
「こういうことがしたい」とか言ってくれれば 頑張ってアドバイスとかしたいと思います
終わりやで ご清聴(?)ありがとうございました 個人でもturtleで遊んでみてください 質問かなにかあればSlackでもTwitterでもいい ので投げてください~ お疲れ様でした~
夕月空のTwitter: sora28(ソラ) @sora628496 時間があれば僕がturtleで作ったゲームを紹介します タートルの機能がいろいろ書いてあるサイト: https://docs.python.org/ja/3/library/turtle.html