조건 컴퓨터가 랜덤의 3자리 숫자를 생성함. 사용자는 세 자리 수를 입력하면 스트라이크, 볼 개수를 알려줌 스트라이크는 숫자와 자리 수 일치, 볼은 숫자만 일치 3 스트라이크시 게임종료 // 입력할 때 중복 숫자 입력시 예외처리 고려 안함. 스트라이크 볼 판별 조건식을 더욱 간결하게 짤 수 있을 것 같음. import random def comNumFunc(): comNum = [] randomNum = random.randint(1,9) for i in range(3): while randomNum in comNum: randomNum = random.randint(1,9) comNum.append(randomNum) print(comNum) return comNum def userNumFunc(): ..
Language/Python
인스턴스/클래스/정적 메서드 인스턴스 메서드 클래스 정의 내의 함수들은 기본적으로 인스턴스 메서드 생성된 객체를 통해 호출이 되며, 첫 번째 매개변수는 self이며 여기에 객체의 인스턴스가 전달 클래스 메서드 클래스 메서드는 클래스 자체를 객체로 보고 클래스에 대해 작동하는 메서드 인스턴스 메서드와 달리 첫 번째 매개변수의 이름을 관례적으로 cls라는 이름을 사용하며, 여기에 클래스가 전달 @classmethod 데코레이터를 사용 클래스 메서드는 상속에서 의미가 있기 때문에 상속에 대한 강의 후 예제를 통해 설명 정적 메서드 클래스에 의해 정의되는 네임스페이스에 들어 있는 함수 정적 메서드는 객체 인스턴스에 의해 호출되지 않고, 클래스에 의해 호출되기 때문에 첫 번째 매개변수로 self가 없음 @stat..
객체와 클래스 객체(Object) 숫자에서 모둘까지 파이썬은 모든 것을 객체로 취급 객체는 데이터(변수, 속성)와 코드(함수, 메서드)를 모두 포함 객체는 어떤 구체적인 것의 유일한 인스턴스 클래스(Class) 클래시는 객체를 생성하기 위한 설계도 (틀) class문을 이용하여 정의 클래스 정의 및 객체 생성 예 #클래스 정의 class Person: pass person = Person() #객체 생성 __init__(self) 메서드 클래스로 객체를 생성할 때 객체의 초기화를 위한 메서드 class Person: def __init__(self): print('init person') person = Person() def __init__(self): self는.... (인스턴스)메서드는 가장 첫 ..
표준 라이브러리 라이브러리는 여러 기능들을 수행할 수 있는 코드(함수 등)를 제공한다 표준 라이브러리란 해당 프로그래밍 언어에서 기본적으로 제공되는 라이브러리를 말한다 파이썬은 유용하게 사용할 수 있는 많은 수의 표준 라이브러리들이 제공됨, 이는 패키지의 형태로 제공된다. 파이썬 코드를 작성할 때 우선, 원하는 기능이 표준 라이브러리에서 제공이 되는지 확인하고 작성하는것이 좋다. 표준 라이브러리를 참고 https://docs.python.org/ko/3.7/library/index.html 파이썬 표준 라이브러리 — Python 3.7.11 문서 파이썬 표준 라이브러리 파이썬 언어 레퍼런스 는 파이썬 언어의 정확한 문법과 의미를 설명하고 있지만, 이 라이브러리 레퍼런스 설명서는 파이썬과 함께 배포되는 표..
패키지 파이썬은 프로그램을 좀 더 확장 가능하게 할 수 있도록 패키지(package)라는 파일 계층 구조를 구성할 수 있음 관련이 있는 모듈들을 묶어서 패기지로 제공하는 것이 가능 패키지는 __init__.py파일이 포함된 디렉터리 패키지 내에 다른 패키지가 포함되는 구조로도 구성이 가능 패키지도 모듈과 같은 방식으로 임포트 실습 pycharm으로 프로젝트(프로젝트명: package-ex)를 생성 Project 창에서 package-ex 디렉터리를 우클릭하여 [new] -> [python file] 선택 후 "main"을 입력하여 main.py파일 생성 Project 창에서 package-ex 디렉터리를 우클릭하여 [new] -> [Directory] 선택 후 "game"을 입력하여 디렉터리 생성 생성된..
스탠드얼론 프로그램 외부 모듈 및 라이브러리 등을 사용하지 않고 독립적으로 실행되는 프로그램 다음의 내용으로 standalone.py 파일 작성 print("This is a standalone program") cmd에서 standalone.py실행 c:\...\python standalone.py 이때 실행하면 (venv) C:\>python stand alone.py This is a standalone program 다음과 같은 결과를 출력한다. 커멘드 라인 인자 stsargs.py 파일 작성 import sys print('Program argument:', sys.argv) 결과를 실행하면 (venv) C:>python sysargs.py Program argument: ['sysargs.py..
함수 함수를 사용하는 이유 코드 재사용 프로그램 모듈화 가독성 유지보수 ls1 = [1,2,3,4,5] ls2 = [10,20,30,40,50] r1 = 0 for v in ls1: r1 += v r2 = 0 for v in ls2: r2 += v print(r1, r2) 함수를 위한 두가지 작업 정의 호출 ls1 = [1, 2, 3, 4, 5] ls2 = [10, 20, 30, 40, 50] r1 = sum(ls1) r2 = sum(ls2) print(r1, r2) 함수의 구조 함수 호출 시 코드의 흐름과 Call Stack 함수의 종료 조건 더 이상 실행할 코드가 없을 때 return 문을 실행했을 때 아무것도 return을 하지 않고 종료하는 함수 None을 리턴하면서 종료 def do (): pr..
컴프리헨션 하나 이상의 순회(리스트, 시퀀스, generator종류들) 가능한 객체로부터 파이썬의 자료구조(리스트, 딕셔너리, 셋, 제너레이터)를 간단하게 만드는 방법 파이썬을 더욱 파이썬(?)(pythonic) 스럽게 사용하는 방법 파이썬의 리스트가 특이한 점은 리스트 안에 for 반복문과 if 조건문을 사용할 수 있다는 점. 리스트 안에 식, for 반복문, if 조건문 등을 지정하여 리스트를 생성하는 것을 리스트 컴프리헨션(list comprehension)이라고 한다. (pythonic : 간결하고 가독성 좋게 코드를 작성하는 방법? 뭐 그렇게 생각하자) 리스트 컴프리헨션 1~10 까지의 정수를 저장하는 리스트를 만드는 방법은? 방법1 numbers = [1,2,3,4,5,6,7,8,9,10] 방..
반복문 if, elif, else는 조건에 따라 선택적으로 구문을 실행하지만, 위에서 아래로 코드를 실행 (즉, 앞에서 실행 했던 코드를 다시 실행하지 못함) 같은 코드를 여러 번 반복해서 실행할 경우, 반복문을 사용 while구문 for in 구문 while while문은 파이썬에서 가장 간단한 반복 구문 while문의 구조 while : 문장1 문장2 ... 문장n while 실습 예제 예제1) 사용자가 양의 정수 N을 입력하면 1~N까지 숫자를 출력하는 프로그램을 작성하라. n = int(input("정수를 입력하세요: ")) i = 1 while i
if, elif, else 제어구문 프로그램의 실행은 코드의 처음부터 순차적으로 실행이 되지만, 경우에 따라 실행의 순서를 바꿔야 하는 경우가 있다. 제어 구문은 이러한 프로그램의 코드 실행 순서를 제어할 수 있다. if, elif, else 구문의 구조 글로 설명하는 것보 다 그림을 보는게 더 직관적이므로, 다음 그림을 보자 들여쓰기로 강제로 구분을 하기 때문에 가독성이 매우 향상되는 장점이 있다. 파이썬의 비교 연산자 비교 연산자는 True 또는 False를 결과로 반환 비교연산자 의미 == 같다 != 같지 않다 = ~(우)보다 크거나 같다 in ... 멤버쉽 파이썬의 논리 연산자 논리 연산자는 True 또는 Flase를 결과로 반환 관계연산자 의미 and A and B 의 연산에서 A와 B가 모두 ..