Python参考スクリプト(関数)

Python

関数の利用例として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))

コメント