中国語ペラペラの謎の関西人、ガッキーです。
大更らへんに生息してます。
去年まで皆さんと同じようにプログラミング初心者だったので、難しい!とかわからない!とかめちゃくちゃ気持ちわかります!
プログラミングだけじゃなくて関西の事も中国の事も何でも聞いてね!
去年までピチピチの大学生だった“おっきー”です。
みんなと一緒に楽しくゲームを作っていけたら嬉しいです!
わからないことがあったら気軽に声かけてね!
黒幕 八幡平市役所のM・Nさんからのメッセージ
皆さん「起業」や「プログラミング」に興味ありますか? 難しそう、自分には関係ないと思っていませんか。実は、AI時代の幕が開けようとしている今こそ、新しい挑戦を始めるチャンスです! 今回皆さんに受けていただく「スパルタキャンプ・ライト」は、日本のどんなスーパー進学校にもない、特別授業です。世界中から応募が殺到し、国や大企業からも注目を集めまくる、 八幡平市主催の本格プログラミング合宿「スパルタキャンプ」 のエッセンスをギュッと濃縮し、皆さんにプログラミングと起業の面白さを体験してもらいます。講師はアメリカ生まれで、ハワイに住んでいたのにキャンプを受講して「ハワイより八幡平の方が面白そう」というユニークな理由で、市での起業や地域活動に飛び込んだスゴイ人! 今回の授業を終えたる頃には「プログラミングって難しいだろ?」「起業なんて天才のやるものでしょ?」そんな誤解を吹き飛ばし、「自分にもできるかも!」と感じられているはず。仲間と一緒にゼロから何かを生み出すワクワクを、ぜひ体感してください。高校生活最後の年、このスパルタキャンプ・ライトがあなたの新しい一歩を踏み出すきっかけになるかも。 さぁ、未来をはじめよう。
プログラミングは、コンピュータと人間がコミュニケーションを取るための手法のこと。 人間同士でコミュニケーションを取る場合、言語や文字を用いて行うけど、それと同じで、人間がコンピュータにやってもらいたいことを伝えたりするときに『言語』を使う。 でもちょっと困ったことに、コンピュータは基本的に『機械語(=マシン語)』という、数字の0と1(2進数)だけで表される言語でのみ、物事を理解するしくみになってる。流石に人間がその機械語で指示を出したりするのは大変だから、別の方法が必要になってくる。 そこで活躍するのが『プログラミング言語』というやつ。コンピュータに指示をするときに、より人間にわかりやすく指示できるように設計されたプログラミング言語で指示を書き込んでいく。そうするとコンピュータは「コンパイル」という、プログラミング言語を機械語に変換(翻訳)する作業をはじめる。その結果コンピュータに理解できる形式になっていれば指示を実行して、もしそうでなければ警告(エラー)を出すなどして間違いを指摘したりしてくれるわけ。
プログラミング言語は、世の中のいろんなところで使われています。 ・コントローラーの右ボタンを押したらキャラを右に動かすという指示 ・実際の室温にあわせてエアコンの温度調節をする指示 ・スマホを見ただけで顔認証でログインする機能 これら全てにプログラミング言語が使われています。
プログラミング言語にもいろんな種類があり、それぞれ得意な分野などがある。 それぞれ似てるところもあれば違うところもあって、イメージで言えば日本語の方言みたいな感じ。
プログラミング言語いろいろ(パクり元:Gemini先生)
| 言語名 | 得意分野 | 特徴 |
|---|---|---|
| python | データ分析、機械学習、Web開発、自動化 | シンプルで読みやすい文法。豊富なライブラリがあり、多岐にわたる分野で活躍します。 |
| JavaScript | Webフロントエンド (ブラウザ操作)、Webバックエンド(Node.js) | Webサイトに動きをつけたり、ユーザーインターフェースを構築するのに必須です。現在、最も汎用性が高い言語の一つです。 |
| Java | 大規模システム開発、Androidアプリ開発、エンタープライズ | 処理速度が速く、安定性に優れます。「一度書けばどこでも動く」という特徴があり、信頼性が求められる分野で使われます。 |
| C / C++ | OS、組み込みシステム、ゲーム開発、高性能計算 | 実行速度が非常に速く、ハードウェアに近い低レベルな制御が可能です。処理速度が求められる分野で使われます。 |
| PHP | Webバックエンド開発 (特にCMS、例: WordPress) | サーバーサイドのWeb開発に特化しており、手軽に動的なWebサイトを構築できます。 |
Pythonは人間が話す英語に近い形で記述できて、初心者が学びやすい言語でありつつ、AI関連の開発やWebサイト制作などでめちゃくちゃ使われている言語なので、コレ一つ覚えれば大抵のことはできる(とはいえ、苦手なことも一応ある)って感じ。
と、その前に


