티스토리 뷰
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 0 <= 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 함수 내에 선언되었다. - 반대로 전역 변수는 함수 밖에서도 접근이 가능하다. *전역변수, 지역변수 비교 x = 1 f1()
- f1 함수 내에서 지역 변수 접근 가능하지만, 함수 밖에서는 접근이 불가능하다.
def f1():
x = 2
print(x) # x= 1이 출력
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(1, 1, 1))
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(4, 2.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
※
본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.
교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다.
※
'파이썬 > 이론' 카테고리의 다른 글
[파이썬]함수 추상화와 단계적 개선 (2) (0) | 2017.07.30 |
---|---|
[파이썬]랜덤 ASCII 문자 생성, 함수 추상화와 단계적 개선(1) (0) | 2017.07.28 |
[파이썬]레퍼런스값에 의한 인자 전달, 모듈화 (0) | 2017.07.26 |
[파이썬]반환값이 있는/없는 함수, 위치인자와 키워드 인자 (2) | 2017.07.24 |
[파이썬]함수, 함수 정의, 함수 호출 (1) | 2017.07.23 |
- Total
- Today
- Yesterday
- 파이썬 함수
- 웹
- 백준
- css
- 파이썬 연산자
- 자바 에센셜 실습문제
- 파이썬 while
- 파이썬 클래스
- 자료구조
- 자바
- 파이썬 객체
- 백준 1874
- 파이썬 진수 변환
- css 그리드
- 자바스크립트 그래프
- 파이썬 터틀
- 파이썬
- 버츄어박스
- 파이썬 선택문
- 백준 10451
- 파이썬 if문
- css 박스
- 파이썬 리스트
- 명품 c++ 실습
- 파이썬 문자열
- 백준 11501
- 파이썬 예제
- 파이썬 단계적 개선
- 파이썬 for
- 자바스크립트 자료구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 | 31 |