BNBのプログラミング勉強記録

ガチのプログラミング初心者が駆け上がっていくブログ

メモ(Python III)

関数の定義と呼び出し

def print_hand():
    print('グーを出しました')

print_hand()

仮引数

def print_hand(hand):
    print(hand+'を出しました')

print_hand('グー')
print_hand('パー')

複数の引数

def print_hand(hand,name):
    print(name+'は'+hand + 'を出しました')

print_hand('グー','にんじゃわんこ')
print_hand('パー','コンピューター')

引数の初期値

def print_hand(hand, name='ゲスト'):
    print(name + 'は' + hand + 'を出しました')

print_hand('グー')

戻り値True

  • 条件式でTrue == TrueまたはFalse == Trueを比較する場合は== Trueを省略することができる
  • returnは戻り値を呼び出し元に返すだけでなく、関数内の処理を終了させる性質も持っておる
def validate(hand):

    if hand<0 or hand>2:
        return False
    else:
        return True

上記は、こうも書ける

def validate(hand):

    if hand < 0 or hand > 2:
        return False
    return True

モジュール読み込みと使用

import utils

#中略

utils.print_hand(computer_hand, 'コンピュータ')

randomモジュール読み込みと使用

import random

#中略

computer_hand = random.randint(0,2)

総合演習

#script.py

import utils
import random

print('じゃんけんをはじめます')
player_name = input('名前を入力してください:')
print('何を出しますか?(0: グー, 1: チョキ, 2: パー)')
player_hand = int(input('数字で入力してください:'))

if utils.validate(player_hand):
    computer_hand = random.randint(0,2)
    
    if player_name == '':
        utils.print_hand(player_hand)
    else:
        utils.print_hand(player_hand, player_name)

    utils.print_hand(computer_hand, 'コンピューター')
    
    result = utils.judge(player_hand, computer_hand)
    print('結果は' + result + 'でした')
else:
    print('正しい数値を入力してください')
#utils.py

def validate(hand):
    if hand < 0 or hand > 2:
        return False
    return True

def print_hand(hand, name='ゲスト'):
    hands = ['グー', 'チョキ', 'パー']
    print(name + 'は' + hands[hand] + 'を出しました')

def judge(player, computer):
    if player == computer:
        return '引き分け'
    elif player == 0 and computer == 1:
        return '勝ち'
    elif player == 1 and computer == 2:
        return '勝ち'
    elif player == 2 and computer == 0:
        return '勝ち'
    else:
        return '負け'