1 行の入力 Python3編
2 行の入力 Python3編
3 行の入力 Python3編
10 行の入力 Python3編
【行入力】1,000 行の入力 Python3編
カテゴリー: トップ
トップページです。
【GASの最初の一歩】HUNTER×HUNTERの自作サンプル
この記事のシリーズを読むことで、アニメHUNTER×HUNTER(ハンターハンター)を通してGAS(Google Apps Script)の最初の一歩が学べます。
キャラクターと一緒に冒険している感覚で自作サンプルのコードを動かして頂けたらきっと楽しいと思います♪
episode1 「セル操作で入力と消去」
episode2 「文字入力と消去をボタン操作で行う」
episode3 「範囲を指定してまとめて入力(二次元配列は団地だ!)」
episode4 「ヒソカチェックで、IFとループを一気に習得」
episode5 「指定したセル範囲のフォントを変える」
episode6 「指定したセル範囲に色を付ける」
episode7 「キャラの身長で演算(平均・条件に該当する数のカウント)」
episode8 (最終回)「キャラの身長をシンプルなグラフ化する」
ご精読有難うございました。
■ GASの入門書の紹介です ■
詳解! Google Apps Script完全入門 [第3版]
単行本
Kindle版(電子書籍)
■ 関連記事 ■
ブラウザだけでMySQLを即学習【サザエさんの例 その5】|テーブルの結合(内部結合)
この記事では、ブラウザだけでMySQLを「サザエさんの例」を通してサンプルのコードを書きながら学習する内容になっております。
途中からでもなるべく学習可能な様に書いております。
使用ブラウザはmyCompilerのMySQLを使っています。
今回は2つのテーブルを結合します。
1つ目のテーブルは、sazaefamilyです。

簡単にこのテーブルについて説明しますと、一番左のidが主キーで、あとはキャラクターの名前、性別、年齢、右端にjobIdというフィールドを新たに追加しました。
100が会社員、200が主婦、300が学生です。
2つ目のテーブルは、jobIdを主キーとして、それぞれの職業が書かれたテーブルjobcodeです。

jobIdはテーブルsazaefamilyでは外部キー、テーブルjobcodeでは主キーです。
この両方のテーブルにあるjobIdをINNER JOINを使って結合します。
結合のイメージ図です。

拙い図ですが、イメージをご覧頂いた所でブラウザにMySQLのコードを書いて行きます。
まず、新たにjobIdを付け足したテーブルsazaefamilyです。
-- sazaefamily table
CREATE TABLE sazaefamily (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
gender TEXT NOT NULL,
age INTEGER NOT NULL,
jobId INTEGER NOT NULL
);
-- sazaefamily values
INSERT INTO sazaefamily VALUES (1, '磯野波平', '男性',54,100);
INSERT INTO sazaefamily VALUES (2, 'フグ田サザエ', '女性',24,200);
INSERT INTO sazaefamily VALUES (3, '磯野カツオ', '男性',11,300);
INSERT INTO sazaefamily VALUES (4, '磯野ワカメ', '女性',9,300);
INSERT INTO sazaefamily VALUES (5, '穴子さん', '男性',27,100);
-- fetch sazaefamily values
SELECT * FROM sazaefamily;出力結果です。
無事にテーブルが表示されました。

次に、結合する新たなテーブルjobcodeを作って行きます。
-- jobcode table
CREATE TABLE jobcode (
jobId INTEGER PRIMARY KEY,
jobs TEXT NOT NULL
);
-- jobcode values
INSERT INTO jobcode VALUES (100, '会社員');
INSERT INTO jobcode VALUES (200, '主婦');
INSERT INTO jobcode VALUES (300, '学生');
-- fetch jobcode values
SELECT * FROM jobcode;実行結果です。

2つのテーブルを結合して表示する表のイメージです。

