2011년 2월 13일 일요일

파이썬 자료형 T/F

자료형 참 or 거짓
""가 아닌 문자열 (예: "python") 참
"" 거짓
[]가 아닌 리스트 (예: [1,2.3]) 참
[] 거짓
() 거짓
{} 거짓
0 이 아닌 숫자 (예: 1) 참
0 거짓
None 거짓 ( 리턴값 없음 )


- Jump2Python에서 발췌


2011년 1월 31일 월요일

Visual Studio 10.0 (2010), Python 2.7.1 사용환경에서 패키지 설치시 오류 사항

위 작업에서 msvc9compiler.py는 반드시 백업해두고 시작할 것.

[1] error: Unable to find vcvarsall.bat

\lib\distutils\msvc9compiler.py

에서
VERSION = get_build_version()
위 구문을
VERSION = 10.0
으로 수정 (VS 버젼에 맞게, 9.0이하는 문제없을듯?)

[2] error: command 'mt.exe' failed with exit status 31
mt.exe 실행파일 인자 오류

\lib\distutils\msvc9compiler.py

기존코드에 코드 추가

ld_args.append('/MANIFESTFILE:' + temp_manifest) # 기존코드
ld_args.append('/MANIFEST') # 추가된 코드

[3] Windows 7 환경하에서(?) win32job_py2_swig.cpp C2065 error

어디서 뭘 fixed했다는건지 모르겠다
이 원인은 무엇인가.................




pywin32-214.win32-py2.7.exe 인스톨 과정에서 (64bit 환경)

스택오버플로우가 짱임

Python 정리


Excution Scripting

명령 프롬프트에서 ( prompt $G )
assoc .py = Python.File
ftype Python.File = C:\python27\pythonw.exe "%1" %*



필요해보이는 윈도우용 파이썬 Additional Modules

pyWin32
- http://sourceforge.net/projects/pywin32/

py2exe
- http://www.py2exe.org/
- http://www.py2exe.org/index.cgi/Tutorial#Step1

개인적 QnA 정리

python vs pythonw

python은 Console화면을 띄워줌과 함께 실행되며
pythonw은 Console화면을 띄워주지 않고 실행된다. (GUI 프로그래밍에 용이)

그러나 실행할때는 pyc로 화면 콘솔화면에 정보가 출력이 됨 무슨차이인지


패키지 설치시 VS버젼에 따른 에러


위쪽 링크 참조할것





2010년 10월 27일 수요일

C# 공부한거 정리 #2

Collection

 

IEnumerable

IEnumerator - 내부 데이터 접근 Interface (Iterator)

-- Current

-- MoveNext()

-- Reset()

ICollection

-- int Count - 객체 수

-- bool IsSynchronized - 접근 동기화

-- object SyncRoot - 스레드에서의 동기화 객체 반환

-- void CopyTo - Collection -> Array

IList Property

- IsFixedSize - 고정 길이 리스트 체크

- IsReadOnly - 읽기전용 체크

- this[index] - 인덱서

IList Method

- Add(object) - 추가

- Clear() - 싹다제거

- Contains(object) - 존재 체크

- Indexof(object) - 위치반환

- Insert(index, object) - 데이터 삽입

- Remove(object) - 객체 제거

- Remove(index) - 그 위치 객체 제거

IDictionary Property

- IsFixedSize

- IsReadOnly

- Keys - 키 전부 나열 - 키는 유일해야 한다

- Values - 값 전부 나열

IDictionary Method (e.g. Hashtable)

- Add(key, value)

- Clear

- Contains(key) - 연관성 검사

- GetEnumerator() - 나열을 위해 인터페이스 반환

- Remove(key) - 키로 지움

IDictionaryEnumerator Property

- DictionaryEntry - 키, 값 반환

- object Key - 키 반환

- object Vaule - 값 반환

 

 

 

대표적 Collection

- ArrayList  - vector

- Hashtable  - map ( object, value )

- SortedList - key기준 정렬, key검색활용

- Queue - Enquere(), Dequeue()활용

- Stack

- NameValueCollection

---- System.Collections.Specialized

---- String, String 형 맵

 

 

 

 

Generic

- 초기의 C# : Object의 Upcasting을 활용하여 제너릭이 필요가 없었다.

- 제너릭 도입 이유 : 형식 안정성, Object : 캐스팅 낭비 없앰, Value : Boxing/UnBoxing 부하가 없음

 

Collection의 Generic변환

ArrayList -> List<T>

Hashtable -> Dictionary<T>

SortedList -> SortedDictionary<T>, SortedDictionary<K, V>

Stack -> Stack<T>

Queue -> Queue<T>

 

Exception

finally : 예외처리 여부와 상관없이 무조건 실행되는 문장

 

Stream

- I/O stream

- File stream

---- File, Directory - static ( 객체 생성할수 없다 )

---- FileInfo, DirectoryInfo -  객체 생성 활용 가능

