[연습문제]
- 점수별 결과 출력 프로그램 코딩 연습
# 점수 입력받기
score = [0,0,0,0,0]
score[0] = int(input("국어 점수를 입력하세요."))
score[1] = int(input("영어 점수를 입력하세요."))
score[2] = int(input("수학 점수를 입력하세요."))
score[3] = int(input("과학 점수를 입력하세요."))
score[4] = int(input("국사 점수를 입력하세요."))
#총점, 평균, 편차 출력
index = ['국어', '영어', '수학', '과학', '국사']
everyone = [85, 82, 89, 75, 94]
sum_everyone = sum(everyone)
avr_everyone = int(sum_everyone / 5)
# 편차 구하기
diff = [0,0,0,0,0]
for i in range(len(index)):
diff[i] = score[i] - everyone[i]
# 총점과 평균
sum_score = sum(score)
avr_score = int(sum_score / 5)
diff_score = [sum_score-sum_everyone, avr_score-avr_everyone]
# 1단락 출력
print('-' * 70)
print(f"총점: {sum_score}({diff_score[0]}), 평균: {avr_score}({diff_score[1]})")
for j in range(5):
print(f"{index[j]}: {score[j]}({diff[j]})", end="")
if j == 4:
break
print(", ", end="")
print()
print('-' * 70)
# 2단락 출력 : marker 선택
marker = ""
for k, p in enumerate(diff):
if p < 0:
marker = "-"
print(f"{index[k]} 편차: {marker * ((-1) * p)}({p})")
else:
marker = "+"
print(f"{index[k]} 편차: {marker * p}({p})")
# 3단락 출력
for q, r in enumerate(['총점', '평균']):
if diff_score[q] < 0:
marker = "-"
print(f"{r} 편차: {marker * ((-1) * diff_score[q])}({diff_score[q]})")
else:
marker = "+"
print(f"{r} 편차: {marker * diff_score[q]}({diff_score[q]})")
print('-' * 70)
- 일일히 출력 안 하고 반복문으로 조금 돌아서 코딩해봤는데, enumerate()도 써 보고 좋았다.
- 난수를 이용해서 홀/짝 게임 만들기
- 난수를 이용해서 가위바위보 게임 만들기
import random
answer = int(input("가위바위보를 선택해주세요. (가위는 1, 바위는 2, 보는 3) "))
randomResult = random.randint(1,3)
while answer != 1 and answer != 2 and answer != 3:
answer = int(input("잘못 입력하셨습니다. 다시 입력해주세요. (가위는 1, 바위는 2, 보는 3) "))
result_final = ["무승부", "유저 승리", "유저 패배"]
if answer == 1:
if randomResult == 1:
print(result_final[0])
elif randomResult == 3:
print(result_final[1])
else:
print(result_final[2])
if answer == 2:
if randomResult == 2:
print(result_final[0])
elif randomResult == 1:
print(result_final[1])
else:
print(result_final[2])
if answer == 3:
if randomResult == 3:
print(result_final[0])
elif randomResult == 2:
print(result_final[1])
else:
print(result_final[2])
- 오늘 날짜와 관련한 코딩
import datetime
today = datetime.datetime.today() # 오늘 날짜와 시간 불러오기
today.day # 날짜만 꺼내기
- PC에서 난수를 발생시키면 사용자가 그 난수를 맞추는 게임(시도횟수는 20회까지만 가능하다.)
import random
numberUser = int(input("1에서 1000까지의 정수 중 하나를 선택하세요. "))
print()
numberGame = random.randint(1,1000)
iter = 1
while (numberUser != numberGame) and iter < 20:
if numberGame > numberUser:
print("더 높은 숫자를 입력하세요.")
numberUser = int(input("1에서 1000까지의 정수 중 하나를 선택하세요. "))
print()
iter += 1
else:
print("더 낮은 숫자를 입력하세요.")
numberUser = int(input("1에서 1000까지의 정수 중 하나를 선택하세요. "))
print()
iter += 1
if numberUser == numberGame:
print("정답입니다.")
print(f"{iter}회만에 정답 '{numberGame}'을 맞추셨습니다.")
elif iter == 20:
print("실패하셨습니다.")
print(f"{iter}회의 기회를 모두 사용하셨습니다. 정답은 '{numberGame}'입니다.")
- 강의에서는 이렇게 했다. 이 코딩이 더 좋은 것 같다. 무한루프를 활용했다.
- 1부터 사용자가 입력한 정수까지의 합, 홀수의 합, 짝수의 합, 팩토리얼을 출력하는 프로그램 만들기
- 천 단위 소숫점 붙이는거 : {:,} ~ .format(변수)
- 변수에 소숫점 넣어서 저장하는 방법
변수 = format(~~~~~~~~, ',')
- 버스 동시 정차시간 출력 프로그램
- 톱니의 수와 바퀴 회전수 출력 프로그램
# 톱니수 입력
countA = int(input("작은 톱니바퀴 수를 입력하세요."))
countB = int(input("큰 톱니바퀴 수를 입력하세요."))
while countA >= countB:
if countA >= countB:
print("잘못 입력하셨습니다.\n")
countA = int(input("작은 톱니바퀴 수를 입력하세요."))
countB = int(input("큰 톱니바퀴 수를 입력하세요."))
changeA = countA
changeB = countB
question = False
while question == False:
changeA += countA
if (changeA % countB == 0):
question = True
print(f"최초로 만나는 시기는 톱니 수 {changeA}개 째일 때입니다.")
print(f"작은 톱니바퀴는 {changeA // countA}회전을 했습니다.")
print(f"큰 톱니바퀴는 {changeA // countB}회전을 했습니다.")
[약수와 소수]
- 약수 : 어떤 수를 나누어 떨어지게 하는 수
- 소수 : 1과 자신만을 약수로 가지는 수(단, 1은 제외) ex) 2,3,5,7,11,13,17,19
예제) 1부터 30까지의 숫자 중 5로 나눈 몫과 나머지가 모두 소수인 숫자를 찾아보자.
-> 몫은 1~6 중에 나올거고, 나머지는 0~4가 나올 것이다.
-> 몫은 2,3,5, 나머지는 2,3이 소수니까 -> 12, 13, 17, 18, 27, 28이 정답
- 파이썬을 이용해서 약수와 소수 찾기
1) 파이썬으로 약수 : 나눠서 나머지가 0이면 약수.
2) 파이썬으로 소수 : range(2, num)까지 돌려서 나머지가 0이 아니면 소수.
[소인수분해]
- 수를 소인수의 곱으로 나타내자.
- 약수 중에서 소수인 숫자를 소인수라고 함
- 20의 약수는 1, 2, 4, 5, 10, 20이며, 20의 소인수는, 2, 5임
- 소인수분해 : 1보다 큰 정수를 소인수의 곱으로 나타낸 것
- 소인수분해를 통해 약수를 찾을 수 있음
- 파이썬으로 소인수분해 : 하나씩 키워서 나누는 것을 반복
예제) 72에 x를 곱하면 y의 제곱이 된다고 할 때, x에 해당하는 가장 작은 정수를 구하는 프로그램
-> 72가 N이라면 가능할 수 있도록 구현
온라인 강의 4일차 후기
실습 예제를 풀면서 강의를 들으니까 더 오래 걸리는 듯하다.
생각보다 이것저것 생각하면서 풀 수 있게 해주는 것 같아서 좋다.
코딩테스트 잘하고 싶다.. 기초부터 차근차근 아자아자.
- 네카라쿠배 데이터사이언스 오프라인 1기 수강 中
'Data Science > Python Introduction' 카테고리의 다른 글
[6일차] 기초수학 연습문제로 마무리하고, 자료구조 시작! (0) | 2021.10.17 |
---|---|
[5일차] 기초수학 왕창 듣는데, 파이썬 구현하는 거에 맛 들림 (0) | 2021.10.13 |
[3일차] 반복문 완료, 그리고 복습하면서 연습문제 풀어봤음 (0) | 2021.10.11 |
[2일차] 연산자와 조건문 뽀개기 (0) | 2021.10.08 |
[1일차] 파이썬이랑 친구하기로 함.. (Pycharm 초기 오류, 파이썬 데이터 기초) (0) | 2021.10.07 |
댓글