nameとageはテーブルsazaefamilyから、jobsはテーブルjobcodeから取得しています。
結合して取得するコードと実行結果です。
SELECT sazaefamily.name, sazaefamily.age, jobcode.jobs FROM sazaefamily INNER JOIN jobcode ON sazaefamily.jobId = jobcode.jobId
ここまでのコードのまとめです。
-- sazaefamily table
CREATE TABLE sazaefamily (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
gender TEXT NOT NULL,
age INTEGER NOT NULL,
jobId INTEGER NOT NULL
);
-- sazaefamily values
INSERT INTO sazaefamily VALUES (1, '磯野波平', '男性',54,100);
INSERT INTO sazaefamily VALUES (2, 'フグ田サザエ', '女性',24,200);
INSERT INTO sazaefamily VALUES (3, '磯野カツオ', '男性',11,300);
INSERT INTO sazaefamily VALUES (4, '磯野ワカメ', '女性',9,300);
INSERT INTO sazaefamily VALUES (5, '穴子さん', '男性',27,100);
-- fetch sazaefamily values
SELECT * FROM sazaefamily;
-- jobcode table
CREATE TABLE jobcode (
jobId INTEGER PRIMARY KEY,
jobs TEXT NOT NULL
);
-- jobcode values
INSERT INTO jobcode VALUES (100, '会社員');
INSERT INTO jobcode VALUES (200, '主婦');
INSERT INTO jobcode VALUES (300, '学生');
-- fetch jobcode values
SELECT * FROM jobcode;
-- inner join
SELECT sazaefamily.name, sazaefamily.age, jobcode.jobs FROM sazaefamily INNER JOIN jobcode ON sazaefamily.jobId = jobcode.jobId
お疲れ様でした。ブレイクタイムPhotoは、

しながわ花海道のコスモスです。
ご精読誠にありがとうございました。
【オススメ入門書】
3ステップでしっかり学ぶ My SQL入門
ブログ改装中
只今、SEOやWordPressについて学習をしております。
基礎も何も勉強をしないでサイトを制作してしまった為、大幅な書き直しが必要になりました。
予定期間
2024年10月-2026年12月
ご迷惑をお掛けいたします。
ブログのテーマを変えようか、アドレスまで変わってしまうのかなど、かなり基本的なWordPressの使い方やSEOの基礎の基礎から学習しております。
ブログの方針も改めて考えながら決めていきたいので、どうか暫くお待ち下さいませ。
Pythonの辞書をループを用いて「サザエさん」のキャラを取り出す
この記事を読むことで、
・Pythonの辞書の「キー」及び「値」とは何か
・辞書自体をそのまま表示
・「辞書.items()」を使って、辞書をループを使って取り出す
の学習が出来ます。
辞書の例として、国民的アニメの「サザエさん」のキャラクターの「職業をキー」に、「キャラクターを値」にしています。
辞書は{“キー”:”値” , “キー”:”値” ,・・・}の構造になっていて、サザエさんキャラを例にすると、{“大黒柱”:”磯野波平” , “主婦”:”フグ田サザエ”}などになります。
サザエさんキャラの中から、こちらの5名を用意しました。
辞書の名前は「chara_dic」です。
#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'フグ田タラオ','ペット':'タマ'}まずは、ループで辞書のキーと値を取り出す前に、print関数でシンプルに辞書自体を表示させてみます。
コードはこちらです。
#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'フグ田タラオ','ペット':'タマ'}
#辞書自体を「そのまま」出力
print(chara_dic)辞書を「そのまま」取り出した実行結果です。

