본문 바로가기

파이썬94

Python 5장 [형변환] ▣ len() : 문자에 길이는 구하는 함수, int형으로 숫자 반환 ▣ type() : 데이터타입을 반환하는 함수 ▣ input()으로 입력, 기본 타입 str ▣ 데이터타입을 바꾸는 걸 캐스팅이라고 한다. ▣ int() : int형으로 타입을 변환하는 함수 ▣ float() : float형으로 타입을 변환하는 함수 ▣ str() : str형으로 타입을 변환하는 함수 ▣ print(CountStr + "개") : 문자 + 문자 = 문자 ▣ 숫자를 문자로 변환 가능 ▣ 변수 1 + 변수 2 : 변수 1에 값 + 변수 2에 값을 더한 값 2023. 7. 12.
Python 4장 [슬라이싱] ▣ [start:end:step] : 슬라이싱 ▣ [1:3] : 1~2 ▣ [0:] : 0~end ▣ [:4] : 처음부터~3 ▣ [0:6:2] : 0~5까지이고 2 step, 0,2,4 ▣ 리스트, 튜플, 문자열 모두 슬라이싱 가능 2023. 7. 12.
Python 3장 [입력] ▣ input() : 입력함수 ▣ name = input() : 입력한 값을 name에 대입 저장 ▣ print(name) : 변수 값 출력 ▣ print("안녕 " + input()) : 입력 후, 입력한 문자와 안녕을 더한 후 출력 ▣ input() 함수를 여러 개 사용하여 입력 가능 ▣ 한 줄에서 동시에 입력 방법 : 변수 1, 변수 2 = input().split() ▣ split("@") : 함수에 매개변수 안에 문자열로 나누어 주는 함수, "@"를 넣을 경우 예시) son@코딩박사 이런 식으로 각각 입력 ▣ split() : 매개변수에 아무것도 넣지 않을 경우 띄어쓰기로 구분 2023. 7. 12.
Python 2장 [변수, 데이터타입] ▣ 변수 : 데이터를 저장하는 공간, 메모리 ▣ 변수를 만드는 방법 : 이름 = 데이터 ▣ 변수이름은 의도에 맞게 소문자로 ▣ 변수에 데이터타입(자료형)을 확인하는 함수 : type() ▣ int : 정수 ▣ float : 실수 ▣ str : 문자열 ▣ bool : 불리언 ▣ list : 리스트 ▣ dict : 딕셔너리 ▣ 변수이름 자체는 그 안에 들어 있는 값을 의미 ▣ 변수 안에 들어 있는 값 출력 방법 : print(변수이름) 2023. 7. 12.
Python 1장 [문자 출력] ▣ print() : 출력함수 ▣ "Hello Python" : " ", ' ' 있으면 문자열로 인식 ▣ "Hello" + "Python" == HelloPython 합쳐진 문자 출력 ▣ "Py" * 3 == PyPyPy숫자만큼 문자 출력 ▣ end="" : 문자 끝에 어떤 문자를 넣을지 큰따옴표 안에 넣어야 한다. 기본값은 \n ▣ print("Hello Python ", end="") : , 콤마를 이용하여 꼭 구분해줘야 한다. ▣ sep= "": 문자객체 사이에 문자를 지정, 기본값은 띄어쓰기 ▣ \n : 줄 바꿈, 이스케이프 문자 2023. 7. 11.
C++ 16 [객체 반환] ▣ this : 자신에 객체 주소를 의미 ▣ *this : 포인터와 동일하게 자신에 객체 주소에 있는 값 ▣ return *this;으로 객체를 반환하게 되면 그 객체의 멤버변수들에 모든 값들이 반환된다. 2023. 4. 13.
C++ 13 [함수오버로딩, 디폴트 매개변수] ▣ 함수 오버로딩 : c++에서 이름이 같은 함수를 여러 개 만들 수 있다. ▣ 함수 오버로딩 : 함수이름을 중복해서 만들 수 있지만 매개변수 타입이랑 변수의 개수를 다르게 해야 한다. ▣ 디폴트매개변수 : 매개변수의 기본값을 설정 ▣ output(int num1, int num2 = 20) : 함수 호출 시 output(10, 100);처럼 호출하게 되면 함수를 호출해서 전달한 100이 매개변수의 기본값이 된다. output(10); 함수를 호출할 때 매개변수 값을 전달하지 않으면 디폴트매개변수 값으로 지정된다. ▣ 디폴트 매개 변수를 지정할 때 매개변수의 끝부분에 지정해야 오류를 방지할 수 있다. ▣ 함수를 호출할 때 매개변수를 전달해주지 않으면 오류가 발생한다. 2023. 4. 6.
C++ 09 [call by value, call by reference] ▣ 변수나 객체를 매개변수로 전달하면 값에 의한 호출이 된다. ▣ 객체를 매개변수로 값을 전달하면 객체가 복사되어서 전달하기 때문에 전달한 함수에서 객체의 값을 바꾸어도 원본에는 지장이 없다. ▣ 매개변수 객체의 생성자는 호출되지 않고 소멸자만 컴파일에 의해 호출되고 소멸된다. ▣ 객체의 주소로 매개변수를 전달하면 주소의 의한 호출이 된다. ▣ 객체의 주소를 전달했기 때문에 호출된 함수에서 값을 변경하면 원본객체에 영향을 준다. ▣ 객체의 주소로 매개변수를 전달해도 원본 객체의 생성자와 소멸자만 호출된다. 2023. 3. 28.
C++ 08 [string] ▣ string 클래스를 사용을 사용하기 위해서는 #include 헤더가 있어야 한다. ▣ string str(문자열) : 괄호를 통해 초기화 가능 ▣ string *p = new string(문자열) : 메모리 할당으로 string 객체 사용 가능 ▣ string에 속해 있는 getline() 함수 ▣ getline(cin, str, '\n') : getline(cin, 입력받을 객체, 구분문자(구분문자까지 입력)) ▣ str2 = str1 : 대입연산자를 통해서 문자열을 치환(대입)해서 바꿀 수 있다. ▣ 대표적인 string 함수들 객체.append(연결 문자) : 문자열 연결 함수 반환형 객체.length() : 문자열 길이 함수 stoi(객체) : 숫자로 된 문자열을 숫자로 변환 함수 객체.cl.. 2023. 3. 28.
C++ 07 [this 포인터] ▣ this 포인터 : 객체 자신에 주소 포인터 ▣ this->num 코드는 test객체의 포인터(클래스 Test의 int num = 0)를 접근하여 대입 ▣ 클래스의 멤버함수와 생성자함수에서만 this 사용이 가능하다. ▣ 멤버변수와 멤버함수의 매개변수의 이름이 동일할 때 this로 객체 자신을 접근하여 사용한다. ▣ 멤버 함수에서 자신의 주소를 리턴해야 할 때 사용한다. ▣ this는 정적 멤버함수(static 함수)에서는 this를 사용할 수 없다. ▣ 멤버함수에서 객체의 주소를 this로 접근이 가능하다. ▣ 위에 코드를 풀어서 작성하면 이렇게 test.testfunc(&test, 10);처럼 주소를 매개변수로 전달하고 컴파일러가 void testfunc(Test* this, int num) 코드.. 2023. 3. 24.
C++ 06 [메모리 할당] https://ko.wikipedia.org/wiki/%EB%8F%99%EC%A0%81_%EB%A9%94%EB%AA%A8%EB%A6%AC_%ED%95%A0%EB%8B%B9 동적 메모리 할당 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 동적 메모리 할당 또는 메모리 동적 할당은 컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것을 말한다. 사용이 끝나면 운영체제가 쓸 ko.wikipedia.org ▣ 메모리 할당 : 필요한 메모리를 힙이라는 메모리 영역에서 가져와 사용하는 것 ▣ 동적메모리 : 상황에 따라 원하는 크기만큼의 메모리가 할당 가능 ▣ 정적메모리 : 메모리의 크기가 코딩되어 있어서 나중에 조절할 수 없다. ▣ 메모리 할당 방법 : 데이터타입 *포인터이.. 2023. 3. 24.
C++ 05 [객체배열] ▣ 객체배열 만들기 : 클래스이름 배열이름[크기]; ▣ 객체배열을 초기화하는 방법 : 클래스이름 배열이름[크기] = { 클래스이름(), 클래스이름(값)}; ▣ 객체배열 인덱스 수만큼 초기화를 해야 한다. ▣ Test() : 매개변수가 없는 생성자 호출 ▣ Test(10) : 매개변수가 있는 생성자 호출 ▣ 소멸자는 큰 숫자 인덱스부터 소멸한다. 그렇기 때문에 매개변수가 있는 소멸자가 먼저 호출되었다. 2023. 3. 24.
10진, 2진수 바꾸기 ▣ 10진수를 2진수로 바꾸기 위해서는 나누기 연산을 진행해야 합니다. 위에 있는 방법처럼 2를 나누어 나눈 나머지와 나눈 값들을 하나하나 나열하여 작성합니다. 그리고 화살표 방향 순서대로 보면 그게 2진수입니다. ▣ 2진수를 10진수로 바꾸는 방법은 1,2,4,8,16,32,64,128,256,512... 이런 식으로 2에 몇 승에 값들을 2진수 위에 숫자를 나열하여 계산해야 합니다. 2진수 위에 2에 몇 승에 대한 값을 나열을 하고 0이 아닌 1인 부분에 값을 다 더하게 되면 10진수가 됩니다. 2023. 3. 21.
유니티 [2D 물리경계선수정, 타일맵 대각선경계선수정] ▣ 안녕하세요. 2D로 게임을 제작하면서 대각선으로 된 스프라이트 오브젝트에 콜라이더를 다룰 때 어려움이 있습니다. 그리고 물리경계가 대각선이다 보니 타일맵으로 맵을 그리고 콜라이더를 추가할 때에도 스프라이트 외부로 콜라이더 나와서 콜라이더 경계가 이미지를 벗어나서 불편함이 있습니다. 그럴 때 이렇게 하시면 됩니다. ▣ 먼저 수정할 스프라이트를 클릭하고 Sprite Editor 메뉴로 갑니다. 그리고 Sprite Editor를 Custom Phsics Shape로 클릭하여 선택합니다. ▣ 그리고 수정할 이미지를 클릭하고 Generate를 클릭하게 되면 물리경계선이 보이게 됩니다. ▣ 네모모양을 이동해서 경계선을 수정한 다음에 Apply를 해서 저장합니다. ▣ 그런 다음에 스프라이트를 씬에 옮겨서 Poly.. 2023. 3. 8.
C++ 01 [시작, 역사, 특징, 컴파일, 링킹, 디버깅, cout, cin, namespace] ▣ 소프트웨어 : 컴퓨터 프로그램과 데이터를 총칭하는 용어이다. ▣ 프로그래밍 : 컴퓨터가 처리할 작업 ▣ 프로그래밍 언어 : 컴퓨터 언어 https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%93%A8%ED%84%B0_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D 컴퓨터 프로그래밍 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 컴퓨터 프로그래밍(영어: computer programming) 또는 간단히 프로그래밍(programming, 문화어: 프로그램 작성) 혹은 코딩(coding)은 하나 이상의 관련된 추상 알고리즘을 ko.wikipedia.org ▣ 1972년 C언어 ▣ 1983년 C++ ▣ 1995년 Java ▣ .. 2023. 2. 28.
언리얼엔진5 33장 [마우스 회전] ▣ 안녕하세요. 이번장에서는 마우스회전 블루프린트를 공부해 보겠습니다. ▣ 저번장에서 사용했던 Player를 사용하겠습니다. Player는 플레이어컨트롤러입니다. ▣ 먼저 Edit메뉴에 Project Settings를 클릭하고 ▣ Input 메뉴에서 Axis Mappings를 추가합니다. MoveMouseX, MoveMouseY라는 이름으로 두 개를 추가하고 각각 입력을 Mouse X, Mouse Y로 지정합니다. ▣ 그리고 Player Event Graph에서 위에 있는 이미지처럼 블루프린트를 완성합니다. 아까 만들었던 MouseX, MouseY Axis를 불러오고 Add Controller Input 회전함수를 가져옵니다. 여기서 중요한 건 왜 Pich와 Yaw를 사용하는지 잘 이해하기 어렵습니다. .. 2023. 2. 21.
Visual Studio 컴파일 오류 해결방법 ▣ 윈도키를 클릭하고 cmd를 검색하면 명령 프롬프트가 나옵니다. 클릭해 주시고 ▣ 명령창에 tasklist를 입력하고 엔터키를 클릭합니다. ▣ 그럼 여러 리스티가 나올 텐데 우리가 작성하고 있는 Visual Studio에 프로젝트 이름을 확인합니다. 위에 이미지처럼 왼쪽 위에 보면 확인할 수 있습니다. 프로젝트 이름을 복사하고 다시 아까 명령프롬프트창에 돌아가 CTRL + F 키를 눌러 찾기를 하고 아까 복사했던 프로젝트 이름을 검색합니다. ▣ 그럼 프로젝트에 번호가 있는데 프로젝트 이름에 있는 번호를 복사하고 ▣ taskkill /f /PID 번호를 입력하고 엔터를 클릭하면 강제종료됩니다. 그리고 다시 프로젝트로 돌아가서 디버그를 하면 정상적으로 작동됩니다. 2023. 2. 15.
C++ [정적멤버변수, 정적멤버함수] ▣ 정적멤버를 생성하기 위해서는 멤버변수, 멤버함수에 데이터타입 앞에 static 키워드를 붙여주면 됩니다. 그럼 데이터영역에 저장되어 프로그램이 끝날 때까지 데이터가 남아 있고 외부에서도 접근이 가능합니다. ▣ int Player::count = 0; 정적변수를 초기화하는 코드입니다. 클래스명::멤버변수로 정적멤버변수를 접근해서 초기화할 수 있습니다. ▣ 정적멤버 함수 또한 Player::Sum(); 이런 식으로 호출할 수 있습니다. ▣ 그럼 Player p1;이라는 객체가 생성하기 전에 Sum() 정적멤버함수를 호출했기 때문에 정적멤버변수인 count가 +1이 되었고 또 p1.Sum()으로 호출했기 때문에 count = 1;인 상태에서 또 +1이 되었기 때문에 정적멤버변수인 count가 2가 출력됩니.. 2023. 2. 15.
언리얼엔진5 29장 [폴더관리, 게임모드위치] ▣ 안녕하세요. 이번장에서는 폴더 생성 및 폴더 관리에 관한 간단한 부분 그리고 Game Mode설정에 대한 부분을 공부해 보겠습니다. ▣ 먼저 폴더를 생성해 보겠습니다. Content에서 오른쪽마우스를 클릭하면 메뉴가 나오는데 맨 위에 New Folder를 클릭하시면 폴더를 생성할 수 있습니다. ▣ 폴더를 클릭해서 오른쪽마우스를 클릭하고 Set Color를 클릭하면 폴더의 색을 바꿀 수 있습니다. ▣ 원하는 색을 지정하고 OK를 클릭합니다. ▣ 그럼 위에 이미지처럼 폴더의 색을 바꿀 수 있습니다. ▣ Content에 바탕을 클릭한 상태로 CTRL키를 누른 상태로 마우스를 휠을 돌리면 폴더의 크기를 조절할 수 있습니다. ▣ Content를 클릭하고 마우스오른쪽버튼을 클릭하고 Show in Explorer.. 2023. 2. 15.
언리얼엔진5 28장 [Material] ▣ 안녕하세요. 이번장에서는 Material에 간단한 기능을 공부해 보겠습니다. ▣ 먼저 Place Actors에서 Cube 하나를 생성합니다. 그리고 Cube를 클릭한 다음 오른쪽 Details 메뉴에 보면 Static Mesh과 Materials메뉴가 있습니다. Static Mesh는 모양을 만들고 Materials는 색을 칠한다라고 생각하시면 됩니다. Materials에 원 모양을 더블클릭합니다. ▣ 그럼 이런 창이 나오는데 여기서 색에 대한 노드를 지정할 수 있습니다. ▣ Color블록에 네모모양을 더블클릭하면 이런 창이 나오는데 여기서 원하는 색을 선택해 주시고 컴파일 저장을 합니다. ▣ 씬에서 Cube를 확인하면 색이 바뀌었습니다. ▣ 이번에는 따로 Material을 생성하겠습니다. 폴더에서 .. 2023. 2. 14.
언리얼엔진5 27장 [매크로] ▣ 안녕하세요. 이번장에서는 매크로를 공부해 보겠습니다. 매크로는 함수와 비슷합니다. 그리고 조금 다릅니다. 이 차이를 보기 위해 노드를 연결하며 공부해 보겠습니다. ▣ 먼저 저번장에서 공부했던 Axis로 입력하는 함수를 통해서 진행했던 노드에서 branch가 아닌 Compare Float 매크로블록으로 변경했습니다. 블록에 M이라고 적혀 있으면 매크로이고 F라고 되어 있으면 function 함수입니다. ▣ 컴파일 저장 후 씬에서 플레이 버튼을 클릭하고 위, 아래 키를 누르면 위에 이미지처럼 출력이 잘 되는 걸 확인할 수 있습니다. ▣ 이번에는 매크로를 직접 만들어서 사용해 보겠습니다. 왼쪽메뉴에 보면 MACROS라는 메뉴가 있습니다. 더하기 버튼을 클릭하면 생성이 됩니다. 함수와 동일합니다. ▣ 매크로.. 2023. 2. 14.