Search

반응형

'분류 전체보기'에 해당되는 글 560건

  1. 2024.02.04 [파이썬 for AI]인공지능 머신러닝, 딥러닝 프로그래밍을 위한 파이썬 기초 1
  2. 2024.01.14 [Git]Git Bash 간단 명령어 정리. (init, config, status, add, commit) 1
반응형

안녕하세요. 신기한 연구소입니다.

카테고리를 보면 Software>Python(파이썬)에 파이썬 프로그래밍 포스팅을 예전에 올렸는데 갑자기 왜 파이썬일까요?

2020.09.28 - [Software/Python(파이썬)] - 파이썬(Python) 처음 시작하기 앞서...

 

파이썬(Python) 처음 시작하기 앞서...

안녕하세요. 신기한 연구소입니다. 파이썬(Python)이 존재하고 유명하다는 건 오래전 알았지만 최근까지 자바(Java)로 개발을 해 왔기에 접할 기회가 없었습니다. 공부하기 위해 책도 몇 권 사뒀지

tiboy.tistory.com

 

20년 9월 28일부터 시작해서 25개의 글을 포스팅했었네요.

20년 도면 시간이 정말 많아서 아마 집중해서 스터디하고 포스팅했던 기억이 있습니다.

대학 시절부터 Lisp 강의를 듣고 인공지능에 대한 환상 같은 것이 있었는데 21년도에 우연히 딥러닝 책을 보게 되었고 인공지능의 재미에 슬슬 빠져들기 시작했습니다.

수학 내용이 포함되어 있지만 나름 대학에서 미적분학 A+였던지라 재미있게 읽게 되었습니다.

20년이 훌쩍 지났지만 아직은 수학에 즐거움이 있고 인공지능이 점점 발전하고 필요성을 느끼고 있기에 나이를 떠나 올해는 인공지능에 올인해 볼 계획을 세웠습니다.

그전에 인공지능을 스터디하려면 머신러닝과 딥러닝을 스터디해야 하는데 보통 파이썬(python)으로 프로그래밍하거나 관련 라이브러리가 있기에 다시 복습하는 의미로 간단하게 인공지능을 위한 파이썬(python)을 정리하고자 이 포스팅을 시작해 봅니다.

내년에는 나름 인공지능 전문가가 되길 희망하면서 올해 열심히 달려보겠습니다.

아래 테스트 소스는 VSCode에서 파이썬을 설치 후 실행한 결과입니다.

 

