(기초2) 구문 예시
# 운항 시간 계산하기
def flight(s, e):
s_hour = int(s) // 100
s_min = int(s) % 100
e_hour = int(e) // 100
e_min = int(e) % 100
if s_hour > e_hour or s_hour == e_hour and s_min >= e_min:
e_hour = e_hour + 24
if s_min > e_min:
e_hour = e_hour - 1
e_min = e_min + 60
hour = e_hour - s_hour
min = e_min - s_min
# time = "{:02}{:02}".format(hour, min)
# time = hour * 100 + min
return [hour, min]
start = input("출발 시각 : ")
end = input("도착 시각 : ")
time = flight(start, end) # time = [hour, min]
hour = time[0]
min = time[1]
if hour > 0 and min > 0:
print("운항 시간 : {}시간 {}분".format(hour, min))
elif min == 0:
print("운항 시간 : {}시간".format(hour))
elif hour == 0:
print("운항 시간 : {}분".format(min))
# 항공편 예약시스템
import csv
def start():
file = open("database.csv", "r")
csvfile = csv.reader(file)
database = []
for item in csvfile:
database.append(item)
file.close()
return database
def end(database):
file = open("database.csv", "w", newline = "")
csvfile = csv.writer(file)
for data in database:
csvfile.writerow(data)
file.close()
database = start()
def reserve(p, f):
if [p, f] not in database:
database.append([p, f])
else:
print("동일한 예약이 발견되었습니다.")
def cancel(p, f):
if [p, f] in database:
database.remove([p, f])
else:
print("동일한 예약이 발견되지 않았습니다.")
def flight(f):
print("-----------------")
print(" Flight : {}".format(f))
print("-----------------")
for data in database:
if f == data[1]:
print('', data[0])
def passenger(p):
print("-----------------")
print(" Passenger : {}".format(p))
print("-----------------")
for data in database:
if p == data[0]:
print('', data[1])
def all():
print("-----------------")
print(" Passenger Flight")
print("-----------------")
for data in database:
print(" {:<9} {:<6}".format(data[0], data[1]))
code = ''
while code != 'q':
cmd = input("command : ").split()
code = cmd[0] # 'r', 'f', 'p', 'q'
if code == 'r': # ['r', 'kim', '101']
p = cmd[1]
f = cmd[2]
reserve(p, f)
elif code == 'c': # ['c', 'kim', '101']
p = cmd[1]
f = cmd[2]
cancel(p, f)
elif code == 'f': # ['f', '101']
f = cmd[1]
flight(f)
elif code == 'p': # ['p', 'kim']
p = cmd[1]
passenger(p)
elif code == 'a': # ['a']
all()
end(database)
# 폭탄 돌리기
def finddrop(players, start, step):
drop = (start + step) % len(players)
return drop
# players = input("플레이어들을 빙둘선 순서로 입력하세요: ").split()
players = ["B", "K", "M", "A", "C", "D", "P"]
print("플레이어들의 목록: {}".format(players))
start = int(input("시작 위치를 0 이상의 숫자로 입력하세요: "))
step = int(input("간격을 몇 사람으로 할까요? "))
print("")
while len(players) > 1:
drop = finddrop(players, start, step)
start = drop - 1
print("{}가 게임에서 제외되었습니다.".format(players[drop]))
del players[drop]
print("\n최종 생존자 : {}".format(players[0]))
# MySQL Server 연동하기
import pymysql
def savefile(filename, result):
import csv
file = open(filename, "w", newline = "")
csvfile = csv.writer(file)
for item in result:
csvfile.writerow(item)
file.close()
connect = pymysql.connect(host = '192.168.101.200',
port = 3306,
user = 'user0',
password = '0abc',
db = 'shopping_db')
cursor = connect.cursor()
while True: # 반복문
sql = input("sql> ") # sql = 'quit'가 되기전까지 계속 질의하는 코드작성
# write
if sql == '':
pass # 2018.09.02_09:02
elif sql == 'write':
from datetime import datetime
now = datetime.now()
f_filename = "{:4}.{:02}.{:02}_{:02}{:02}".format(now.year, now.month, now.day, now.hour, now.minute)
filename = input("어떤 이름으로 저장할까요[{}]? ".format(f_filename)).strip(" ")
if filename == "":
f_filename = f_filename + ".csv"
savefile(f_filename, result)
else:
filename = filename + ".csv"
savefile(filename, result)
elif sql != 'quit':
try:
cursor.execute(sql)
result = cursor.fetchall()
for item in result:
print(item)
except:
print("잘못된 SQL문장입니다.")
else:
break
# 주민등록번호 (클래스) 생성 : ssn
# 1. 제약조건 : 문자열형이여야한다.
# 2. 자료길이 : 14
# 3. 인덱스 0 ~ 5 : 문자들('0 ~ 9')
# 인덱스 6 : 문자('-')
# 인덱스 7 ~ 13 : 문자들('0 ~ 9')
# 4. 인덱스 0 ~ 1 : '00 ~ 99'
# 인덱스 2 ~ 3 : '01 ~ 12'
# 인덱스 4 ~ 5 : '01 ~ 31'
# 인덱스 7 : '1 ~ 8'
class ssn:
def __init__(self, data):
numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
if type(data) != type(str()):
print("문자열형 데이터가 아닙니다.")
return None
if len(data) != 14:
print("14자리 주민등록번호가 아닙니다.")
return None
for i in range(0, 14):
if i != 6:
if data[i] not in numbers:
print("숫자가 아닌 문자를 포함하고 있습니다.")
return None
else:
if data[6] != '-':
print("7번째가 문자가 '-'가 아닙니다.")
return None
if int(data[2:4]) not in range(1, 13):
print("1월 ~ 12월 사이가 아닙니다.")
return None
if int(data[4:6]) not in range(1, 32):
print("1일 ~ 31일 사이가 아닙니다.")
return None
if int(data[7]) not in range(1, 9):
print("주민등록번호 8번째 자리는 1 ~ 8 만 가능합니다.")
return None
self.data = data
def gender(self):
if int(self.data[7]) in [1, 3, 5, 7]:
return 'Male'
else:
return 'Female'
def birthday(self): # 801205-1155666
from datetime import date # 081205-4422777
if int(self.data[7]) in [1, 2, 5, 6]:
year = int("19" + self.data[0:2]) # 1980
# year = 1900 + int(self.data[0:2]) # 1980
else:
year = int("20" + self.data[0:2]) # 2008
month = int(self.data[2:4])
day = int(self.data[4:6])
return date(year, month, day)
def age(self):
from datetime import date
birthday = int(self.birthday().strftime("%Y%m%d"))
today = int(date.today().strftime("%Y%m%d"))
age = (today - birthday) // 10000
return age
'[개발노트] > # Python' 카테고리의 다른 글
ubuntu & Wordporess (2015.ver) (0) | 2018.10.18 |
---|---|
(크롤링) 코드 예문 (0) | 2018.09.11 |
(기초1) 구문 예시 (0) | 2018.09.11 |
(기초1) 기호, 함수 (0) | 2018.09.10 |
(설치&참고유틸) (0) | 2018.09.09 |