FileInfo fi = new FileInfo(@"c:\test\a.txt"");

fi.CopyTo(@"c:\test\b.txt\");

 

File Class (public sealed class ), using System.IO

File.Copy(src, dest, overwritted여부(true/false))

bool exist = File.Exists(src);

DateTime dt = File.GetCreationTime(src);

 

 

 

- File Class

OpenRead(src);

OpenText(src);

OpenWrite(src); 등등

접근 방식

StreamReader r = new StreamReader (fs, System.Text.Encoding.Default);  // 문자스트림 변환

r.BaseStream.Seek(0, SeekOrigin.Begin); // 커서 위치를 첫부분으로

r.Peek() == -1 // EOF check

r.ReadLine() -> 파일스트림에서 Line단위 읽기

r.Write(byte[], 0, byte[].Length)

 

r.Flush();

r.Close() -> 스트림 닫기

 

SeekOrigin 열거형 상수 - Begin, Current, End

 

- Directory Class

 디랙터리 생성, 이동, 삭제등을 위한 Class

- Path class

파일 디렉토리 경로 확장, 변경 수정 클래스

 

 

- BuffedStream

Default : 4096 Bytes

 

- MemoryStream

메모리 대상 Stream

 

- BinaryReader, BinaryWriter

데이터 타입의 크기만큼 데이터를 저장 & 읽을때 사용하는 스트림 ( FileStream의 데이터 단위 스트림 )

 

- TextReader, TextWriter

문자 스트림 입출력관장 최상위 추상 클래스

 

- StringReader & StringWriter

public class StringReader : TextReader

public class StringWriter : TextWriter

 

- StreamReader & StreamWriter

ByteStream->CharacterStream

 

 

 

 

 

 

 

 

 

 

C# 공부한거 정리 #1

C/C++ 호환성을 위해 사용

pointer - unsafe, fixed

struct - stack에 memory allocation

 

Garbage Collector - heap 관리

 

Type

- Value type(Built-in type)

- Reference Type : Class Object

- readonly 추가 (const 비슷함)

 

전달법

- Call by Value (Value Copy)

- Call by Reference (ref, out)

 

Class 추가 기능

Access Identifer 추가

- internal

- protected internal

Property 추가 (set, get) - set 인자 value

sealed - 상속금지

Overriding-

-- new public void Method() 활용법

-- base : 상위접근

Polymorphism

-- abstract // overlide

-- Interface

-- Upcasting (객체의 묵시적 캐스팅)

 

Casting

-- Object 형? - 모든 object가 가지는 최상위 class

-- Boxing : value -> ref 변환 // UnBoxing

 

Delegate

-- 활용? 함수포인터 // 쓰레드/이벤트 제어 --> 캡슐화

 

계약적 다형성 (Contract)

-- Interface활용 ( 빌더 패턴과 유사? )

 

배열 생성법

int[] name = new int [10];

배열 선언후에는 하나씩 할당하는 방법이외에 다른 방법은 없다.

int[] ref = ref2; (참조값이 할당됨 유의)

 

-- value array

-- object array - 메모리 할당 필요

 

다차원 배열

int[,] myarray = new int[4,3];

 

가변 배열 (Jagged Array)

int[][] jagarray = new int[3][]; // matrix 표현 불가능

jagarray[0] = new int[10]; 하부열 할당필요

 

배열의 property

Length, Rank(차원의 수)

배열 지원 함수 -> System.Array [ICloneable, IList, ICollection, IEnumerable]

복사 방법 Copy(), Clone() [ 일부, 전체 복사 ]

 

foreach

- Array, Collection에서 활용 ( foreach(int i in array)

- 읽기전용 / 검색전용 제어문 ( Iterator )

 

Indexer

public object this[int index]{ get{} set{} }

 

문자열

string - 수정 불가 -> 대체안 : StringBuilder - 문자열 조작의 cost time을 기하급수적으로 줄여준다.

 

 

 

C/C++ 차이점

묵시적 캐스팅 - 무조건 에러

if에 조건식이 없거나 true, false 결과값이 없다 - 무조건 에러

다중 상속 불가 - interface를 활용한 샛길

함수포인터 활용 - delegate

 

C++의 STL? -> System.Collections

C++의 RTTI? -> System.Reflaction

C++의 Console IO? -> System.Console

 

 

2010년 5월 19일 수요일

TML C++ 스터디 기획서

C++ Programming 스터디

 

 

스터디 참가 요건
1. C의 문법을 배웠다는 전제하에 수업을 진행한다.

2. memory 구조와 그 활용법에 대해서 어느 정도 알고 있다.
3. user defined function 을 제작할 수 있다.
4. 기본 data structure에 대해 알고 있다.

 

스터디 진행 방식
1주에 1번 강의를 가지고 그 후 자체적인 복습을 요구합니다.
OOP의 개념에 능숙해 지기 위하여 임의의 과제를 지속적으로 제시합니다.


1주차 강의 내용

- C++ 맛보기 (표준 입출력)
--- iostream
--- fstream
- C++ initialization
- namespace
- string class 활용
- inline function 활용


2주차 강의 내용

- Stack Frame, Heap memory 영역에 대한 이해
- reference
--- const reference
--- const pointer
- new, delete 활용
- function overloading
- MSDN 활용법

 

3주차 강의 내용

- Class
--- access 지시자
--- Constructor
----- Copy Constructor
--- Destructor
--- this
--- Static member variable
--- Static member function


4주차 강의 내용

- Class
--- const member
--- mutable
--- Inheritence
--- Containment, Nest
--- Virtual Function
----- abstract class (pure virtual function)
----- Virtual Destructor

 

5주차 강의 내용

- Class
--- friend
--- Operator Overloading (copy, assignment에 대해서만)
- Design Pattern 맛보기
- RTTI
- C++ Casting


6주차 강의 내용

- Template
--- Function Template
--- Class Template
- STL 기본
--- vector, map, pair...
--- iterator 활용
- Exception


7주차 강의 내용
- Type Conversion 규칙
- Operator overloading
- Visual Studio에서 프로젝트 설정 자유롭게 조작하기
- Header 파일 규칙
- Preprocesser
- 다중 소스+헤더 프로그램 작성

 

화이팅 이제 한 주 남았다.....

거저 2개월 칠판에 낙서하면서 나름 가르치다보니까 제 자신에게 도움이 되었던건 둘째치고

교수님들이 참여도 낮다고 맨날 학생들한테 뭐라고 하는 그 심정이 많이 이해가 갑니다.