Python

Coursera_Python for everyone_Chapter 2 & 3 & 4

심리밀당남 2016. 7. 26. 01:08

3강, 4강 강의 들으면서 적었던 노트들


Week 2 & 3.
어떻게 인간은 문제를 해결하는가?
난 어떻게 이 문제를 해결할 것인가?
답이 중요한 것이 아님. 어떻게 생각하였나?
인간으로서 내가 문제를 푼 방법을 컴퓨터가 이해할 수 있게 바꿔주는 작업.

ex) 가장 큰 숫자 찾기.
-한자리수, 두자리수는 빠르게 무시. 자리수가 가장 큰 수들만 고려.
-세자리수의 백의자리 숫자들 비교.
-원소 하나하나를 모두 비교하여 가장 큰 숫자로 정하기
-찾은 수 보다 더 큰 수가 나왔다면 큰 수 갱신하기






소감
 3강까지는 아직 가볍게 프로그래밍에 대해 소개하는 내용이라 딱히 새로운 내용은 없었다. 그럼에도 문제해결에 관한 설명은 인상깊게 들었다. 컴퓨터 공부를 시작한지 1년 반 정도 되는 코딩 초심자로서의 '프로그래밍'이라는 것은 어떠한 문제를 해결할 때의 인간의 사고과정을 컴퓨터의 언어로 매우 정교하게 구체화하는 작업인 것 같다. 코딩을 배우기 전까지는 몰랐는데 이와같은 추상적인 과정을 실제적으로 구체화하는 '컴퓨팅적 사고'가 확실히 여러방면에서 도움이 될 수밖에 없겠구나라는 것을 공부하면 할수록 느낀다.


Week 4.
'Constants.' 상수.
- 변하지 않는 값. 숫자, 글자, 문자열 등
-'' or ""은 스트링 출력 떄 사용..
ex) print 159
     print 'hello world'   에서 159, hello world 가 상수.

'Variable' 변수.
- 변하는 값. 따로 설정할 수 있는 값.
ex) x = 12.2, y=14

변수 이름 지을 때 유의사항. ex) 숫자먼저 쓰지 않기. 예약어조심하기. 특수문자 쓰지 않기 등등.

'Numeric Expressions'
+ 더하기
- 빼기
% 나머지연산.remainder
...
** 제곱. power

'Operator Precedence Rules'
  1. () Parenthesis
  2. Power
  3. Multiplication
  4. Additon
  5. Left to Right

파이썬 2에서의 나눗셈
- 정수연산만 함. == 결과가 소수점으로 안나옴.

Integer와 Float number(소수)들이 섞여있으면 결과는 소수로  표현되어나옴.

Type 
- type(내용) == 내용의 타입을 알려줌.
type의 종류들 = string, integer, float...

concatenate 
- '연결하다'는 의미. 문자열의 연결
- ex) eee = 'hello ' + 'there'
        print eee ---> hello there 출력.

#Traceback, ERROR를 Scholding(꾸짖음)으로 생각하지말고 컴퓨터가 난 무지하니 전능하신 프로그래머께서 옳바른 해답을 제시해주기를 기다리는 것으로 생각해봐라 ㅋㅋ

'Type Conversions'
          다른 타입으로 캐스팅 할 수 있음.
 ex) int(), float()....
      print 99/100 ----> 0
      print float(99)100 ----> 0.99

'String Conversions'
String이 숫자들로만 이루어젔다면 String이라도 int or float으로 캐스팅할 수 있음. 문자가 포함되어있으면 ERROR!
ex) sval = '123'
     type(sval) ---> string
     ival = int(sval)
     type(ival) ---> integer

User Input.

'raw_input() 함수'
- C에서의 scanf랑 같은 역활. 사용자의 입력을 받아옴. String 타입으로 받아오기 때문에 제대로 사용하기 위해선 다른 형식으로 캐스팅해야 하는 경우가 자주 있음.
ex) u_name = raw_input('Please input your name : ')
     print 'Welcome', u_name
---C code
#include <stdio.h>
#pragma warning (disable :4996) //scanf 보안문제로 인한 오류 무시.

int main(){
        char u_name[50];

       scanf( "%s", &u_name);
       printf( "Welcome %s", u_name);

       
        return 0;
}

'Converting User Input'
유럽식 층 표기법 = 1, 0(입구), -1 ...
미국식 층 표기법 = 2, 1(입구), B1 ...
---- 유럽식 층 표기 -> 미국식 층 표기로 바꾸는 코드.
inp = raw_input('Europe floor : ')
usf = int(inp) + 
print "Us floor is "usf
##string인 inp를 int형으로 캐스팅.

'파이썬에서의 주석처리.'
- '#' 사용.

'String Operations'
print 'abc' '123'
print 'hi' 5

'Mnemonic Variable Names'
- Mnemonic : (기억을 돕는)연상기호. 
- 변수의 이름을 정할 때 기억이 잘되고 알아보기 쉬운 이름으로 지을것. 




소감
이번 4강에서는 기본적인 내용이긴 하지만 파이썬에 맞는 새로운 연산들과 함수를 배워 더욱 집중해서 들었다. 특히 파이썬의 문자열 연산 내용과 입력함수인 'raw_input()'을 잘 기억해놔야겠다.

 + 파이썬 예제코드를 C로 바꾸는 작업에서 겨우 한달 C언어를 안했을 뿐인데 기본적인걸 너무 많이 까먹어서 충격받았다.... 얼른 파이썬 기본과정 끝내고 파이썬 자료구조 수업 때 부터는 C 복습도 할겸 꼭 C언어로의 표현을 같이 정리해야겠다.
++ scanf 보안문제로 인한 에러떔에 빌딩안되는 것도 내가 scanf 사용법을 잘몰라서 그런줄 알았다... 이거땜에 시간 꽤 날림 ㅜㅜ C 복습도 꼭꼭 해야지..