우선 파이썬을 공부하기 위해 가장 먼저 파이썬 프로그램을 다운로드 받아야한다.
그리고 바로 python idle에서 새로운 문서를 불러와 거기에 코딩을 짤 수도 있고, 다른 개발 환경을 이용할 수 있는데 나는 '나도코딩'님의 영상으로 공부를 하면서 써본 비쥬얼 스튜디오가 좋았다.
**나중엔 여러가지 모듈을 다운받아서 써야 해서 아나콘다를 이용한 주피터 노트북을 사용했다.
독학하기에 좋아보였던 '나도코딩'님 영상 링크
https://www.youtube.com/watch?v=kWiCuklohdY&t=4457s
적당히 준비가 되었다면 슬슬 공부를 해보자!
1.1 연산 (에다가 이것저것 함수들을 곁들인..)
일단 컴퓨터에게 계산을 시킬 수 있다
처음이니까 이번 시간(1.1, 1.2, 1.3)에서는 프로그래밍 툴 말고 idle 에서 이것저것 연산을 해보자.
참고로 결과가 나오게 하려면 간단하게 엔터키를 치면 된다.
가능한 연산
+ 더하기
- 빼기
* 곱하기
/ 나누기 - 나누기는 항상 결과가 float 형태로 나온다.
// 몫(quotient)
% 나머지(remainder)
** 제곱 ( 8 ** 2 = 64 )
== 같다
!= 다르다
<, >, <=, >= 초과 미만 이상 이하
(== 하면 이 등호 두개를 사이로 둔 두가지가 같은지를 보는 것이고, = 하면 등호 왼쪽에 등호 오른쪽의 값을 넣어준다, 대입한다는 것이다.)
and & 그리고 (앞 조건과 뒤 조건 둘 다 만족)
or | 또는 (앞 뒤 하나만 만족하거나 둘다)
not 아니다 (True를 False로, False를 True로)
*표시는 영어로 asterisk 혹은 star로 부른다.
min(6, 10, 3) 하면 최솟값 3이 나오고
max(6, 10, 3) 하면 최댓값 10이 나오고
-min(list), max(list) 처럼 괄호 안에 숫자로 이루어진 리스트를 넣어도 적용된다.
abs(-6.8)하면 절댓값(absolute value)인 6.8이 나오며
pow(2,3)하면 2의 3제곱값인 8이 나온다.
str1="alsdhflawjflkjsadf" 으로 무엇인가를 선언해주었을 때 (선언 관련 내용은 뒤에 나온다)
len(str1) 문자열의 길이를 숫자로 알려주는 함수
round(2.34234, 2)하면 2.34 나오는 반올림 함수
(뒤에 나오는 숫자 만큼의 소수점 자리수까지 반올림해주는 거..)

우리가 상식적으로 생각할 수 있는 수식이어야 엔터를 쳤을 때 결과가 나온다.

그렇지 않으면 이런식으로 에러가 발생한다.
1.2 변수
변수 안에 값을 저장할 수 있다.
(나중에 나오겠지만, 변수를 설정하고 아무것도 저장하지 않는 것도 오류를 유발할 수 있기 때문에 초기값을 설정해주는것이 좋다.)
이 저장되는 값은 정수, 실수, 문자열 등이 있다.
boolean value 는 True False 로 두가지 값만 있는 경우이다. 0과 1로도 표현할 수 있다.
정수(integer)는 %d로 받고
문자열(string)은 %s로 받고
실수는 두가지가 있다.
double과 float이 있는데
float은 32비트 부동소수점 방식이고 값의 범위는 1.2E-38~ 3.4E38 이다 (E는 지수 10) -> f로 받고
double은 64비트 부동소수점 방식이고 값의 범위는 2.2E-308~1.8E308 (E는 지수 10) -> d로 받는다
*변수는 오른쪽이 왼쪽에 저장된다는 생각으로 오른쪽에서 왼쪽으로 보면 된다.
x = y = z = 100
이라고 한다면 100이라는 값이 z에 저장되고, 그 저장된 z의 값이 y로, x로 전달되는 것이다.
다시 idle 에서

이런 식으로
1) x라는 변수에 10이라는 값을 저장해주고,
2) y라는 변수에 15라는 값을 저장해준 후,
3) 그 x와 y를 더하면 무엇이냐고 물어봤더니,
4) 25라고 컴퓨터가 알려준 것이다.
수학처럼 자연스럽게 이해하면 된다.
위처럼 쓴다음에 아래줄에 x=200이라고 친 후, x를 물어보면 어떻게 될까?
처음에 저장한 10이라는 값이 나올까 아니면 200이라는 값이 나올까?
답은 200이다. 컴퓨터는 마지막에 저장해준 것을 기억한다.

