# while문 : 반복횟수가 명확하지 않을때 사용
# 기본구조
while 조건식:
실행문장
실행문장2
if 조건식:
실행문장
# 간단 while문 실습 : 1~3까지 출력
number = 1
while number <=3:
print(number)
number +=1 # Python에는 ++없다
1
2
3
# break 멈추는 키워드: while문을 멈춤
# 1~3출력
number = 1
while True:
print(number)
number +=1
if number>3:
break
1
2
3
# while문 활용해서 '파이썬 최고!' 13번 출력해보기
number=1
s = '파이썬 최고!'
while True:
print(s)
number +=1
if number>13:
break
-----------------------
number=1
s = '파이썬 최고!'
while number<=13:
print(s)
number += 1
# 두개의 정수를 입력 받아서 더하는 코드를 작성하시오
#(단, 두개의 정수가 0이 들어올 때 까지 반복한다.)
while True:
a = int(input('첫 번째 정수 입력 >> '))
b = int(input('두 번째 정수 입력 >> '))
if a==0 and b==0:
print('프로그램이 종료되었습니다')
break
print(f'두 정수의 합 : {a+b}')
### 들여쓰기 주의해서
첫 번째 정수 입력 >> 1
두 번째 정수 입력 >> 2
두 정수의 합 : 3
첫 번째 정수 입력 >> 7
두 번째 정수 입력 >> 3
두 정수의 합 : 10
첫 번째 정수 입력 >> 13
두 번째 정수 입력 >> 77
두 정수의 합 : 90
첫 번째 정수 입력 >> 0
두 번째 정수 입력 >> 0
프로그램이 종료되었습니다
현재 몸무게 : 80
목표 몸무게 : 70
1주차 감량 몸무게 : 2
2주차 감량 몸무게 : 3
3주차 감량 몸무게 : 4
4주차 감량 몸무게 : 5
66kg 달성!! 축하합니다!!
# for
- 반복 횟수가 명확할 때
# 기본구조 - 대상들의 크기(길이)만큼 반복
for 변수 in 문자열(or 리스트 or 튜플):
print(변수) #들여쓰기
print(food) #여기서 변수 food에는 for문에서 반복될 동안 초기화 후 문자
#하나만 들어간다 -> 최종적으론 food에 피자 하나만 들어있다
# 튜플 for 예시
tp_ice = ('아몬드봉봉','뉴욕치즈','사빠딸','초코나무숲')
for ice in tp_ice:
print(ice)
아몬드봉봉
뉴욕치즈
사빠딸
초코나무숲
# 문자열 for 예시
hi = '안녕!나는재연이야'
for i in hi:
print(i)
안
녕
!
나
는
재
연
이
야
hi = '안녕!나는재연이야'
for i in hi:
print(i,end = '') -> 개행 없이 순서대로 가로로 출력 /
한칸씩 띄고싶으면 end = ' ' 따옴표 안에 띄어쓰기
안녕!나는재연이야
# 이중리스트
lst = [['현우','A'],['재우','AB'],['나윤','B'],['김중','A'],['진석','O']]
# 각 사람의 혈액형만 출력
for i in lst:
print(i[1])
# print(lst[0][1]) 를 반복문으로 위와 같이 쓸수 있다.
# print(lst[1][1])
# print(lst[2][1])
# print(lst[3][1])
# print(lst[4][1])
# 5명에 대한 정보처리기사 자격증 시험 점수가 리스트에 담겨있다.
# 이때 각 점수가 합격 점수인지 불합격 점수인지 판별하여 출력하시오 (60이상합격)
score_list = [90,45,70,60,55]
cnt = 1
for i in score_list:
if i>=60:
print(f'{cnt}번 학생은 합격입니다.')
else:
print(f'{cnt}번 학생은 불합격입니다.')
cnt +=1
#인덱스번호를 알수있는 함수 사용
for i in score_list:
if i>=60:
print(f'{score_list.index(i)+1}번 학생은 합격입니다.')
else:
print(f'{score_list.index(i)+1}번 학생은 불합격입니다.') # 리스트의 인덱스번호를 알려주는함수
# 리스트.index(i)+1 -> 값이 i인 데이터의 인덱스번호 +1
1번 학생은 합격입니다.
2번 학생은 불합격입니다.
3번 학생은 합격입니다.
4번 학생은 합격입니다.
5번 학생은 불합격입니다.
## range()함수
- 필요한 만큼의 숫자를 만들어내는 유용한 기능
- range(시작할숫자,종료할 숫자,증가량)
- range(1,10,1) -> 1부터 9까지 1씩 증가
- range(1,100,3) -> 1부터 99까지 3씩 증가
- range(10,1,-1) -> 10부터 2까지 -1씩 감소
* range 내 생략
- range(기본값=>0,종료할숫자,기본값=>1)
- 시작값의 기본값=0, 증감값의 기본값=1 : 생략가능
- range(3,10) -> 3부터 9까지 1씩 증가
- range(10) -> 0부터 9까지 1씩증가
# range()예제
for i in range(1,10,1):
print(i,end=' ')
1 2 3 4 5 6 7 8 9
# range()예제
for i in range(10,1,-1):
print(i,end=' ')
10 9 8 7 6 5 4 3 2
for i in range(3,10):
print(i,end=' ') -> 증감값 생략(기본:1)
3 4 5 6 7 8 9
for i in range(8):
print(i,end=' ') -> 시작값 생략 (기본:0), 증감값 생략(기본:1)
0 1 2 3 4 5 6 7
food_list = ['햄버거','타꼬야끼','핫도그']
for i in range(3):
print(i)
0
1
2
food_lst = ['햄버거','타꼬야끼','핫도그']
for i in range(3): -> 3은 리스트의 길이 이므로 len(food_lst)이다
print(food_lst[i])
햄버거
타꼬야끼
핫도그
# 5명에 대한 정보처리기사 자격증 시험 점수가 리스트에 담겨있다.
--이번엔 range() 함수를 써서..
# 이때 각 점수가 합격 점수인지 불합격 점수인지 판별하여 출력하시오 (60이상합격)
score_list = [90,45,70,60,55]
for i in range(len(score_list)): #range(len(score_list)) -> range(5) -> 0부터 4까지 변수i에 넣는다 ==> 인덱스번호
if score_list[i]>=60: # 이제 i가 인덱스 번호를 받아오니까 print문과 if의 조건식을 바꿔준다.
print(f'{i+1}번 학생은 합격입니다.')
else:
print(f'{i+1}번 학생은 불합격입니다.')
1번 학생은 합격입니다.
2번 학생은 불합격입니다.
3번 학생은 합격입니다.
4번 학생은 합격입니다.
5번 학생은 불합격입니다.
# For문을 이용하여 다음 list에 들어있는 요소 중 가장 큰 수를 찾아 출력하세요
list2 = [4,5,2,1,99,15,2,7,27]
# 최댓값
max_num = list2[0]
for i in range(len(list2)):
if list2[i] > max_num:
max_num = list2[i]
for i in list2:
if i>max_num: #range()함수 안쓰고 이렇게도 가능
max_num = i
max_num
99
# 1부터 100사이의 숫자 중 3의 배수인 값들의 합을 출력
sum = 0
for i in range(1,101):
if i%3==0:
sum+=i
print(sum)
1683
# for문을 이용하여 구구단 2단을 출력하시오
for i in range(1,10):
print(f'2*{i} = {i*2}')
2*1 = 2
2*2 = 4
2*3 = 6
2*4 = 8
2*5 = 10
2*6 = 12
2*7 = 14
2*8 = 16
2*9 = 18
영화리뷰데이터 활용 for문 실습
- pkl: pickle 확장자
- pickle 라이브러리: 데이터의 형식을 그대로 보존하면서 저장하는 도구
import pickle #라이브러리 불러오기
# 파일 입출력(다루는 방법)
with open('movie_review.pkl', 'rb') as f:
data = pickle.load(f)
data
[['아 더빙.. 진짜 짜증나네요 목소리', 0],
['흠...포스터보고 초딩영화줄....오버연기조차 가볍지 않구나', 1],
['너무재밓었다그래서보는것을추천한다', 0],
['교도소 이야기구먼 ..솔직히 재미는 없다..평점 조정', 0],
['사이몬페그의 익살스런 연기가 돋보였던 영화!스파이더맨에서 늙어보이기만 했던 커스틴 던스트가 너무나도 이뻐보였다', 1],
['막 걸음마 뗀 3세부터 초등학교 1학년생인 8살용영화.ㅋㅋㅋ...별반개도 아까움.', 0],
['원작의 긴장감을 제대로 살려내지못했다.', 0],
['별 반개도 아깝다 욕나온다 이응경 길용우 연기생활이몇년인지..정말 발로해도 그것보단 낫겟다 납치.감금만반복반복..이드라마는 가족도없다 연기못하는사람만모엿네',
0],
['액션이 없는데도 재미 있는 몇안되는 영화', 1],
['왜케 평점이 낮은건데? 꽤 볼만한데.. 헐리우드식 화려함에만 너무 길들여져 있나?', 1],
['걍인피니트가짱이다.진짜짱이다♥', 1],
['볼때마다 눈물나서 죽겠다90년대의 향수자극!!허진호는 감성절제멜로의 달인이다~', 1],
['울면서 손들고 횡단보도 건널때 뛰쳐나올뻔 이범수 연기 드럽게못해', 0],
등등.... 총 5000개의 리뷰
#리스트 앞에서부터 5개 출력해보기
data[:5]
# 자료 담은 형식 -> 0번째 인덱스 : 리뷰문장, 1번째 인덱스: 감성(0:부정, 1:긍정)
print(data[0][0]) #리뷰문장
print(data[0][1]) #감정
아 더빙.. 진짜 짜증나네요 목소리
0
len(data)
5000
result=0
for i in data:
result += len(i[0])
print(f'리뷰의 평균 길이는 \'{result/5000}\'입니다.')
리뷰의 평균 길이는 '35.4866'입니다.
긍정 리뷰 부정 리뷰 개수 카운팅
0-> 부정 , 1->긍정
bad = 0
gd =0
for i in data:
if i[1] == 0:
bad += 1
elif i[1] == 1:
gd += 1
print(f"긍정리뷰는 {gd}개 입니다")
print(f"부정리뷰는 {bad}개 입니다")
긍정리뷰는 '2499'개 입니다
부정리뷰는 '2501'개 입니다
ㅋ이 포함된 리뷰 갯수는?
sum =0
for i in data:
if 'ㅋ' in i[0] :
sum += 1
print(f"'ㅋ'가 포함된 리뷰는 {sum}개 입니다.")
'ㅋ'가 포함된 리뷰는 328개 입니다.
-> 입력받은 문자가가 포함된 리뷰를 구하려면?
s = input('찾을 문자를 입력하세요>>')
if s in i[0] :
sum += 1
A = [70,60,55,75,95,90,80,80,85,100]
total = 0
for score in A:
total += score
average = total/len(A)
print(average)
-> 한줄로 sum(A)/len(A)로 쓸수 있다.
79.0
'빅데이터 서비스 교육 > Python' 카테고리의 다른 글
Python 함수 (0) | 2022.05.03 |
---|---|
Python 딕셔너리 (0) | 2022.05.03 |
Python 튜플 (0) | 2022.04.29 |
Python 리스트 (0) | 2022.04.29 |
Python 조건문 (0) | 2022.04.29 |