본문 바로가기

TIL/Python (w Numpy)

24.05.03 Python

Introduction

  • Python

      - 1990년 암스테르담의 Guido van rossum이 개발한 interpreter 언어

      - 본인이 좋아하는 코메디쇼에서 따옴.  

      - 소스 코드를 한줄씩 해석 후 그때그때 실행해 결과를 바로 확인할 수 있는 언어

      -  사전적 의미: 고대 신화에서 나오는 뱀 (그래서 마크가 뱀).

  • Compiled language: Interpreter 언어와 반대. 코드가 실행되기 전 컴파일러를 거쳐 기계어로 모두 변환되어 실행되는 언어로 interpreter를 거치지 않아 속도가 상대적으로 빠름.
  • Python의 이점: 공동 작업과 유지 보수가 쉽고 편리, 오픈소스(무료), 쉽게 직관적으로 뜻을 알 수 있음.
  • Programming: 인간이 생각하는 것을 컴퓨터에 지시하는 행위.
  • Python으로 할 수 있는 일

       - 데이터 분석

       - 인공지능과 머신러닝, 딥러닝

       - 웹 프로그래밍

       - 수치 연산 프로그래밍(C언어가 더 빠르나 Numpy 수치 연산 모듈로 가능)

       - 데이터 베이스 프로그래밍

       - 시스템 유틸리티 제작

       - 사물 인터넷

  • Python 으로 할 수 없는 일

      - 시스템과 밀접한 프로그래밍 영역(엄청난 횟수의 반복 및 연산이 필요한 프로그램을 만드는 것은 어려움.

      - 매우 빠른 속도를 요구하거나 하드웨어를 직접 건드려야 하는 프로그램에는 적합하지 않음

      - 모바일 프로그래밍(구글이 가장 많이 애용하는 언어지만, android native app을 개발하긴 어려움)

  • Python 실행 방법: Google Colab, Jupyter Notebook

Today's Curriculum

  • 자료형과 기본 자료형
  • 자료형 확인하기
  • 문자열 만들기
  • 문자열 연산자
  • 숫자 자료형
  • 숫자 연산자
  • 변수 설정
  • 사용자 입력 받기: input()
  • 숫자와 문자열의 다양한 기능: str.format() 메서드(함수)
  • 대소문자 바꾸기
  • 문자열 찾기: str.find(), str.rfind()
  • 문자열 자르기: str.split()
  • 문자열과 in 연산자

자료형

  • 개발자들이 쉽게 사용할 수 있도록 기능과 역할에 따라 자료를 구분
  • 문자열(string): 메일 제목, 메세지 내용 등  e.g. "안녕하세요", "Hello World"
  • 숫자 (number, integer) : 물건의 가격, 학생의 성적 e.g. 52, 273, 103.3
  • 불 (boolean) : 로그인 상태 e.g. True, False

자료형 확인하기 및 문자열 만들기

  • type() 함수
  • print() 함수

  • 이스케이프(escape) 문자를 사용해 문자열 만들기
  • \'(가독성을 위해 줄바꿈 한 것이지 실질적인 줄바꿈이 아니라는 것을 나타낼 때도 사용) , \'', \n (문단이 바뀜), \t(탭), \\
  • \n을 일일이 입력해도 되지만, 따옴표 3개를 앞 뒤로 입력하면 자동 문단이 바뀜(""" """)

\n 또는 앞 뒤로 """ """

 

가독성을 위한 \ 입력

문자열 연산자

  • 숫자에는 더하기, 빼기, 곱하기, 나누기 연산을 할 수 있음

  • 연산자는 숫자나 집합과 같이 같은 특성을 가진 그룹에 종속 됨 (즉, 끼리끼리만 사용 가능)

문자열 연산자(인덱싱)

  • 문자 선택 연산자는 문자열 내부의 문자 하나를 선택하는 연산자
  • 대괄호 [] 안에 선택할 문자의 위치를 지정, 이 숫자를 인덱스(index)라고 함

  • Python: 숫사를 0부터 셈 (zero index)

  • 마이너스를 붙이면 역으로 세는 것. 이때는 -1부터 시작.

  • 범위 지정시 '마지막 숫자를 포함'
  • 범위 지정시 '마지막 숫자 미포함' (파이썬)

  • :: 는 뒷 숫자만큼 띄어서 세는 것 e.g. ::3의 경우 세번씩 띄어서 글자를 세는 것,  ::-2는 두번씩 띄어서 역으로 글자를 세는것. 

  • 문자열의 길이 구하기 print(len()) 

숫자 자료형

  • 정수형: 소수점이 없는 숫자 (int)
  • 실수형: 소수점이 있는 숫자 (float)
  • 사칙연산자: +,-,*,/
  • _는 인식하지않고 넘어감. 가독성을 높이기 위해 사용. e.g. 1000000 --> 100_00_00

변수: 값을 저장할 때 사용하는 식별자                                                                                                                       

  • e.g. pi=3.14...
  • Q) 원의 둘레와 넓이 구하기 (원주율: 3.14, 반지름: 10)

  • 정의해 주는 자료형으로 인식하고 출력함 (?)

  • 복잡 대입 연산자 