無事に出力されましたが、少し見辛いですよね。
そこで、今度はこの辞書をループを使って出力してみます。
コードに下記を追加します。
キーになるのはkey:職業や特徴で、値となるのはvalue:キャラクター名として、
forループで(key,value)を指定とすると、「大黒柱,磯野波平」から、「ペット,タマ」までの全てのメンバーを取り出せます。
#書き方は、「 辞書.items(): 」
chara_dic.items()を使って、キーであるkeyと、値であるvalueを取り出します。
ここまでのコードと実行結果です。
#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'フグ田タラオ','ペット':'タマ'}
#辞書.items()を使ってループで出力
for (key,value) in chara_dic.items():
print(key,value)
これでも辞書の「キー」と「値」が表示されて、先程よりかは幾分見やすくなりましたが、もう少し日本語の体裁を整えたいと思います。
下記のようにprint文内の日本語を整えて表示します。
print(key+"の、"+value+"さんです。")ここまでのコードと実行結果です。
#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'フグ田タラオ','ペット':'タマ'}
#辞書.items()を使ってループで出力
for (key,value) in chara_dic.items():
print(key+"の、"+value+"さんです。")
もう少し「キー」と「値」を見やすくしたいので、コードをこの様に書き換えます。
print("【"+key+"】の、【"+value+"】さんです。")ここまでのコードと実行結果です。
#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'フグ田タラオ','ペット':'タマ'}
#辞書.items()を使ってループで出力
for (key,value) in chara_dic.items():
print("【"+key+"】の、【"+value+"】さんです。")
お疲れ様でした。ブレイクタイムPhotoは、

千葉県の房総半島、外房の御宿の海です。
ご精読誠にありがとうございました。
■ 独習Python ■
Kindle版
単行本(ソフトカバー)
PythonのリストをループとIF文、enumerate関数を使ってサザエさんキャラを取り出してみた。
この記事を読むことで、
・Pythonのリストを単純にループを使って取り出す方法
・enumerate関数を使って取り出す方法
・IF文の復習
・strで数値と文字列をprint文で表示する方法
が可能になります
具体例として使うのは、国民的アニメのサザエさんです。
その中から4人の名前をcharacterというリストにこの様に格納しました。
chara=['波平','サザエ','カツオ','タマ']リストの添え字は「0(ゼロ)」から始まります。
このリストの場合、末尾の「タマ」は3です。
このリストの添字0の波平さん、添字1のサザエさん、添字2のカツオまでが「人間」で、添字3のタマが「猫ちゃん」です。
そこで、typeという変数を用意して、添え字が3のタマの場合のみtypeを「猫ちゃん」に、それ以外は「人間」と表示する様にプログラミングしました。
シンプルなIF文による分岐をしています。
#サザエさんのキャラクターのリスト
chara=['波平','サザエ','カツオ','タマ']
#ループを使ってリストを取り出す
#i=3のタマのtypeを「猫ちゃん」にする
for i in range(len(chara)):
if i==3:
type='猫ちゃん'
else:
type='人間'
print(chara[i]+':'+type)実行結果です。

このコードにenumerate関数を使うと、添字と値を同時に表示させることが可能になります。
enumerateを使うことによって、リストの添字i=0,1,2,3とリストの中身のキャラクターを同時に扱えます。
#サザエさんのキャラクターのリスト
chara=['波平','サザエ','カツオ','タマ']
#ループを使ってリストを取り出す
#i=3のタマのtypeを「猫ちゃん」にする
for i,member in enumerate(chara):
if i==3:
type='猫ちゃん'
else:
type='人間'
print(i,member+':'+type)このように書き換えられます。
実行結果です。

更に最後のprint文を変更して、実行結果に表示する日本語を、より伝わりやすく改変することも可能です。
str(i)を使うことによって、数値を文字と一緒にprint文内に表記しております。
#サザエさんのキャラクターのリスト
chara=['波平','サザエ','カツオ','タマ']
#ループを使ってリストを取り出す
#i=3のタマのtypeを「猫ちゃん」にする
for i,member in enumerate(chara):
if i==3:
type='猫ちゃん'
else:
type='人間'
print('家族No.'+str(i)+' '+member+'さんは「'+type+'」です。')実行結果です。

