今回の記事では、プログラミング言語Pythonの関数について解説します。この記事を読むと、上記の画像にあるような「〇裂拳」のようなアニメーションが作れるようになります!
以前、別の記事で変数についても紹介しましたが、変数とは数字や文字列を「x」や「y」といったシンボルに代入する仕組みのことです。変数の基本をまだご存知でない方は、以下の記事を参考にしてみてください。
今回は、関数の仕組みを理解して、もっと高度なプログラム作成に挑戦しましょう!
【超初心者向け】Processingを使ってプログラミング言語Pythonの変数について
しかし、変数は複数の処理をまとめたり代入したりすることができません
そんな時に役に立つものが関数です
では、実際に関数を使いながらやってみます
関数とは
関数は複数の処理を一つにまとめる仕組みです
仕組みを理解していくために、実際に何か一つ作っていきましょう
パンチする画像を作っていきます
1 2 3 4 5 6 7 8 9 10 11 12 13 |
size(900,600) background(0) stroke(0) strokeWeight(10) fill(255) rect(100, 100, 60, 130) rect(160, 100, 55, 130) rect(210, 100, 50, 130) rect(260, 100, 45, 130) strokeWeight(7) rect(90, 170, 85, 70) stroke(255) rect(110, 100, 170, 35) |
入力・実行
こんな感じで出てきました
世紀末を生きてこられた方たちは様々な意見が寄せられました
こんなパンチじゃ足りん!!
こんなのじゃ、世紀末は生き抜けんよ
パンチをいっぱい打てるようになって〇裂拳にしたいです
という方も中にはいると思います
ということで、パンチを少し増やしていきますがコードをコピペするだけでは長くなるだけでうんざりしてきます
そんな時に役に立つのが関数です
パンチを増やしていく前に少しパンチを短いコードで打てるようにしましょう
パンチを関数にしてみよう
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
size(900,600) background(0) def panchi(): stroke(0) strokeWeight(10) fill(255) rect(100, 100, 60, 130) rect(160, 100, 55, 130) rect(210, 100, 50, 130) rect(260, 100, 45, 130) strokeWeight(7) rect(90, 170, 85, 70) stroke(255) rect(110, 100, 170, 35) pabchi() |
入力・実行
コードの内容が変わりましたが、同じものが出てきました
コードの違いが分かりましたか?
関数の方にはdefという枠組みができています
最後にpanchi()があります
それを消すと
こんな感じで真っ黒だけが残ります
では、少しコードの仕組みについて話をしていきます
関数のコードの仕組み
図にするとこんな感じになります
defというキーワードを入力し、名前を決めます
※注意※ 名前の後に()と:は忘れないように
その下に関数の内容を打ち込んでいきますが、関数の内容は必ず先頭からインデントと呼ばれるスペースを空けつ必要があります
1Tabもしくは4スペース分の空白が必要です
※注意※ 全角で空白を作るとエラーが出ます
関数の作成が出来たらキーワードと()を打ちこむと関数の内容を呼び出すことができます
これでパンチを打つまでに長かったコードが1行で打てるようになりました
関数の便利なところは長いコードを毎回書かなくても関数にすることで簡単に呼び出すことができることです
ただ、ここでも世紀末を生きてこられた方は
同じ場所しか打てねーじゃないか
こんなのじゃ、モヒカンのヒャッハーにも勝てんよ
パンチをいっぱい打てるようになって〇裂拳にしたいです
世紀末出身者がいうように、ただ呼び出せるようになるだけだと使える範囲が限られてくるので不便と思うかもしれません
しかし、関数はさらに応用が利きます
関数の応用
()内に変数を組み込むことで使い方に幅が出てきます
変数って何?と思われた方は別記事で紹介していますのでこちらをどうぞ
【Processing Python】プログラミング Python 変数について
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
size(900,600) background(0) def panchi(x, y): stroke(0) strokeWeight(10) fill(255) rect(100+x, 100+y, 60, 130) rect(160+x, 100+y, 55, 130) rect(210+x, 100+y, 50, 130) rect(260+x, 100+y, 45, 130) strokeWeight(7) rect(90+x, 170+y, 85, 70) stroke(255) rect(110+x, 100+y, 170, 35) panchi(200, 200) panchi(10, 10) |
入力・実行
増やすことができました
またしても、世紀末を生きてこられた方は
5回以上のパンチはめんどくさい
こんなのじゃ、ハ〇ト様にも勝てんよ
パンチをいっぱい打てるようになって〇裂拳にしたいです
確かに、短くなったとは言えコードを繰り返し書き込むようでは手間と時間がかかります
ということで、関数を利用して繰り返しとランダムを使っていきます
※繰り返しとランダムはまた別記事を作成していく予定です
関数と他の関数との組み合わせ
自作した関数と繰り返し関数とランダム関数を組み合わせることで、世紀末を生きてこられた方たちを満足させたいです
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
size(1900,1300) background(0) def panchi(x, y): stroke(0) strokeWeight(10) fill(255) rect(100+x, 100+y, 60, 130) rect(160+x, 100+y, 55, 130) rect(210+x, 100+y, 50, 130) rect(260+x, 100+y, 45, 130) strokeWeight(7) rect(90+x, 170+y, 85, 70) stroke(255) rect(110+x, 100+y, 170, 35) for i in range(100): r = random(100+i) rr = random(100) panchi(10*r, 10*rr) |
こんな感じになります
入力と出力
これならいけるぜ
世紀末もよゆー
パンチをいっぱい打てるようになって〇裂拳にしたいです
世紀末出身の方もご満足いただけたようで何よりです
まとめ
関数を自作すると簡単に作ったものが出力できます
関数を使うことでコードを短くすることができるので短いコードでより大きな作品も作れるようになると思います
ただ使い方を覚えるには少し工夫も必要かもしれません
細かい内容等があれば順次追加更新していきます
Pythonを学びたい方はこちらの記事を参考にしてみてください
関連記事
プログラミング学習を進めているけれど、まだ副収入につなげられていない…そんなあなたへ!今こそ、学んだスキルを活かして副業に挑戦する絶好のチャンスです。プログラミングだけでなく、自分のスキルや商品をネットで販売する『ネットショップ』を開設してみませんか?
ネットショップを持つことで、自分の知識やスキルをより多くの人に届け、副収入を得ることが可能です。学んできたプログラミングを活かして、ショップのカスタマイズや運営も自由自在に行えますし、もし商品作成が難しい場合でも、デジタル商品やサービス提供など、いろんな選択肢があります。
このステップで一歩踏み出せば、今学んでいることが副収入に直結し、自分の時間をより有効に使うことができるはずです!一緒にネットショップを開設し、副業の第一歩を踏み出しましょう!
タイトルテキスト
プログラミングを学びたいけど、どこから始めたらいいのか分からない、自分に合っているか不安…そんな悩みを持っている方におすすめしたいのが、 無料相談 サービスです!
この無料相談では、あなたの現状や目標に合わせて、最適な学習プランを一緒に考えてくれます。どんなスキルが必要なのか、どうやって学習を進めると効果的かを具体的にアドバイスしてもらえるので、無駄なく効率的にスタートを切ることができます。
さらに、プログラミング学習には同じ目標を持つ 仲間 がいること、そして頼りになる メンター の存在がとても大きな支えになります。独学ではどうしてもつまずきやすい部分も、メンターがあなたの成長に合わせて親身にサポートしてくれるので、安心して学びを進められます。
まずは 無料相談 で、あなたに合ったプランを見つけて、スキルアップへの第一歩を踏み出してみませんか?今なら、迷っている方でも気軽に相談できるチャンスです!
おまけ
動画にするとより〇裂拳っぽくなりました