변수명을 만들 때 지켜야할 사항

  • 키워드를 사용하면 안됨: help("keywords")로 확인 가능

 

  • 특수문자는 언더 바(_)만 사용가능
  • 숫자로 시작하면 안됨
  • 공백을 포함할 수 없음

사용자 입력 받기: input() **여기서부터 이해가 잘 안가기 시작, 집중!!**

  • Input으로 사용자 입력을 받을 때, 자료형을 잘 파악하기 --> 아님 error

""안의 숫자는 --> str이고 int함수를 쓰면 int가 됨

  • 자료형을 모르겠으면 type()을 써서 확인하기

    • 각 함수에 알맞은 자료형을 입력해야함 e.g. int(문자열 or 소수점) 입력하면 error
    • 소숫점 or 실수 or 문자열 등 어떤 값을 넣어도 각 함수에 맞는 자료형으로 출력 
      e.g. int(5.23) --> 5, float(5) --> 5.0
    • 이때, 문자열을 입력할 때는 함수에 맞는 값을 넣어줘야 error 나지 않음. 
      e.g. int('53') --> 53 (정수형), int('53.2') --> error, int(float('53.2')) --> 53.2 (정수형)--> ?? 
    • Q) inch 단위를 입력으로 받아서 cm로 단위를 변경해주는 프로그램 만들기 (1 inch = 2.54 cm).  
      A) 1. 문제를 만들어주기 (다른사람이 보는 부분)                  a= input('숫자를 입력해 주세요>')
           2. input의 문자열을 정수로 변환시켜주기                        b= int(a)
           3. 식의 조건 입력                                                              one_inch=2.54, cm = one_inch*b
           4. 출력되는 문구 입력 (다른사람이 보는 부분)                 print('입력값: ', b, 'inch', '출력값: ', cm, 'cm')
               (이때 print 뒤에 순서대로 보여야하는 문자열은 "" 사용해서 입력한 뒤 콤마를 쓰면 그 문자열에 대한 설명)

format 함수

  • format 함수: 문자열을 정리하거나 문자열 중간에 특정 변수의 값을 넣어주기 위해 사용하는 함수.
    e.g. print('2*3=6') --> print('{0}*{1}'=6.format(a,b,a*b))
  • format 함수 사용법: '{인덱스0},{인덱스1}'.format(값0,값1) 
    e.g. print('인치값 { } inch'.format(16.3)) --> 인치값 16.3 inch 
           number = 10, print('숫자는 { } 입니다.'.format(number)) --> 숫자는 10 입니다. 

문자열 양옆의 공백 제거하기: str.strip( )

  • print('a    ',stript()) --> a 

문자열 찾기: str.find( ), str.rfind( )

  • str.find( ): 왼쪽부터 찾아서 처음 등장하는 위치를 찾음
  • str.rfind( ): 오른쪽부터 찾아서 처음 등장하는 위치를 찾음

문자열 자르기: str.split( ) 

  • str.split( ): 문자열을 특정한 문자로 자를때 사용
    e.g. string="10 20 30" string.split(",") --> "10", "20", "30" 

문자열의 in 연산자 및 find 함수 

  • 문자열 내부에 어떤 문자열이 있는지 확인할 때 사용
    e.g. print("안녕" in "안녕하세요") --> True
           '안녕하세요'.find('안녕') --> 0

Daily Quiz

  • 구의 부피와 겉넓이를 구하는 프로그램을 만드시오 (반지름을 입력값으로 받기)

  • 직각 삼각형의 밑변과 높이를 받아서 빗변의 길이를 구하는 프로그램을 만드시오. 

 

질문) input 뒤에 단위를 넣으려면? e.g. 반지름의 값을 입력하세요 > xx cm 

질문) 다른 답의 경우 format 함수를 사용했는데, 아래에서 {:2f}가 의미하는 것은?

느낀점

  • 내용자체가 그리 어렵진 않은데, 입력값을 받는다할 때 개념이 없다보니 멘붕. 다시 찬찬히 보니 이해됨.
  • 용어들이 일단 모두 생소해서 어렵게 느껴지지만 시간을 투자하는 방법 뿐일 듯 싶다.
  • 하루에 진행되는 수업 진도가 꽤 많다. 바짝 따라가야함. 

'TIL > Python (w Numpy)' 카테고리의 다른 글

24.05.13 API호출  (0) 2024.05.13
24.05.10 Python  (0) 2024.05.10
24.05.09 Python  (0) 2024.05.09
24.05.08 Python  (0) 2024.05.08
24.05.07 Python  (0) 2024.05.07