[파이썬/Python] 파이썬 독학하기 1일차 - 변수, 자료형, 연산자, 문자열
2020. 8. 12.

우리학교는 컴퓨터과지만 언어 수업은 C언어와 Java뿐 파이썬은 따로 개설되지 않았다.

모든 사람들이 파이썬 정도는 기본으로 할줄알고 심지어 중학생, 고등학생은 내 동생들 조차도 학교에서 파이썬을 배운다. 

동생이 학교에서 들은 파이썬 관련 질문을 했는데 전공이 컴공이라는 이 집의 첫째는 파이썬을 모른다...ㅎㅎ

 

 

통계학과에 파이썬 수업이 있다는 이야기를 들었지만 매번 본전공과 시간이 맞지 않아 미뤘는데

이번 다가오는 2학기 파이썬 기초 수업도 아닌 파이썬을 활용해야하는 통계학과의 강의를 듣게 되었다... 

씨랑 자바 알면 파이썬은 뚝딱이지! 라는 말을 믿고 급하게 남은 여름 방학동안 파이썬 기본문법을 독학하려고 한다.

 

 

인터넷에 요즘은 파이썬이든 C언어든 너무 많은 자료가 있어서 독학이 그렇게 어렵지는 않다.

아예 처음부터 파이썬으로 무엇을 만들겠다는 생각보다 기초 문법을 익힌다는 생각으로 일주일컷에 도전해본다.

 

강의는 

https://www.edwith.org/sogang_python/joinLectures/7133

 

기초 PYTHON 프로그래밍 강좌소개 : edwith

'기초 PYTHON 프로그래밍' 강의는 처음으로 프로그래밍을 접하는 수강생들을 대상으로 하는 PYTHON 문법 및 코딩 강의입니다. 이 과정을 통하여 PYTHON에서 어떻게 데이터... - 이지선

www.edwith.org

서강대학교의 이지선 교수님이 올려주신 무료 강의를 이용할 것이다!

 

 

진정한 초보를 위해서 적는 글이라기보다 내가 그날 그날 공부한 내용을 요약정리한 글이다.

 

1.파이썬 설치

 

파이썬이란 무엇이고 파이썬의 역사 등등은 생략하고 지나가도록 하겠다.

 

https://www.python.org/ 에서 다운 받아서 설치했다.

주피터노트북이나 파이참 등등 여러가지 작업환경에 필요한 프로그램들도 있으나

이런 작업환경 세팅은 차차 해나가도록 하겠다.

 

 

2.hello world 출력

 

파이썬은 출력할때 pirnt()함수를 사용한다.

괄호안의 내용을 출력하는데 작은따옴표와 큰따옴표를 이용한다.

