lution88

[내일배움캠프] AI트랙 - 1주차 파이썬 기초 문법_1 본문

개발일지

[내일배움캠프] AI트랙 - 1주차 파이썬 기초 문법_1

lution88 2021. 12. 15. 12:21

[내일배움캠프] AI트랙 - 1주차 파이썬 기초 문법

# 1주차 교육일지.

 파이썬의 기초 문법에 대해 알아보자.

1. 변수란?

 - 어떤 값을 넣는 것을 말한다.
  컴퓨터의 입장에서는 값이 담긴 위치. 
   즉, 메모리에 올려져 있는 값을 가리키는 것을 말한다.

  a = 3		# 3을 a에 넣는다.
  b = a		# a에 있는 3이라는 값을 b에 넣는다.
  a = 5		# a에 5라는 새로운 값을 넣는다.


2. 자료형

 

- 자료형이란 프로그래밍을 할 때 쓰이는 숫자, 문자열 등 자료 형태로 사용하는 모든 것을 말한다.

  - 숫자형 
  - 문자형
  - Bool 자료형


3. 리스트와 딕셔너리

- 리스트 : 순서가 있는 다른 자료형들의 모임! 순서가 있기 때문에 인덱싱과 슬라이싱을 사용할 수 있다.
             파이썬의 인덱스는 0부터 시작한다.

    a = [1, 3, 2, 4]  # 인덱스 : 0, 1, 2, 3
    print(a[3]) # 4
    print(a[1:3]) # [3, 2] | 슬라이싱[1:3] 인덱스 1부터 2까지. 마지막 숫자는 포함하지 않는다.
    print(a[-1]) # 4 (맨 마지막 것)


- 딕셔너리 : 키(key)와 밸류(value)의 쌍으로 이루어진 자료의 모임! 
                딕셔너리의 요소에는 순서가 없기 때문에 인덱싱을 사용할 수 없다.

    person = {'name':'bob', 'age':26}
    print(person['name'])    # bob
    print(person['age'])     # 26


4. 조건문

- 조건을 만족하지 않을 때 다른 코드를 실행하고 싶을 때 쓰는 문법이다. 다양한 조건을 판단할 때는 elif를 쓰기도 한다.

age = 27
   
if age < 20: # age가 20세 미만이라면
  print('청소년입니다.')
elif age < 65: # age가 21세 이상이고 65세 미만이라면
  print('성인입니다.')
else: # 그 외
  print('무료로 이용하세요;')
  
# age가 27이기 때문에 '성인입니다'가 출력된다.


5. 반복문

  - for 반복문

fruits = ['사과', '배', '감', '귤']
# 리스트 fruits 에 있는 요소들을 fruit에 하나씩 넣으면서 출력한다.
for fruit in fruits:
    print(fruit)
# 사과
# 배
# 감
# 귤

 

  - enumerate() 함수, break

fruits = ['사과','배','감','귤','굴','수박','참외','감자','배','홍시','참외','오렌지']
# 앞에 5개만 출력해 보고 싶다면?
  
# enumerate 는 리스트의 원소에 순서값을 부여해 준다
for i, fruit in enumerate(fruits): 
	print(i, fruit)
	if i == 4: # i 가 4 와 같다면
		break # 반복문 종료 break
          
# 0 사과
# 1 배
# 2 감
# 3 귤
# 4 굴

   
6. 함수

 

- 반복적으로 사용되는 코드들에 이름을 붙여 놓은 것.

def hello():
    print('안녕!')
    print('또 만나자!')

hello()
hello()

# 안녕!
# 또 만나자!
# 안녕!
# 또 만나자!

 

다음은 좀 더 심화된 문법에 대해 다뤄보자!

 

7. 튜플

 

- 튜플(tuple)은 리스트와 비슷하지만 불변인 자료형이다. 순서가 존재한다!

a = ('사과', '감', '배')
print(a[1])		# 감 

