파이썬 기초 정리 (feat.유기농 냠냠 파이썬)

홍태경·2021년 2월 20일
0

Wecode_log

목록 보기
1/6
post-thumbnail

> > 위코드 수업 전 파이썬 기본기 잡기 (준비)

목적 : 준비 전 위코드 수업 전 기본기를 다지고자 처음 시작한 파이썬 공부입니다. 한번이라도 직접 쳐보기 커맨드 해보기 위해

툴은 길어지는 코드는 Visual Studio Code
짧은 코드는 IDLE 로 둘을 병행하여 작성했습니다.

1. 프로그래밍

프로그램을 만드는 작업

2. 프로그램

문제를 해결하기 위해 모아놓은 것 혹은 미리 정해진 것 

1. 숫자형

>>> print(1)
1
>>> print(-1)
-1
>>> print(3.14)
3.14
>>> 
>>> print(100000)
100000

2. 사칙연산

>>> print(1 + 2)
3
>>> print(3 - 4)
-1
>>> print(5 * 6)
30
>>> print(7 / 8)
0.875
>>> 

3. 연산자 ( ** , //, %)

>>> print(1 ** 2)
1
>>> print(3 // 4)
0
>>> print(5 % 6)
5
>>> 

4. 변수 ( 값을 저장하는 공간)

>>> my_int = 1
>>> my_str = 'python'
>>> my_bool = True
>>> my_list = [1, 2, 3]
>>> print(my_int)
1
>>> print(my_str)
python
>>> print(my_bool)
True
>>> print(my_list)
[1, 2, 3]
>>> 

5. 복합 할당 연산자

>>> count = 0
>>> count += 1
>>> count -= 1
>>> count *= 2
>>> print(count)
0

6. 변수 이름 짓기 (한참 후에도 좋은 가독성을 위해)

숫자로 시작 x
빈칸 x (언더 바 ( _ )를 사용
이름을 모두가 알아 볼 수 있게 적어라.

7 '문자열' ( 모두 문자열로 변경 해 주는것)

>>> my_str1 ='a'
>>> my_str2 = '3.14'
>>> my_str3 = 'coding'
>>> my_str4 = "coding"
>>> print(my_str1)
a
>>> print(my_str2)
3.14
>>> print(my_str3)
coding
>>> print(my_str4)
coding
print(type(my_str2))
<class 'str'>

8. 문자열 연산

  • 와 *가 대표적이며

  • 는 문자열이 연결

  • 는 문자열이 반복
>>> my_str1 ='a' + 'b' + 'c'
>>> print(my_str1)
abc

my_str2 = 'abc' * 3
>>> print(my_str2)
abcabcabc

9. 인덱스( 문자 가져오기)

정방향

	
>>> alphabet ='abcde
>>> print(alphabet[0])
a
>>> print(alphabet[1])
b
>>> print(alphabet[3])
d

역방향

>>> print(alphabet[-1])
e
>>> print(alphabet[-5])
a

10 슬라이싱 ( 여러개 문자를 추출하기)

>>> Python = 'Python'
>>> print(Python[0:1])
P
>>> print(Python[0:2])
Py
>>> print(Python[0:5])
Pytho

다른 방식

>>> print(Python[:4])
Pyth
>>> print(Python[1:])
ython

10 문자열 메소드 ( 변수에 띄어쓰기를 하면 분리되는 것)

.split() ( 변수에 띄어쓰기를 넣어 분리시키는 것)

>>> fruit_str = 'apple banana lemon'
>>> fruits = fruit_str.split()
>>> print(fruits)
['apple', 'banana', 'lemon']

.format() ( print 안에 중괄호를 넣으면 그 안에 다중으로 대입)

>>> print('life is {}'.format('shord!'))
life is shord!

>>> print( '{} * {} = {}'.format(2,5,2*5))
2 * 5 = 10

11. 출력의 끝 지정하기.

>>> print('coding', end='')
coding

>>> print('coding','_')
coding _

>>> print('coding',end='\n')
coding
>>> print('coding',end='\t')
coding	
>>> 

12. 이스케이프 코드

\n =줄 바꿈

>>> print('hello my name\ntaegyeong')
hello my name
taegyeong

\t = 탭

>>> print('my name is \t jason')
my name is 	 jason

13. 리스트


>>> my_list = []
>>> my_list2 = [1, 2 ,3]
>>> my_list3 =['a', 'b']
>>> print(my_list)
[]
>>> print(my_list2)
[1, 2, 3]
>>> print(my_list3)
['a', 'b']
>>> my_list=[]
>>> my_list.append('abc')
>>> print(my_list)
['abc']
>>> my_list.append(True)
>>> print(my_list)
['abc', True]

>>> my_list[0] ='3.14'
>>> my_list[1] = 'Not True'
>>> print(my_list)
['3.14', 'Not True', True, 'abc']
>>> print(my_list[0])
3.14

14. del 키워드

>>> print(my_list)
['3.14', 'Not True', True, 'abc']
>>> del my_list[0]
>>> del my_list[1]
>>> print(my_list[0])
Not True
>>> print(my_list[1])
abc
>>> print(my_list)
['Not True', 'abc']

15. 여러 값 가져오기.

>>> my_list = ['a', 'b', 'c']
>>> print(my_list[:1])
['a']
>>> print(my_list[1:3])
['b', 'c']
>>> print(my_list[2:])
['c']

16.값 정렬하기.(sort)

>>> my_list = [3, 2, 4, 1]
>>> my_list.sort()
>>> print(my_list)
[1, 2, 3, 4]

>>> my_list2 =[3, 50, 40, 60,1]
>>> my_list2.sort()
>>> print(my_list2)
[1, 3, 40, 50, 60]

17. 값의 개수 세기.( Count)

>>> my_list = ['a', 'b' , 'c' , 'd', 'e', 'a', 'b' , 'a']
>>> print(my_list.count('a'))
3
>>> print(my_list.count('b'))
2

18. In과 Not in

안에 있는지 여부 확인

>>> my_list = ['a', 'b' , 'c' , 'd', 'e', 'a', 'b' , 'a']

>>> print('a' in my_list)
True
>>> print('b' not in my_list)
False

19. 튜플 자료형 ( 값 변경 불가능)

>>> my_tuple1 =()
>>> my_tuple2 = (1,)
>>> my_tuple3 =('a', 'b', 'c')
튜플로 안하면 int 로 나온다 
>>> my_tuple1 = (1)
>>> print(type(my_tuple1))
<class 'int'>

20.횟수로 반복하기 (For문)

for 변수 in 순서열:

실행할 명령1

실행할 명령2

순서열 (여러가지 것들을 가지고 있는것들)

my_list = [1, 2, 3]

>>> for count in my_list:
	print('hello',count)

	
hello 1
hello 2
hello 3

**문자열 코딩**

my_str ='coding'

for letter in my_str:
    print('문자:',letter)
    
문자: c
문자: o
문자: d
문자: i
문자: n
문자: g
    

20. 들여쓰기.

띄어쓰기 4칸을 통일그리고 권장한다.

21. 내장 함수 (range(stop))

for count in range(3):
	print('횟수',count)
    
횟수 0
횟수 1
횟수 2

range(start, stop)

0~2까지 출력

for count in range(0, 3):
    print('횟수:',count)
횟수: 0
횟수: 1
횟수: 2

for count in range(5, 10):
    print('횟수',count)
    
횟수 5
횟수 6
횟수 7
횟수 8
횟수 9

중첩 for 문

내부 for 먼저 해결 후 밖에 for 해결

for j in range(2):
    for i in range(2):
        print('i: {}, j: {}'.format(i,j))
        
i: 0, j: 0
i: 1, j: 0
i: 0, j: 1
i: 1, j: 1
        

중첩 for문으로 구구단 만들기

for i in range(2,10):
    for j in range (1,10):
        print("{} * {} = {}".format(i,j,i*j))

22. Comprehension

긴 줄을 한줄로 요약하는것


numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
odd_numbers =[]


for number in numbers:
    if number %2 == 1:
        odd_numbers.append(number)
        
        print(odd_numbers)
        
[1]
[1, 3]
[1, 3, 5]
[1, 3, 5, 7]
[1, 3, 5, 7, 9]
# numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# odd_numbers =[]

# odd_numbers = [number for number in numbers if number % 2 == 1 ]

23. 조건 문 (if)

boolean

True or False

my_bool1 =True
my_bool2 = False
my_bool3 = 1 < 2
my_bool4 = 1 == 2

print(my_bool1)
print(my_bool2)
print(my_bool3)
print(my_bool4)

True
False
True
False

당신이 레프티면 만나서 반가워요~

name = 'Lefty'

if name =='Lefty':
    print('당신은 Lefty군요')
    print('만나서 반갑습니다.')
    
당신은 Lefty군요
만나서 반갑습니다.


name = 'coding'

if name =='Lefty':
    print('당신은 Lefty군요')
    print('만나서 반갑습니다.')
     
    결과값 : X

24. If, elif, else

If 조건:

실행할 명령1
실행할 명령2

elif :

else :

실행할 명령1
실행할 명령2

설명 : 이름이 엘리스라면 당신이 엘리스군요?
밥이라면 당신은 밥이군요?
둘다 아니면 당신은 대체 누구십니까?

name = 'Alice'
if name == 'alice' :
    print('당신은 Alice군요.')

elif name 'Bob':
    print('당신은 Bob이군요')

else :
    print('당신은 누구십니까?')
    
    당신은 Alice군요.

25. 조건으로 반복하기.

While 조건:
실행할 명령1
실행할 명령2

    count = 0
while count < 3:
    print('횟수:', count)
    count += 1
    
횟수: 0
횟수: 1
횟수: 2

continue, break

continue : 밑에 것 실행 하지 않고
다시 조건문으로 돌아가라

count = 0
while count < 5:
    count = count +1
    if count % 2 == 1:
        continue
    print(count)
    
2
4

break: 반복문을 종료

계속 반복하다가 종료라는 것을 입력 받으면
break에 따라 종료된다.

while True:
    name = input('당신의 이름은 무엇입니까?')
    if name == '종료':
        print('종료합니다')
        break
    print('{}님, 안녕!'.format(name))
    

당신의 이름은 무엇입니까?안녕
안녕님, 안녕!
당신의 이름은 무엇입니까?친구
친구님, 안녕!
당신의 이름은 무엇입니까?경한
경한님, 안녕!
당신의 이름은 무엇입니까?종료
종료합니다

26. 입력 (Input)

input이 진짜 타입을 확인해보자
input은 숫자든 뭐든 기본 str 형( 문자형)이다

name = input('이름을 입력하세요:')
print(name)

이름을 입력하세요:hong
hong

name = input('이름을 입력하세요:')
# print(name)

이름을 입력하세요:홍태경

27. 자료형을 확인 (type())

name = input('이름을 입력하세요: ')
print('안녕, {}!'.format(name))

print(type(name))
print(name)

이름을 입력하세요: 안녕
안녕, 안녕!
<class 'str'>
안녕

타입을 바꾸고 싶다면

input 앞에 원하는 타입을 넣어준다.
str 타입을 정수 타입으로 변경

age = int(input('나이를 입력하세요: '))
print('너의 나이는?: , {}!'.format(age))

print(type(age))
print(age)

나이를 입력하세요: 50
안녕, 50!
<class 'int'>

28. 딕셔너리

관련 된 것을 서로 연결해 놓은 것.

{키1:값1, 키2:값2,}

my_dict1 ={1:'a', 2:'b'}
my_dict2 ={'a':1, 'b':2}
my_dict3 ={1:'a', 'b':2}

print(my_dict1)
print(my_dict2)
print(my_dict3)

{1: 'a', 2: 'b'}
{'a': 1, 'b': 2}
{1: 'a', 'b': 2}

딕셔너리 추가하기

my_dict = {}
my_dict[1] = 'a'
my_dict['b'] = 2
my_dict['c'] ='d'

print(my_dict)


{1: 'a', 'b': 2, 'c': 'd'}

딕셔너리 데이터 가져오기

키를 이용해서 가지고 있는 값을 출력해준다.

print(my_dict)

{1: 'a', 'b': 2, 'c': 'd'}

print(my_dict[1])

a

print(my_dict['b']

2
print(my_dict['c']

'd'


딕셔너리 키와 값 모두 지우기.

키 값을 del 으로 사용하면 된다.

print(my_dict)

{1: 'a', 'b': 2, 'c': 'd'}
del my_dict[1]
del my_dict['b']
del my_dict['c']

print(my_dict)

딕셔너리 대표 메소드

.values() : 값들만 뽑아오기

.Keys() : 키만 뽑아오는것

. items() : 키와 값 모두 뽑아오는것

values 설정

my_dict={'k1':'v1', 'k2':'v2'}

for val in my_dict.values():
    print(val)
    
v1
v2

    

keys 설정

my_dict={'k1':'v1', 'k2':'v2'}

for key in my_dict.keys():
    print(key)
k1
k2

items 설정

for문에 key 와 val값 동시에 받아온다

### my_dict={'k1':'v1', 'k2':'v2'}

for key, val in my_dict.items():
    print(key, val)


k1 v1
k2 v2

29. 모아서 다시쓰기

함수 : 반복되는걸 뭉쳐서 이름을 다시 붙인 것 필요할 때마다 불러 사용 하기 위해

통나무를 입력으로 받으면 마법 빗자루를 출력으로 뿅 바뀌는 마법
통나무를 걍 모자에 넣으면 뚝딱 나온다 ( 시간, 나의 노력이 절약된다)
반복 되는 코드를 묶어서 출력 해준다 .

받은 것을 그대로 출력해주는 print 역시 함수이다 하지만 그건 내장함수라 얘기한다 .
내장 함수 : 파이썬에서 기본적으로 제공하는 함수

함수를 직접 만들기

def = 함수를 만들겠다 설정
함수 이름
인자 = 입력 값
return 결과 : 실행한 것을 돌려준다.

def 함수이름 (인자1,...):
실행할 명령1
실행할 명령2

return 결과

my_sum(1,2) # my_sum(1,2)를 출력

>>> def my_sum(n1,n2):
	return n1+n2
# 엔저 한번 쳐야 한다. 

>>> my_sum(1,2)
3
# 3개 함수호추 
>>> def my_love(n1,n2,n3):
	return n1+n2+n3

>>> my_love(1,5,10)
16

30 함수의 종류

내장 함수 : 파이썬에 포함되어있는 함수. ex) type, print,input,

모듈의 함수 : 다른곳에서 만들어 놓은 것들 거기에 포함된 함수

사용자 정의 함수 : 우리가 그 함수를 직접 만드는 것 ex) def

함수를 사용 하는 이유

  1. 다시 사용하기 위해.
  2. 코드를 관리하기 편해진다. (문제가 났을 시 원하는 부분만 수정 해서 편의가 용이 해진다.)
  3. 조립해서 사용 가능하다. ( 작은 단위로 만들다 보면 금방 금방 프로그램을 만들 수 있다.

인자를 여러번 사용하고 싶다면 ,를 사용하면 된다.

더한값은 S로 들어가고 곱한 값은 M으로 들어간다.

>>> def my_sum_mul(n1,n2):
	return n1+n2, n1*n2

>>> s, m = my_sum_mul(2,3)
>>> print(s)
5
>>> print(m)
6
>>> result= my_sum_mul(2,3)
>>> result
(5, 6)

result는 튜플로 패킹하고 언패킹한다
>>> print(type(result))
<class 'tuple'>

31. Dockstring

함수의 이름 밑 에 주석으로 사용할 때
큰 따음표 3개 """ """

def sum_mul(num1,num2):
    """입력 값을 더하고 곱합니다."""
    return num1+num2, num1 * num2

print(sum_mul(5,6))

(11, 30)

32. 모듈

비슷한 함수들을 모아둔 파일 import 라는 함수를 사용

예시) 자동차 바퀴가 고장났을 때 만들려 하지말고 이미 만들어 져있는걸 사서 끼어라

내가 랜덤이라는 모듈을 사용하고 싶다.

random.choice() : 리스트에서 랜덤으로 하나를 출력

random.sample() : 리스트에서 몇개의 값을 중복없이 선택

random.randint() : 정수에서 정의한 숫자 중 랜덤으로 하나를 출력한다.

리스트중 랜덤으로 무작위로 선택

import random
fruits = ['apple', 'banana','lemon']
my_fruit = random.choice(fruits)
print(my_fruit)

lemon

lemon

banana

banana

리스트에서 랜덤으로 2가지 선택

import random
fruits=['banana','lemon','apple']
my_fruits = random.sample(fruits, 2)
print(my_fruits)

['banana', 'lemon']

['banana', 'apple']

['apple', 'lemon']

인트에서 랜덤으로 출력

import random

my_int = random.randint(0,10)
print(my_int)
5

6

0

8

33. 객체.

함수와 데이터를 함꺼번에 묶어서 사용

예시) 기타라는 객체는 이름,색,패밀리등 데이터들이 있고 한손, 두손, 핑거등 행동이 있다.
이렇게 두가지를 통해서 기타라는것이 정의된다.

예시) 게임 주인공이라는 객체는 hp ,mp, 스테미나 등 데이터들이 있고 앞으로 움직이기 싸우기, 죽기 등 행동들이 있다

profile
나의 에고를 인정하고 사랑하자

0개의 댓글