print('hello world')
print("hello world")
print('''hello world''')
print('''hello world""")

'과 "를 단독으로 사용해도 되지만 세번씩 연속으로도 사용이 가능하다.

 

 

3.객체와 변수

 

메모리에 저장된 자료를 객체라고 부르고 변수명으로 객체에 접근할 수 있다.

객체를 저장한 공간을 변수라고 한다.

 

변수명은 영어 소문자, 대문자, 숫자, _로만 구성되고

숫자로 시작할 수 없다. 대소문자를 구분하고 한글도 가능하다.

키워드는 변수명으로 사용할 수 없다.

 

객체를 삭제할 때는 del을 이용한다.

data = 100
print(data) #100출력
del data
print(data) #에러

C나 자바와 다르게 변수를 선언할때 따로 자료형을 앞에 붙여주지 않는다. 그냥 변수명 = 값이라고 입력

 

 

4.자료형

 

수치 : int, float, complex(복소수)

int는 정수형, float는 소수점을 포함하는 실수형.

복소수형 complex는 실수부와 허수부로 표현된다. 허수부 뒤에는 j또는 J를 붙인다.

X = 3 + 5j
print(x) #(3+5j)출력
type(x) #<class 'complex'>

type(변수명) 함수는 변수의 자료형을 알려준다.(+id(변수명) 변수의 식별자를 알려준다.)

 

부울 : bool(Ture/False)

그외 :

str(문자열) - 따옴표를 이용하여 표현한다.

name = 'Kim'
print(name) #Kim출력

"---", '''---''', """---""" 등도 가능하다.

 

list(리스트) - 대괄호를 이용하여 표현한다.

scores = [10, 25, 99, 80]
print(scores) #[10, 25, 99, 80]출력

 

tuple(튜플) - 괄호로 표현한다.

리스트처럼 여러개의 자료를 저장함.

data = (100, 200, 300)
print(data) #(100, 200, 300)출력

 

set(집합) - 중괄호로 표현한다.

중복되지 않는 자료들을 저장할때 사용한다.

number = {1, 2, 6, 8}
print(number) #{1, 2, 6, 8}출력

 

dict(사전) - key와 vlaue 쌍으로 이루어진 집합의 일종이다.

data = {1:10, 2:12, 3:30, 4:55}
print(data) #{1:10, 2:12, 3:30, 4:55}출력

 

+)주석을 달 때 #를 이용한다.

여러줄 주석을 달 때는 """~~""" 또는 '''~~'''을 이용한다.

 

 

5.연산

 

정수객체는 객체를 수정할 수 없다.

예를들어 

a = 10
a = 20

이라고 했을때 처음에 10을 넣은 객체에서 10이 20으로 수정되는 것이 아니라 새로운 데이터 공간 20이 만들어 지게 되는것이다.

c언어와의 큰 차이라고 생각한다. 처음에 이부분이 살짝 이해가 안 갔는데 쉽게 생각하니까 이해가 가는...

 

연산자는  + - * / %등은 이미 아는 것이고 새롭게 알게 된것들을 적자면

** - 지수계산 예) 2 ** 5는 2의 5승이다 즉 32

// - 몫 예) 30 // 7은 4.웅앵이기 때문에 4다.

 

우선순위는 **가 가장 높다. 지수연산의 경우 결합 순서는 오른쪽에서 왼쪽이다.

 

 

실수는 소수점으로 표현이 가능하다.

a = 10.5
b = 11.
c = .5
print(a, b, c) #10.5 11.0 0.5 출력

실수객체도 정수객체와 마찬가지로 수정할 수 없다.

정수형에서 사용 가능한 연산자들을 모두 사용 가능하고

정수와 실수를 같이 연산하면 결과는 실수로 나온다.

 

복소수의 경우 사용하는 것들

x = 1 + 50j
x.real #실수부를 알려준다 1.0출력
x.imag #허수부를 알려준다 50.0출력
x.xonjugate() #켤레복소수를 반환한다

솔직하게 말해서 복소수가 뭔지도 잘 기억이 안날뿐더러 켤레복소수또한 정말 모르겠는 단어다. 하지만 언젠가 쓰는 일이 있을지도....(문과 출신의 한계ㅠㅠ)

 

 

6.자료형변환

 

int() : 실수, 문자를 정수로 변환해준다

float() : 정수, 문자를 실수로 변환해준다

 

그외 함수

abs(n) : n의 절대값을 반환한다

idvmod(x, y) : 몫과 나머지 쌍을 반환한다. (a, b)형태

pow(x, y) : x의 y승을 반환한다

 

+)import 모듈은 나중에 따로 정리

 

 

7.문자열

 

문자열 객체는 따옴표를 이용해서 생성한다.

역슬래쉬를 이용해 긴 문자열을 생성할 수 있다.

s1 = 'we gonna rock the night away\
who did that to you, babe'
print(s1) #we gonna rock the night away who did that to you, babe출력

s2 = 'you were gripping me
without noticing'
print(s2)

#you were gripping me
#without noticing 출력

문장 내에 따옴표가 나올경우 같이 사용하지 않아야한다.

s1 = 'hello my name is 'kim'.' #error
s2 = "hello my name is 'kim'."
s3 = '''hello my name is 'kim'.'''
s4 = """hello my name is 'kim'."""

 

문자열 객체 역시 수정할 수 없다.

인덱싱이 사용가능하다.

예) s = 'hi bear'

0 1 2 3 4 5 6
h i   b e a r
-7 -6 -5 -4 -3 -2 -1
print(s[3]) #b출력
print(s[0]) #h출력
s[4] = 'E' #error

 

문자열 슬라이싱은 문자열 일부분에 접근하는 방식이다.

s = 'TheLastDay'

0 1 2 3 4 5 6 7 8 9
T h e L a s t D a y
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1

s[a:b] a부터 b-1까지의 문자열

s[a:b:c]

a부터 b-1까지 c간격의 문자열 (a<b, c>0일때) 

a부터 b+1까지 c간격의 문자열 (a>b, c<0일때)

s[:3] #The 처음부터 2까지
s[3:5] #La
s[7:] #Day 7부터 끝까지
s[3:-3] #Last 양수 음수 인덱스 혼용가능
s[:7:2] #Teat

 

문자열 연결은 +를 이용한다.

s1 = 'forever'
s2 = 'young'
s3 = s1 + ' ' + s2
print(s3) #forever young출력

문자열을 반복할때는 *를 이용한다.

s = 'hi'
print(s * 3) #hihihi출력

 

len(문자열) 문자열의 길이를 알 수 있는 내장 함수

예) word = 'watermelon'

in, not in 연산자

예) 'a' in word #Ture

'melon' in word #True

'y' not in word #True

 

 

upper(), lower(), isupper() 등등 다양한 문자열 메소드들이 있는데 이미 아는건 넘어가겠다...

 

title() - 문자열에서 각 단어의 첫문자가 대문자로 바뀜

istitle() - 문자열의 각 단어 첫 문자가 대문자인지 확인 True/False

join(리스트) - 리스트의 자료들을 문자열로 연결한다.

number = ['010', '123', '4567']
dash = '-'
dash.join(number) #010-123-4567

split - 문자열을 스페이스 기준으로 잘라서 리스트에 저장한다.

lists = 'kim lee park han'
lists.split() #['kim', 'lee', 'park', 'han']

 

 

생각보다 정리하는데 오래걸리는데 기억은 확실하게 남을듯

myoskin