まずはコードを書くためのpythonファイルを作成する必要がある。pythonファイルはwordのファイルやexcelのファイルと同じで、コードを扱うことができるファイル。ファイル名の後ろに「.py」という拡張子をつけます。 今回は「hello.py」というpythonファイルを作成して、そのファイルにコードを書き込んでいくことにしよう。 VSCodeの①:エクスプローラの部分を右クリックして、「新しいファイル」をクリックして、hello.pyというファイルを作成してください。
エディタ部分に、このコードを記入してみよう
print("Hello World!")
VSCodeの機能を使ってラクして書いてみよう。priと打ったあとにtabキーを押すと、「これじゃね?」ていうのが出てくるので、クリックまたはtabキーで選択(またはマウスで選択)しよう。これを「コード補完」といって、VSCodeがラクにコードをかけるように候補を出してくれてるので、ありがたく使わせていただこう。

かけたと思ったら、右上の ▷ボタン(実行ボタン) を押してみよう。こんな感じの表示が出ればOK。

これでみんなは、pythonのコードを書いて、「Hello World!」という文字を表示させる、という処理を実行し、成功させたわけだ。 これでみんなもプログラミングマスターだ!さあ、プログラミングの世界に羽ばたこう!!
そらそう。文字出すだけで何がおもろいねん。 今やったのは、プログラミングの一番ベースとなるところで、最終的にはコードを使ってゲームを動かしたりできるようになるけど、最初はちょっとだけ地味めなことが続くので、がんばって。
問題:以下のコードを実行してください
print("1 + 2")
明らかに計算してくれそうなコードだけど、答えはどうなった? 1+2は1+2。そのとおり、やったね!
って、あかんやん。3になってほしいのよ! ここで、pythonの文字と数字の扱いについて。
プログラミングは、データをいかにしてコネコネするか といえる。さっきのHelloWorldのやつは、HelloWorldという 文字のデータを使ったわけだけど、今回は1と2という数字のデータを使って計算したい。 プログラミングは様々の種類(=型)のデータを扱うから、その型に応じた扱い方をしなくちゃいけない。まな板と包丁では、使う目的も使い方も違うよねって話。 pythonのデータ型はたくさんあるけど、今回出てくるのは3種類だけ。
文字列型(string型 / str型) 文字列を使うときは、さっきHello Worldでやったみたいに、”“(ダブルクオート)で囲う必要がある。 さっきデータによって使い方を変えるって言ったけど、実は文字同士で足し算ができるんだけど、文字列の場合は文字同士がくっついて別の文字列になる。
まとめると
| データ型 | 特徴 |
| 文字列型 / string型 / str型 | 文字を扱う ““ で囲う 足し算すると合体する |
| 整数型 / int型 | 整数(少数じゃない数)を扱う ““で囲わない 計算ができる |
| 辞書型 / dict型 | 複数のデータを、それぞれ名前をつけることで管理できるようにする。 |
実際に使いながら、データの型とその使い方を見てみよう。
pythonで四則演算(足し算、引き算、掛け算、割り算)をしてみよう。 掛け算・割り算の記号が算数とちょっと違うのと、割り算にいろんな種類があるのが特徴。
| 演算子の記号 | 役割 | コード例 | 実行結果 |
|---|---|---|---|
| + | 足し算 | print(10 + 5) |
15 |
| - | 引き算 | print(20 - 7) |
13 |
| * | 掛け算 | print(4 * 6) |
24 |
| / | 割り算 | print(15 / 3) |
5.0 |
| // | 割り算の商 | print(17 // 5) |
3 |
| % | 割り算の余り | print(17 % 5) |
2 |
| ** | べき乗 | print(2 ** 3) |
8 |
例えば、こんなプログラムを作ることを想定してみよう。 国語、数学、家庭科、化学、生物、物理、地学、日本史、世界史、音楽、情報、政治・経済、図工、道徳、家庭科、英語のテストの点数を見て、赤点の科目数を数えるプログラム こういうプログラムを作るときに、たとえば 80点、50点、62点、91点、80点、23点。。。 とかっていう点数を渡されても、どれがどの科目の点数なのかわかんないよね。 プログラミングしてる時も同じで、計算したりするデータがなんのデータなのか、 わかりやすく名前をつけてあげる と超便利。 pythonでは、こんな感じで = (イコール)を使ってデータに名前をつけます。
kokugo = 80
suugaku = 50
kateika = 62
kagaku = 91
...
※プログラミングと算数・数学では、イコールの意味が違う! 算数や数学で、イコールというと、「右と左は同じもの」という意味だけど(1+1=2)、プログラミングでは「右のデータを、左として登録するよ!」という意味になる! 例えば、
kokugo = 80
とすると、kokugoと80が同じという意味ではなく、「80という数字のデータを,変数『kokugo』として登録するよ!これ以降、kokugoといったら、数字の80のことね!」ていう意味になる。
変数を登録(宣言)すると、それ以降のコード内でその変数名を使うと、その登録されたデータのことを指すから、例えば、こういうことができる
kokugo = 80
suugaku = 50
print(kokugo + suugaku)
実行結果:130
次の問題を、pythonで解いてみよう
国語80点、数学50点、英語が70点として、この三教科の平均点を求めよ
kokugo = 80
suugaku = 50
eigo = 70
heikin = (kokugo + suugaku + eigo) / 3
print(heikin)
次のコードを実行して、どんな結果になるか見てみよう
print("リッキー:" + 37 + "歳")
エラーメッセージは、パソコンが壊れたわけでもなんでもなく、ここ間違っとるんとちゃいます? っていう、パソコンからのアドバイスが書いてある。いろいろ英語で書いてあるから大変だけど、一番下にエラー内容のまとめが書いてあるから、それを調べるのが一番効率がいい場合が多い。今回の場合はこの部分。
「プログラマーの殆どは、その仕事の殆どの時間をプログラミングではなく、調べることにに使う」みたいなことを誰かが言ってたような。調べ方もいろいろあって、
プログラミング系の記事は、初心者向けに書かれていないものも多かったりして、正解に行き着くまでが結構大変。「初心者向け」などというワードで検索するといいかも。
さっきのコードで、エラー無く
リッキー:37歳
と出力されるようにしてみよう。
print("リッキー:" + str(37) + "歳")
変数を使うとデータに名前をつけて格納できるんだけど、基本1つの変数に1つのデータしか入らない。 辞書型は、複数のデータを人まとまりにして管理する方法の一つで、たとえばゲーム中のキャラクターのステータスを管理するときに、こんなふうに管理することができる。
ricky = {
"名前": "リッキー",
"レベル": 1,
"ジョブ": "戦士",
"攻撃力": 100,
"防御力": 80,
}
rickyという変数にいろんなデータが入ってるね。このricky変数から、ほしいデータを持ってくるときはこんな感じ。辞書型を宣言するときは { } (中括弧)で、データを使うときは [ ](大括弧)を使うことに注意。
試しに、こんな感じのコードを書いて、リッキーとガッキーを戦わせてみよう
ricky = {
"名前": "リッキー",
"レベル": 1,
"ジョブ": "戦士",
"攻撃力": 100,
"防御力": 80,
}
gacky = {
"名前": "リッキー",
"レベル": 1,
"ジョブ": "僧侶",
"攻撃力": 200,
"防御力": 80,
}
print("ガッキーのこうげき!")
damage = gacky["攻撃力"] - ricky["防御力"]
print("リッキーに"+ str(damage) + "のダメージ")
</details>