190419-TIL
2019년에 Hexo 블로그에 쓴 글을 옮겨 왔습니다. 당시 이해를 그대로 두었습니다.
Today I Learned
오늘 한 일
새로운 언어를 배우는 방법
- 자료형
- 연산자
- 제어문, 반복문
- 함수
- call by reference, call by value, call by object reference
- First class function인지
- Class 지원하는지 (
- Encapsulation
- Inheritance
- Virtual function 지원 여부)
Python Data Type과 기본 Data Structure 실습
Text 가위바위보 게임
import random
def get_player_choice():
"""
get_player_choice() -> string
Return "바위" or "가위 or "보"
"""
choice = input("가위바위보! : ")
while choice != "가위" and choice != "바위" and choice != "보":
choice = input("가위바위보! : ")
return choice
def get_computer_choice():
"""
get_computer_choice -> string
Return "바위" or "가위 or "보"
"""
tup = ("가위", "바위", "보")
return tup[random.randint(0,2)]
def who_wins(player, computer):
"""
who_wins(player, com) -> string
Return if player wins 'player'
elif computer wins 'computer'
else None
"""
if player == computer:
return None
if (player == "바위" and computer == "가위") or\
(player == "가위" and computer == "보") or\
(player == "보" and computer == "바위"):
return 'player'
else:
return 'computer'
def play_one():
"""
play_one -> string
Return if player wins 'player'
elif computer wins 'computer'
"""
player_win = 0
computer_win = 0
while player_win == computer_win:
player = get_player_choice()
computer = get_computer_choice()
result = who_wins(player, computer)
print(f'Player {player} vs Computer {computer}')
if result == 'player':
player_win += 1
elif result == 'computer':
computer_win += 1
if player_win > computer_win:
return 'player'
else:
return 'computer'
def check_final_winner(result):
"""
check_final_winner(result) -> string
result : ex) ['player', 'player']
Return if 'player' >= 2 in result, 'Player'
elif 'computer' >=2 in result, 'Computer'
else None
"""
print(f"Player {result.count('player')}승 | Computer {result.count('computer')} 승")
if result.count('player') >= 2:
return 'Player'
else:
return 'Computer'
def play():
"""
play() -> None
3판 2선승가위바위보
"""
result_list = []
for i in range(3):
result_list.insert(i, play_one())
print(check_final_winner(result_list)+" Wins!!")
if __name__=="__main__":
play()
ASCII와 UNICODE
ASCII와 UNOCODE의 역사, UNICODE의 Encoding, Decoding 방법도 배웠다.
Python Bubble Sort
def bubble_sort(li):
n = len(li)
for i in range(n-1):
for j in range(n-1-i):
if li[j] > li[j+1]:
li[j], li[j+1] = li[j+1], li[j]
if __name__ == "__main__":
li=[6, 2, 1, 4]
bubble_sort(li)
print(li)
간단한 Bubble Sort function을 만들었다.
알고리즘
CodeWars 6kyu. Persistent Bugger
그리고 LeetCode의 Medium Level 문제를 풀려고 했는데 Dynamic Programming 개념이 들어가 쉽지 않다. 주말 내내 풀어야겠다.