# 튜플은 불변형 이기 때문에 수정하려고 하면 에러가 발생한다.
a[1] = '수박' 	# 에러발생

- 튜플은 주로 딕셔너리 대신 리스트와 튜플로 딕셔너리 "비슷하게" 만들어야 할 때 자주 사용된다.

# 딕셔너리
people = [{'name':'bob', 'age':26}, {'name':'john', 'age':30}]

# 튜플
people = [('bob', 26), ('john', 30)]

 

8. 집합

 

- 말 그대로 집합을 구현하는 방법! 집합 실행시키면 중복이 제거가 된다!

a = [1, 2, 3, 4, 3, 2, 3, 4, 5, 8, 7, 1]
a_set = set(a)
print(a_set)	# {1, 2, 3, 4, 5, 7, 8} 중복 제거!

- 교집합과 차집합, 합집합도 구할 수 있다.

a = ['사과', '감', '수박', '참외', '딸기']
b = ['사과', '멜론', '청포도', '참외', '토마토']

a_set = set(a) 
b_set = set(b) 

print(a_set & b_set)    # 교집합 : {'참외', '사과'}
print(a_set | b_set)    # 합집합 : {'수박', '감', '청포도', '딸기', '토마토', '사과', '멜론', '참외'}
print(a_set - b_set)    # 차집합 : {'감', '수박', '딸기'}

 

9. f-string

 

- 변수를 활용하여 더 직관적인 문자열을 만든다!

scores = [
    {'name':'영수','score':70},
    {'name':'영희','score':65},
    {'name':'기찬','score':75}]

for s in scores:
    name = s['name']		
    score = s['score']		
    print(name, score)		

# 영수 70 
# 영희 65
# 기찬 75

 위와 같은 코드를 "{누구}는 {몇}점 입니다." 라는 문자열을 표현하고 싶을 때 f-string 사용.

for s in scores:
    name = s['name']
    score = s['score']
    # f를 앞에 붙여주고 문자열을 쓰면 f-string이 된다.
    print(f'{name}학생은 {score}점 입니다.')	
    
# 영수학생은 70점 입니다.
# 영희학생은 65점 입니다.
# 기찬학생은 75점 입니다.

 

10. 예외처리

 

- try-except 문 : 에러가 있어도 프로그램이 종료되지 않게 건너뛰게 할 수 있는 방법.

people = [
    {'name': 'bob', 'age': 18},
    {'name': 'carry'},		# age가 없는경우
    {'name': 'queen', 'age': 25}
]
for person in people:			
    if person['age'] > 20:
        print(person['name'])
------------------------------------------------
# 에러 발생
    if person['age'] > 20:
KeyError: 'age'
------------------------------------------------
for person in people:
    try:
        if person['age'] > 20:
            print(person['name'])
    except:
        print('에러입니다.')
------------------------------------------------
# 에러입니다. ## 에러가 발생한 구간에서는 except 구문으로 넘어가 메세지가 뜨고 이어서 실행된다.
# queen

 

11. 한줄의 마법!

 

  • 1) if문 - 삼항연산자 
num = 5
if num%2 == 0:
    result = "짝수"
else:
    result = "홀수"
print(result)	# 홀수

 위와 같은 코드를 다음과 같이 3개의 항으로 줄일 수 있다.

result = "짝수" if num%2 == 0 else "홀수"
# (참 일때 값) if 조건 else (거짓일 때 값)
  • 2) for문 - 한방에 써버리기
# a_list의 각 요소에 2를 곱한 새로운 리스트(b_list)를 만들어 보자!
a_list = [1, 3, 5, 2, 1, 2]
b_list = []
for a in a_list:
    b_list.append(a*2)
print(b_list)	# [2, 6, 10, 4, 2, 4]

위와 같은 코드도 한 번에 쓸 수 있다.

b_list = [a*2 for a in a_list]
print(b_list)	# [2, 6, 10, 4, 2, 4]
Comments