
days = [31,29,31,30,31,30,31,31,30,31,30,31]
for i, day in enumerate(days):
print('{}월의 날짜수는 {}일 입니다.'.format(i + 1, day))
1월의 날짜수는 31일 입니다.
2월의 날짜수는 29일 입니다.
3월의 날짜수는 31일 입니다.
4월의 날짜수는 30일 입니다.
5월의 날짜수는 31일 입니다.
6월의 날짜수는 30일 입니다.
7월의 날짜수는 31일 입니다.
8월의 날짜수는 31일 입니다.
9월의 날짜수는 30일 입니다.
10월의 날짜수는 31일 입니다.
11월의 날짜수는 30일 입니다.
12월의 날짜수는 31일 입니다.
# join : list -> string
time_string = ":".join(['10', '12', '14'])
print(time_string)
# split : string -> list
time_list = time_string.split(":")
print(time_list)
10:12:14
['10', '12', '14']
import math
math.ceil(2.5) # 올림 = 3
math.floor(2.5) # 내림 = 2
import random
list = ["빨","주","노","초","파","남","보"]
random_element = random.choice(list)
print(random_element) # list 요소 중에 하나를 랜덤으로 출력
random.shuffle(list)
print(list) # list의 순서를 섞음
random_number = random.randint(2, 5)
print(random_number) # 2보다 크거나 같고, 5보다 작거나 같은 임의의 정수 출력
남
['빨', '파', '초', '보', '주', '노', '남']
5
url을 넣으면 페이지 내용을 돌려주는 함수
def get_web(url):
import urllib.request
response = urllib.request.urlopen(url)
data = response.read()
decoded = data.decode('utf-8')
return decoded
url = input("web page url > ")
content = get_web(url)
print(content)
web page url > http://example.com
<!doctype html>
<html>
<head>
<title>Example Domain</title>
... 생략 ...
</head>
<body>
<div>
<h1>Example Domain</h1>
<p>This domain is for use in illustrative examples in documents. You may use this
domain in literature without prior coordination or asking for permission.</p>
<p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>
import datetime
now = datetime.datetime.now()
day = datetime.date.today()
print("오늘은 {}년 {}월 {}일, {}시 {}분 {}초({})입니다.".format(
now.year, now.month, now.day, now.hour, now.minute, now.second, now.microsecond))
print("오늘 날짜 :", day)
오늘은 2022년 6월 23일, 18시 33분 11초(658569)입니다.
오늘 날짜 : 2022-06-23
import datetime
end_time = datetime.datetime(2022, 6, 27)
how_long = end_time - datetime.datetime.now();
print("6월 27일까지는 {}일 {}시간이 남았습니다.".format(how_long.days, how_long.seconds//3600))
6월 27일까지는 2일 23시간이 남았습니다.
timedelta : 시간 연산을 가능하게 해주는 클래스
>>> import datetime
>>> hundred = datetime.timedelta(days = 100)
>>> datetime.datetime.now() + hundred # 100일 이후의 날짜
datetime.datetime(2022, 10, 2, 1, 20, 34, 790382)
>>> datetime.datetime.now() - hundred # 100일 이전의 날짜
datetime.datetime(2022, 3, 16, 1, 21, 25, 390266)
# 오늘 3시부터 하루 뒤 날짜
>>> tomorrow = datetime.datetime.now().replace(hour = 3, minute = 0, second = 0)
+ datetime.timedelta(days=1)
>>> tomorrow
datetime.datetime(2022, 6, 25, 3, 0, 0, 832469)
>>> list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> list[0:10:2]
[1, 3, 5, 7, 9] # 홀수만 출력
>>> list[10:0:-2]
[10, 8, 6, 4, 2] # 짝수만 역순으로 출력
>>> list2 = list[0:10:2] # 홀수만 다른 리스트로 생성
>>> list2
[1, 3, 5, 7, 9]
>>> del list2[1:] # 인덱스 1부터 끝까지 삭제
>>> list2
[1]
# 홀수 값들을 짝수 값들로 변경
>>> list[0:10:2] = [2, 4, 6, 8, 10]
>>> list
[2, 2, 4, 4, 6, 6, 8, 8, 10, 10]
# 인덱스 0부터 1까지의 값들을 1로 변경하고, 나머지 1은 바로 뒤에 삽입
>>> list[0:2] = [1, 1, 1]
>>> list
[1, 1, 1, 4, 4, 6, 6, 8, 8, 10, 10]
wintable = {
'가위' : '보',
'바위' : '가위',
'보' : '바위'
}
def rsp(mine, yours):
if mine == yours:
return 'draw'
elif wintable[mine] == yours:
return 'win'
else:
return 'lose'
result = rsp('가위', '바위')
messages = {
'win' : '승리했다',
'draw' : '비겼다',
'lose' : '패배했다'
}
print("가위바위보 결과 {}.".format(messages[result]))
가위바위보 결과 패배했다.
# ↓ 이름표는 문자열 또는 숫자를 주로 사용하지만
dict = { "이름표" : [1,2,3] }
# ↑ 값은 리스트를 포함해서 무엇이든 올 수 있음
print( dict["이름표"] )
[1, 2, 3]
dict = {'one' : 1, 'two' : 2, 'three' : 3, 'four' : 4}
# 순서와 상관없이 for문이 실행됨
for key, value in dict.items():
print("{}은 {}입니다.".format(key, value))
one은 1입니다.
two은 2입니다.
three은 3입니다.
four은 4입니다.
dict1 = {1 : 100, 2 : 2000}
dict2 = {1 : 1000, 3 : 3000}
dict1.update(dict2)
print(dict1)
{1: 1000, 2: 2000, 3: 3000}

packing & unpacking
두 변수간의 값 변경을 쉽게 할 수 있음
>>> x = 5
>>> y = 10
>>> x, y = y, x
>>> x
10
>>> y
5
튜플을 이용한 함수의 리턴값
list = [1, 2, 3, 4, 5]
for a in enumerate(list):
print('{}번째 값 : {}'.format(*a))
dict = {'one' : 1, 'two' : 2, 'three' : 3}
for a in dict.items():
print('{}은 {}입니다.'.format(*a))
0번째 값 : 1
1번째 값 : 2
2번째 값 : 3
3번째 값 : 4
4번째 값 : 5
one은 1입니다.
two은 2입니다.
three은 3입니다.
selected = None
while selected not in ['가위', '바위', '보']:
selected = input('가위, 바위, 보 중에 선택하세요 > ')
print('선택된 값은 :', selected)
가위, 바위, 보 중에 선택하세요 > 주먹
가위, 바위, 보 중에 선택하세요 > 보자기
가위, 바위, 보 중에 선택하세요 > 바위
선택된 값은 : 바위
b = int(input())
try:
result = 10 / b
print("나눗셈 결과는 {}입니다.".format(result))
except Exception as ex:
print("{} 에러 발생 : 0으로 나눌 수 없습니다.".format(ex))
10
나눗셈 결과는 1.0입니다.
0
division by zero 에러 발생 : 0으로 나눌 수 없습니다.
>>> bool(0)
False
>>> bool(None)
False
>>> bool('')
False
>>> bool([])
False
value = input("값을 입력하시오 > ") or "입력 받은 값이 없습니다."
print("output = ", value)
값을 입력하시오 >
output = 입력 받은 값이 없습니다.
값을 입력하시오 > hi
output = hi
list1 = list("hello")
list2 = list("hello")
isinstance(list1, list) #True
isinstance(list2, list) #True
print(list1 == list2) #True list1과 list2는 같은 값
print(list1 is list2) #False list1과 list2는 다른 인스턴스
class Human( ):
# constructor
def __init__( self, name, weight ):
self.name = name
self.weight = weight
# toString
def __str__( self ):
return "{} ( 몸무게 {}kg )".format( self.name, self.weight )
def eat(self):
self.weight += 0.1
print("{}가 먹어서 {}kg이 되었습니다.".format(self.name, self.weight))
def walk(self):
self.weight -= 0.1
print("{}가 걸어서 {}kg이 되었습니다.".format(self.name, self.weight))
person = Human( "영희", 55.5 )
person.walk()
person.eat()
person.walk()
print(person)
영희가 걸어서 55.4kg이 되었습니다.
영희가 먹어서 55.5kg이 되었습니다.
영희가 걸어서 55.4kg이 되었습니다.
영희 ( 몸무게 55.4kg )
class Animal( ): # 부모 클래스
def __init__(self, name):
self.name = name
def walk(self):
print("{}가 걷는다.".format(self.name))
def greet(self):
print("{}가 인사한다.".format(self.name))
class Dog(Animal): # 자식 클래스
def __init__(self, name, hand): # Override
super().__init__(name) # super() : 부모 클래스 내용 사용
self.hand = hand
def wave(self):
print("{}를 흔들면서".format(self.hand))
def greet(self): # Override
self.wave()
super().greet() # super()
dog = Dog('강아지', '꼬리')
dog.walk()
dog.greet()
강아지가 걷는다.
꼬리를 흔들면서
강아지가 인사한다.
class BadUserName(Exception): # 이름에 대한 예외처리
class PasswordNotMatched(Exception): # 패스워드에 대한 예외처리
try:
sign_up( )
except BadUserName:
print( "이름으로 사용할 수 없는 입력" )
except PasswordNotMatched:
print( "입력한 패스워드 불일치")
areas2 = [ i * i for i in range(1, 11) if i % 2 == 0]
print("areas2 : ", areas2)
matrix = [ ( x, y ) for x in range(2) for y in range(2) ]
print("matrix : ", matrix)
areas2 : [4, 16, 36, 64, 100]
matrix : [(0, 0), (0, 1), (1, 0), (1, 1)]
weathers = ['rain', 'sun', 'cloud']
weather_dict = { "{}번".format(number + 1): name for number, name in enumerate(weathers)}
print(weather_dict)
percents = [100, 90, 78]
percents_dict = {weather : percent for weather, percent in zip(weathers, percents)}
print(percents_dict)
{'1번': 'rain', '2번': 'sun', '3번': 'cloud'}
{'rain': 100, 'sun': 90, 'cloud': 78}
출처 : 파이썬 입문 - 프로그래머스