この様に、enumerate関数を使うと表記の自由度が増します。
ループ、リストとセットで復習にもなりました。
お疲れ様でした。ブレイクタイムPhotoは、

千葉県房総半島外房、御宿の海です。
ここの海は透明度が高いことが魅力の一つです。
ご精読誠にありがとうございました。
■ 独習Python ■
Kindle版
単行本(ソフトカバー)
Pythonで辞書を使ってサザエさんのキャラクターを職業別に出力
この記事を読むことで、
・Pythonの辞書の基本的な作り方
・キーと値の指定の仕方
・次のデータの追加方法
・辞書から「キーを指定」して「値を取り出す方法」
・標準入力の復習
が学べます。
この記事で作成する辞書の具体例として、国民的アニメ「サザエさん」のキャラクターを用います。
辞書は、「キー」と「値」で構成されていて、 {(波かっこ)} で括って、下記のように記述します。
chara_dic={'大黒柱':'磯野波平'}上記の場合は【キー】が「大黒柱」で、【値】が「磯野波平」です。
キーと値は「:」で区切っています。
辞書は、「 ,(カンマ) 」で区切ることによって、データを追加出来ます。
同様にして、他のキャラクターも追加しました。
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ'}この辞書をそのまま出力するコードはこちらです。
#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ'}
print(chara_dic)実行結果です。

次に、指定したキーの値のみを取り出してみます。
カツオくんにしようと思います。
#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ'}
print(chara_dic['小学生'])#ここでキーを指定しています。実行結果です。

この例ではキーに’小学生’と入力しましたが、変数keyに代入する書き方も掲載致します。
今度は主役のサザエさんを出力します。
#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ'}
key='主婦'#キーを変数に代入します。
print(chara_dic[key])#変数キーを指定しています。変数を使ったやり方でも無事に出力出来ました。

今度は、標準入力を使って、好きなキャラクターを表示出来る様に改変します。
そこで入力した内容をIF分岐を使って表示させます。
標準入力で入力する際にアルファベット1文字で簡単な操作性にする為、
「波平さん」の大黒柱を【d】、
「サザエさん」の主婦を「housewife」から【h】、
「カツオくん」の小学生を「Elementary school student」から【e】、
「タラちゃん」の幼児を「infant」から【i】、
「タマ」はペットの【p】
に致します。
標準入力は下記の様に、変数typeに代入します。
type=input()ここで【d】や【i】などの文字を変数typeに格納します。
また、辞書に新たなキャラクターを追加致します。
キーは「その他」で、値は「伊佐坂先生」を加えました。
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ','その他':'伊佐坂先生'}それでは、ここまでのコードと実行結果です。
#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ','その他':'伊佐坂先生'}
#ここで標準入力を使用します。
print('【d】大黒柱、【h】主婦、【e】小学生,【i】幼児,【p】ペット 【記号】を入力>>>',end='')
type=input()
#標準入力で入力した半角英字によって分岐しています。
if type == 'd':
key='大黒柱'
elif type=='h':
key='主婦'
elif type=='e':
key='小学生'
elif type=='i':
key='幼児'
elif type=='p':
key='ペット'
else:
key='その他'
print(chara_dic[key])#変数キーを指定しています。typeに【d】を入力した場合。

typeに【i】を入力した場合。

typeに指定の半角英字以外を入力した場合(仮に【x】と入れてみました。)

お疲れ様でした。ブレイクタイムPhotoは、

