[SSAC 3기] - 2주차-(3)

SangHoon·2021년 8월 13일
2

SSAC 3기과정

목록 보기
5/22
post-thumbnail

🍕파이썬(Python) 3.14태양


파이썬(python)은 1990년 귀도 반 로섬이라는 개발자에 의해서 개발된 인터프리터 언어입니다.

  1. 파이썬의 장점

    • 쉽고 단순하여 접근성이 좋다
    • 들여쓰기의 강제로 인해 가독성이 좋다
    • 운영체제에 종속되어 있지 않다
    • 인터프리터 언어로서 디버깅에 유리하다
  2. 파이썬의 단점

    • 속도가 느리다 (JIT사용으로 개선 가능)
    • 런타임 에러가 많다 (동적타입)
  3. 파이썬의 설치
    ①파이썬 홈페이지 접속
    ②각자 본인의 OS에 맞게
    Down -> StableReleases -> Windows installer(64bit)

🍒파이썬 기초


다른언어 다뤄봤으면 이해하기 쉽게 기술 (입송 : 입문자죄송)

  1. 변수
    • 변수선언 - 자료형을 입력하지 않아도 된다.
    a = 1;
    print(a);	#1
  1. 출력
    • 출력문은 print() 로 되고,
    • 이어 붙이려면 + 혹은 , 로 붙인다.
    • print()는 자동 계행된다.
    • 자동계행을 막으려면 end="" 를 사용한다.
       print("안녕하세요"+"홍길동입니다."); # 안녕하세요홍길동입니다
       print("안녕하세요","홍길동입니다."); # 안녕하세요홍길동입니다
       print("안녕하세요");   # 안녕하세요
       print("홍길동입니다";  # 홍길동입니다.
       print("안녕하세요","홍길동입니다.", end=''); # 안녕하세요홍길동입니다.
  1. 입력
    • 변수에 저장후 변수를 출력하는 방식으로 입력받기
    • 그냥 input("")으로 해도 가능
      user_input = input("숫자를 입력하세요")	# 이렇게 해도 문자로 받게됨
      print( user_input );

      a = int(input("숫자를 입력하세요")) # 숫자를 받으려면 이렇게 해줘야함
      print( a );
  1. if문
    • 조건문에 소괄호를 하지않고 끝에 : 를 씀
    • 중괄호 대신 들여쓰기를 씀
      if 3 > 5:
          print("5는 3보다 큽니다.");
          print("1, true");
      elif 2 > 3:
          print("2, true");
      elif 1 > 3:
          print("3 true");
      else:
          print("4. true");
  1. for문
    • 조건에 있는 숫자보다 한개 작은수까지 반복 (형식 중요!!!)
      for i in range(10): 
          print(i);  # 0부터 9까지 출력

      for i in range(1, 11): 
          print(i);  # 1부터 10까지 출력

      for i in ["a", "b", "c"]:  
          print(i);  
  1. 리스트
    • 배열은 담을 공간만큼 공간을 차지하나, 리스트는 담을 공간보다 더 큰 공간을 차지
    • 파이썬은 리스트를 사용
    • slice 가능
      # list 선언
      list1 =["a", "b", "c"];  # 인덱스 - 각각의 번호 (처음은 무조건 0부터 시작)
      print((list1[1]));       # b -> 0, 1, 2 중 1번째 인덱스 b를 출력


      # slice
      print(list1[0:2]);      # ['a', 'b'] -> slice 0 ~ 1까지를 출력
      print(list1[-3]);       # a -> 뒤에서 부터 -1, -2, -3 중 -3 인덱스 출력
      print(list1[-3:-1]);    # ['a', 'b'] -> -1부터 -2까지 출력
                              # *중요한건 끝에오는 수에서 -1을 뺴줘야한다.

      # 집계함수 len(), sum(), min(), max()
      list1 =[1, 2, 3];
      print( len(list1) );		    # 3 -> 리스트의 크기(길이)
      print( sum(list1) );		    # 6 -> 리스트의 합계
      print( min(list1) );		    # 1 -> 리스트 중 최소값 
      print( max(list1) );		    # 3 -> 리스트 중 최대값
      print( max(list1) / len(list1));    # 리스트의 평균 (avg x)


      # 리스트 추가
      ## append 원소 마지막에 추가
      a = [1, 2, 3, 4, 5];
      a.append(6);
      print(a);	#[1, 2, 3, 4, 5, 6]

      ## insert : 원소 원하는곳에 추가 --- 리스트.index(입력할index, 값)
      a = [1, 2, 3];
      a.insert(1, 5);
      print(a);  #[1, 5, 2, 3]

      ## extend : 리스트에 리스트를 추가 --- 리스트.extend(추가할 리스트)
      a = [1,2,3];
      a.extend([4,5,6]);
      print(a);  # [1, 2, 3, 4, 5, 6]


      # 리스트 제거
      ## del : del키워드를 이용하여 삭제 --- del. 리스트[]
      a = [1, 2, 3, 4, 5, 6, 7];
      del a[1];
      print(a);  # [1, 3, 4, 5, 6, 7]
  1. 문자열
    • 리스트처럼 인덱싱과 슬라이싱 가능
      a = "abcdef"
      print(a[0]);
      print(a[5]);
  1. 함수
    • def 함수명(): 이렇게 작성
    • 들여쓰기 필수
      # 기본형식
      def test():
          print("Test");

      test();	 #Test


      ##????
      def test( aa, cc, bb ="안녕하세요"):
          print( aa + bb + cc)

      test("안녕", "바이");  #안녕안녕하세요바이


      ##반환값이 있는 함수
      def test( aa, cc, bb ="안녕하세여"):
          return aa + cc + bb

      print("안녕바이안녕하세요")
  1. 모듈
    • 파일을 외부에서 불러와서 사용 - 같은 파일에 있어야함! 만약 다를시 경로까지 작성해줘야함
      #<mod1.py>
          def add(a, b):
              return a + b;
          def sub(a, b):
          return a - b;
      #<main.py>
          import mod1
          print ( mod1.add(2,3) )  # 5
  1. 클래스 (이부분은 보충 수정 예정 !!!!!!!)
  • 클래스내에서 변수선언 가능
  • 클래스명은 첫글자 대문자
    class Test:
        number = 0
        def __init__(self, number):
            self.number = number
            print("test의 인스턴스가 만들어졌습니다.");
        def transfer(self):
            self.number = self.number + 1
        def math(self, teacher):
            print(teacher + "선생님이 수학을 가르침");

        a = Test(31)
        b = Test(35)

        a.transfer()

        print(a.number)
        print(b.number)

📚과제


총 6개있었는데 문제가 기억이,,,,

  1. 변수, 입출력 문제

    • 사용자한테 이름, 나이 입력받고, 안녕하세요 (이름)님 (나이)세 로 출력하기
  2. if문 문제

    • 나이를 입력하세요. 라는 문구를 출력하고 사용자로부터 숫자를 입력받기
    • 입력된 숫자가 1부터 7까지면 "유아", 8부터 13까지면 "초등학생", 14부터 16까지면 "중학생", 17부터 19까지면 "고등학생", 20이상이면 "성인"을 출력하기
  3. if문 문제2

    • 나이를 입력하세요. 라는 문구를 출력하고 사용자로부터 숫자를 입력하기
    • 입력된 숫자가 20이상이면 "성인", 아니면 "미성년자"를 출력하기
    • 입력된 숫자가 20이상이면 추가적으로 입력된 숫자가 짝수인지 홀수인지 검사하여 각각 "나이가 짝수인 성인", "나이가 홀수인 성인"을 출력하기
    • 입력된 숫자가 20미만이면 추가적으로 입력된 숫자가 짝수인지 홀수인지 검사하여 각각 "나이가 짝수인 미성년자", "나이가 홀수인 미성년자"를 출
  4. for문 문제

    • 1부터 사용자가 입력한 숫자 까지 출력
  5. for문 문제2

    • 숫자를 입력하세요. 라는 문구를 출력하고 사용자로부터 숫자를 입력받으세요.

    • 입력된 숫자를 n이라 할 때, 1부터 n까지 for문을 실행하며 1은 1번, 2는 2번, 3은 3번...n은 n번 출력하세요.

    • Ex : 3을 입력할 경우, 1 2 2 3 3 3 이 출력되야 합니다.

  6. for문 문제 3

    • 구구단 2~4단까지 출력
  7. 함수, 모듈 문제

    • 구구단 2~4단까지 함수로 구현하고 모듈을 사용하여 외부에서 불러오기

🦈수업후기


파이썬을 기초지만 학부생때 다뤘었는데 불구하고, class부분이나 과제부분 for문 2번문제를 if,for문 혼합문제라고 하여 두개를 쓰려고만 하다보니 제대로 풀지 못하는 나를 보면서, 생각이 열려있지 못하구나 싶어서 알고리즘을 풀면서 문제 이해능력을 좀 더 키워야겠다는 생각이 들었다.
다음주는 장고다 ㄷㄷ

profile
되는 이유만 생각하는 카멜레온

0개의 댓글