코드잇 21

[SQL 기초] 2. 테이블 생성하기

1. CSV 파일로 테이블 생성하기 엑셀 파일 → CSV 파일 → 테이블 Table Data Import Wizard Field Separator(컬럼 구분자) 부분의 기호를 원하는 기호로 변경 필요 - CSV 파일은 ,(콤마) Data Type 맞춰주기 - int: 정수형, text: 문자열형, double: 실수형, date: 날짜 CSV: Comma Separated Values 2. Primary Key primary key(기본키): 테이블에서 하나의 row를 고유하게 식별할 수 있도록 해주는 column (id) primary key 설정: 해당 column PK 체크 - Apply Natural Key: 실제로 어떤 개체가 갖고 있는 속성을 나타내는 컬럼을 Primary Key로 설정한 경우..

[Python 기초] 문제 11. 고급 단어장

문제 random 모듈과 사전(dictionary)을 이용해서 vocabulary.txt의 단어들을 랜덤한 순서로 내도록 프로그램을 바꿔 보세요. 같은 단어를 여러번 물어봐도 괜찮고, 프로그램은 사용자가 알파벳 q를 입력할 때까지 계속 실행됩니다. 힌트 우선 vocabulary.txt 파일을 읽고, 파이썬 사전을 채워 넣어야 한다. 영어 단어 목록을 받아오려면 파이썬 사전의 keys를 사용하면 된다. random 모듈의 randint 함수를 이용해서 랜덤한 인덱스를 받는다. 그 랜덤한 인덱스를 통해 vocab.keys() 리스트에서 단어를 받는다. 답안 import random # 사전 만들기 vocab = {} with open('vocabulary.txt', 'r') as f: for line in ..

[SQL 기초] 1. 데이터 베이스 기본 개념

1. 데이터베이스와 테이블 데이터베이스: 일정한 체계 속에 저장된 데이터의 집합, 데이터는 데이터베이스 안에서 '테이블'이라는 단위로 저장 테이블: 표 형식으로 저장된 데이터의 집합 2. 테이블의 row와 column row(record, 행): 테이블에서 개체 하나를 나타내는 단위 column(field, 열): 각 개체가 갖는 속성을 나타내는 단위 3. DBMS와 SQL DBMS: 데이터베이스 관리 시스템 (Database Management System) SQL: DBMS에 명령을 내리기 위해 사용하는 언어 (Structured Query Language) 4. DBMS와 서버-클라이언트 구조 client(클라이언트 프로그램): 사용자가 server에 접속해서 원하는 데이터베이스 관련 작업을 할 수..

[Python 기초] 문제 10. 단어장 만들기

문제 이 프로그램은 콘솔로 영어 단어와 한국어 뜻을 받고, vocabulary.txt라는 새로운 텍스트 파일에 단어와 뜻을 정리하는데요. 사용자가 새로운 단어와 뜻을 입력할 때마다 vocabulary.txt에 작성되는 것입니다. 사용자는 반복적으로 단어와 뜻을 입력하는데, 단어나 뜻으로 q를 입력하는 순간 프로그램은 즉시 종료됩니다. 사용자가 q를 입력하고 나면 파일은 더 이상 바뀌지 않아야 합니다. 힌트 파일을 쓰기 위해서는 먼저 파일을 열어야 한다. 글을 작성하기 위해서는 단어와 뜻을 반복적으로 받아야 한다. 답안 with open('vocabulary.txt', 'w') as f: while True: eng_word = input("영어 단어를 입력하세요: ") if eng_word == 'q':..

[Python 기초] 8. 사용자 입력 받기&파일 읽고 쓰기

1. input 사용자 입력을 받는 함수 사용자 입력은 항상 문자열이므로 별도 변환 필요 x = int(input("숫자를 입력하세요: ")) print(x + 5) # 출력값: 7 2. 파일 읽기 같은 폴더에 있을 경우, 파일 이름만 써도 불러오기 가능 같은 폴더에 없을 경우, 경로 기재 필요 with open('chicken.txt', 'r') as f: # r은 read의 약자 # 불러온 파일을 'f'에 저장 # for문을 쓰면 list와 비슷하게 사용할 수 있다 3. strip 파이썬에서 엔터는 '\n'으로 표현 strip: 앞 뒤로 있는 화이트 스페이스를 없애준다 (줄 사이의 공백 제거) with open('chicken.txt'. 'r') as f: for line in f: print(lin..

