오늘 오전에 배운내용들이다
for문은 언젠가는 끝나지만 while은 break 를 설정해주지않는한 컴퓨터가 터지기직전까지 작동한다고한다
이 외에 자주쓰는 모듈로 로또번호 만드는방법
import random
from pprint import pprint
lotto = set() # lotto 변수를 set 자료형으로 선언
def get_lotto_number(count):
result = []
if count < 1:
print("1 이상의 값을 입력해주세요")
for _ in range(count): # count만큼 반복해서 실행
lotto = set()
while len(lotto) < 8: # lotto의 요소 갯수가 8 이하일 경우 계속해서 반복
lotto.add(random.randint(1, 45)) # lotto에 1~45 사이의 랜덤 값을 입력
result.append(lotto)
return result
lotto_numbers = get_lotto_number(10)
pprint(lotto_numbers)
pprint 는 pretty print 의약자이며 보다 출력문이 깔끔하게 나온다.
오늘배운내용으로 야구게임 만들기.
from random import randint
def BaseBall():
Base = []
i = 0
new_Base =0
while i <3 :
new_Base=randint(0,9)
if new_Base not in Base:
Base.append(new_Base)
i +=1
print("0과 9 사이의 서로 다른 숫자 3개를 랜덤한 순서로 뽑았습니다.\n")
return Base
def inputs():
print("숫자 3개를 입력하세요")
i=0
new_inputs=[]
while i<3:
inputs_number = int(input("{}번쨰 숫자를 입력하세요 ".format(i+1)))
if inputs_number > 9:
print("다시입력")
continue
if inputs_number in new_inputs:
print("중복되는 숫자입니다")
else:
new_inputs.append(inputs_number)
i +=1
return new_inputs
def get_score(input,answer):
strike_count=0
ball_count=0
i=0
while i < len(input):
if input[i] == answer[i]:
strike_count += 1
i += 1
elif input[i] in answer:
ball_count += 1
i +=1
else:
i+=1
return strike_count,ball_count
tAnswer =BaseBall()
ttry=0
while 1:
tinput = inputs()
strike,ball = get_score(tinput,tAnswer)
print("{}s {}b".format(strike,ball))
if strike == 3:
ttry +=1
break
else:
ttry +=1
print("축하합니다. {}번 만에 숫자 3개의 값과 위치를 모두 맞추셨습니다.".format(ttry))
직접 코드짜고 모르는거 검색하다가 점수계산하고 리스트간의 비교하는거부터 포기하고 다른사람이 작성한 코드를 봐가며 비교했다.오늘 일과중 절반이상을 여기다가 쏟아 넣었는데. 너무어렵다.