マクセルアクアパーク品川
(東京都品川区にある水族館です。)
ご精読誠にありがとうございました。
■ 独習Python ■
Kindle版
単行本(ソフトカバー)
ポートフォリオ作成に役立ったサイト
この記事では、HTMLとCSSがほんの少しだけ分かる程度の私でも使いやすいポートフォリオ作成のサイトを掲載致します。
まず、私のポートフォリオはこちらになります。
■ 無料テンプレート ■
【無料】ポートフォリオHTMLテンプレート(ベーシック)
TARO YAMADA(山田太郎さん)のシンプルなテンプレートを使って、自分の内容に書き換えました。
■ スキルセクション ■
FLATICONの使い方・ライセンスなどをご紹介!無料でも利用できるフリーアイコン素材サイト
洗練されたデザインのアイコンで、クオリティが高い上にプログラミングの中でもマイナーな言語のアイコンもあります。
無料で使えますが、クレジット表記が必要です。
書き方は上記サイトの説明に加えて、言語などのアイコンをダウンロードする時、Free downloadの所のHTMLソースをコピーして、更に自分のSNS(X:旧Twitter)にシェアして使いました。
■ コンタクトセクション ■
ICOOON MONO
無料でクレジット無しで使えて、色も自由に可変出来ます。
SNSのアイコンで、そこまでクオリティを求めていないのでその部分に使用しました。日本語検索が出来るので、かなり使いやすくて有名なサイトです。
■ 著作権 ■
ポートフォリオを作成する際には、著作権について基本的なことを勉強しておかないと後々困ることが生じて来る為、基本的な所から学習しました。
特に第3回の ネット社会にも権利がある は、ポートフォリオを作る際に知っておいて良かった内容が盛り込まれております。
私の推しがレギュラー出演されています。
この講座と推しについてはアメブロに書いた、可愛い女の子出演、Eテレ高校講座 情報I(日向坂46四期生「正源司 陽子」さん)をご覧下さいませ。
【人狼ゲームでPythonの総復習】日向坂46の2024年お正月「人狼ゲーム」でPythonの入門〜関数までの総復習が出來るサンプルコードを作ってみました。
この記事では、2024年お正月に配信された、日向坂46の人狼ゲームの配信を元に、Pythonの入門〜関数までの総復習が出来るサンプルコードを作ってみました。
こちらのYouTube動画です。
配信の感想は、アメブロの記事に、四期生の正源司 陽子(しょうげんじ・ようこ)さん推しの視点で書きました。
この記事で学習出来ることは、
・「=」代入と「==」比較演算子の違い
・無料で使えるオンラインのエディター紹介
・乱数とIF文で勝敗バトル
・Whileループと乱数で勝敗バトル
・↑記事に関数を導入
・Forループの基本的な使い方
・人狼役職の配列表示
・配列とForループ
・プログラミング学習コンテンツの紹介
についての概要が掴めます。
それでは「おひさま(ファンのネーム)」もPython学習中の方も、宜しくお願いします
■ 「=」代入と「==」比較演算子の違い ■
プログラミングの学習を始めた頃、「=」と「==」の違いで少し迷った時期がありました。
これについては、実際に手を動かしてコードを書いてみると、その疑問が氷解出来ました。
まず、「=」の代入ですが、変数roleに役職「市民」を代入して、print文で表示させます。
ご存知の方には恐縮ですが、コメントは「#」を付けます。
#変数roleに「市民」を代入
role='市民'
#役職を表示する
print(role)
実行結果はこちらです。

roleという変数に、役職「市民」が代入されて出力されました。
この後、roleに「裏切り者」を代入して出力します。
role='市民'
#別の役職、「裏切り者」を代入
role='裏切り者'
print(role)実行結果です。

このように、代入では入れる値によっては上書きされるというイメージを持って頂けたらと思います。
一方で、「==」は、等しいかどうかの判定を行います。
role='人狼'
#boolで等しい時はTrue、そうでなければFalse
print(bool(role=='市民'))「人狼」と「市民」は等しくないので、この様な実行結果になります。

IF文では、もしも「まっさらな市民」だとしたら自分は退場して、騎士などの役職持ちのメンバーに頑張ってもらいたい時は、例えばこの様に記述します。
role='市民'
#役職が市民だったら退場する
if role=='市民':
print('自分は退場して、騎士や霊媒師などに頑張ってもらう')実行結果です。

