programming 23

파이썬 쿡북 7 - 조건문

프로그램을 만들면서 사용자의 입력에 따라, 또는 다른 변수의 값에 따라 다른 코드를 실행하고 싶을 때가 있다. 그럴 때 특정 조건이 참일 때, 거짓일 때 다른 코드를 수행하게 하는 조건문을 사용할 수 있다. if ~ elif ~ else if ~ elif ~ else 구문은 다음과 같이 사용할 수 있다. if (조건 1) : (실행할 코드) elif (조건 2) : (실행할 코드) elif (조건 3) : (실행할 코드) ... elif (조건 n-1) : (실행할 코드) else : (실행할 코드) 조건 1부터 조건 n-1까지 순차적으로 탐색하며 처음으로 참이 나온 조건의 하위에 있는 코드를 실행하고 조건문을 나온다. 만일 참인 조건이 한 개도 없으면 else의 하위에 있는 코드를 실행하고 조건문을 나..

programming 2023.06.29

파이썬 쿡북 6 - 반복문

반복문을 말그대로 특정 코드를 반복해서 실행하고 싶을 때 쓴다. while 반복문 while (조건) : (실행할 코드) 조건이 참일 동안 실행할 코드를 반복해서 실행한다. for 반복문 for (변수) in (반복할 자료) : (실행할 코드) 반복할 자료에 리스트, 딕셔너리 같은 자료형을 넣어주면 그 안에 있는 요소들을 하나씩 순회하며 변수에 그 값을 순차적으로 집어넣고, 실행할 코드를 실행한다. for문의 반복할 자료엔 range(1, 100) 같은 함수를 넣어주기도 하는데, 이는 특정 숫자들을 원소로 가지는 리스트를 만들어주는 함수이다. for문은 enumerate를 이용해 요소와 인덱스를 한 번에 가져올 수 있다.

programming 2023.06.29

파이썬 쿡북 5 - 다양한 자료구조

딕셔너리 딕셔너리는 C++의 map과 비슷한 자료구조이다. 인덱스로 접근하는 일반 배열과 다르게 다른 자료로 특정 원소에 접근할 수 있다. C++ map은 hash 함수를 이용해 인덱스로 사용할 자료를 숫자로 변형하고 그걸 key로 사용해 red-black tree 구조로 되어있는 자료구조에 접근한다. 파이썬은 다른지 잘 모르겠다. dict[(인덱스로 사용할 자료)] -> 자료 접근 가능 선언할 땐 콜론을 기준으로 왼쪽에 key, 오른쪽에 value를 적은 자료를 쉼표로 구분해 나열하고, 중괄호로 감싸 선언할 수 있다. key는 상수형 자료만 저장할 수 있다. 튜플 튜플은 파이썬 리스트와 비슷하지만, 자료를 수정하는 게 불가능한 자료이다. 따라서 각 원소를 읽을 수만 있고, 자료를 수정하거나 변형을 가하..

programming 2023.06.08

파이썬 쿡북 4 - 리스트

리스트 리스트 : C언어의 배열과 비슷한 개념 -> 연속적인 메모리 공간 하지만, C언어와 다르게 파이썬 리스트 요소는 하나하나가 객체이기 때문에 파이썬의 모든 자료형을 저장할 수 있다. 심지어 리스트도 객체이기 때문에 리스트 안에 리스트를 요소로 주는 것도 가능하다. 선언 방법 : 대괄호로 감싸고, 요소를 콤마(,)로 구분해 넣어준다. 또는 값의 집합과 관련된 자료형을 list()함수로 줘 리스트로 만들 수 있다. 리스트 연산자 (리스트) * (정수) : 인자로 준 리스트를 정수번 반복해 만든 리스트를 리턴한다. (리스트) + (리스트) : 첫번째 리스트 뒤에 두번째 리스트를 이어붙인다. 리스트 슬라이싱 문자열과 같이 [(정수)], [(정수):(정수)], [(정수):(정수):(정수)]의 슬라이싱 기법을..

programming 2023.05.09

파이썬 쿡북 3 - 문자열

문자열 : 문자의 나열 파이썬 문자열 표현법 = "(문자열)", '(문자열)', {"""(문자열)""", '''(문자열)'''} => 여러줄 가능 이스케이프 시퀀스(특수문자) 백슬래쉬(/) : \\ 개행문자(enter) : \n 따옴표 : \", \' 탭 : \t 문자열 오퍼레이터 (문자열) + (문자열) : 문자열 덧붙이기 (문자열) * (정수) : 같은 문자열 반복해서 덧붙이기 (문자열)[(정수):(정수):(정수)] : 문자열 인덱싱(리스트와 동일하게 사용) 문자열 포매팅 (문자열 - 포맷 문자 포함)%(인자1, ...) 포맷 문자 종류 : %s : 문자열 %d : 정수 %f : 실수 %c : 문자 %x : 16진수 정수 %% : % 출력 ● 포매팅 시 정렬이 필요하면 %(정수)(포맷 코드)를 이용해..

programming 2023.04.20

파이썬 쿡북 2 - 연산자와 입력함수

파이썬 연산자 1. 일반 연산자 (숫자) + (숫자) = 숫자 덧셈 (숫자) - (숫자) = 숫자 뺄셈 (숫자) * (숫자) = 숫자 곱셈 (숫자) / (숫자) = 나눗셈(실수 반환) (숫자) // (숫자) = 나눗셈의 몫 (정수) % (정수) = 나눗셈의 나머지 (숫자) ** (정수) = 제곱 (정수) ^ (정수) = 비트 xor 연산자 (정수) & (정수) = 비트 and 연산자 (정수) | (정수) = 비트 or 연산자 !(정수) = 비트 not 연산자 ~(정수) = 비트 반전 연산자 2. 문자열 연산자 (문자열) + (문자열) = 문자열 덧붙이기 (문자열) * (정수) = 자기 자신 문자열 n번 덧붙이기 3. 비교 연산자 (a) == (b) = a, b가 같으면 1, 다르면 0 (a) != (b)..

programming 2023.04.18

C언어 프로젝트 - 콘솔 3d 게임 만들기

학교에서 C언어 프로젝트로 수행평가를 한다길래 타워 디펜스 게임을 만들기로 했고, 뭔가 특별한 점을 주고 싶어 3d로 제작하게 되었다. 아마 이번 블로그글에서 3d 게임 제작 과정 등을 설명하고, 다음 블로그글부터 이 프로그램을 직접 IDA로 분석하면서 리버싱 공부도 해볼 참이다. 일단 시연 영상부터 보자. 시연 영상(https://www.youtube.com/watch?v=pNkv3bDInOk&ab_channel=GGJ) 그렇겐 안 보이지만 어쨌든 타워 디펜스 게임이다. 일단 이 프로그램을 다운받고 readme.txt를 읽고 한 번 플레이하고 오자. 거기에 이 게임의 룰, 조작법 등이 적혀 있다. 그럼 이제 대략적인 코드 구현 방법을 설명하도록 하겠다. 플레이어 플레이어에 관한 정보를 저장하기 위해 구..

programming 2022.11.21