Python | 파이썬 기초 초간단 정리

    728x90

     

     

    [참고 게시글]

    https://docs.python.org/ko/3.9/tutorial/introduction.html

     

    3. 파이썬의 간략한 소개 — Python 3.9.17 문서

    3. 파이썬의 간략한 소개 다음에 나올 예에서, 입력과 출력은 프롬프트(>>> 와 …)의 존재 여부로 구분됩니다: 예제를 실행하기 위해서는 프롬프트가 나올 때 프롬프트 뒤에 오는 모든 것들을 입

    docs.python.org

     


    1. 변수선언과 자료형

     

    ▶ 변수 선언

    # 변수 이름 = 값

    # a = b와 b = a는 다름.

       a = b는 a라는 변수에 b라는 값을 넣은 것이고, b = a는 그 반대

    # 변수는 값을 넣어주는 그릇으로서 변수에 담긴 값을 가리키고 있음

       컴퓨터에서 값이 들어있는 그 메모리 공간 주소를 변수가 가리키고 있는 것

     

    ▶ 자료형

    # 프로그래밍을 할 때 쓰이는 숫자, 문자열 등 자료형태로 사용하는 모든 것

     

    # 숫자형(정수형, 실수형)

       사칙연산(+, -, *, /) 가능. 몫(//), 나머지(%), 거듭제곱(**) 가능

       변수에 저장된 값에 연산을 하고, 다시 그 값을 같은 변수에 저장할 수 있음

     a = 3
     a = a + 7
     print(a)
     
     # 10 이 출력됨.
     # a 라는 변수가 처음에는 3 이라는 값을 가지고 있었지만
     # 다음 연산에서 7과 더해진 뒤 다시 a 라는 변수에 저장되면서 
     # a 는 10이 됨.

     

    # bool 자료형(True / False)

       참 / 거짓을 나타내는 자료형

       True / False를 써줄 때 소문자로 적게되면 bool 자료형이 아니라 변수명으로 인식하니 주의!

       비교 연산자의 결과 나타낼 때 쓰임

    1 < 3    # True 
    5 >= 2   # False
    7 == 10  # False
    4 != 6   # True 같지 않다

       

       논리 연산자 사용 가능

    a = 7 > 3  # True
    not a      # False    NOT 연산자 >> 참을 거짓으로, 거짓을 참으로 바꿔줌
    
    a and b    # False    AND 연산자 >> 모두 참이어야 True 반환
    a or b     # True     OR 연산자 >> 둘 중 하나만 참이면 True 반환

     

    [참고 게시글]

    [AI기본과정/파이썬 기초] - 파이썬 기초 | 변수 개념 | input()함수 | int() 함수 | = 와 == 의 차이

     

    파이썬 기초 | 변수 개념 | input()함수 | int() 함수 | = 와 == 의 차이

    1. 변수의 개념 ▶ 변수 : 값을 저장하는 메모리 공간 2. 변수의 선언과 값의 대입 - 대입연산자(=) 사용 - 대입연산자의 기능: = 의 오른쪽 변수들이 모두 계산된 후 왼쪽 변수로 대입되게 함. ※ '

    nasena.tistory.com

    [AI기본과정/파이썬 기초] - 파이썬 기초 | 산술, 대입, 비교, 논리 연산자 | ==, !=, +=, //=, %=, **= 사용법

     

    파이썬 기초 | 산술, 대입, 비교, 논리 연산자 | ==, !=, +=, //=, %=, **= 사용법

    1. 산술연산자 연산자 의미 사용 예 설명 + 더하기 num = 4+2 4와 2를 더한 값을 num에 대입 - 빼기 num = 4-2 4와 2를 뺀 값을 num에 대입 * 곱하기 num = 4*2 4와 2를 곱한 값을 num에 대입 / 나누기 num = 4/2 4와 2

    nasena.tistory.com


    2. 문자열 다루기

     

    ▶ 문자열 기초

       문자열은 작은 따옴표(' ')나 큰 따옴표(" ")로 감싸주어야 함

     

    ▶ 문자열 연산

       문자열 간 합하고 싶을 때는 '+ 연산자' 사용 ( '+ 연산자' 사용 시 띄어쓰기 없이 합쳐짐)

       문자열과 정수를 더하면 에러 남

       .(온점)을 붙이고 쓰는 내장함수들을 메소드(method)라고 함

    • 문자열 길이 구하기 : len('길이 세줄 문자열') 
    • 특정 문자를 다른 문자로 바꾸기 : replace('바뀌기 전 문자', '바뀐 후 문자') 
    • 모든 알파벳 대문자/소문자로 바꾸기 : upeer() / .lower()
    • 특정 문자 기준으로 문자열을 나누기 : split('특정문자')
    •  

    ▶ 인덱싱과 슬라이싱

       인덱싱: 문자열 안에서 그 문자가 몇 번째 자리에 있는 문자인지 '인덱스'를 넣어 부르는 것

       슬라이싱: 문자열의 일부잘라낼 때 사용하는 것

    fruit = apple
    
    # 인덱싱
    
    fruit[0]   # apple 중 0 번째 글자인 a가 출력됨   
    
    ######################################################################
    
    # 슬라이싱[시작 자리, 끝+1 자리]
    
    fruit[1:4]   # fruit[1번째 자리부터 3번째 자리까지 출력] >> ppl 출력
    fruit[2:]    # fruit[2번째 자리부터 문자열 끝까지 출력] >> ple 출력
    fruit[:3]    # fruit[시작부터 2번째 자리까지 출력] >> app 출력
    fruit[-1]    # fruit[마지막 자리 출력] >> e 출력  
                 # 여기서 -1은 뒤에서부터 자리를 세줄 때 사용 
                 # 즉, 마지막의 앞(전) 자리는 -2번째 자리가 됨, 그 앞(전)은 -3 ...
    fruit[:]     # 처음부터 끝까지 출력 >> apple

     

    [참고 게시글]

    [AI기본과정/파이썬 기초] - 파이썬 기초 | 데이터형(int, float, str, bool) | 이스케이프 문자(백슬래시 \ 사용법) | 문자열함수(len, upper, lower, count, find)

     

    파이썬 기초 | 데이터형(int, float, str, bool) | 이스케이프 문자(백슬래시 \ 사용법) | 문자열함수(len,

    1. 데이터형 ▶ type() 함수 : 변수의 종류 확인 * int : 정수형 (소수점이 없는 수) * float : 실수형 (소수점이 있는 수) * str : 문자형 (글자의 양쪽을 큰따옴표(")나 작은따옴표(')로 감싸야 함) * bool :

    nasena.tistory.com

    [AI기본과정/파이썬 기초] - 파이썬 기초 | 슬라이싱 | format() | f-string | replace() | strip() | startswith(), endswith()

     

    파이썬 기초 | 슬라이싱 | format() | f-string | replace() | strip() | startswith(), endswith()

    ▶ .format( , ) name1 = '김민수' age1 = 10 name2 = '이철희' age2 = 13 print('이름: {} , 나이: {}'.format(name1,age1)) print('이름: {} , 나이: {}'.format(name2,age2)) ▶ f - string name1 = '김민수' age1 = 10 name2 = '이철희' age2 = 13

    nasena.tistory.com


    3. 리스트[ ]와 딕셔너리{ }

     

    ▶ 리스트(list)  [  ]

       컴파운드 자료형(여러 자료형을 담을 수 있음, 리스트를 중첩도 가능)

       순서가 중요

       내용 변경 가능(가변, 새로운 값 추가 / 삭제 / 변경 등이 가능)

       인덱싱, 슬라이싱 가능

    • 길이 세주기: len() 
    • 덧붙이기 : append()
    • 정렬하기 : sort()
    • 요소가 리스트 안에 있는지 알아보기 : 요소 in 리스트명

     

    ▶ 딕셔너리(dictionary)  {  }

      키(key)와 값(value)의 쌍으로 이루어진 자료의 모임  { 'key' : 'value' }

      순서가 없음 (>> 그래서 인덱싱을 사용할 수 없음)

      내용 변경 가능(가변, 새로운 쌍의 자료를 추가 / 삭제 / 변경 등이 가능) 

      딕셔너리의 value에는 여러 자료형을 담을 수 있음. 딕셔너리 중첩도 가능

    • 해당 키가 딕셔너리 안에 있는지 알아보기 : 키 in 딕셔너리명  

     

    ▶ 리스트와 딕셔너리의 조합

    people = [{'name' : 'jack', 'age' : 28},
              {'name' : 'jill', 'age' : 25}]
              
    print(people[1]['age'])
    
    # 25 가 출력됨

     

    [참고 게시글]

    [AI기본과정/파이썬 기초] - 파이썬 기초 | 리스트 함수(리스트 생성, 삭제, 정렬 등) | 리스트명.append() | 2차원 리스트 | 튜플 개념 | 딕셔너리 함수 | 딕셔너리 {키 : 값}

     

    파이썬 기초 | 리스트 함수(리스트 생성, 삭제, 정렬 등) | 리스트명.append() | 2차원 리스트 | 튜플

    1. 리스트 : 리스트 이름 = [값1, 값2, 값3, ...] : 하나씩 사용하던 변수를 붙여서 한 줄로 붙여놓은 개념 * numList = [0, 1, 2, 3] [0] [1] [2] [3] numList = [10,20,30,40] print(type(numList)) print(numList[0]) print(numList[1])

    nasena.tistory.com


    4. 튜플, 집합

     

    ▶ 튜플(tuple)

       리스트와 비슷하게 순서가 존재하지만 불변형임. 

       딕셔너리 대신 리스트와 튜플로 딕셔너리 '비슷하게' 만들어 사용해야 할 때 많이 쓰임

     

    ▶ 집합(set)

       중복을 제거해줌.

       교집합, 합집합, 차집합도 구할 수 있음

    # 집합 교집합, 합집합
    
    a = ['딸기','참외','수박','멜론']
    b = ['딸기','수박','포도','바나나','자두']
    
    a_set = set(a)
    b_set = set(b)
    
    print(set_a & set_b)  # 교집합
    # {'딸기', '수박'}
    
    print(set_a | set_b)  # 합집합
    # {'딸기', '참외', '수박', '멜론', '포도', '바나나', '자두'}
    # 집합 차집합
    
    student_a = ['국어','영어','수학','과학','사회','체육','음악']
    student_b = ['영어','일본어','미술','수학','사회']
    
    a_set = set(student_a)
    b_set = set(student_b)
    
    print((a_set) - (b_set))  #차집합
    
    # {'국어', '과학', '체육', '음악'} 이 출력됨

    5. 조건문

     

    ▶ if (조건):

       조건을 만족했을 때만 특정 코드를 실행하도록 하는 문법

     

    ▶ elif (조건):

       if 조건문 외의 다양한 조건을 주기 위해 작성

     

    ▶ else :

       if 조건문을 만족하지 않을 때 실행할 코드를 작성

     

    [참고 게시글]

    [AI기본과정/파이썬 기초] - 파이썬 기초 | 조건문 | if문 | if~else문 | 중첩 if문 | elif문 사용법 | 조건문 기본 제어구조(순차/선택/반복구조)

     

    파이썬 기초 | 조건문 | if문 | if~else문 | 중첩 if문 | elif문 사용법 | 조건문 기본 제어구조(순차/선

    1. 기본 제어구조 ▶ 순차구조 : 시작 → 단계1 → 단계2 → ... → 단계N → 종료 ▶ 선택구조 : 두 가지 중 선택한 한 방향으로 코드가 실행되는 구조 : 시작 → 조건 → 선택1 또는 선택2 → 종료 ▶

    nasena.tistory.com


    6. 반복문

     

    ▶ for 요소 in 리스트:

           (연산문 .. )

      리스트 안에 있는 요소들을 하나씩 꺼내서 마지막 요소까지 밑의 연산을 반복적으로 실행함

     

    ▶ for i in range(반복 시작위치 인덱스, 반복 끝 위치 인덱스, 간격):

           (연산문 .. )

       range() 함수로 지정한 만큼의 숫자대로 밑의 연산을 반복적으로 실행함

    people = [
        {'name': 'jack', 'age': 28},
        {'name': 'jill', 'age': 25},
        {'name': 'anna', 'age': 30},
        {'name': 'sena', 'age': 17}
    ]
    
    for person in people:
        name = person['name']
        age = person['age']
        if age > 20:
            print(name, age)
            
    # jack 28
    # jill 25
    # anna 30 이라고 출력됨

     

    ▶ enumerate

       enumerate의 뜻은 '낱낱이 세다'라는 뜻으로 열거하거나 나열할 때 사용

       순서가 있는 자료형을 입력 받았을 때 인덱스와 값을 포함하여 리턴

      인덱스동시에 반복하고 싶을 때 사용

       for문과 함께 자주 사용

    people = [
        {'name': 'jack', 'age': 28},
        {'name': 'jill', 'age': 25},
        {'name': 'anna', 'age': 30},
        {'name': 'sena', 'age': 17}
    ]
    
    for i, person in enumerate(people):
        name = person['name']
        age = person['age']
        print(i, name, age)
        if i > 3:
            break
            
    # 1 jack 28
    # 2 jill 25
    # 3 anna 30 이라고 출력됨

     

    [참고 게시글]

    [AI기본과정/파이썬 기초] - 파이썬 기초 | 반복문 for문 | for~in range() | 중첩 for문 | while문 | break문 | continue문 | import random 이용하기

     

    파이썬 기초 | 반복문 for문 | for~in range() | 중첩 for문 | while문 | break문 | continue문 | import random 이용

    1. 반복문 : 특정 부분을 원하는 횟수만큼 반복하는 구문 2. for문 : for 변수 in range (시작값, 끝값 +1, 증가값) : --- 반복할 문장 --- : 반복할 횟수를 알 때 for i in range(3) : print("난생처음 파이썬은 재

    nasena.tistory.com


    7. 함수

    ▶ def 함수명(함수 매개변수):   

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

       return을 통해 (결과를 단순하게 출력(print)해 주는 것이 아니라) 결과 값을 돌려주도록 할 수도 있음

    def vat(price):
        if price < 1000:
            return 100
        if price < 2000:
            return 200
        else:
            return 300
            
    myvat = vat(1450)
    print(myvat)
    
    # 200 이 출력됨

     

    [참고 게시글]

    [AI기본과정/파이썬 기초] - 파이썬 기초 | 함수 | def ~ return | 매개변수 전달, 값 변환 | pass 키워드 | 지역변수/전역변수 | Global 예약어

     

    파이썬 기초 | 함수 | def ~ return | 매개변수 전달, 값 변환 | pass 키워드 | 지역변수/전역변수 | Global

    1. 함수 ▶ 함수의 개념 : 무엇을 넣으면 그것이 처리되어 다시 어떤 것을 돌려주는 기능을 함 : 함수는 매개변수(Parameter)를 입력받은 후 그 매개변수를 가공 및 처리한 후에 반환값을 돌려줌. ▶

    nasena.tistory.com


    8. f-string

    scores = [
        {'name':'안나','score':80},
        {'name':'세나','score':45},
        {'name':'데이','score':95},
        {'name':'지니','score':65}  
    ]
    
    for s in scores:
      name = s['name']
      score = s['score']
      print(name + '의 점수는 '+score+'점입니다.')
      
      # 위 print문을 f-string을 사용하면,
      print(f'{name}의 점수는 {score}점 입니다.')

    9. 예외처리

     

    ▶ try:

             (-중간과정-)

         except:

       에러가 있어도 건너뛰게 할 수 있는 방법

       단, 남용하면 어떤 에러가 난 건지 확인할 수 없으므로 서버 상의 문제 등 정말 써야할 경우만 사용

    scores = [
        {'name':'안나','score':},
        {'name':'세나','score':45},
        {'name':'데이','score':95},
        {'name':'지니','score':65}  
    ]  # 지금 안나의 점수가 비어있는 상태!!
    
    for s in scores:
      try:
          if scores['socre'] > 60:
              print(scores['name'])
      except:
          print(scores['name'], '에러 발생')
          
    # 안나 에러 발생
    # 데이
    # 지니    # 가 출력됨

     

    [참고 게시글]

    [AI기본과정/파이썬 기초] - 파이썬 기초 | 예외 처리 | try ~ except ~ | ZeroDivisionError | IndexError

     

    파이썬 기초 | 예외 처리 | try ~ except ~ | ZeroDivisionError | IndexError

    1. 예외 처리 : 코드 실행 중 발생되는 예외적인 상황(ex. 에러 발생)을 대비해 예외를 어떻게 처리할 것인지 따로 코딩해놓는 것 (try~ except~문) try : except : [연습문제 1] * 문자열 PER(Price to Earning Rati

    nasena.tistory.com


    10. 파일 불러오기

    from 파일이름 import *(또는 사용할 함수 등)
    
    # /from 파일이름/ 안의 데이터들을 가져다 쓸 수 있음

    11. 한 줄의 마법

     

    ▶ if문 삼항연산자

    (참일 때 값) if (조건) else (거짓일 때 값)

     

    ▶ for문 삼항연산자

    # 길게 늘여 쓴 for문
    
    a_list  = [1, 3, 2, 5, 1, 2]
    
    b_list = []
    for a in a_list:
        b_list.append(a*2)
    
    print(b_list)
    # 줄여 쓴 for문
    
    a_list  = [1, 3, 2, 5, 1, 2]
    
    b_list = [a*2 for a in a_list]
    
    print(b_list)

    12. map, lamda, filter

     

    ▶ map(함수, 리스트명)

        리스트의 모든 원소를 조작하기

    people = [
        {'name': 'jack', 'age': 28},
        {'name': 'jill', 'age': 25},
        {'name': 'anna', 'age': 30},
        {'name': 'sena', 'age': 17}
    ]
    
    def check_adult(person):
        if person['age'] > 20:
            return '성인'
        else:
            return '청소년'
            
    result = map(check_adult, people)
    print(list(result)) 
    # people을 하나하나 돌면서 check_adult에 넣어라
    # 그리고 그 return 값을 list로 만들어라
    
    ################################################
    
    # list(map( )) 이렇게 더 많이 쓴다고 함
    result = list(map(check_adult, people)
    print(result)

     

    ▶ map 함수_ if문 삼항연산자 버전

    def check_adult(person):
        return '성인' if person['age'] > 20 else '청소년'
    
    result = map(check_adult, people)
    print(list(result))

     

    ▶ map 함수_ lamda x : x식

    result = map(lambda x: ('성인' if x['age'] > 20 else '청소년'), people)
    print(list(result))

    ▶ filter

        리스트의 모든 원소 중 특별한 것만 뽑기

        map과 유사한데 True인 것들만 뽑아오는 것

    result = filter(lambda x: x['age'] > 20, people)
    print(list(result))

    13. 함수의 매개변수

     

    ▶ 함수에 인수를 넣을 때 어떤 매개변수에 어떤 값을 넣을지 정해줄 수 있음

        순서 상관 없음.  (a = 3, b = 5 이렇게 적어줘도 되고, b = 5,  a = 3 이렇게 적을 수도 있음)

    def cal(a, b):
        return a + 2 * b
    
    print(cal(3, 5))
    print(cal(a=3, b=5))
    print(cal(b=5, a=3))

     

    ▶ 특정 매개변수에 기본값을 지정해 줄 수 있음

    def cal(a, b=3):
        return a + 2 * b
    
    print(cal(4))
    print(cal(4, 2))  # 기본 값으로 b=3으로 이미 지정되어 있지만 여기서처럼 다시 2로 지정 가능
    print(cal(a=7))
    print(cal(a=2, b=6))

     


     

    ▶ 입력값의 개수를 지정하지 않고 모두 받는 방법

        # 매개변수 args

            여러 개의 인수를 하나의 매개변수를 받을 때 관례적으로 arguments라는 뜻의 args를 사용함

    def call_names(*args):
        for name in args:
            print(f'{name}야 밥먹어라~')
    
    call_names('안나','세나','데이')

     

       

        # 매개변수 kwargs

           키워드 인수를 여러 개 받을 때 kwargs를 사용함

    def get_kwargs(**kwargs):
        print(kwargs)
    
    get_kwargs(name='anna')
    get_kwargs(name='sena', age='27')

    14. 클래스 

     

    ▶ 클래스를 언제 사용해야 하는가?

        객체들이 자신의 속성을 관리하도록 할 때 (객체지향)

     

    # 나에 대한 클래스를 생성해봄

    class annasena():
    
      def __init__(self, name, email, money):
        self.name = ''
        self.email = ''
        self.money = 0
      
      def income(self, amount):
        self.money = self.money + amount
        print(f'지금 내 잔고는~ {self.money}만원! 오예')
    
      def spend(self, amount):
        if amount > self.money:
          print(f'돈 없어,,이거 못 사!!')
        else:
          self.money = self.money - amount
          print(f'지금 내 잔고는~ {self.money}만원..흑흑')
    
    
    my_info = annasena('anna', 'anna@mail.com', 200)
    my_info.income(100)
    my_info.spend(30)
    my_info.spend(80)

     

    [참고 게시글]

    [AI기본과정/파이썬 기초] - 파이썬 기초 | 객체(인스턴스), 클래스, 생성자, 상속 개념 | 다양한 메소드 | __init__() | __del__() | __add__()

     

    파이썬 기초 | 객체(인스턴스), 클래스, 생성자, 상속 개념 | 다양한 메소드 | __init__() | __del__() | __

    1. 객체(Object)의 개념 : 어떤 속성과 행동을 가지고 있는 데이터 : 수많은 사물을 프로그래밍 관점에서 객체라고 부름 : 인스턴스(Instance) 라고 부르기도 함 ▶ 거북이 객체 import turtle turtle.shape("cir

    nasena.tistory.com

     

    728x90

    댓글