ここでもし、「==」を「=」にしてしまうと、エラーが出てしまって、正しく実行されません。
7行目の所でエラーが出ています。


「=」の代入と、「==」の比較演算子の違いは、実際に書いてみるのが一番理解できました。
とはいえ、「書いてみて」と言われても、プログラミングって環境構築に結構な時間や手間が掛かりますよね。
そこで、すぐに試してコードを書いて実行できる、オンライン上で無料の開発環境IDEを次の項目で紹介します。
■ 無料で使えるオンラインのエディター紹介 ■
結論ですが、paiza.ioがオススメです。
「コード作成を試してみる(無料)」→ 「Python3」 からすぐに学習開始出来ます。
無料のオンラインエディタ(IDE)を調べたら10個ぐらい出てきて、どれを使おうか迷いましたが、
・登録なしですぐ使える
・日本語対応
・標準入力機能が使える
といった点から、paiza.ioをオススメします。
ここでは、標準入力を使ってみます。
paiza.ioの下のタブの「入力」を選択して、自分のやりたい役職を入力します。

この状態で下記のコードを実行します。
変数roleに標準入力で入れた役職が入り、それを出力します。
#標準入力で、やりたい役職を入力する
role=input()
#その役職を表示する
print('私が1番やりたい役職は【'+role+'】です。')
標準入力についてはここまでにして、次からはランダムな数字である乱数を使って、ゲーム的な要素をプログラミングに取り入れてみます。
■ 乱数とIF文で勝敗バトル ■
ここから、乱数を使って、「市民チーム」と「人狼チーム」の勝敗を出力するといった、ゲーム的要素を入れたコードを書いて行きます。
1から10までの乱数を作って、5以上だったら人狼チームの勝ち、そうで無ければ市民チームの勝ちとします。
乱数は、import random で使える様になり、1から10のランダムな整数は random.randint(1,10)で生成します。
その乱数を変数numに代入します。
勝者を入れる変数は、winnerを使います。
#乱数を使える様にする
import random
#1から10までの乱数を作る
num=random.randint(1,10)
#5以上だったら人狼チームの勝利
if num>=5:
winner='人狼'
else:
winner='市民'
#勝敗結果を出力
print('勝者は【'+winner+'】チームです!!')実行結果です。

何回か実行してみると、

実行結果が変わりました。
このままでも、どっちが勝ったのか分かるのですが、乱数の数値が何だったのか知りたいので、numも表示させてみます。
#乱数を使える様にする
import random
#1から10までの乱数を作る
num=random.randint(1,10)
#5以上だったら人狼チームの勝利
if num>=5:
winner='人狼'
else:
winner='市民'
#勝敗結果を出力
print('勝者は【'+winner+'】チームです!!')
print(num)
あとは、1行で表示されるようにしたいのと、numもprint文の中に一緒に入れたいのですが、数値型の変数を文字列型と一緒に使う場合には、str(num)と書きます。
#乱数を使える様にする
import random
#1から10までの乱数を作る
num=random.randint(1,10)
#5以上だったら人狼チームの勝利
if num>=5:
winner='人狼'
else:
winner='市民'
#勝敗結果と乱数を一緒に出力
print('numが「'+str(num)+'」より、勝者は【'+winner+'】チームです!!')実行結果です。

