유효 범위
함수 외부에서 지정한 변수는 함수 내부에서 수정할 수 없다.
enemies = 1
def increase_enemies() :
enemies = 2
print(f"enemies inside function : {enemies}")
increase_enemies()
print(f"enemies inside function : {enemies}")
전역 변수와 지역 변수
전역 변수는 함수 외부와 내부에서 모두 사용 가능
지역 변수는 함수 내부에서만 사용 가능.
#전역 변수
player_hearth = 10
def drink_potion() :
# 지역 변수
potion_strength = 2
print(player_hearth)
drink_potion()
전역 변수를 수정하는 방법
함수 내부에 global을 호출한다.
이 방법은 코드를 혼란스럽게 할 수 있기 때문에 추천하진 않는다고 한다.
enemies = 1
def increase_enemies() :
global enemies
enemies += 2
print(f"enemies inside function : {enemies}")
increase_enemies()
print(f"enemies inside function : {enemies}")
함수 내부에서 전역변수를 호출하지 않고 전역 변수를 수정하는 방법.
return 반환문을 출력하면 된다.
enemies = 1
def increase_enemies() :
print(f"enemies inside function : {enemies}")
return enemies + 2
enemies = increase_enemies()
print(f"enemies inside function : {enemies}")
전역변수를 생성할 때 대문자로 입력하여 추후 함수 내부에서 수정하지 않도록 할 수 있다.
PI = 3.14159
URL = "<https://www.google.com>"
from random import randint
from art import logo
EASY_LEVEL_TURNS = 10
HARD_LEVEL_TURNS = 5
# 정답과 유저가 추측한 정답이 맞는지 확인하는 함수.def check_answer(guess, answer, turns):
if guess > answer:
print("Too high.")
return turns - 1
elif guess < answer:
print("Too low.")
return turns - 1
else:
print(f"정답입니다! 정답은 {answer} 입니다..")
#난이도를 설정해주는 함수.def set_difficulty():
level = input("난이도를 설정해주세요 'easy' or 'hard': ")
if level == "easy":
return EASY_LEVEL_TURNS
else:
return HARD_LEVEL_TURNS
def game():
print(logo)
#1부터 100까지 중 숫자를 선택.print("숫자 맞추기 게임에 오신것을 환영합니다.")
print("1부터 100까지 중 숫자를 하나 선택하겠습니다.")
answer = randint(1, 100)
print(f"정답은 {answer} 입니다.")
turns = set_difficulty()
guess = 0
while guess != answer:
print(f"You have {turns} attempts remaining to guess the number.")
# 유저의 시도.
guess = int(input("Make a guess: "))
turns = check_answer(guess, answer, turns)
if turns == 0:
print("You've run out of guesses, you lose.")
return
elif guess != answer:
print("Guess again.")
game()