728x90
반응형
SMALL
[문제1] 구구단을 가로로 출력해주세요.
for i in range(1, 10):
for dan in range(2, 10):
print("{} * {} = {}".format(dan, i, dan*i), end='\t')
print(' ')
[문제2] 감염병_발생현황.csv 데이터를 이용해서 년도별 감염병 발생현황을 bar plot, line plot 을 생성해주세요.
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import font_manager, rc
font_name = font_manager.FontProperties(fname='C:/Windows/Fonts/gulim.ttc').get_name()
re('font', family=font_name)
data = pd.read_csv('c:/data/감염병_발생현황.csv')
# 불필요한 행, 열 삭제
data = data.iloc[2:, 1:].T
# 컬럼이름 미정
infection = data.iloc[1:]
# 컬럼 지정
infection.columns = data.iloc[0]
infection.columns.name == None
infection.info()
# data.iloc[2:,1:].T → 해당 코드로 문자타입으로 확인
# int 타입으로 변경
infection = infection.astype(int)
# bar plot
infection.plot(kind='bar')
infection.iloc[:, :-1].plot(kind='bar')
infection.iloc[:, -1].plot(kind='bar') # A형간염
plt.legend()
# line plot
infection.iloc[:,:-1].plot()
infection.iloc[:,-1].plot()
plt.legend()
[문제3] 아래의 코드가 정상 실행되도록 Stats 클래스를 생성하세요.
stat = Stats()
stat.sum(1,2,3,4,5,6)
stat.mean(1,2,3,4,5)
stat.variance(1,2,3,4,5)
round(stat.stddev(1,2,3,4,5),2)
import math
class Stats():
def sum(self, *arg):
hap = 0
for i in arg:
hap += i
return hap
def mean(self, *arg):
total = 0
m = self.mean(*arg)
for i in arg:
total += (i - m)**2
return total / (len(arg) - 1)
def stdden(self, *arg):
return math.sqrt(self.variance(*arg))
[문제4] 주소록 관리 프로그램 Contact 클래스에 open, close, search, insert, update, delete, commit, rollback 함수를 구현해주세요.
import sqlite3
conn = sqlite3.connect('c:/data/contact.db')
cur = conn.cursor()
# tabel 생성 후 확인해보기
cur.execute("create table contact(name text, pn text, email text, addr text"))
cur.execute("select * from sqlite_master")
cur.fetchall()
cur.execute("pragma table_info(contact)")
cur.fetchall()
# table로 test 해보기
cur.execute("select * from contact where pn = '010-1000-0001' ")
lst = cur.fetchall()
lst == None
bool(lst)
# cursor, connect 닫기
cur.close()
conn.close()
#1. class를 통해 open(), close() 생성
class Contact():
def open(self):
self.conn = sqlite3.connect('c:/data/contact.db')
self.cur = self.conn.cursor()
print('contact db에 접속했습니다.')
def close(self):
self.cur.close()
self.conn.close()
print('contact db 접속 해지했습니다.')
c = Contact()
c.open()
c.close()
#2. class를 통해 search() 생성
class Contact():
def open(self):
self.conn = sqlite3.connect('c:/data/contact.db')
self.cur = self.conn.cursor()
print('contact db에 접속했습니다.')
def close(self):
self.cur.close()
self.conn.close()
print('contact db 접속 해지했습니다.')
def search(self, pn):
self.cur.execute("""select * from contact where pn = ?""", (pn,))
lst = self.cur.fetchone()
if lst:
print(lst)
else:
print('데이터가 존재하지 않습니다.')
c = Contact()
c.open()
c.search('010-1000-0001')
c.close()
#3. class를 통해 insert(), commit(), rollback() 생성
class Contact():
def open(self):
self.conn = sqlite3.connect('c:/data/contact.db')
self.cur = self.conn.cursor()
print('contact db에 접속했습니다.')
def close(self):
self.cur.close()
self.conn.close()
print('contact db 접속 해지했습니다.')
def search(self, pn):
self.cur.execute("""select * from contact where pn = ?""", (pn,))
lst = self.cur.fetchone()
if lst:
print(lst)
else:
print('데이터가 존재하지 않습니다.')
def insert(self, name, pn, email, addr):
insert_sql = """insert into contact(name, pn, email, addr) values(?,?,?,?)"""
self.cur.execute(insert_sql,(name, pn, email, addr))
self.cur.fetchall()
def commit(self):
self.conn.commit()
print('저장되었습니다.')
def rollback(self):
self.conn.rollback()
print('취소되었습니다.')
c = Contact()
c.open()
c.insert("홍길동", "010-1000-0001", "hong@aaa.com", "서울시 강남구 삼성로")
c.commit()
c.close()
#4. class를 통해 update(), commit(), rollback() 생성
class Contact():
def open(self):
self.conn = sqlite3.connect('c:/data/contact.db')
self.cur = self.conn.cursor()
print('contact db에 접속했습니다.')
def close(self):
self.cur.close()
self.conn.close()
print('contact db 접속 해지했습니다.')
def search(self, pn):
self.cur.execute("""select * from contact where pn = ?""", (pn,))
lst = self.cur.fetchone()
if lst:
print(lst)
else:
print('데이터가 존재하지 않습니다.')
def insert(self, name, pn, email, addr):
insert_sql = """insert into contact(name, pn, email, addr) values(?,?,?,?)"""
self.cur.execute(insert_sql,(name, pn, email, addr))
self.cur.fetchall()
def update(self, arg1, arg2):
update_sql = """update contact set email = ? where pn = ?"""
self.cur.execute(update_sql, (arg2, arg1))
def delete(self, arg1):
self.cur.execute("""delete from contact where pn = ?""", (arg1,))
def commit(self):
self.conn.commit()
print('저장되었습니다.')
def rollback(self):
self.conn.rollback()
print('취소되었습니다.')
c = Contact()
c.open()
c.search("010-1000-0001")
c.update("010-1000-0001","james@aaa.com")
c.search("010-1000-0001")
c.rollback()
c.search("010-1000-0001")
c.delete("010-1000-0001")
c.search("010-1000-0001")
c.rollback()
c.search("010-1000-0001")
c.close()
[문제5] 아래의 'message' 문자열에서 전화번호를 추출해주세요.
message = '''안녕하세요. 전화번호는 02-123-4567 입니다.
문의사항이 있으면 031-1234-0000 으로 연락주시기 바랍니다.
폰 번호는 010-1234-0001 고객센터 전화번호 1588-3600 대표전화 : 031)777-1140'''
import re
re.findall('\d{0,3}[-)]?\d{3,4}-\d{4}', message)
re.findall('\d{0,3}[-)]*\d{3,4}-\d{4}', message)
728x90
반응형
LIST
'문제 > Python' 카테고리의 다른 글
231128 Python 문제 (0) | 2023.11.28 |
---|---|
231128 Python 문제 (0) | 2023.11.28 |
231127 Python 문제 (1) | 2023.11.27 |
231123 Python 문제 (1) | 2023.11.23 |
231122 Python 문제 (0) | 2023.11.22 |