파이썬 기초 문법 배우기

Frel·2022년 4월 25일
0

내일 배움 캠프

목록 보기
12/35

오늘은 파이썬 기초 문법을 배워보고, 제가 배우고 부족한 부분들만 공부하고 복습하겠습니다

조건문

if 문

- 조건을 만족했을 때만 특정 코드를 실행하도록 하는 문법입니다.
    
    ```python
    money = 5000
    if money > 3800:
        print("택시 타자!")
    ```
    
- 파이썬에서는 어디까지 구문에 포함되는지를 들여쓰기로 구분하기 때문에 아주 중요합니다.
- 조건에는 불 자료형이 들어갑니다. money > 3800은 `True`


    ```python
    money = 5000
    if money > 3800:
        print("택시 타자!")
    ```         

else 와 elif

- 조건을 만족하지 않을 때 다른 코드를 실행하고 싶을 때 쓰는 문법입니다.
    
    ```python
    money = 2000
    if money > 3800:
        print("택시 타자!")
    else:
        print("걸어가자...")
    ```
    
- 다양한 조건을 판단할 때는 `elif`를 쓰면 좋아요!
    
    ```python
    age = 27
    if age < 20:
        print("청소년입니다.")
    elif age < 65:
        print("성인입니다.")
    else:
        print("무료로 이용하세요!")
    ```

반복문

for 문

- 0부터 9까지 숫자를 출력해볼까요?
    
    ```python
    print(0)
    print(1)
    print(2)
    ...
    print(9)
    ```
    
- 파이썬에서는 아래처럼 쓰는 것이 더 자연스럽습니다.
    
    ```python
    fruits = ['사과', '배', '감', '귤']
    
    for fruit in fruits:
        print(fruit)
    ```
    

사람의 나이 출력하기

      ```python
      people = [
          {'name': 'bob', 'age': 20},
          {'name': 'carry', 'age': 38},
          {'name': 'john', 'age': 7},
          {'name': 'smith', 'age': 17},
          {'name': 'ben', 'age': 27},
          {'name': 'bobby', 'age': 57},
          {'name': 'red', 'age': 32},
          {'name': 'queen', 'age': 25}
      ]
      ``` 

      ```python
      people = [
          {'name': 'bob', 'age': 20},
          {'name': 'carry', 'age': 38},
          {'name': 'john', 'age': 7},
          {'name': 'smith', 'age': 17},
          {'name': 'ben', 'age': 27},
          {'name': 'bobby', 'age': 57},
          {'name': 'red', 'age': 32},
          {'name': 'queen', 'age': 25}
      ]
      ```

이 리스트에서 나이가 20보다 큰 사람만 출력합니다.

풀이
    
    ```python
    for person in people:
        if person['age'] > 20:
            print(person['name'])
    ```
    

for문 - enumerate, break

    python
    fruits = ['사과', '배', '감', '귤','귤','수박','참외','감자','배','홍시','참외','오렌지']
  
    

python
fruits = ['사과', '배', '감', '귤','귤','수박','참외','감자','배','홍시','참외','오렌지']


```python
for i, fruit in enumerate(fruits):
    print(i,fruit)


예를 들어 앞에 5개만 출력해보고 싶다면?

```python
for i, fruit in enumerate(fruits):
    print(i, fruit)
    if i == 4:
        break
```

함수

  함수 사용 방법
- 함수는 반복적으로 사용하는 코드들에 이름을 붙여놓은 것입니다.
    
    ```python
    def hello():
    		print("안녕!")
        print("또 만나요!")
    
    hello()
    hello()
    ```
    
- 조건문에 넣을 값을 바꿔가면서 결과를 확인할 때 쓰면 편합니다.
    
    ```python
    def bus_rate(age):
    		if age > 65:
    		    print("무료로 이용하세요")
    		elif age > 20:
    		    print("성인입니다.")
    		else:
    		    print("청소년입니다")
    
    bus_rate(27)
    bus_rate(10)
    bus_rate(72)
    ```
    
- 단순한 출력 뿐만 아니라 결과 값을 돌려주도록 함수를 만들 수도 있어요!
    
    ```python
    def bus_fee(age):
    		if age > 65:
    		    return 0
    		elif age > 20:
    		    return 1200
    		else:
    		    return 0     
    
    money = bus_fee(28)
    print(money)
    ```

튜플 (tuple)

- 튜플은 `리스트와 비슷하지만 불변`인 자료형 입니다. 마찬가지로 순서가 존재하죠!
    
    ```python
    a = (1,2,3)
    
    print(a[0])
    ```
    
- 예를 들어 아래와 같은 작업이 불가합니다!
    
    ```python
    a = (1,2,3)
    a[0] = 99
    ```
    
- 언제 주로 사용하냐면요, 아래와 같이, 딕셔너리 대신 리스트와
  튜플로 딕셔너리 '비슷하게' 만들어 사용해야 할 때 많이 쓰입니다!
    
    ```python
    a_dict = [('bob','24'),('john','29'),('smith','30')]
    

집합 (set)

- 집합은 말 그대로 '집합'을 구현하는 방법! 좋은점: `중복이 제거`됩니다.
    
    ```python
    a = [1,2,3,4,5,3,4,2,1,2,4,2,3,1,4,1,5,1]
    
    a_set = set(a)
    
    print(a_set)
    ```
    
