Pythonで亀を色んな方向に動かす方法とは?
前回から引き続きでPythonで亀のグラフィックを操作してみよう。
今回は同じ方向だけでなく別な方向へ動かしてみる。
import turtle
kame = turtle.Turtle()
kame .shape('turtle')
kame.shapesize(2,2,3)
kame.right(90)
kame.forward(150)
kame.right(90)で亀は右へ動作する。
()は動く距離を指定した数値です。
import turtle
kame = turtle.Turtle()
kame .shape('turtle')
kame.shapesize(2,2,3)
kame.right(90)
kame.left(160)
kame.forward(150)
右へ動いた後に左に動きます。
kame.left(160)で左に動きます。
import turtle
kame = turtle.Turtle()
kame .shape('turtle')
kame.shapesize(2,2,3)
kame.right(90)
kame.left(160)
kame.circle(150)
kame.forward(150)
kame.circle(150)は亀が円を描いて周ります。
import turtle
kame = turtle.Turtle()
kame .shape('turtle')
kame.shapesize(2,2,3)
kame.right(90)
kame.left(160)
kame.circle(150)
kame.forward(150)
kame.undo()
kame.home()
kame.clean()
亀がいろいろ動いて良かったですがちょっとごちゃごちゃしちゃったので綺麗にしましょう。
kame.undo()をすると今まで描いものを消す事ができます。
kame.home()は亀が中心に戻り向きも初期の右になります。
kame.clean()は今まで描いた線を消します。
これでスッキリしました。
Pythonで亀を直進させる方法とは?
Pythonほど面白いプログラミングはないだろうと思う。
コードは簡単で手軽にやりやすい。
そして、Pythonは亀のグラフィックを出す事が出来る。import turtleだ。
亀を動かすってのは楽しいものだしモチベーションもあがる。
今回は亀を動かしてみよう。
import turtle
kame = turtle.Turtle()
kame.shape('turtle')
kame.shapesize(2,2,3)
kame.forward(150)
>亀が右に動く。
前回にやったのが
shapeは亀の形、shapesizeは縦、横、大きさを作るコードだ。
いよいよ、亀を動かそう。
kame.forward(150)はforwardは指定した数値の分亀が動く。
線を引いて亀が動いて行っただろう。
import turtle
kame = turtle.Turtle()
kame.shape('turtle')
kame.shapesize(2,2,3)
kame.forward(500)
kame.backward(500)
>亀が右に動き戻る。
foward(500)はカッコ内の数値が大きいと亀は枠から外れたっきり返って来ない。
大切なペットの亀が返って来なければ悲しいだろう。
そこで便利なのがbackward(500)
これは亀が反対方向に数値分進むメソッドだ。
これで亀はちゃんと元の場所に戻る。
と、今回は亀を簡単に動かしたが
これはほんの一部に過ぎない。
まだまだ亀はいろんな動きをする。
楽しみはこれからだ。
Pythonで亀のグラフィックを操作!
Pythonで実は亀のグラフィックを操作できるんです。
import turtle
kame = turtle.Turtle()
kame.shape('turtle')
kame.shapesize(2,2,3)
>亀のグラフィックが指定した出ます。
import turtleで何と亀のグラフィックを呼び出せます。これは良く子供がプログラミングを学ぶ時に良く使われます。
ですが、亀を動かすって楽しさがモチベーションアップに繋がります。
ただturtleで呼び出しただけでは実はただの矢印のデザインでしかありません。何とも味気ないですよね。
shape('turtle')にするとちゃんと亀のグラフィックが出ます。
ですが、このままでは亀が小さ過ぎます。
そんな時はkame = shapesize(2,2,3)です。
shapesizeはturtleモジュールに使われるメソッドです。縦、横、輪郭の線の太さの順
Pythonで肥満度をを判定しよう。
外出自粛が続き運動不足で太る人もいるでしょう。
そんな人を太り過ぎかどうかを見るプログラムをPythonでしました。
while True:
height = raw_input ('身長何センチ?:')
if len(height) == 0:
break
height = float(height)
weight = float(raw_input('体重?:'))
bmi = weight / pow(height,2)
print ('BMI値は%0.1fです。' % bmi)
if bmi < 18.5:
print ('少し痩せすぎです。')
elif 18.5 < 25.0:
print ('標準です。。')
elif 25.0< 30.0:
print ('少し肥満です。')
else:
print ( '最高の肥満です。')
while Trueは正しければ何回も繰り返すって意味です。
そして、float 関数は引数に指定した数値または文字列を浮動小数点数に変換して取得します。
input()関数は入力フォームを出します。
身長を入力するとbreakで一旦処理が終わり
体重を入力するフォームが出ます。
bmi = weight / pow(height,2)は
身長の二重を計算します。
powは組み込み関数で1つめの引数を2つめの引数で累乗した数を返します。
これで肥満度を分かります。
少し長いプログラミングをやると楽しさとやりがいも出ます。
Pythonのwhile文はどんな処理をするのか?
while文もfor文同様に非常に良く使います。
確実にモノにしなければなりませんね。
import random
print(random.randint(0,9))
>0から9のどれかが出ます。
randomっての以前やりました。
数値をランダムに出すモジュールです。
random.randint()はrandomモジュールの関数であり任意の範囲の数値を出しますのでこのコードの0から9が出ます。
さて、このコードにwhileを入れましょう。
import random
rand_num = 0
while rand_num != 4:
rand_num = random.randint(0,9)
print(rand_num)
> 1
0
4
ランダムに数字が出て4になるとストップします。
これはrand_numに0を代入。
while rand_num != 4:は !=が0から9で4と異なったら動くって事です。
そして、起動するとランダムに数値が出て4が出たら処理は終わります。
while 条件式:
条件式が真の時に実行する文
while文の処理です。
ちなみにfor文との違いはfor文繰り返す回数や範囲が分かっている場合であって、whileはrandomのように処理の回数が分かってない場合に使います。
import random
while True:
rand_num = random.randint(0,9)
print(rand_num)
if rand_now != 4:
continue
else:
break
> 1
0
4
ランダムに数字が出て4になるとストップします。
結果は上と同じですがコードが違うやり方で処理してます。
continueとbreakが出てきましたね。
continueとはそれ以前の処理を繰り返すのです。
このコードならif rand_now != 4:で4が出なければwhile True:
rand_num = random.randint(0,9)
print(rand_num)
この処理を繰り返すのです。
breakは処理を止めます。
4が出るという条件を満たすと終わりになるのです。
この処理はRPGの戦闘の数値なんかに
頻繁に使われてるでしょうね。
こうやってRPGの数値が動作すると思うと興味深いです。
if elseで曜日を使い真偽の条件分岐をします。
曜日を使うと果たしてどう条件分岐が
出来るのでしょうか?
if elseを使いコードを書きます。
import datetime
if today.weekday() < 5:
print('HelloWorld')
else:
print ('G')
>Gと出ます。
today.weekday() <
これはtoday.weekday() < に入れる数値が0から4が平日、5が土曜日、6が日曜日になるメソッドです。
else:ってのは偽の時に実行する条件です。
実行した曜日で結果は変わりますが実行した曜日が土曜日で無かったのでGと出ます。
if 条件式:
条件式が真の時に実行する文
...
else:
条件式が偽の時に実行する文
...
です。
import datetime
if today.weekday() < 5:
print('HelloWorld')
elif today.weekday()== 4:
print('F')
else:
print ('G')
>Gと出ます。
今度は先程のコードにelifを追加しました。
このelifとは何か?
流れとしては
if 条件A:
処理A
elif 条件B:
処理B
else:
処理C
。
条件A に一致する場合は処理A
条件A には一致しないが、条件B には一致する場合は処理B
条件A, B のどちらにも一致しない場合は処理C
です。
つまり、elif today.weekday()== 4:
== は等しいかどうかを判定する演算子で実行した曜日が日曜日だったので2つの条件に当てはまらなかったからelse:print ('G')になったのです。
if elseの機能は年齢でできるできないを分ける必要があるお酒の購入などで使われるのでしょうね。
Pythonのifの条件分岐をやる前にちょっと復習!
Pythonのifを本格的にやる前にちょっと前にやった事を復習します。
ifの条件分岐をやるための基礎の基礎として必要な知識ですから。
1 > 0
print(True)
1<0
print (False)
> True
False
と出ます。
これは1が0より大きいのは真だからTrue。
その下は1が0より小さいのは嘘だからFalseです。
import datetime
today = datetime.datetime.now()
print(today)
>本日の年、月日、時間が出ます。
importでdatetimeモジュールを呼び出します。
そして、
today = datetime.datetime.now()の
datetimeというオブジェクトにdatetime.now()というメソッドを入れます。
datetime.now()は現在の年、年月、時間を出します。
とても簡単に復習しましたがifの条件分岐に必要になります。