$30 off During Our Annual Pro Sale. View Details »
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
HCI Research Methods - Lecture 7 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
1.2k
1008
cbtlibrary
0
110
1125
cbtlibrary
0
140
✅ レポート採点基準 / How Your Reports Are Assessed
yasslab
PRO
0
150
Introduction - Lecture 1 - Web Technologies (1019888BNR)
signer
PRO
0
5.8k
The knowledge panel is your new homepage
bradwetherall
0
220
自分だけの、誰も想像できないキャリアの育て方 〜偶然から始めるキャリアプラン〜 / Career planning starting by luckly v2
vtryo
1
330
国際卓越研究大学計画|Science Tokyo(東京科学大学)
sciencetokyo
PRO
0
32k
学習指導要領と解説に基づく学習内容の構造化の試み / Course of study Commentary LOD JAET 2025
masao
0
100
Entrepreneurship minor course at HSE 2025
karlov
0
150
沖ハック~のみぞうさんとハッキングチャレンジ☆~
nomizone
1
530
20250830_本社にみんなの公園を作ってみた
yoneyan
0
180
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
740
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Side Projects
sachag
455
43k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Building Adaptive Systems
keathley
44
2.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Mobile First: as difficult as doing things right
swwweet
225
10k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
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