파이썬 49

파이썬 코루틴

루틴이란? 일련의 명령 흐름 (코드의 흐름) 메인 루틴 프로그램의 메인 코드의 흐름 서브 루틴 ( = 함수 ) 함수나 메서드 (메인 루틴을 보조하는 역할) 하나의 진입점과 하나의 탈출점이 있는 루틴 코루틴 서브루틴의 일반화된 형태 다양한 진입점과 다양한 탈출점이 있는 루틴 await에 의해 진입과 탈출점이 추가됨 비동기적 코드를 가능하게 함 await 은 어웨이터블 객체 앞에 사용한다 어웨이터블 객체는 코루틴, 태스크 및 퓨처를 의미한다 코루틴 함수 time.sleep() → X asyncio.sleep() → O 함수 정의 시 async 를 붙이는 경우 → O 태스크 객체 태스크를 예약할 때 사용 task1 = asyncio.create_task(func()) await task1 # 이렇식으로 코드 ..

행렬의 덧셈

문제 설명 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. 제한 조건 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. 해결 방법 1. 최종 리턴할 리스트를 생성한다 2. 내장함수 zip과 for를 이용하여 각 리스트의 요소를 분리한다 3. 반복 시 초기화되는 임시 리스트를 생성한다 4. 다시 각 리스트의 요소를 분리한다 5. 분리된 요소끼리 더한 값을 임시 리스트에 추가한다 6. 최종 리스트에 임시 리스트를 요소로 추가한다 7. 최종 리스트를 반환한다 def solution(arr1, arr2): answer_list ..

x만큼 간격이 있는 n개의 숫자

문제 설명 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 해결 방법 def solution(x, n): return [ x * (i+1) for i in range(n) ] 1. 우선 range를 이용해 n의 수 만큼 반복한다. 2. i는 0부터 생성되므로 +1을 하여 실제 반복 수로 바꿔주었다. 3. x 를 (i+1) 과 곱해주어 x가 배수로 생성되도록 하였다. 4. 리스트에 담아 리턴한다. >>> 처음에는 for 문으로 풀었..

직사각형 별찍기

문제 별(*) 문자를 이용해 가로의 길이가 a, 세로의 길이가 b인 직사각형 형태를 출력해보세요. 풀이 ''' a = 5 (가로) b = 3 (세로) ''' for i in range(b): for j in range(a): print('*', end='') print(sep='\n') >>> ***** ***** ***** ''' 채점 결과 정확성: 100.0 합계: 100.0 / 100.0 ''' 느낀점 오랜만에 문제를 만나니 순간 어떻게 풀어야하지? 라는 막막함이 있었음 매일 조금씩 꾸준히 풀어나가는 습관이 중요하다고 느껴짐 쉬운 문제부터 되도록 하루에 한 문제씩 풀어보자 너무 어려운 문제는 오랜 시간을 두고 고민해보자

위스타그램 스터디(백엔드) 정리

인스타그램 클론코딩(이하 위스타그램) 13가지의 미션이 주어졌다. 하지만 서비스를 구현하는 프로젝트는 처음이다보니 이 서비스의 목적이 무엇인지, 프로젝트를 통해 내가 무엇을 배울 수 있는지 과제의 의도와 의미를 파악하기가 힘들었다. 그래서 주어진 미션만 하나씩 해결해나가지 말고 동료들과 함께 이번 프로젝트를 전체적으로 분석해보기로 했다. 주말을 이용해 동료를 모아 1시간 조금 넘게 스터디를 진행했다. 스터디 내용은 아래와 같다. 현재 파이썬을 조금 익히고 장고를 배운지 2주차 밖에 안되었기 때문에 틀린 정보가 많을 수 있으니 감안해서 보기를 바란다. 스터디 목적 위스타그램 미션에 대한 의견을 공유하면서 프로젝트에 대한 이해도를 높이기 위함 장고 API 프로세스를 복기하고 위스타그램 프로젝트의 전체 과정을..

파이썬 중간시험 5문제 후기