■ Whileループと乱数で勝敗バトル ■
ループを使ってちょっとRPGっぽく、市民チームと人狼チームのHPを指定して、HPが0になったらループを抜けて負けにしてみます。
Whileループの継続条件は、両方のチームのHPが0以上の場合です。
攻撃されるとHPが減って、攻撃によってどれぐらいHPが減るのかを乱数attackで指定します。
flagが0だったら人狼チームの攻撃、1だったら市民チームの攻撃にします。
改行は「\n」を使います。
ちょっと複雑だな・・・と思われた方は、次の次のForループの所まで読み飛ばして頂いても大丈夫です♪
#乱数を使える様にする
import random
#市民チームと人狼チームのHP初期値を10にする
shimin_HP=10
jinro_HP=10
#whileループでバトル!!
while shimin_HP>0 and jinro_HP>0:
#相手チームに与えるダメージは1から5までの乱数にする
attack=random.randint(1,5)
#0だったら人狼チームの攻撃、1だったら市民チームの攻撃にする
flag=random.randint(0,1)
if flag==0:
print('人狼チームが市民チームに「'+str(attack)+'」のダメージを与えた')
#攻撃された市民チームのHPがマイナスされる
shimin_HP-=attack
else:
print('市民チームが人狼チームに「'+str(attack)+'」のダメージを与えた')
#攻撃された人狼チームのHPがマイナスされる
jinro_HP-=attack
print('市民チームHP残:'+str(shimin_HP)+'\n人狼チームHP残:'+str(jinro_HP))
print('----------')
#勝敗結果
if shimin_HP>jinro_HP:
winner='市民'
else:
winner='人狼'
print('勝者は【'+winner+'】チーム!!') 実行結果は長いので省略させて頂きますm(_ _)m
コード自体が長くなってきて、メンテナンスの意味も込めて、次の項目ではバトルの部分と勝敗結果をdefを使って関数にして、関数をループ中やprint文の中から呼び出してみるようにコードを書き換えてみます。
■ ↑コードにdefで関数を導入 ■
バトルの部分を関数battleにして、whileループで呼び出し、勝敗結果をprint文の中で呼び出すコードに書き換えてみました。
#乱数を使える様にする
import random
#市民チームと人狼チームのHP初期値を10にする
shimin_HP=10
jinro_HP=10
#defで関数battleを定義する
def battle(shimin_HP,jinro_HP):
#相手チームに与えるダメージは1から5までの乱数にする
attack=random.randint(1,5)
#0だったら人狼チームの攻撃、1だったら市民チームの攻撃にする
flag=random.randint(0,1)
if flag==0:
print('人狼チームが市民チームに「'+str(attack)+'」のダメージを与えた')
#攻撃された市民チームのHPがマイナスされる
shimin_HP-=attack
else:
print('市民チームが人狼チームに「'+str(attack)+'」のダメージを与えた')
#攻撃された人狼チームのHPがマイナスされる
jinro_HP-=attack
print('市民チームHP残:'+str(shimin_HP)+'\n人狼チームHP残:'+str(jinro_HP))
print('----------')
return shimin_HP,jinro_HP
while shimin_HP>0 and jinro_HP>0:
#関数battleを呼び出している
shimin_HP,jinro_HP=battle(shimin_HP,jinro_HP)
#defで関数winを定義している
def win():
if shimin_HP>jinro_HP:
winner='市民'
else:
winner='人狼'
return winner
#print文の中で関数winを呼び出している
print('勝者は【'+win()+'】チーム!!')■ Forループの基本的な使い方 ■
上記のWhileループの他にForループがあって、配列と一緒に使うのに便利です。
人狼ゲームの役職の配列を作ってその中身を取り出すのにForループを使って行きます。
その前に、Forループの基本的な使い方を確認します。
・0から4まで1ずつ加算
#0から4まで1ずつ加算
for i in range(5):
print(i)実行結果です。

もっと短いコードで書ける、内包表記を使うとこの様になります。
#0から4まで1ずつ加算
for i in range(5):
print(i)
#内包表記
[print(i) for i in range(5)]
内包表記の実行結果も上のループと同じになります。

・0から9まで2ずつ加算
#0から9まで2ずつ加算
for i in range(0,10,2):
print(i)
#内包表記
[print(i) for i in range(0,10,2)]
実行結果(同じなので、片方だけのスクショです。)

