[반복문]
- 특정 실행을 반복하는 것
- 프로그래밍이 간결하고 유지 보수가 쉬움
- 횟수에 의한 반복 / 조건에 의한 반복
- 횟수 : 횟수 만큼 반복 실행 -> for
- 조건 : 조건에 만족할 떄까지 반복 실행 -> while
[for문 : 횟수에 의한 반복문]
ex) 대량 메일 또는 문자 발송, 인사말 반복, mp3 반복 재생
- for ~ in
for 변수 in 범위:
실행문
- in 뒤에는 iterable한 자료 구조가 나오면 됨
- 자료 구조 안에 요소들이 하나씩 출력된다고 생각하면 된다.
- range(5) = [0, 1, 2, 3, 4]
- N번 반복하고 싶으면 range(N)이라고 기억하면 좋을 것 같다.
- 구구단 7단을 for 문으로 코딩해보기
- pass 키워드 : 코딩을 나중에 할거면 pass를 넣으면 에러가 뜨지 않음
- (코드 블록) 들여쓰기도 신경써야 함! 통일!
[range()]
- range(시작, 끝, 단계)
- 끝 번호는 포함하지 않는 것이 원칙
ex) range(1, 11, 1) - 1부터 10까지 1씩 증가하는 리스트
- 단계가 1인 경우는 마지막 요소 생략 가능 ex) range(0,11,1) -> range(0,11)
- 시작이 0인 경우는 처음 요소 생략 가능 ex) range(0,11) -> range(11)
- 예제) 사용자가 반복의 시작과 끝을 입력하면 1씩 증가하는 반복문을 만들어보라.
[while문 : 조건에 의한 반복]
- 조건에 만족하면 반복 실행, 그렇지 않으면 반복 중단
ex) 매일 아침 기상 알람, 게임 반복 실행, 타이머
while 조건식 :
실행문
- while 문으로 구구단 7단 코딩
- while 문에서도 pass 사용 가능하고, 들여쓰기 신경 쓰기!
- 조건식의 결과가 항상 True인 경우에 무한 루프.
- 그래서, 조건식에 그냥 True / Flase 등 논리형 데이터를 사용하면 무한 루프를 이용할 수 있음
- 무한루프 활용해서 다음 예제 풀기
Cf. for문과 while문의 비교
- for문이 적합한 경우 : 횟수에 의한 반복
- while문이 적합한 경우 : 조건에 의한 반복
[continue / else / break]
- continue : 반복 실행 중 continue를 만나면 실행을 생략하고, 다음 반복 실행문으로 넘어간다.
- continue 아래 있는 것은 실행 하지 않는 것!
ex) 100 미만의 정수 중 7의 배수만 출력하는 반복문을 코딩하면, continue 아래는 if 조건에 따라 실행 여부 결정
for i in range(100):
if i % 7 != 0:
continue
print(i)
- else : 반복문이 종료된 후 실행된다.
ex) 100 미만의 정수 중 7의 배수만 출력하는 반복문을 실행한 후, 이 배수의 갯수를 구할 수 있음
cnt = 0
for i in range(100):
if i % 7 != 0:
continue
print(i)
cnt += 1
else:
print(cnt)
- break : 실행을 중단하고 반복문을 빠져나오자!
- break는 무한 루프에서 이용하면 좋다.
ex) 5보다 커지면 반복문 빠져나오도록 코딩
num = 0
while True:
print("Hello")
num += 1
if num >= 5:
break
print("The END!")
예제) 10의 팩토리얼(10!)을 계산하는 과정에서 결과값이 50을 넘을 때의 숫자를 구하자.
[중첩 반복문]
- 반복문 안에 또 반복문
예시) 별표를 하나씩 증가하면서 출력됨
for i in range(1, 10):
for j in range(i):
print('*', end='') #개행하지 않음
print() #개행함
예시2) 별표를 하나씩 감소하면서 출력됨
for i in range(10, 0, -1):
for j in range(i):
print('*', end='') #개행하지 않음
print() #개행함
예시3) 구구단 전체 출력
[파이썬 퀴즈]
- 파이썬 언어를 만든 사람 : 귀도 반 로섬
- 파이썬 특징
1) 문법 구조가 쉬워서 비전공자도 쉽게 배울 수 있다.
2) 언어도 뛰어나지만, 모듈(라이브러리)가 많아서 개발 시간이 단축된다.
3) 무한 정수를 처리할 수 있다.
4) 온라인상에 커뮤니티가 잘 형성되어 있어 많은 정보를 얻을 수 있다.
- Pycharm 특징
1) 훌륭한 코딩 툴이며, 무료의 프로그램이다.
2) JetBrains에서 만들었으며, 누구나 무료로 이용할 수 있다.
3) Pycharm을 설치하기 전에 Python을 설치해야 한다.
4) Phcharm을 이용해서 코딩을 하고 파일을 저장할 수 있다.
[연습문제 - 데이터와 변수]
- len() : 문자 길이를 반환함
- find() : 특정 문자열의 위치를 찾아 반환함
article = '~~~~~~'
index_word = article.find("객체지향")
print(index_word)
- str[0] : str에 저장된 문자열에서 첫 번째 문자를 반환함
- indigit() : 숫자인지 확인 -> 숫자이면 True, 아니면 False
if weight.indigit():
weight = int(weight) / 10
- datetime 모듈 : 날짜와 시간 정보를 알려주는 모듈
import datetime
today = datetime.datetime.today() # 오늘 날짜
myAge = input("나이 입력: ")
if myAge.isdigit():
afterAge = 100 - int(myAge)
myHundred = today.year + afterAge # today.year은 오늘의 연도
print(f'{myHundred}년({afterAge}년 후)에 100살!')
else:
print("잘못 입력했습니다")
[연습문제 - 연산자]
- 상품 가격과 지불 금액을 입력 받아서, 거스름돈을 거스르는 방법을 출력하는 프로그램 만들기
- 점수의 최고점과 최저점의 차이를 출력하는 프로그램
result = []
Kor = int(input("국어 점수 입력: "))
Eng = int(input("영어 점수 입력: "))
Mat = int(input("수학 점수 입력: "))
sum = Kor + Eng + Mat
avr = sum / 3
print(f"총점: {sum}")
print("평균: %.2f" %avr)
print("-"*30)
result.append(Kor) ; result.append(Eng) ; result.append(Mat)
max_r = max(result) ; min_r = min(result)
if max_r == Kor:
writeMax = "국어"
elif max_r == Eng:
writeMax = "영어"
else:
writeMax = "수학"
if min_r == Kor:
writeMin = "국어"
elif min_r == Eng:
writeMin = "영어"
else:
writeMin = "수학"
print(f"최고 점수 과목(점수): {writeMax}({max_r})")
print(f"최저 점수 과목(점수): {writeMin}({min_r})")
print(f"최고, 최저 점수 차이: {max_r - min_r}")
print("-"*30)
- format(숫자, ',') : 천 단위로 반점 붙여줌
- 금액, 이율, 거치기간 입력하면 복리 계산하는 복리 계산기
- 60m 올라갈 때마다 기온이 0.8도 내려간다고 할 때, 고도를 입력하면 기온이 출력되는 프로그램 (지면온도는 29도)
- 197개의 빵, 152개의 우유를 17명의 학생이 동일한 갯수로 나눠 가지고, 남은 갯수를 표시해주는 프로그램
- divmod(나눠질 수, 나눌 수) = (몫, 나머지)
온라인 강의 3일차 후기
오 문제 풀어보니까 공부한 것들이 더 머리에 들어오는 느낌이다.
이래서 다들 이론만 보지 말고, 코테 바로 시작해서 부딪쳐보라는 건가..?
얼른 강의 다 듣고 후다닥 따라가야지
나도 얼른 데이터 사이언티스트 하고 싶다.. 헝헝
- 네카라쿠배 데이터사이언스 오프라인 1기 수강 中
'Data Science > Python Introduction' 카테고리의 다른 글
[6일차] 기초수학 연습문제로 마무리하고, 자료구조 시작! (0) | 2021.10.17 |
---|---|
[5일차] 기초수학 왕창 듣는데, 파이썬 구현하는 거에 맛 들림 (0) | 2021.10.13 |
[4일차] 파이썬으로 코딩 예제 풀고, 기초수학 출발 (0) | 2021.10.12 |
[2일차] 연산자와 조건문 뽀개기 (0) | 2021.10.08 |
[1일차] 파이썬이랑 친구하기로 함.. (Pycharm 초기 오류, 파이썬 데이터 기초) (0) | 2021.10.07 |
댓글