関数の利用例として2つ提示します。
参考にしてみてください。
自分が利用しやすい関数を作る
実行イメージ
2乗します。数値をどうぞ: 4 16です 2つの数の大きい方を教えるよ x = 100 y = 999 大きいのは999だよ 2つの数の小さい方を教えるよ x = -123 y = 0 小さいのは-123だよ 5つ数値を入れてね。合計を求めるよ… 1つ目: 10 2つ目: 20 3つ目: 30 4つ目: 40 5つ目: 50 合計は150です
iroirokansu.py
# 関数を使った例1: 自分が利用しやすい関数を作る
# 2乗を返す関数
def jijo(x):
return x * x
# 2つの数の大きい方を返す関数
def max(x, y):
if x > y:
return x
else:
return y
# 2つの数の小さい方を返す関数
def min(x, y):
if x < y:
return x
else:
return y
# リストの合計を返す関数
def get_gokei(suti):
gokei = 0
for v in suti:
gokei += v
return gokei
"""
メイン処理
"""
n = int(input("2乗します。数値をどうぞ: "))
print("{}です\n".format(jijo(n)))
print("2つの数の大きい方を教えるよ")
x = int(input("x = "))
y = int(input("y = "))
print("大きいのは{}だよ\n".format(max(x, y)))
print("2つの数の小さい方を教えるよ")
x = int(input("x = "))
y = int(input("y = "))
print("小さいのは{}だよ\n".format(min(x, y)))
suti = []
print("5つ数値を入れてね。合計を求めるよ...")
for i in range(1, 6):
print("{}つ目: ".format(i), end="")
n = int(input())
suti.append(n)
print("合計は{}です".format(get_gokei(suti)))
ゲームのメニュー処理部分を関数化する
実行イメージ
地獄の騎士が現れた! レオンハルト HP:50 地獄の騎士 HP:50 どうする? 1: 戦う 2: 守る >> 1 レオンハルトの攻撃! 地獄の騎士に24のダメージを与えた レオンハルト HP:50 地獄の騎士 HP:26 地獄の騎士の攻撃! レオンハルトは22のダメージを受けた レオンハルト HP:28 地獄の騎士 HP:26 どうする? 1: 戦う 2: 守る >> 1 レオンハルトの攻撃! : : レオンハルトの攻撃! 地獄の騎士に16のダメージを与えた レオンハルト HP:6 地獄の騎士 HP:-14 地獄の騎士を倒した!先を急ごう
menu_rpg.py
# 関数を使った例2: ゲームのメニュー処理部分を関数化する
import random
# ダメージ計算関数
def getDamage():
return random.randint(10, 31)
# 攻撃関数
def attack():
global player_hp, monster_hp
print("{}の攻撃!".format(player), end="")
input()
monster_damage = getDamage()
print("{}に{}のダメージを与えた".format(monster, monster_damage), end="")
input()
monster_hp -= monster_damage
show_hp()
if check_hp():
return
print("{}の攻撃!".format(monster), end="")
input()
player_damage = getDamage()
print("{}は{}のダメージを受けた".format(player, player_damage), end="")
input()
player_hp -= player_damage
show_hp()
if check_hp():
return
# 防御関数
def diffence():
global player_hp
print("{}は身を守っている...".format(player), end="")
input()
print("{}の攻撃!".format(monster), end="")
input()
player_damage = int(getDamage() / 2)
print("{}は{}のダメージを受けた".format(player, player_damage), end="")
input()
player_hp -= player_damage
show_hp()
if check_hp():
return
# HP表示関数
def show_hp():
print()
print("{} HP:{}".format(player, player_hp))
print("{} HP:{}".format(monster, monster_hp))
print()
# HPチェック関数
def check_hp():
if player_hp <= 0 or monster_hp <= 0:
return True
else:
return False
"""
メイン処理
"""
# キャラクタ設定
player = "レオンハルト"
monster = "地獄の騎士"
player_hp = 50
monster_hp = 50
# 敵登場
print("{}が現れた!".format(monster))
show_hp()
# 戦闘
while True:
menu = input("どうする? 1: 戦う 2: 守る >> ")
if menu == "1":
attack()
elif menu == "2":
diffence()
else:
print("それはない")
continue
if check_hp():
break
# 戦闘終了
if player_hp <= 0:
print("{}は力尽きた。{}の旅はついえた...".format(player, player))
else:
print("{}を倒した!先を急ごう".format(monster))
コメント