본문 바로가기

인터페이스 개발115

Python - 컬렉션 관리[컬렉션의 사본] - 리스트의 사본 Chap.11 컬렉션 관리[컬렉션의 사본] - 리스트의 사본, is 연산자 컬렉션의 사본 리스트의 사본 리스트의 사본 시퀀스.copy() -> 시퀀스 복사본 listcopy1 list1 = [1, 2, 3] list2 = list1 # 참조 print(list1 == list2) list2[1] = 100 print(list1) print(list2) print(list1 == list2) 결과 True [1, 100, 3] [1, 100, 3] True Heap에 list2=list1이 참조될 뿐이다. list2 = list1 대입에 의해 list2가 list1의 별명이 될 뿐 독립적인 메모리까지 확보하는 것은 아니다. listcopy2 두 리스트를 완전히 독립적인 사본으로 만들기 copy 메서드 li.. 2020. 7. 26.
Python - 컬렉션 관리[람다 함수] - filter, map, 람다 함수 Chap.11 컬렉션 관리[람다 함수] - filter, map, 람다 함수 람다 함수 filter, map, 람다 함수 filter filter(판정함수, 시퀀스) -> 시퀀스 () - 시퀀스의 각 요소를 판정함수에 전달하여 True를 리턴하는 요소로만 구성된 새로운 시퀀스 리턴 판정함수 : True, False를 판정할 수 있는 함수 def flunk(s): return s < 60 score = [ 45, 89, 72, 53, 94 ] for s in filter(flunk, score): # 함수의 이름만 전달한다. print(s) 결과 45 53 filter 함수의 메커니즘 def filter( fn, lst ): new_list=[] for a in lst: if fn(a): # 함수 fn의 .. 2020. 7. 26.
Python - 컬렉션 관리[컬렉션 관리 함수] - enumerate, zip, any(), all(), 변수명 표기법 Chap.11 컬렉션 관리[컬렉션 관리 함수] - enumerate, zip, any(), all(), 변수명 표기법 컬렉션 관리 함수 enumerate, zip, any(), all(), 변수명 표기법 enumerate enumerate(시퀀스 [, start]) - 시퀀스의 인덱스와 요소를 튜플 묶어서 순회 기존 코드(1) score = [88, 95, 70, 100, 99] for s in score: print("성적 : ", s) # index에 대한 정보가 없다. 결과 성적 : 88 성적 : 95 성적 : 70 성적 : 100 성적 : 99 기존코드(2) score = [88, 95, 70, 100, 99] for no in range(len(score)): print(str(no+1) + ".. 2020. 7. 26.
Python - 함수[인수의 형식] - 키워드 인수, 키워드 가변 인수 Chap.7 함수[인수의 형식] - 키워드 인수, 키워드 가변 인수 인수의 형식 키워드 인수, 키워드 가변 인수 키워드 인수 일반적으로 함수 호출시 인수의 배치 순서대로 매칭 인수 순서가 아닌 인수의 명칭으로 매칭하는 방법 이전 가변 인수 def int_sum(*numbers): total = 0 for n in numbers: total += n return total def main(): print(int_sum(1, 2, 3, 4, 5)) print(int_sum()) # 인수 없이 호출이 된다. 루프를 돌지 않는다. main() 결과 15 0 키워드 인수 def calcstep(begin, end, step): total = 0 for num in range(begin, end+1, step): .. 2020. 7. 25.
Python - 사전과 집합[집합] - 집합 정의, 집합 연산 Chap.10 사전과 집합[집합] - 집합 정의, 집합 연산 집합 집합 정의, 집합 연산 집합 정의 { 값1, 값2, ... } 값의 중복을 허용하지 않음 set(다른 시퀀스) - 집합 변환 함수 .add(값) - 집합에 값 추가 , 이미 값이 있으면 추가하지 않음 .remove(값) - 집합에서 값을 제거 , 값이 없는 경우 예외 발생 print(set('aaabbbccc')) # 문자열 -> 글자 하나하나가 원소가 된다. print(set([12, 34, 56, 78])) print(set(('홍길동', '고길동','둘리'))) print(set({'boy': '소년', 'school': '학교', 'book': '책'})) # 사전의 키 목록을 집합으로 변환 print(set()) # 비어있는 집합.. 2020. 7. 25.
Python - 사전과 집합[예제] - login Chap.10 사전과 집합[예제] - login 사전과 집합 예제 login login 회원 정보 dict(id, password) users = { "go":"g1234", "hong":"h1234" } [문제] 사용자로부터 id와 password를 입력 받아 로그인 성공 여부를 출력 한다. 실패시 최대 3번 시도 가능 [성공시] 로그인에 성공했습니다. 반갑습니다. "님" [실패시] 는 존재하지 않습니다: 비밀번호가 틀렸습니다. 내 풀이 login users = { "go":"g1234", "hong":"h1234" } def main(): for _ in range(3): ID = input("ID를 입력하세요. ") PW = input("PW를 입력하세요. ") if ID in users: if P.. 2020. 7. 25.
Python - 사전과 집합[사전] - 키와 값의 쌍, 사전 관리, 사전 활용 Chap.10 사전과 집합[사전] - 키와 값의 쌍, 사전 관리, 사전 활용 사전 키와 값의 쌍, 사전 관리, 사전 활용 키와 값의 쌍 { "키": 값, ... } dic = { 'boy': '소년', 'school': '학교', 'book': '책' } print(dic) 결과 {'boy': '소년', 'school': '학교', 'book': '책'} dic = { 'boy': '소년', 'school': '학교', 'book': '책' } print(dic['boy']) # index와 비슷한데 숫자대신 key print(dic['book']) name = 'boy' print(dic[name]) # print(dic['girl']) # 오류 결과 소년 책 소년 dic = { 'boy': '소년',.. 2020. 7. 25.
Python - 리스트와 튜플[튜플] - 불변 자료 집합, 튜플로 가능한 일 Chap.9 리스트와 튜플[튜플] - 불변 자료 집합, 튜플로 가능한 일 튜플 불변 자료 집합, 튜플로 가능한 일 불변 자료 집합 (값, ... ) 값, [...] 추가/수정/삭제 불가 읽기만 가능 --> 리스트보다 속도가 빠름 score = 88, 95, 70, 100, 99 print(score) score = 88, # score=(88,) print(score) score = 88 # score=(88) 단순 우선 순위, 튜플 X print(score) 결과 (88, 95, 70, 100, 99) (88,) 88 한 개짜리 튜플 만들 때 반드시 , 를 넣어주어야한다. 튜플로 가능한 일 index읽기, 연결 tu = 1, 2, 3, 4, 5 print(tu[3]) print(tu[1:4]) prin.. 2020. 7. 25.
Python - 리스트와 튜플[예제] - Number guessing game(추가) Chap.9 리스트와 튜플[예제] - Number guessing game(추가) 리스트 예제 Number guessing game(추가) Number guessing game(추가) Number guessing game 시 HANGMAN 문자열 한줄 씩 출력 import random # Hang man 추가. HANGMAN = """ ---+ | O /|\\ / \\ """ def printHangman(lines, i): # 추가. 프린트용 함수 (루프) for line in lines[:i]: print(line) def rand(start, end): return int(random.random()*(end-start)) + start def main(): number = rand(1, 100) .. 2020. 7. 25.
Python - 리스트와 튜플[리스트 관리] - 삽입, 연결, 삭제, 검색, 정렬, 컴프리핸션 Chap.9 리스트와 튜플[리스트 관리] - 삽입, 연결, 삭제, 검색, 정렬, 컴프리핸션 리스트 관리 삽입, 연결, 삭제, 검색, 정렬, 컴프리핸션 CRUD를 기억하자. Python tutorial 검색을 활용하자. 삽입 .append(값) ★★★ - 리스트의 끝에 값을 추가 .insert(위치, 값) - 지정한 위치에 값을 삽입 nums = [1, 2, 3, 4] # empty list -> nums=[] nums.append(5) print(nums) nums.insert(2, 99) print(nums) 결과 [1, 2, 3, 4, 5] [1, 2, 99, 3, 4, 5] nums = [1, 2, 3, 4] nums[2:2] = [90, 91, 92] # 새로운 값들을 삽입 print(nums) .. 2020. 7. 25.
Python - 리스트와 튜플[리스트] - 자료의 집합, 리스트의 요소, 이중 리스트 Chap.9 리스트와 튜플[리스트] - 자료의 집합, 리스트의 요소, 이중 리스트 리스트 자료의 집합, 리스트의 요소, 이중 리스트 서로 다른 data type이 있어도 괜찮다. 자료의 집합 score = [88, 95, 70, 100, 99] total = 0 for s in score: total += s print("총점: ", total) print("평균: ", total/len(score))1 결과 총점: 452 평균: 90.4 리스트가 아닌 type을 list로 바꿔주는 함수 print(list("Korea")) 결과 ['K', 'o', 'r', 'e', 'a'] str="hello" 나 list=[1,2,3] 등을 쓰면 str함수와 list함수를 이용할 수 없다. 많이하는 실수 리스트의 요.. 2020. 7. 25.
Python - 문자열 관리[포맷팅] - 포맷팅, 선형 포맷팅, 자리 채움방식 Chap.8 문자열 관리[포맷팅] - 포맷팅, 선형 포맷팅, 자리 채움방식 포맷팅 포맷팅, 선형 포맷팅, 자리 채움방식 포맷팅 %d 정수 %f 실수 %s 문자열 %c 문자 하나 %h 16진수 %o 8진수 %% % 문자 %[-]폭[.유효자리수]서식, 폭에는 소수점에 포함 , 반올림 발생 price = 500 print("궁금하면 " + str(price) + "원!") mont = 8 day = 15 anni = "광복절" print("%d월%d일은 %s이다." % (mont, day, anni)) # python 2 style 결과 궁금하면 500원! 8월15일은 광복절이다. value = 123 print("###%d###"%value) print("###%5d###"%value) # 5자리로 출력 (.. 2020. 7. 25.