목록Python (173)
오답노트
파일 열기 open / close 파이썬에서는 자체적으로 파일을 열수있는 함수를 내장하고 있다. f = open("../Python_file_json/file.txt",'w') f.close() open 함수는 파일을 열고 해당 파일 객체를 반환한다. 그리고 close 함수로 반드시 닫아줘야한다. open 함수의 원형은 아래와 같다. open(file, mode='r', buffering=- 1, encoding=None, errors=None, newline=None, closefd=True, opener=None) file : 파일의 경로 mode : 파일을 열때 mode를 선택할 수 있다. 'r' : 읽기 'w' : 쓰기 'a' : 추가 encoding : 파일을 디코딩하거나 인코딩하는데 사용한다...
문자열 문자가 열거되어 있는 자료형이다. string = "Hello world" # 문자열 char = 'H' # 문자 문자열에서 문자 조회 문자열도 인덱스를 통해 해당 인덱스의 문자를 조회할 수 있다. string = "Hello world" # 문자열 print(string[0]) # H 출력 문자열 관련 함수 upper 소문자를 모두 대문자로 만들어주는 함수. string = "abcd" print(string.upper()) # ABCD lower 대문자를 모두 소문자로 만들어주는 함수 string = "ABCD" print(string.lower()) # abcd 출력 find 문자열 내에 문자 또는 문자열을 찾는다. 만약 문자 또는 문자열이 존재하면 문자열 내의 인덱스를 반환 만약 문자 또는..

Class 객체 지향 프로그래밍에서 객체를 만들어내기 위한 설계도와 같다. Class 선언 class test_class: lst = ["test_class"] def __init__(self,a,b,c): self.var_a = a; self.var_b = b; self.var_c = c; def append(self): test_class.lst.append(self.var_a) test_class.lst.append(self.var_b) test_class.lst.append(self.var_c) def print(self): print(self.var_a) print(self.var_b) print(self.var_c) print(test_class.lst) 위 코드는 test_class 라는 클..

딕셔너리 리스트와 튜플은 인덱스로 요소를 찾았다면, 딕셔너리는 Key로 요소를 찾을 수 있다. 딕셔너리 선언 a = { "q" : 1, "w" : 2, 3 : "e" , 4 : "r"} print(a) print(a["q"]) print(a[4]) 위 코드와 같이 Key값은 문자열, 숫자 혼용해서 사용하 수 있고, 반대로 Value도 문자열, 숫자 어떤 것이 들어가도 상관없다. 딕셔너리 추가/수정/삭제 a = { "q" : 1, "w" : 2, 3 : "e" , 4 : "r"} print(a) print(a["q"]) print(a[4]) a["z"] = "test" #추가 a["q"] = 100 # 수정 del(a[4]) #삭제 print(a) 추가는 딕셔너리 변수에 원하는 Key와 Value를 지정하..

데이터 슬라이싱 리스트나 튜플과 같은 자료형을 다룰 때 사용하는데 이게 참 매우 편리하다. 보통은 함수를 사용하거나 반복문을 돌려서, 아니면 C,C++같은 경우는 메모리에 접근하여 배열의 일부분을 추출하는데, 파이썬에서는 간단하게 리스트나 튜플의 배열의 일부분을 추출할 수 있다. 아래 코드로 확인해보자. t = (1,2,3,4,5) l = [1,2,3,4,5] print(l[:3]) # 0번째부터 2번째 요소까지 print(t[:3]) # 0번째부터 2번째 요소까지 print(l[2:]) # 2번째부터 마지막 요소까지 print(t[2:]) # 2번째부터 마지막 요소까지 print(l[1:3]) # 1번째부터 2번째 요소까지 print(t[1:3]) # 1번째부터 2번째 요소까지 print(l[::2])..
tuple 리스트와 비슷하지만 차이점은 아래와 같다. 리스트는 요소의 추가, 수정, 삭제가 가능하지만 한 번 초기화한 튜플은 더 이상 변경할 수 없다. 리스트는 '[ ]' 로 선언하지만, 튜플은 '( )' 로 선언한다. tuple 예제 t = (1,2,3,4,5) print(t.index(5)) print(len(t)) print(t[2]) tuple은 읽기 전용 리스트와 같다. 따라서 tuple을 수정하는 동작 이외에는 리스트와 같다. print 함수 내부에 사용된 함수를 보면 모두 tuple의 정보를 반환하는 함수이다.
함수의 선언과 정의 def func(): #인자도 반환도 없는 함수 print("함수실행") def func2(n): #인자는 있지만 반환이 없는 함수 print(n,"출력") def func3(n): #인자도 반환도 있는 함수 print(n,"에 1을 더해서 반환합니다") return n+1 파이썬에서는 함수의 선언과 정의를 동시에 한다. 'def'가 함수를 선언한다는 의미이고 ':' 다음 들여쓰기부터 함수의 내용을 정의한다. 또 괄호 안에는 인자를 지정할 수 있는데, 이 인자의 수는 사용자가 원하는 만큼 사용 가능하다. 반환은 return은 통해서 가능하다. lambda lambda 함수는 일회용 함수라고 생각하면 편하다. 메모리 효율을 높이기 위해서 사용된다. 문법은 아래와 같다. lambda 파라..

list 배열과 비슷하지만, 리스트는 원소의 통일이 필수적이지 않다. 예를 들어 정수 배열은 원소가 모두 정수여야하지만, 리스트는 원소가 모두 정수가 아니여도 된다. list 함수 list 의 선언과 초기화 list는 원소의 자료형을 자유롭게 쓸 수 있는 장점이 있지만, 개인적으로 느끼는 단점은 초기화에 있다. list의 선언과 동시에 초기화할 수 없는 것이 아쉽다. 아래 코드로 list의 선언과 초기화를 확인해보자 #리스트의 선언 a = list() #리스트의 초기화1 for i in range(0,100): a.append(0) #0이 100개 입력된다. #리스트의 초기화2 (선언생략 가능) b = range(0,100) # 원소가 0부터 99까지 입력된다. #리스트의 초기화3 (초기화 1과 결과 같..
조건문 조건문은 사용자 지정한 조건이 true일 때, 조건문 안에 코드를 실행한다. if, elif, else if는 기본적인 조건문의 형태이다. elif 는 if문이 false일 때, 그 다음으로 실행된다. elif 끼리는 순서에 따라 조건문이 충족되면 실행한다. else는 if와 elif 가 모두 false일 때, 실행된다. 아래 예시 코드를 살펴보자. import sys N = sys.stdin.readline() if N == 1: print("1입니다.") elif N == 2: print("2입니다.") else : print("1과 2가 아닙니다.") 입력을 받았을 때, 1이면 "1입니다"를 출력 2이면 "2입니다"를 출력 1과 2가 아니면 "1과 2가 아닙니다"를 출력한다. 예로 3을 입력..
https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net - 문제파악 두 정수 A와 B를 입력 받은 다음 A+B를 출력하는 프로그램을 작성하라. - 정답 해당 문제는 입력으로 몇개의 입력이 들어오는지 또는 끝이 들어오지 않는다. 그래서 EOF로 풀 수 있지만 파이썬 sys 라이브러리 중에 sys.stdin.readlines()를 활용하여 해결하였다. import sys lines = sys.stdin.readlines() for line in lines: A, B = map(int, line.split()) print(A+B)