[Python 기초] 7. 파이썬 모듈 맛보기

1. 모듈 서로 관련 있는 변수나 함수 같은 코드들을 모아 놓은 파일 import calculater as calc from calculater import add, multiply from calculater improt * # 다 넣기 2. random 모듈 random 모듈은 랜덤한 숫자를 생성하기 위해 다양한 함수들을 제공해 준다. import random randint 함수: 두 수 사이의 어떤 랜덤한 정수를 리턴하는 함수 print(random.randint(1, 20) uniform 함수: 두 수 사이의 랜덤한 소수를 리턴하는 함수 print(random.uniform(0, 1) 3. datetime 모듈 datetime 모듈은 '날짜'와 '시간'을 다루기 위한 다양한 '클래스'를 갖추고 있..

[Python 기초] 문제 9. 주민등록번호 가리기

[ 문제 ] 주민등록번호의 마지막 네 자리만 가려 주는 보안 프로그램을 만들려고 한다. mask_security_number라는 함수를 정의하려고 하는데, 이 함수는 파라미터로 문자열 security_number를 받고, security_number의 마지막 네 글자를 '*'로 대체한 새 문자열을 리턴한다. [보충 설명] 문자열은 수정이 불가능하다. 하지만 문자열과 유사한 리스트는 수정이 가능하다. 더 쉬운 방법은 '문자열 슬라이싱'을 이용하는 것이다. [ 정답 코드 ] def mask_security_number(security_number): return security_number[:-4] + '****' # 테스트 print(mask_security_number("880720-1234567")) ..

[Python 기초] 문제 8. 자릿수 합 구하기

[ 문제 ] 함수 sum_digit은 파라미터로 정수형 num을 받고, num의 각 자릿수를 더한 값을 리턴합니다. sum_digit 함수를 작성하고, sum_digit(1)부터 sum_digit(1000)까지의 합을 구해서 출력하세요. [보충 설명] sum_digit 함수를 정의하기 위해서는 정수형 num을 문자열로 바꾼다. 문자열은 리스트와 유사하다는 점을 이용하여, 반복적으로 각 자릿수를 받는다. 각 자릿수를 정수형으로 변환하고, 각 자릿수를 total에 더한다. [ 정답 코드 ] # 자리수 합 리턴 def sum_digit(num): total = 0 str_num = str(num) for digit in str_num: total += int(digit) return total # sum_di..

[Python 기초] 문제 7. 투표 집계하기

[ 문제 ] 파이썬 리스트 votes에는 성북구민들의 투표 결과가 저장되어 있습니다. 리스트 votes의 정보를 토대로, 사전 vote_counter에 후보별 득표수를 정리하는 것이 목표입니다. [보충 설명] for문을 이용해서 votes에 있는 후보 이름을 순서대로 name이라는 변수에 지정한다. name을 vote_counter 사전에 반영한다. [ 정답 코드 ] # 투표 결과 리스트 votes = ['김영자', '강승기', '최만수', '김영자', '강승기', '강승기', '최만수', '김영자', \ '최만수', '김영자', '최만수', '김영자', '김영자', '최만수', '최만수', '최만수', '강승기', \ '강승기', '김영자', '김영자', '최만수', '김영자', '김영자', '강승기'..

[Python 기초] 문제 6. 리스트 뒤집기

[ 문제 ] 리스트 원소들의 순서를 거꾸로 뒤집으려고 합니다. numbers라는 리스트가 주어졌을 때, for문을 사용하여 리스트를 거꾸로 뒤집어 보세요. [보충 설명] 리스트를 뒤집기 위해서는, 서로 대칭인 원소들의 위치를 바꿔야(swap) 한다. 인덱스 0과 대칭되는 위치는 인덱스 len(numbers) - 1이다. 리스트 길이의 반을 넘게 돌면, 잘 바꿔 놨던 위치를 다시 원상 복구하는 셈이다. [ 정답 코드 ] numbers = [2, 3, 5, 7, 11, 13, 17, 19] # 리스트 뒤집기 for left in range(len(numbers) // 2): # 인덱스 left와 대칭인 인덱스 right 계산 right = len(numbers) - left - 1 # 위치 바꾸기 numbe..