46_6_7
@46_6_7

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

importについて

解決したいこと

importについて理解があまりできていないので、詳しい解説をお願いしたいです。

発生している問題

importで呼び出しの記述後、
「モジュール名.関数名()」と書くことで、モジュール内の関数を実行することができるみたいですが、
イマイチ理解が出来ていないです。
例えばscript.pyのif utils.validate(player_hand):が読み込まれるとutils.pyの
どの記述が読み込まれるのかわかっていない状態です。
今回はコメントアウトで記述されているので何が呼び出されるのかは分かりますが、
コメントアウトが無くなれば手が止まってしまう状態です。
ど素人でも理解できる解説をお願いしたいです。
お手数ですが、よろしくお願い致します。

該当するソースコード

python script.py
# 3つの関数のコードを utils.py に移してください(こちらのコードは消してください)

# utils.py をモジュールとして読み込んでください
import utils

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

# utils モジュール内の関数 validate を呼び出してください
if utils.validate(player_hand):
    computer_hand = 1

    if player_name == '':
        # utils モジュール内の関数 print_hand を呼び出してください
        utils.print_hand(player_hand)
    else:
        # utils モジュール内の関数 print_hand を呼び出してください
        utils.print_hand(player_hand, player_name)

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

python utils.py
# 3つの関数のコードを貼り付けてください
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 '負け'

0

1Answer

VSCodeを使って、右クリック→「定義へ移動(F12)」をすれば、すぐに定義にジャンプできますよ。もしくは、CLI環境でvimしか使えない状況ですか?
definition.PNG

0Like

Comments

  1. @46_6_7

    Questioner

    importにカーソルを合わせ、定義へ移動をvscodeで行ってみましたが、「importの定義は見つかりません」
    と出てきます。
  2. utils.validateの部分にカーソルを合わせて右クリックしてください。
  3. @46_6_7

    Questioner

    カーソル合わせて実行したら出来ました。
    ありがとうございます!

Your answer might help someone💌