Python

GreenBean·2021년 4월 18일
post-thumbnail

Python

프로그래머스의 '파이썬 입문'을 풀고 정리한 내용

프로그래머스
파이썬 입문 (프로그래밍 강의 - 언어 기초 )

파트2. 변수와 계산

Shell 사용법

Shell 명령어

  • pwd : 현재 폴더 경로 출력
  • ls : 현재 폴더 내용물 출력
  • cd <폴더명> : 다른 폴더로 이동
  • cd .. : 상위 폴더로 이동
  • cp : 파일을 다른 이름으로 복사
  • rm : 파일을 삭제

파일이름 자동완성

  • 파일 이름을 입력할때는 앞 1~2글자만 입력하고 tab키를 누르면 자동 완성되는 기능

파트6. 리스트

리스트 수정

리스트에 새로운 값을 추가하는 방법

  • list1=[1,2,3]이라고 할 때
  • append를 이용
    • list1.append(4)
    • append를 이용하면 리스트에 새로운 값이 추가됨
  • 뒤에 새로운 리스트를 더하기
    • list2=list1+[4]
    • list1은 그대로 두고, 새로운 리스트를 만들어 냄

리스트에 값이 들어있는지 확인하는 방법

  • in 연산을 이용
#12라는 값이 리스트에 들어있는지 확인하는 코드
n=12
if n in list1:
    print('{}가 리스트에 있다.'.format(n))

리스트에서 필요 없는 값을 지우는 방법

  • del을 이용해서 특정 위치의 값을 지우기
    • del list1[10] 리스트의 10번째 값을 삭제
  • remove 를 이용해서 특정 값을 지우기
    • list1.remove(40)을 하면 리스트에 40이라는 값이 있는경우 삭제
    • 여러개의 값이 있는 경우 가장 앞에 있는 하나만 지워짐

파트7. 반복문

for in range

range 함수

  • 필요한 만큼의 숫자를 만들어내는 유용한 기능
for i in range(5):
    print(i)

enumerate

  • 리스트가 있는 경우 순서와 리스트의 값을 전달하는 기능
names = ['철수', '영희', '영수']
for i, name in enumerate(names):
    print('{}번: {}'.format(i + 1, name))

Tip! 순회할 리스트가 정해져 있고, 그 리스트에서 하나씩 꺼내 쓰기만 되는 상황이라면 for in list를, 순회할 횟수가 정해져 있거나 1씩 증가하는 숫자가 필요하다면 for in range()를 사용하는 것을 추천


파트10. 딕셔너리와 튜플

딕셔너리 수정하기

  • 추가
    dict['three'] = 3
  • 수정
    dict['one'] = 11

  • 삭제
    del(dict['one'])
    dict.pop('two')

딕셔너리와 반복문

딕셔너리 반복문 활용

  • 경우에 따라 가져올 값을 정할 수 있음
for key in ages.keys(): # keys() 생략 가능
    print(key)
for value in ages.values():
    print(value)
  • key와 value 둘다 가져올 수 있음
for key, value in ages.items():
    print('{}의 나이는 {} 입니다'.format(key, value))
  • 딕셔너리는 값의 순서를 지키지 않는다.

리스트와 비교

공통점

  • 생성 list = [ 1, 2 ,3 ] dict = { 'one':1, 'two':2 }
  • 호출 list[ 0 ] dict[ 'one' ]
  • 삭제 del( list[ 0 ] ) del( dict[ 'one' ] )
  • 개수 확인 len( list ) len( dict )
  • 값 확인 2 in list 'two' in dict.keys( )
  • 전부 삭제 list.clear( ) dict.clear( )

차이점

  • 순서
    • List : 삭제 시 순서가 바뀌기 때문에 인덱스에 대한 값이 바뀜
    • Dictionary : key로 값을 가져오기 때문에 삭제 여부와 상관없음
  • 결합
    - List : list1 + list2
    - Dictionary : dict1.update( dict2 )

튜플 만들기

튜플

  • 한번 정해진 순서를 바꿀 수 없음
  • 튜플 선언
tuple1 = (1, 2, 3, 4)

tuple2 = 1, 2, 3, 4

mylist = [1,2,3,4]
tuple3 = tuple(mylist)
  • 튜플은 값의 변경과 삭제가 불가능

Tip! 튜플도 리스트와 마찬가지로 index로 값을 읽어올 수 있음


튜플을 이용한 함수의 리턴값

Tip! 튜플로 리턴하기 위해 리스트나 딕셔너리를 이용할 수 있음

튜플 리스트 활용

for a in enumerate(list):
    print('{}번째 값: {}'.format(a[0], a[1]))

for a in enumerate(list):
    print('{}번째 값: {}'.format(*a))

