Programming (23) 썸네일형 리스트형 [ProjectH4C] 코딩도장 Python Write-up (3) 예외 처리 예외(Exception)란 코드를 실행하다가 발생하는 에러를 뜻한다. 실행할 때마다 에러가 발생하는 것이 아니고, 특수한 경우에만 발생하는 에러가 있는데, 이러한 상황들을 예외라고 한다. def ten_div(x): return 10 / x 위의 함수는 10을 매개변수로 나눈 값을 리턴하는 함수이다. 평소에는 잘 동작하지만, 매개변수로 0을 넘겨주면 실행하는 도중에 에러가 발생한다. #tenDiv.py def ten_div(x): return 10 / x a = int(input()) print(ten_div(a)) $ python tenDiv.py 0#0을 입력 Traceback (most recent call last): File "tenDiv.py", line 5, in print(ten.. [ProjectH4C] 코딩도장 Python Write-up (2) 파일 입출력 파이썬에서도 파일을 열어서 수정하는 것이 가능하다. 먼저 open 함수로 파일을 열고, write 함수를 이용해 파일을 수정하면 된다. 파일 수정을 마쳤다면 close 함수를 이용해 파일을 닫아주어야 한다. open(file_name, file_mode) 열고자 하는 파일의 이름을 첫 번째 인자로, 해당 파일의 모드를 두 번째 인자로 넘겨준다. 만약 파일을 읽기만 할 거라면 'r', 파일을 쓰고자(수정하고자)한다면 'w' 모드로 실행하면 된다. write('내용') 파일에 내용을 쓰고자 한다면 write 함수를 이용해서 추가해주면 된다. 이 때, 쓰고자 하는 파일에 대해 write 함수를 실행해야 하기 때문에 만약 파일 객체의 이름을 file로 만들었다면 file.write('내용')와 같은.. [ProjectH4C] 코딩도장 Python Write-up (1) 개요 요즘 떠오르는 대표적인 언어가 파이썬이다. 파이썬은 프로그래머 뿐 아니라 문, 이과를 통틀어서 어느 분야에서든 사용하는 언어로 자리잡혀있다. 파이썬의 비중이 커진 데에는 몇 가지 이유가 있다. 문법이 매우 쉽고 간단함. 패키지가 다양함. 오픈 소스이며, 모두 무료임 파이썬의 문법들은 굉장히 직관적이여서 초보자도 쉽게 배울 수 있다는 점이 프로그래밍의 장벽을 낮추고 널리 사용하게 된 가장 큰 이유이지 않나 싶다. 그런 파이썬의 기초 문법에 대해 공부해보고자 한다. 설치 및 실행 파이썬의 설치는 파이썬 공식 홈페이지 (http://www.python.org/downloads/) 에서 가능하다. 맥에는 기본으로 2.7 버전이 깔려있지만, 2.7버전을 실행하면 곧 사라질 버전이니 파이썬3을 이용하라는 경고.. [ProjectH4C] 코딩도장 Unit 54~55 Write-Up 공용체 공용체란, 구조체와 정의 방법은 같지만 멤버를 저장하는 방식에 차이가 있다. 구조체는 멤버들이 각각 공간을 차지하지만 공용체는 하나의 공간에 모든 멤버가 공간을 공유한다. 그림으로 표현하면 다음과 같다. 공용체는 멤버로 선언된 자료형 중 가장 큰 자료형의 공간을 공유한다. 위의 그림의 경우 int형이 4바이트로 가장 크기 때문에 short, char 자료형이 int의 공간을 공유한다. 공용체를 정의하는 방법은 다음과 같다. union 공용체이름{ 자료형 멤버1; 자료형 멤버2; ... }; 각 멤버에 접근하는 방법이나 사용하는 법은 구조체와 동일하며 공용체도 typedef 선언과 익명 공용체 선언이 가능하다. 엔디언(Endian) 엔디언이란, 값을 메모리에 저장할 때 연속된 공간에 값을 배열하는 .. [ProjectH4C] 코딩도장 Unit 51~53 Write-Up 구조체 활용 멤버로 문자형 변수와 정수형 변수를 하나씩 가지고 있는 구조체가 있다고 치자. 문자형은 1바이트, 정수형은 4바이트이기 때문에 구조체의 전체크기는 5바이트가 되어야 하지만, 아래의 코드에서 실제 구조체의 크기를 출력해보면 5바이트가 아닌 8바이트가 출력된다. #include struct PacketHeader { char flags; // 1바이트 int seq; // 4바이트 }; int main() { struct PacketHeader header; printf("%d\n", sizeof(header.flags)); // 1: char는 1바이트 printf("%d\n", sizeof(header.seq)); // 4: int는 4바이트 printf("%d\n", sizeof(heade.. [ProjectH4C] 코딩도장 Unit 48~50 Write-Up 구조체 보통은 필요할 때마다 변수를 하나씩 선언해서 사용하지만, 여러 개의 변수를 하나로 묶어서 한번에 관리하는 방법이 있다. 만약 인적 정보를 처리한다고 하면 이름, 나이, 주소에 관한 변수를 각각 선언해서 저장하면 되지만, 여러 사람의 인적정보를 각각 구분해서 저장하고 싶다면 코드가 굉장히 복잡해지고 비효율적이다. 이럴 때 자료를 조금 더 체계적으로 관리하기 위해 사용하는 것이 구조체이다. 기본적인 구조체 정의 방법은 다음과 같다. struct Person{ char name[20]; int age; char address[100]; }; Person이라는 구조체 안에 이름, 나이, 주소를 저장할 수 있도록 선언하는 법이다. 이렇게 정의한 구조체를 사용하는 방법은 다음과 같다. struct Perso.. [ProjectH4C] 코딩도장 Unit 46~47 Write-Up 문자열 변환 프로그래밍을 하다 보면 출력 결과는 숫자이지만 출력 형태는 문자열인 경우가 종종 있다. 이러한 경우에 문자열을 int, float 형으로 변환하거나 int, float형의 숫자를 문자열로 바꾸어주는 함수가 있다. atoi(문자열) atoi() 함수는 문자열을 정수로 바꾸어 준다. Ascii TO Integer의 약자이며, stdlib.h 헤더 파일에 선언되어 있다. #include #include // atoi 함수가 선언된 헤더 파일 int main() { char *s1 = "283"; // "283"은 문자열 int num1; num1 = atoi(s1); // 문자열을 정수로 변환하여 num1에 할당 printf("%d\n", num1); // 283 return 0; } 실행 결과 .. [ProjectH4C] 코딩도장 Unit 41~45 Write-Up 문자열 다루기 C언어에서는 문자열을 다루는 여러가지 함수들을 제공한다. 이들은 모두 string.h 헤더파일에 선언되어 있다. 1. 문자열의 길이 문자열의 길이를 반환하는 함수로 strlen(str) 함수가 있다. 이 때 인자로 길이를 구하고자 하는 문자열이 저장된 배열 또는 포인터를 넘긴다. 반환 값은 정수 형태이다. #include #include // strlen 함수가 선언된 헤더 파일 int main() { char *s1 = "Hello"; // 포인터에 문자열 Hello의 주소 저장 char s2[10] = "Hello"; // 크기가 10인 char형 배열을 선언하고 문자열 할당 printf("%d\n", strlen(s1)); // 5: strlen 함수로 문자열의 길이를 구함 print.. 이전 1 2 3 다음