엄청 어려운 게 나오면 어쩌나 했는데, 기초 문법 위주로 나와서 다행히 수월하게 풀 수 있었다. 하필 조용한 시험 도중에 배에서 꼬르륵 소리가 나서 좀 창피했음... 오늘의 교훈 >>> 시험 날에는 반드시 밥을 먹고 올 것! 자 그럼 문제 리뷰 시작~ 1번 문제 짝수인지 판별하는 함수 is_even을 작성 주세요. def is_even(num): # 아래 코드를 입력해주세요. if num % 2 == 0: a = "짝수 입니다." else : a = "짝수가 아닙니다." return a 주어진 인자를 2로 나누었을 때 0이면 '짝수 입니다', 0이 아니면 '짝수가 아닙니다.'로 리턴 2번 문제 팁과 세금을 제외한 식사값이 주어졌을때, 팁과 세금이 포함된 총 식사값을 반환하는 함수를 작성하세요. 세금은 9..

파이썬에서 직접 만든 패키지를 불러오자. (feat. 절대 경로와 상대 경로)

파이썬에 내장된 패키지나 모듈은 build-in modules에, pip 등으로 다운로드한 패키지나 모듈은 sys.path에 저장되기 때문에 쉽게 이름만으로 불러올 수 있지만, 직접 만든 로컬 패키지의 경우 '절대 경로', '상대 경로'에 따라 다음과 같은 import 에러 메시지를 만나게 될 수 있다. from .package import module2 >>> ImportError: attempted relative import with no known parent package #ImportError: 알려진 상위 패키지가 없는 상대 가져오기 시도 이 문제를 해결하기 위해 절대 경로와 상대 경로에 대해 알아보고 어떤 식으로 import 해야 하는 살펴보자. 우선 아래 처럼 project1 안에 주로 ..

파이썬 매개변수 순서 딱알랴줌!

시작부터 결론 가자! 함수 매개변수(파라미터) 순서 def func(일반인수, 기본값 지정인수, 가변인수, 키워드인수, 가변 키워드인수): 1순위 : 일반인수 : 일반인수 2순위 : 기본값 지정인수 : 인자에 기본값을 지정해서 따로 인수를 받지 않아도 함수가 받아들이는 인수 ex. a = 0 3순위 : 가변인수 : 리스트(튜플) 형태의 다수 요소를 가지고 있는 인수 4순위 : 키워드인수 : 키와 값이 1대1 매칭되어 있는 인수, 키가 지정되어 있기 때문에 일반 인수와 달리 위치를 안지켜도 됨 5순위 : 가변 키워드인수 : 키와 값을 가지고 있는 딕셔너리 형태의 다수 요소를 가진 인수 왜 이 순서대로 넣어야 하나? 키와 값을 가진 인수라면 위치와 무관하게 해당 키를 찾아갈 수 있지만 일반 인수와, 기본값 ..

파이썬 기본 중에 기본문법 빠르게 정리

| print()로 출력하기 print( 출력하고자 하는 값 ) | 파이썬 데이터 타입 String : 문자열(문자의 경우, ' 또는 "으로 양쪽을 묶어야 함) Integer : 정수 Float : 부동 소수점 Complex Numbers : 복소수 Boolean : 참, 거짓 | 변수에 값 할당하기 다양한 데이터 타입을 변수에 할당할 수 있고 이 변수를 다른 곳에 호출하거나 연산하는 등 활용할 수 있음 변수명 = 값 (이것이 파이썬의 변수 할당 방법. js의 경우 변수에 값을 할당하기 위해선 let, const처럼 선언을 해주어야 하지만 파이썬은 그냥 냅다 꽂아버림.. so cool Python!) | 사칙 연산자 더하기 : + 빼기 : - 나누기 : / 정수 나누기 : // (나눈 값을 정수로 만들어..

점프 투 파이썬 #02-1 숫자형, 02-2 문자열 자료형(인덱스 전)

오늘 배운 것 02-1 숫자형 #정수형(양수, 음수, 0) >>> a = 123 >>> a = -178 >>> a = 0 >>> a 0 #실수형(소수점) >>> a = 1.2 >>> a 1.2 >>> a = 4.24e10 >>> a 42400000000.0 >>> a = 4.24E10 >>> a 42400000000.0 >>> #대소문자는 무관함 >>> #실수형에서 e 다음의 숫자는 '지수'를 의미한다. >>> #아래는 8, 16진수 >>> a = 0O177 >>> a 127 >>> b = 0xABC >>> b 2748 >>> #사칙연산 >>> a = 3 >>> b = 4 >>> a + b 7 >>> a * b 12 >>> a / b 0.75 >>> a ** b 81 >>> # ** 는 제곱을 나타낸다...