튜플 딕셔너리 활용

for a in dict.items():
    print('{}의 나이는:{}'.format(a[0], a[1]))

for a in dict.items():
    print('{}의 나이는:{}'.format(*a))

파트12. 예외 처리

try except

  • 예외 처리
try:
    # 에러가 발생할 가능성이 있는 코드
except Exception: # 에러 종류
    #에러가 발생 했을 경우 처리할 코드
  • 경우에 따라 예외 처리 대신 if else를 사용 할 수 있다.

예외의 이름을 모를 때

  • 예외 이름을 모르는 경우 처리 방법
try:
    # 에러가 발생할 가능성이 있는 코드
except Exception as ex: # 에러 종류
    print('에러가 발생 했습니다', ex) # ex는 발생한 에러의 이름을 받아오는 변수

raise

예외 발생

  • 사용자가 직접 에러를 발생시키는 기능
  • raise Exception # 에러 종류
  • 많이 사용하면 코드를 읽기 어려워짐

파트13. 논리연산과 if문 더 알아보기

bool 값과 논리연산

true, false

  • 숫자 0을 제외한 모든 수 - true
  • 빈 딕셔너리, 빈 리스트를 제외한 모든 딕셔너리, 리스트 - true
  • 아무 값도 없다는 의미인 None - false
  • 빈문자열을 제외한 모든 문자열 - true

Tip! True나 False는 파이썬의 예약어로 true, false와 같이 사용하지 말고 첫 문자를 항상 대문자로 사용해야 함

Tip! 문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있으면(" ", [ ], ( ), { }) 거짓이 됨. 당연히 비어있지 않으면 참이 된다. 숫자에서는 그 값이 0일 때 거짓이 됨. None은 거짓을 뜻함.


파트14. 리스트 더 알아보기

List의 다양한 기능

List의 기능

  • list.index( value ) : 값을 이용하여 위치를 찾는 기능
  • list.extend( [value1, value2] ) : 리스트 뒤에 값을 추가
  • list.insert( index, value ) : 원하는 위치에 값을 추가
  • list.sort( ) : 값을 순서대로 정렬
  • list.reverse( ) : 값을 역순으로 정렬

List와 문자열

List와 String

  • 리스트와 문자열은 유사
  • 서로 변환이 가능
    - list = str.split( ) : 문자열에서 리스트로
    - " ".join( list ) : 리스트에서 문자열으로

Slice로 리스트 수정하기

slice 활용

  • 삭제
    • del list[ :5 ] : 처음부터 5번째까지 삭제
  • 수정
    • list[ 1:3 ] = [ 77, 88 ]
    • list[ 1:3 ] = [ 77, 88 ,99 ] : 더 많은 개수로 변환
    • list[ 1:4 ] = [ 8 ] : 더 적은 개수로 변환

파트15. 클래스와 객체지향 프로그래밍

자료형 다루기

자료형

  • type( a ) # type( 변수명 ) : 자료형
  • isinstance( 42, int ) # isinstance( 값, 자료형 ) : 자료형 검사

모델링

모델링(modeling)

  • 클래스로 현실의 개념을 표현하는 것

파트16. 상속과 다형성

super()

super()

  • 자식클래스에서 부모클래스의 내용을 사용하고 싶은 경우
  • super().부모클래스내용
class Animal( ):
    def __init__( self, name ):
        self.name = name

class Human( Animal ):
    def __init__( self, name, hand ):
        super().__init__( name ) # 부모클래스의 __init__ 메소드 호출
        self.hand = hand

person = Human( "사람", "오른손" )

내 예외 만들기

예외 정의

  • 사용자가 직접 예외처리를 하면 코드의 직관성을 높일 수 있음
  • 파일을 하나 만들어 예외를 정의
  • Exception 클래스를 상속받아 만듬
try:
    sign_up( )
except BadUserName:
    print( "이름으로 사용할 수 없는 입력" )
except PasswordNotMatched:
    print( "입력한 패스워드 불일치")

파트17. Comprehension

List

List Comprehension

  • 파이썬의 유용한 도구
    - 예1 [ i*i for i in range(1,11) ] # [ 계산식 for문 ]
    - 예2 [ i*i for i in range(1,11) if i % 2 == 0 ] # [ 계산식 for문 조건문 ]
    - 예3 [ ( x, y ) for x in range(15) for y in range(15) ] # [ 계산식 for문 for문 ]

Dictionary

Dictionary Comprehension

  • 파이썬의 유용한 도구
  • 예시
    • { "{}번".format(number):name for number, name in enumerate(students) } # [ 형식 for문 ]
    • {student:score for student, score in zip(students, scores)}
profile
🌱 Backend-Dev | hwaya2828@gmail.com

0개의 댓글