티스토리 뷰

6.8 사례 연구: 10진수를 16진수로 변환하기(Converting Decimals to Hexadecimals)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#10진수를 16진수 string으로 변환
def decimalToHex(decimalValue):
    hex = ""
 
    while decimalValue != 0:
        hexValue = decimalValue % 16
        hex = toHexChar(hexValue) + hex
        decimalValue = decimalValue // 16
 
    return hex
 
#정수를 단일 16진수 digit 문자로 바꾸기
 
def toHexChar(hexValue):
    if <= hexValue <= 9:
        return chr(hexValue + ord('0'))
 
    else : #10 <= hexValue <= 15글자색
        return chr(hexValue - 10 + ord('A'))
 
def main():
    decimalValue = eval(input("Enter a deciaml number: "))
 
    print("The hex number for decimal",
          decimalValue, "is", decimalToHex(decimalValue))
 
main()
cs

 

6.9 변수의 범위(The Scope of Variables) 

 

- 함수 내 환경에서 변수의 범위(the scope of variables)라는게 존재한다.

- 함수 에서 선언하는 변수를 지역 변수(local variable)라고 하며, 지역 변수는 만들어진 시점부터 함수가 끝날 때 까지가 지역변수의 범위(scope)이다.

- 함수 에서 선언하는 변수를 전역 변수(global variable)라고 하며, 어느 함수에서든 접근이 가능한 범위(scope)를 가지고 있다.

 

*전역변수, 지역변수 비교

globalVar = 1 #전역변수 선언

def f1():
    localVar = 2 #지역변수 선언
    print(globalVar)
    print(localVar)글자색

 

f1()
print(globalVar)
print(localVar) #지역 변수의 범위 밖이라 오류가 난다.

 

- 전역 변수함수 밖에서 선언, 지역 변수f1 함수 내에 선언되었다.
- f1 함수 내에서 지역 변수 접근 가능하지만, 함수 밖에서는 접근이 불가능하다.

- 반대로 전역 변수함수 밖에서도 접근이 가능하다.

 

*전역변수, 지역변수 비교

 

x = 1
def f1():
    x = 2
    print(x) # x= 1이 출력

f1()
print(x) # x =2  출력

 

 

- 위 코드에서도, 지역 변수는 함수 밖에서 접근이 불가능하기 때문에 전역 변수 x = 1 이 출력된다.



- 함수에서 전역 변수를 사용하기 위해선global 키워드사용하여야 한다.

 

*global 키워드 예

x = 1
def increase():
    global x #global 키워드를 사용해서 전역 변수 접근
    x = x + 1
    print(x)

increase()
print(x)

 

- 다음 코드 예측 해보기

 

1
2
3
4
5
6
def f(x, y = 1, z = 2):
    return x + y + z
 
print(f(111)) 
print(f(y = 1, x = 2, z = 3)) 
print(f(1, z = 3)) 
cs

6.10 기본 인자(Default Arguments)

- 파이썬에선, 기본 인자 값(default arguments value)을 설정해 함수를 정의 할 수 있다.

- 인자(arguments) 없이 함수를 호출 할 때, 함수를 선언할 때 설정한 기본 값(default values)이 매개변수에 전달 된다. 

- 아래의 예제 Line 8, 9 처럼 특정한 매개변수에만 인자를 전달 할 수도 있다.

 

*기본 인자 예제

1
2
3
4
5
6
7
8
9
def printArea(width = 1, height =2):
    area =width * height
    print("width:", width, "\theight:", height, "\tarea: ", area)
 
printArea()# 기본 인자로 함수 호출, width = 1, height = 2
printArea(42.5)#위치 인자로 함수 호출 width = 4, height = 2.5
printArea(height = 5, width = 3)#키워드 인자로 함수 호출, width = 3, height = 5
printArea(width = 1.2)#width = 1.2 height = 2
printArea(height = 6.2)#width = 1, height = 6.2
cs

 

6.11 다중값 반환하기(Returning Multiple Values)

- 파이썬의 return 명령어는 여러개의 값을 반환 할 수 있다.

- 아래의 예제는 두 개의 값을 오름차순으로 반환하는 프로그램이다.

 

*다중값 반환

1
2
3
4
5
6
7
8
9
def sort(number1, number2):
    if number1 < number2 :
        return number1, number2 
    else:
        return number2, number1
 
n1, n2 = sort(3,2) #n1, n2 = number2, number1과 같은 의미
print("n1 is ",n1)
print("n2 is ",n2)
cs

 

- 위 처럼 다중값을 반환할 때는, 동시할당문을 사용하여 변수에 반환값을 전달해야 한다.

 

참고 문헌 : Introduction to Programming Using Python / Y.DANIEL LIANG



본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.


교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다. 

댓글