본문 바로가기

파이썬111

[Python] 딕셔너리 □ 자료구조 딕셔너리 형태는 key와 value로 구성되어 있으며 { } 감쌈 □ 자주 사용하는 함수 : get(), values(), keys() □ json과는 다름. json은 javascript에서의 오브젝트이며 데이터를 교환하기 위한 규약된 폼임 #에제: 딕셔너리 합산 구하기 dict = {'a':17, 'b':114, 'c':247, 'd':362, 'e':220, 'f':728, 'g':-283, 'h':922} print(dict.values()) #딕셔너리 value 값 추출 : .values #방법① sum = 0 for i in dict: sum += dict[i] print(f'sum : {sum}') #방법② total = 0 for a in dict.values(): total .. 2023. 11. 1.
[Python] 중복제거(자료구조 set) □ set : 집합자료형 중복 허용하지 않음 순서없음 □ List, Tuple : 순서있음, 중복허용 #아래 리스트에서 중복되는 원소를 제거 후 출력하세요. x = ["a", 1, "b", "a", 2, 3, "b", 4, 5, "b"] #방법1 ex1 = set(x) print(f'ex1 = {ex1}') #방법2(순서유지) from collections import OrderedDict #OrderedDict 라이브러리 호출 및 fromkeys 메서드 활용 ex2 = list(OrderedDict.fromkeys(x)) print(f'ex2 = {ex2}') #방법3(순서유지) ex3 = [] for i in x: if i not in ex3: ex3.append(i) print(f'ex3 = {ex.. 2023. 11. 1.
[Python] 시퀀스 처리(For문, Lambda, List Comprehension) □ 시퀀스 ○ 순서가 있는 데이터 자료 타입의 인덱스를 의미 ○ 시퀀스 자료형이란 데이터 값이 연속적으로 이루어진 자료구조를 의미하며 List, Tuple, Str, Range 등이 있음 → 리스트 함수 : cmp, len, max, min, list, append, count, extend, index, insert, pop, remove, reverse, sort 등 □ List Comprehension 형식: [조건 만족시 출력값 if 만족조건① else 불만족 조건② for i in list] □ lambda 형식 및 사용이유 ○ 기본 → lambda 매개변수 : 표현식 ○ map함수 활용 → map(lambda 변수 : 표현식, 범위) ○ 인라인 작성으로 인하여 가독성이 증가됨 ○ 함수 표현식 .. 2023. 10. 30.
[Python] 에러타입 □ 데이터 타입으로 인하여 발생오류 ▶ TypeError: can only concatenate str (not "int") to str x='death' y=10 z = x+y print(f'x+y{z}') #조치방법: y int데이터를 str으로 변환하거나 x 값을 int로 저장 □ 문자열임에도 불구하고 함수호출방식으로 호출하여 발생하는 오류 ▶ TypeError: 'str' object is not callable #문자열인데 함수를 호출해서 발생하는 오류 etc = 'korea' print(etc()) #조치방법: 변수명만 기재하여 출력 print(변수명) □ 리스트 인덱싱시 발생 오류 int 또는 슬라이싱형태로 기재하는 오류 ▶ TypeError: list indices must be integ.. 2023. 10. 30.
연습예제 1. 과목별평균 점수 전산 90, 영어 75, 수학 55 js = 90 en = 75 ma = 55 avg = (js+en+ma)/3 print(f"평균점수 : {avg}") 2. 입력한 숫자가 홀수 인지 짝수인지 판별 num = int(input("숫자를 입력해주세요")) if num % 2 == 0 : #나머지 구할시 %, 몫을 구할시 // print("짝수입니다") else: print("홀수입니다") 3. 주민등록번호 991120-106824 를 연월일과 뒷자리 따로 출력 i_num = '991120-106824' i_num_list = i_num.split('-') #.split('구분자')를 활용하여 주민번호를 쪼갠다 ymd = i_num_list[0] back_num = i_num_list[.. 2023. 10. 16.
클래스와 객체 ○ 클래스 : 객체를 생성하기 위한 틀 ex) 클랙스 = 붕어빵 틀, 객체 = 붕어빵 ○ 형식 *클래스 생성시 매개변수는 반드시 self 라고 지정해야함 class 클래스명: def__init(self, 매개변수1, 매개변수2): self.속성1 = 매개변수1 self.속성2 = 매개변수2 #1. 클래스 기본 및 객체생성 #클래스생성 class Person: def __init__(self): self.hello = 'hi' def greeting(self): print(self.hello) #객체/인스턴스 생성 p = Person() p.greeting() #클래스에서 지정한 greeing 메서드 호출 #2. 매개변수 받는 클래스 및 객체생성 #클래스 생성 및 매개변수 3개 지정 class Per: d.. 2023. 10. 13.
딕셔너리와 집합 ○ 딕셔너리(Dictionary) - 리스트나 튜플처럼 순차적으로 해당 요소의 값을 구하지 않고 키를 이용하여 값을 얻음 - 형식 : 딕셔너리명 = {'키1':'벨류','키2':'벨류','키3':'벨류'~~} - 벨류로 리스트를 넣을수 있음 dic = {'name':'ppp', 'phone':'000-0000-0000', 'birth':'0606', 'hobby':['soccer', 'golf']} #키만 조회 dic.keys() #벨류만 조회 dic.values() #키/벨류 추가 딕셔너리명[추가할 키명] = 벨류 dic['new'] = 'anything' #데이터삭제 딕셔너리명[키명] del dic['phone'] #for문을 통한 벨류값 추출 for i in dic.values(): print(i).. 2023. 10. 13.
예제 : 회문판별, N-Gram, 함수 ○ 회문판별 : 순서를 반대로 해도 정상적으로 말한것처럼 보이는 단어 word = input('단어입력') #변수(2) tf = True #회문 판별값을 저장할 변수, 초깃값은 True for i in range(len(word)//2): #0부터 문자열 길이의 절반만큼 반복 if word[i] != word[-1-i]: #왼쪽 문자와 오른쪽 문자를 비교하여 문자가 다르면 회문 아님 tf = False break print(tf) ○N-Gram : 단어를 N개씩 끊어서 출력 #파싱할 단어 변수 text = 'hello' for i in range(len(text)-1): #2-gram이므로 문자열의 끝에서 한 글자 앞까지 반복 print(text[i], text[i+1], sep="&") #현재문자와 그.. 2023. 10. 12.
예제 : FizzBuzz, 반복문(For/While문) ○ FizzBuzz - 문제 : 3의 배수는 Fizz를, 5의 배수는 Buzz를 출력하며, 3과 5의 공통배수는 FizzBuzz가 출력되도록하라 #풀이① for i in range(1,51): if i % 3 == 0 and i % 5 ==0: #and 조건을 활용하여 3과 5의 공통배수 처리 print("FizzBuzz") elif i % 3 == 0 : #3의 배수 처리 print("Fizz") elif i % 5 == 0 : print("Buzz") #5의 배수 처리 else: print(i) #풀이② for i in range(1,51): if i % 15 == 0: #and 조건을 활용하여 3과 5의 공통배수 처리 & 3과 5의 최소공배수 3*5 = 15를 조건에 적용 print("FizzBuz.. 2023. 10. 12.