변수를 만들 때는 그 사이에 띄어쓰기를 할 수 없다. 그래서 읽기 편하게 중간중간 대문자를 섞어주거나 언더바를 넣어주며 만든다.
첫번째 문자는 소문자로 적어준다. (에러가 나거나 하는 문제가 발생하지는 않지만 거의 맨앞은 소문자로 하는 게 국룰)
yujinkim
Yujinkim
YUJINKIM
yujinKim
yujin_kim
위의 다섯 가지 경우로 변수를 다 만들었다면 우리가 보기엔 다 똑같아 보이지만 컴퓨터는 다 다르게 인식한다.
그런 의미에서 함수가 예를 들어 print()인데 PRINT()로 입력하면 당연하게도 오류가 발생한다.
학교에서 배운 변수 이름 설정에 대한 예시
myvar = 'Sam'
my_var = 'Sam'
_my_var = 'Sam'
myVar = 'Sam'
MYVAR = 'Sam'
myvar2 = 'Sam'
위는 오류 없이 다 가능한 사례들이고
2myvar = "John"
my-var = "John"
my var = "John"
여기 3개는 다 불가능한 사례들이다.
1.3 문자열
문자열이 뭘까? 문자를 나열한 것이다. 문자 하나하나를 붙여둔 것으로 이해하면 된다.
#문자열
str1 = 'hello'
str2 = 'Hi there!'
str3 = 'Hello World!'
str4 = "큰 따옴표도 됨"
str5 = '요상한 문구도 @#$@'
str6 = '''이렇게 하면 엔터 치면서도 문자열 만들 수
있다
'''

마지막에 \n은 줄바꿈을 표현한 것이다. 원래 프린트 될때 줄바꿈을 하고싶으면 \n을 넣어야 하는데 이건 뒤에서 더 다루는 것으로 ..
* 문자열은 문자열끼리 더하기와 문자열에 숫자를 곱하기 연산이 가능하다.
>>> 'Hello'+'future'
'Hellofuture'
과 같이 더하기 연산을 사용하면 띄어쓰기가 생성되지 않게 문자열을 연결할 수 있다.
>>>'Hello '*2
'Hello Hello '
곱하기를 사용하면 위처럼 원하는 숫자만큼 문자열을 반복시킬 수도 있다.
하지만 더하기에 문자열을 더하지 않고 다른 형태의 값을 더하면 에러가 발생한다. (상식적으로 이해하고 넘어가면 된다.)
upper(), lower()
단순히 대문자, 소문자로 만들어주는 method
>>> 'Hello Future'.lower()
'hello future'
>>> 'Hello Future'.upper()
'HELLO FUTURE'
>>> 'Hello Future'.upper().lower()
'hello future' (대문자 됐다가 다시 소문자로 - 역시 뒤의 것을 보여준다.)
변수 안에 저장해서도 가능
nct_dream = 'Hello Future'
nct_dream.lower()
하면 이게 위처럼 'hello future'이 되는 것이다.
*slicing 이건 리스트도 똑같이 적용되고 아주 중요하다.
language = 'python 3.9'
print(language[6:10]) # 3.9
print(language[6:]) # 3.9
print(language[6:len(language)]) # 3.9
print(language[6:-1]) # 3.
print(language[-3:]) #3.9
(주석 처리된 거 뒤에 공백도 있는데 이것을 무시하면 안된다)

a = '123456789'
print(a[0:3:2]) #13
print(a[::2]) #13579
print(a[:-1:2]) #1357



a[a:b:c]
이면 a부터 b전까지 c간격으로!
만약 a가 비어있으면 처음부터, b가 비어있으면 끝까지로 이해해주면 된다.
index는 0부터 시작하는데 뭔가 길고 내가 뒤에서부터 세고 싶으면 -1부터 세어 주면 된다.
youtube 왼손코딩님의 설명을 듣고 더 쉽게 알게 된 방법이 있어 추가해둔다.
인덱스를 위처럼 하나에 하나씩 보고 그 전까지로 봐줘도 되지만, 사이사이에 인덱스가 있다고 생각해줘도 된다.

language = 'python 3.9'
language2 = 'python 2.7'
language = language[:7] + '3.8' #language[:7] = 'python '
print(language) #python 3.8
language = language[:7] + language2[7:]
print(language) #python 2.7
#error
language[7:] = '3.7'
print(language)
*문자열 쪼개기
split()를 사용하면 쪼개서 저장된다. -> list 로!!

이건 뒤에 리스트에서 한번 더 적어둬야겠다.
'프로그래밍 > python' 카테고리의 다른 글
5. nested loop (0) | 2021.12.29 |
---|---|
(+) random, range, 조건문, multiple assignment, help(), dir(), from import.. 등.. (0) | 2021.12.29 |
4. if-else문 (0) | 2021.12.29 |
3. 랜덤 수 만들기, while반복문, for 반복문,break,(조건문) (0) | 2021.12.29 |
2. print, input, 주석처리 (0) | 2021.12.29 |