・5から1まで1ずつ減算
#5から1まで1ずつ減算
for i in range(5,0,-1):
print(i)
#内包表記
[print(i) for i in range(5,0,-1)]

以上が、Forループの基本的な使い方です。
■ 人狼役職の配列表示 ■
配列って、なんか難しそうだ・・・と思われた方は、配列とは団地みたいなものをイメージして下さい。
団地の0号室に「市民」が住んでいて、1号室に「霊媒師」が住んでいて・・・そんなイメージです。
普通の団地と異なるのは、0号室から始まることです。
#配列を定義
array=['市民','霊媒師','占い師','騎士','裏切り者','人狼']
#配列を出力
print(array)出力結果です。

配列は0から始まるので、例えば「占い師」を表示させたい場合は、array[2]になります。
#配列を定義
array=['市民','霊媒師','占い師','騎士','裏切り者','人狼']
#配列を出力
print(array[2])
次の項目では、先ほどのループと配列を合わせた、プログラミングでは使用頻度の高いコードを掲載します。
■ 配列とForループ ■
ループを使って、配列の中身を取り出します。
通常の表記と、内包表記を併記します。
#配列を定義
array=['市民','霊媒師','占い師','騎士','裏切り者','人狼']
#Forループで配列の出力
for role in array:
print(role)
#内包表記
[print(role) for role in array]実行結果です。

この記事ではここまでで、Pythonの入門〜関数までの総復習が出来たと思います。
もっと詳しく勉強したい方は、下記の学習コンテンツがオススメです。
いきなり本を買っても良いのですが、出来れば動画学習コンテンツで多少知識を入れてからの方が、本当に必要なお買い物が出来ると思います。
本も紹介させて頂きます。
■ プログラミング学習コンテンツの紹介 ■
初めてのプログラミング学習では、やはり講師の説明を聞きながら動画を見て、それを自分のPCで動かして試してみる・・・という方法がハードルが低いので、オススメの学習コンテンツを2つ紹介します。
どっちが良いのか迷われた方は、両方の無料レッスンを受けてみて、自分に合いそうな方を取り入れて下さい。
ご精読誠にありがとうございました。
■ 独習Python ■
Kindle版
単行本(ソフトカバー)
長々と書いてしまいましたが、本当に読んで下さって有難うございます。
大変、お疲れ様でした。
ブレイクタイムPhotoは・・・

地元の遊歩道の桜並木です。
いたばし花火大会2023
ご覧頂きまして、誠にありがとうございます。
写真スライドショーが作れる動画編集ソフトを使って、YouTubeとTikTokとThreadsにUPしてます。
4年ぶりに開催されたいたばし花火大会2023。
ナイアガラの滝での火災のアクシデントがあり、もしも色々大変だった方がいらしたら、お見舞い申し上げます。
ご心配を頂きましたが、私は無事に帰宅できました。
※ 音量注意 ※
●YouTube
● TikTok
動画の中から写真を掲載致します。





撮影した場所は、この辺りです
高島平駅から北上して、新河岸で撮りました。

もう少し、広域です。

今日も見て下さって、ありがとうございました (=^x^=)
写真の投稿を始めました。
(写真AC)のプロフィールページです。
TikTok始めました。
始めた理由は、TikTokの仕組みに興味を持ったからです。若い方限定のSNSなので、自分には無理だと思っていたのですが、他のSNSが時間に影響を受ける仕組みに対してTikTokは時間に影響を受けないループ型なので、良い動画であれば過去の動画も見て頂けるという仕組みに興味を持って始めました。TikTokは、Twitterが使える方なら多分すぐ慣れると思いますし、動画編集に至っては、YouTubeの100倍以上楽です。
写真のアンケートを実施しております。
宜しかったらご回答頂けますと、大変励みになります(=^x^=)
■ 関連記事 ■
自己紹介
息抜きに、写真で癒し(=^x^=)に戻る
初めてのPhotoshop