- 교집합 / 합집합 / 차집합도 구할 수 있어요
    
    ```python
    a = ['사과','감','수박','참외','딸기']
    b = ['사과','멜론','청포도','토마토','참외']
    
    print(a & b)  # 교집합
    print(a | b)  # 합집합
    ```        

f-string

- 변수로 더 직관적인 문자열 만들기
- 예를 들어 아래 for문을 살펴보겠습니다.

        ```python
        scores = [
            {'name':'영수','score':70},
            {'name':'영희','score':65},
            {'name':'기찬','score':75},
            {'name':'희수','score':23},
            {'name':'서경','score':99},
            {'name':'미주','score':100},
            {'name':'병태','score':32}    
        ]
        ```
        
    
    ```python
    scores = [
        {'name':'영수','score':70},
        {'name':'영희','score':65},
        {'name':'기찬','score':75},
        {'name':'희수','score':23},
        {'name':'서경','score':99},
        {'name':'미주','score':100},
        {'name':'병태','score':32}    
    ]
    ```
    
    이름과 점수를 모두 출력해볼게요
    
    ```python
    for s in scores:
        name = s['name']
        score = str(s['score'])
        print(name,score)
    ```
    
    아래와 같이 출력해보면 어떨까요?
    
    ```python
    for s in scores:
        name = s['name']
        score = str(s['score'])
        print(name+'는 '+score+'점 입니다')
    ```
    
    f-stirng을 이용하면 훨씬 간단하게 가능하답니다.
    
    ```python
    for s in scores:
        name = s['name']
        score = str(s['score'])
        print(f'{name}은 {score}점입니다')
    ```

예외처리

-try - except 문
- 에러가 있어도 건너뛰게 할 수 있는 방법        
        ```python
        people = [
            {'name': 'bob', 'age': 20},
            {'name': 'carry', 'age': 38},
            {'name': 'john', 'age': 7},
            {'name': 'smith', 'age': 17},
            {'name': 'ben', 'age': 27},
            {'name': 'bobby', 'age': 57},
            {'name': 'red', 'age': 32},
            {'name': 'queen', 'age': 25}
        ]
        ```      
    실제 프로젝트 남용하는 것은 금물! 어디서 에러가 났는지 알 수 없어요 💀

    자, 다음과 같이 20세 보다 큰 사람만 출력한다고 해봅시다.
    
    ```python
    people = [
        {'name': 'bob', 'age': 20},
        {'name': 'carry', 'age': 38},
        {'name': 'john', 'age': 7},
        {'name': 'smith', 'age': 17},
        {'name': 'ben', 'age': 27},
        {'name': 'bobby', 'age': 57},
        {'name': 'red', 'age': 32},
        {'name': 'queen', 'age': 25}
    ]
    
    for person in people:
        if person['age'] > 20:
            print (person['name'])
    ```
    
    그런데 만약, bobby가 age를 갖고 있지 않다면? - 데이터 하나가 잘못 들어간거죠!
    
    ```python
    people = [
        {'name': 'bob', 'age': 20},
        {'name': 'carry', 'age': 38},
        {'name': 'john', 'age': 7},
        {'name': 'smith', 'age': 17},
        {'name': 'ben', 'age': 27},
        {'name': 'bobby'},
        {'name': 'red', 'age': 32},
        {'name': 'queen', 'age': 25}
    ]
    
    for person in people:
        if person['age'] > 20:
            print (person['name'])
    ```
    
    그 때 아래와 같이 try except 구문을 이용하면 에러를 넘길 수 있답니다.
    
    ```python
    for person in people:
        try:
            if person['age'] > 20:
                print (person['name'])
        except:
            name = person['name']
            print(f'{name} - 에러입니다')
    ```        

파일 불러오기

-여러개 파일로 분리하려면
- main_test.py
    
    ```python
    from main_func import *
    
    say_hi()
    ```
    
- main_func.py
    
    ```python
    def say_hi():
    	print('안녕!')
    ```        
    

한줄의 마법

-if문 - 삼항연산자
- 만약 조건에 따라 다른 값을 변수에 저장하고 싶다면?
    
    ```python
    num = 3
    
    if num%2 == 0:
        result = "짝수"
    else:
        result = "홀수"
    
    print(f"{num}은 {result}입니다.")
    ```
    
- 이것을 한 줄에 적는 것이 파이썬의 유일한 삼항연산자인 조건식입니다.
    
    ```python
    num = 3
    
    result = "짝수" if num%2 == 0 else "홀수"
    
    print(f"{num}은 {result}입니다.")
    ```
  
    `(참일 때 값) if (조건) else (거짓일 때 값)``으로 항이 3개라 삼항 연산자입니다`     
    

후기

와... 공부하는데 좀 머리가 띵 하네요.. 코드를 보면 이해하고 읽을 수 있는데, 이거를 활용하라고 하면 어떻게 활용해야할지 좀 어려울거같네요... 이제 프로젝트 해여하니 프로젝트 하면서 모르는거 찾아보면서 엄청난 시간을 쏟아 부어야 할거 같습니다..

profile
자기개발을 해서 발전하는 미래의 개발자

0개의 댓글