1. 파이썬 숫자(Number)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
print(1+2)
print(10-5)
print(4*5)
print(8/2)
print(8%5)
print(8//5)
print(8/5)
print(4+4*4)
print((4+4)*4)
print(2**4)
 
first = 5
second = 10
print(first + second)
 
print(2+3j)
cs

1번 라인은 단순한 연산입니다. 1+2는 3이므로 3이 출력됩니다.

2번 라인은 빼기 연산입니다. 5가 출력됩니다.

3번 라인은 곱하기 연산입니다. 20이 출력됩니다.

4번 라인은 나누기입니다.  4.0이 출력됩니다.

5번 라인은 나머지를 구합니다. 3이 출력됩니다.

6번 라인은 몫을 구합니다. 1이 출력됩니다.

7번 라인은 소수점을 출력합니다. 1.6이 출력됩니다.

8번 라인은 연산자 우선순위로 4*4를 먼저 계산하고 4를 더합니다. 20이 출력됩니다.

9번 라인은 괄호를 먼저 계산합니다. 32가 출력됩니다.

10번 라인은 거듭제곱으로 2의 4제곱으로 16이 출력됩니다.

12, 13라인은 변수에 숫자 5, 10을 할당했습니다.

14번 라인은 두 변수를 더합니다. 15가 출력됩니다.

16번 라인은 복소수를 나타내며 2+3j가 출력됩니다. j가 복소수를 의미합니다.

 

2. 파이썬 문자(Text)

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
32
33
34
35
36
37
38
39
print('my text')
print("don't")
print('don\'t')
 
print('D:\myproj\node')
print(r'D:\myproj\node')
 
print("""
      my name
      is
      tiboy
      """)
 
print('hi' * 3 + ' jenny')
print('hi' ' jenny')
 
data = ('Hello my friends.'
        ' Goodbye buddy')
print(data)
 
name = 'Tom'
 
print('hi~!' + name)
 
longText = "abcdefghijklmn"
 
print(longText[0])
print(longText[-1])
print(longText[0:2])
print(longText[1:2])
print(longText[1:])
print(longText[:2])
print(longText[0:50])
print(longText[40:50])
 
#longText[0] = 'A'
print(longText[0])
 
print(len(longText))
cs

1번 라인은 my text가 출력됩니다.

2번 라인은 don't가 출력됩니다.

3번 라인은 \를 사용해서 ' ' 내부에 '를 출력하게 했습니다. don't가 출력됩니다.

5번 라인은 D:\myproj이 첫 줄에 출력되고 \n때문에 다음줄에 ode가 출력됩니다.

6번 라인은 텍스트 앞에 r을 붙여서 \n의 기능이 작동되지 않게 해서 D:\myproj\node로 출력됩니다.

8번~12번 라인은 더블 세 개 """를 이용해서 줄 바꿈 그대로 출력하게 할 수 있습니다.

14번 라인은 hi*3으로 hi가 세 번 출력되고 jenny가 그 뒤로 붙습니다.  hihihi jenny

15번 라인은 hi jenny가 출력됩니다.

17번~19번 라인은 data에 텍스트를 할당하고 Hello my friends. Goodbye buddy로 출력됩니다.

21번 라인은 name에 Tom을 할당했습니다.

23번 라인은 hi~!에 Tom을 붙여 출력합니다.

25번 라인은 longText에 abcdefghijklmn을 할당합니다.

27번 라인은 0번째 글자 a가 출력됩니다.

28번 라인은 -1번째로 뒤에서 첫 번째 글자 n이 출력됩니다.

29번 라인은 [0:2]로 인덱스 값이기에 첫 글자 0부터 3번째 2 이전까지를 출력합니다. ab가 출력됩니다.

30번 라인은 [1:2]로 두 번째 값 b만 출력됩니다.

31번 라인은 [1:]로 1 이후로 쭉 출력합니다. a가 빠진 bcdefghijklmn이 출력됩니다.

32번 라인은 [:2]로 3번째 앞까지 출력하기에 ab가 출력합니다.

33번 라인은 [0:50]인데 50까지 없기에 abcdefghijklmn가 출력됩니다.

34번 라인은 [40:50]으로 해당 문자열이 존재하지 않기에 빈값이 출력됩니다.

36번 라인은 #으로 주석처리를 한 이유는 문자열을 [] 사용해서 변경할 수 없습니다. 재할당을 해야 합니다.

39번 라인은 len을 사용해서 문자열 길이를 출력합니다. 14가 출력됩니다.

 

3. 파이썬 리스트(List) 

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
32
33
34
35
36
37
38
39
40
41
42
num = [2,4,6,8]
print(num)
 
print(num[0+ num[1])
print(num[-2])
print(num[-3:])
print(num[:-3])
print(num[:])
 
num = num + [10]
 
print(num)
 
num = num + [1215]
 
print(num)
 
print(num[6])
num[6=14
 
print(num[6])
 
num.append(16)
print(num)
 
text = ['a','b','c','d','e']
print(text)
text[2:4= ['C''D']
print(text)
 
text[2:4= []
print(text)
 
text[:] = []
print(text)
 
db1 = ['a','b','c']
db2 = ['d','e']
db3 = [db1, db2]
 
print(db3)
print(db3[1][1])
cs

리스트는 대괄호 사이에 쉼표로 값을 구분합니다.

다른 타입의 값들을 가질 수 있습니다.

1번 라인은 num 변수에 값을 할당해서 리스트를 만들었습니다.

2번 라인은 [2, 4, 6, 8]을 출력합니다.

4번 라인은 0번째와 1번째 인덱스에 해당하는 값을 더해서 6을 출력합니다.

5번 라인은 인덱스 -2로 리스트 뒤에서 2번째 값인 6을 출력합니다.

6번 라인은 [-3:]로 뒤에서 세 번째 인덱스 값부터 출력하기에 [4, 6, 8]이 출력됩니다.

7번 라인은 [:-3]으로 처음부터 뒤에서 세번째 인덱스까지 출력하기에 [2]가 출력됩니다.

8번 라인은 [:]로 모두 출력합니다. [2, 4, 6, 8]

10번 라인은 num 리스트에 [10]을 더합니다.

12번 라인은 [10]을 더한 [2, 4, 6, 8, 10]을 출력합니다.

14번 라인은 num 리스트에 [12, 15]를 더합니다.

16번 라인은 [12, 15]를 더한 [2, 4, 6, 8, 10, 12, 15]가 출력됩니다.

18번 라인은 6번째 인덱스 값인 15를 출력합니다.

19번 라인은 num 리스트의 6번째 인덱스에 14를 재할당 합니다.

21번 라인은 이제 6번째 인덱스의 값이 15가 아닌 14로 바뀌어 출력됩니다.

 23번 라인은 num 리스트에 append 함수를 사용해서 16을 추가했습니다.

24번 라인은 [2, 4, 6, 8, 10, 12, 14, 16]를 출력합니다.

26번 라인은 text 변수에 문자 값으로 리스트를 만들었습니다.

27번 라인은 ['a', 'b', 'c', 'd', 'e']를 출력합니다.

28번 라인은 [2:4]에 'C', 'D'로 재할당했습니다.

29번 라인은 ['a', 'b', 'C', 'D', 'e']로 재할당 값으로 바뀌어 출력되었습니다.

31번 라인은 [2:4]에 []로 빈 값을 할당했습니다.

32번 라인은 [2:4] 값이 빠진 ['a', 'b', 'e']이 출력되었습니다.

34번 라인은 []으로 전체 값을 비웠습니다.

35번 라인은 []을 출력합니다.

37번~38번 라인에 db1, db2 리스트가 할당되었습니다.

39번 라인은 db3에 db1, db2값이 할당되었습니다.

41번 라인은 db3에 db1, db2가 할당된 값이 출력됩니다. [['a', 'b', 'c'], ['d', 'e']]

42번 라인은 [1][1]로 마치 2중 배열 출력을 연상케 합니다. e가 출력됩니다.

 

이번 포스팅은 숫자, 문자, 리스트를 다루는 방법을 아주 간단하게 복습해 봤습니다.

다음 포스팅은 파이썬 연산자를 복습해 보겠습니다.

즐코딩 하세요.

미래의 인공지능 전문가 신기한 연구소였습니다.

 

 

반응형
반응형

옛날 옛적 프로젝트에서는 소스관리나 형상 관리를 거의 사용하지 않고 각자 컴퓨터에서 개발하고 개발 서버에 반영했던 기억이 있습니다. 충돌도 자주 나고 엉뚱한 소스를 삭제해서 문제가 되기도 했답니다.

물류창고 자동화 프로젝트에 투입되어 저 아랫동네로 간 적이 있었습니다. 비주얼베이직으로 개발했는데 당시 해당 업체는 소스관리를 사용하고 있었습니다. 체크아웃, 체크인 등등 첨 듣는 용어를 사용하면서 우리도 이제 개발에 투입되었으니 소스관리를 해야 한다고 하더군요.

그 뒤로 프로젝트에 투입하면 CVS로 버전 관리를 하면서 commit, update 등을 사용하고 SVN으로 이동하더니 요즘은 git을 사용하더군요. 반면 최근 OO금융권 사이트에 갔는데 SVN과 Git을 혼용해서 사용하는 거 보면 SVN이 사장된 건 아닌가 봅니다.

개발자이지만 보통 중대형급 프로젝트에 투입되니 Git을 설정하고 구성하는 일을 해본적은 없고 보통 갖춰진 환경에서 push, pull 등의 명령어로 작업해 왔습니다. 그러나 개발자 사이트나 유튜브를 보면 git을 많이 활용하고 있더군요. 블로그에서 github에 기술 문서나 소스를 올리고 개인 영역을 만들어 홍보도 하고 예제 소스도 받을 수 있더군요.

그래서 늦었지만 ? git 책을 보면서 실습을 해봤습니다.

간단하게 로컬에서 git환경을 만들어봤고 명령어를 사용해 봤습니다.

까먹지 않게 몇 가지 정리해 봤습니다.

  1. git bash 실행하기

git으로 소스 관리하기 원하는 위치에 폴더를 만듭니다.

폴더로 들어가서 마우스 우클릭을 합니다. (git이 설치되어 있어야 합니다.) 

git bash가 안보임

만약 위 이미지처럼 git bash here가 안 보이면 추가 옵션 표시를 클릭합니다.

이제 Git Bash Here를 클릭합니다. 그러면 cmd 창이 열립니다.

 

2. git 생성하기

새로 만든 폴더에서 소스 관리를 위해 git 생성을 해보겠습니다. 엄청 쉽습니다. 현재 폴더는 텅텅 비어있겠죠?

이제 마법을 시작합니다. git bash에 다음 명령어를 입력합니다. 그전에 위 이미지의 우측 노란색 경로가 내가 위치한 곳이 맞는지 반드시 확인해야 합니다.

$git init를 실행하면 위 이미지처럼 생성이 됩니다.

그리고 이렇게 숨겨진 .git 폴더가 보입니다. 만약 안 보인다면 숨겨진 폴더 보기 옵션에서 설정하면 보입니다.

윈도우즈 11인 경우는 아래와 같이 설정을 체크하면 숨겨진 폴더가 보입니다.

 숨긴 항목 표시에 체크를 하면 .git 폴더가 보일 것이고 성공적으로 git 설정이 되었습니다.

이제 git config --list를 실행해 봅니다.

현재 위치 뒤로 (master)가 보이는데 현재 master 브랜치임을 의미합니다.

git config --list 실행해서 결과가 잘 나오면 설정이 잘 된 겁니다.

이제 다음 명령어를 입력합니다.

git status를 입력하면 현재 작업 진행 내역을 확인할 수 있습니다.

On branch master는 현재 master 브랜치에 위치하고 있다는 의미입니다.

No commits yet은 아직 commit 할 소스가 없다는 의미입니다.

 

3. 신규파일 추가하기.

이제 새로운 파일을 만들고 git으로 관리해 보겠습니다.

먼저 해당 폴더에 새로운 파일 하나를 만듭니다. 여러 가지 방법으로 만들 수 있지만 우클릭으로 텍스트파일을 하나 만들겠습니다. 아래 이미지와 같이 텍스트파일을 선택하고 파일이름을 first.txt로 만듭니다.

이제 이 파일을 열어서 내용을 입력합니다. 원하는 글자 아무거나 넣어도 됩니다.

사과를 입력해 보겠습니다. 그리고 저장합니다.

이제 다시 git bash창으로 이동해서 다음 명령어를 입력합니다.

git status를 입력하고 엔터를 치면 위 이미지처럼 결과가 나옵니다. 빨간색 first.txt 글자가 보입니다.

git add를 해서 commit를 하라는 의미입니다. 

git add first.txt라고 입력하고 엔터를 치면 빈 줄 하나 나옵니다. 정상으로 add가 되었다는 의미입니다.

다시 git status 명령어를 실행해 보겠습니다.

git add를 하고 난 후는 빨간색 first.txt가 초록색으로 변했습니다.

new file이라는 표시도 보입니다.

git add는 git 영역의 스테이지 공간에 옮기는 의미입니다.

git폴더에서 first.txt를 만들면 아직 git에 등록은 안되었지만 git 영역에서 새로 만들었기에 빨간색으로 추가하라는 메시지를 보여줍니다. git add를 하면 commit 전 git stage(스테이지) 공간에 목록이 생성됩니다. commit 대상이라는 의미입니다. 

즉, 새로 만든 파일이나 수정된 파일을 git 버전관리에 등록하기 위해서는 대기자 명단에 올려야 하는데 바로 git add가 그 역할을 합니다.

 

 4. git에 파일 등록하는 commit.

이제 다음 명령어를 사용해서 파일을 git에 올리고 버전관리를 해보겠습니다.

git commit -m "first filegit commit"라는 명령어로 파일을 등록했습니다.

-m은 해당 커밋에 대한 메시지를 등록하는 것으로 필수항목입니다. 빈 값이라도 넣어야 한다는 의미입니다.

-m "메시지" 부분에는 해당 커밋을 왜 하는지 관련 내용을 상세히 기록하면 나중에 확인하기 편하답니다.

만약 git commit만 입력한다면 전혀 새로운 메시지 입력 화면을 만나게 될 것입니다. 그럴 땐 당황하지 마세요.

아래 간단한 사용법을 보여드립니다.

first.txt에 배라는 글자를 추가하고 저장합니다.

그리고 git status 명령어를 입력하면 위 이미지처럼 수정된 파일이 있다고 해당 파일이 빨간색으로 표시됩니다.

git add를 사용해서 스테이지에 등록합니다.

그리고 git commit만 치면 아래와 같은 화면이 나옵니다.

바로 -m을 사용해서 commit 메시지를 입력하지 않았기에 강제로 이 화면으로 이동해서 메시지를 입력하게 만듭니다.

사용법은 i 나 a를 누르면 입력모드로 변신합니다.

그리고 원하는 내용을 입력합니다. -m과는 다르게 줄 바꿈 해서 다양한 내용을 입력할 수 있다는 겁니다.

3줄로 내용을 입력했습니다. 이제 이 내용을 저장해야 합니다.

저장하는 방법 : 키보드 좌측 상단 esc버튼을 누릅니다. 그리고 키보드 우측 중간쯤의 콜론(:)을 누릅니다. 

w!를 입력하면 저장이 됩니다. q!를 입력하면 빠져나옵니다. wq!를 같이 입력하면 저장하면서 빠져나옵니다. 

하단에 입력한 명령어가 보입니다. wq!로 저장 후 종료하겠습니다.

commit 메시지를 포함해서 정상 처리가 되었습니다.

 

5. git log로 이력 조회하기.

git log를 사용해서 어떤 히스토리가 생겼는지 그간 작업 내역을 조회합니다.

제일 하단에 first filegit commit가 17시 19분 51초에 처리되었다는 기록이 보입니다.

그 위로는 2줄로 입력한 commit 메시지가 보입니다. 

잘 처리되었습니다.

근데 3줄 입력한 메시지가 왜 2줄이냐면 중간에 한 줄 지우고 commit 했거든요. ^^

새로운 파일을 생성해서 git add와 git commit을 사용해 등록하고 수정 파일도 git에 등록하는 방법을 살펴봤습니다.

이 외에도 git 관련 명령어가 많이 있습니다.

다음 포스팅에 설명해 보겠습니다.

감기 조심하세요~

 

반응형