for crime in ['강간', '강도', '살인', '절도', '폭력']:
pvt2[f'{crime} 검거율'] = pvt2[f'{crime}(발생)'] / pvt2[f'{crime}(검거)'] * 100
이렇게 해서 넣어주었어요 (파일 이름 : pvt2)
crime이라는 이름의 리스트를 만들어주었구요
f{} 이렇게 써서 편하게 쓸 수 있어요!
이걸 포매팅이라고 하거든요! 종류가 다양한데,
포매팅은 내일 공부할 겁니다 😎
결과물 아 ~ 주 예뻐서 맘에 들어용 ㅎㅎㅎ
오후 ( 14 : 00 ~ 18 : 00 )
정신없이 찾아보고 물어보고
팀원 분들이랑 소통도 하니까 점심 시간이더라구요
그래서 후다닥 밥 챙겨 먹고,
매니저 님께 git hub 꿀팁 얘기도 듣고 난 후에
남은 문제들 풀어보았습니다!
<Quiz 6_필요없는 column을 del을 써서 삭제하기>
삭제 해봅시다 😎
# Quiz 6_del 사용해서 필요없는 컬럼 삭제하기
for delete_columns in ['강간(검거)','강도(검거)','살인(검거)','절도(검거)','폭력(검거)','소계(발생)','소계(검거)']:
if delete_columns in pvt2:
del pvt2[f'{delete_columns}']
print(pvt2)
앞서 컬럼을 한 번에 생성했듯이
삭제도 같은 방식으로 해보았어요
되네요..?
됐다고 나오니까 오히려 불안했어요,, 👀
그래서 확인 받으러 튜터 님께 갔죠?
# Quiz 6_del 사용해서 필요없는 컬럼 삭제하기
for delete_columns in ['강간(검거)','강도(검거)','살인(검거)','절도(검거)','폭력(검거)','소계(발생)','소계(검거)']:
if delete_columns in pvt2:
del pvt2[delete_columns]
print(pvt2)
word = "Python"
print(f"단어 '{word}'의 길이는 {len(word)}입니다.")
함수 len()이 들어가서도 작동이 가능해요!
대신 {len()} 구조로 들어가야 하네요!
단어 'Python'의 길이는 6입니다.
6. 할당하기 (=)
x = "배"
y = "민경"
print(f"{x=}, {y=}") # 변수명과 값 출력
오,, ㅋㅋㅋㅋㅋㅋㅋㅋ
재밌네요! 되게 유용하네요
다양하게 많이 쓰이니까, 신기한 거 같아요
한 번 더 파일명을 언급하지 않아도 된다는 것도 너무 좋구요!
<Quiz 7_ rename>
드디어 마지막 문제입니다!!
rename을 해볼게요!
이번에도 for문으로 해결할 겁니다!
# Quiz 7. rename하기
# 1트
for rename_columns in {'강간(발생)':'강간','강도(발생)':'강도','살인(발생)':'살인','절도(발생)':'절도','폭력(발생)':'폭력'}:
if rename_columns in pvt2:
pvt2.rename(rename_columns)
될 줄 알았는데 안 되더라구요
# 오류 내용
TypeError: Index(...) must be called with a collection of some kind, '강간(발생)' was passed
#딕셔너리 여러 개 합치기
# 문제 5: 두 개의 딕셔너리가 주어졌을 때, 두 딕셔너리를 합친 새로운 딕셔너리를 만들어 출력하세요. (중급)
# 출력 예시 : {'name': '최준호', 'score': 75, 'age': 24, 'major': '영문학'}
student1 = {
'name': '최준호',
'score': 75
}
student2 = {
'age': 24,
'major': '영문학'
}
#딕셔너리에서 특정 키가 존재하는지 확인
# 문제 6: 주어진 딕셔너리에서 name 키가 존재하는지 확인하고, 존재하면 "키가 존재합니다"를 출력하고,
# 존재하지 않으면 "키가 없습니다"를 출력하세요. (중급)
# 출력 예시 : 키가 존재합니다
student = {'name': '이하늘','age': 28}
#1트
for i in student6:
if student6 == 'name':
print("키가 있습니다")
else:
print("키가 없습니다")
키가 없습니다
키가 없습니다
??????
왜 print()가 두 번이 되는지도 궁금하고
print(type(student6) 했을 때
dict로 나와서 그런 걸까요? 적용이 안 되네요..? 🧐
이 고민을 하면서 30분이나 걸린 문제입니다..
물론 튜터 님과 매니저 님께 자문을 구하였지만,
돌아와서 다시 혼자 생각을 해보니까
비슷한 문제가 생겼을 때,
스스로 해내진 못 할 거 같더라구요 🥲
그래서
혼자 다시 생각해보았습니다
제가 간과했던 개념이, for은 순차적으로 순회 검사를 한다는 거였어요
그래서 결과값이 두 번이나 나왔던 거고,
#2트
if i == 'name':
print("키가 있습니다")
else:
print("키가 없습니다")
if문 뒤에 적었던 student6는 dict의 타입이기 때문에
== 뒤에 오는 'name'과는 타입이 안 맞아서 오류가 났더라구요
그래서 if 뒤에 i를 적어주고 다시 돌려보았습니다.
Traceback (most recent call last):
File "/Users/baeminkyung/Desktop/딕셔너리 문제.py", line 63, in <module>
if i == 'name':
^
NameError: name 'i' is not defined. Did you mean: 'id'?
오류를 돌려받았습니다 ㅎ
생각해보니까 ㅋㅋㅋㅋㅋ i라는 거는 for을 위해서 만든 애기 때문에
지워주거나 student6로 바꿔줘야 했는데 말이죠 ㅋㅋㅋㅋ,,
# 3트
if student6 :
print("키가 존재합니다")
else:
print("키가 없습니다")
if student6.get('name'):
print("키가 존재합니다")
else:
print("키가 없습니다")
키가 존재합니다
전 저 자신에게 무궁무진한 박수와 칭찬을 해주고 싶어요
문제 풀다가 막혀서 혼자 처음엔 낑낑거리다가
자문을 구하러 여기저기 돌아다니고,
힌트를 받아서 혼자 생각하고 해낸 게 짜릿했습니다
어쨌든 해냈다는 거고? 도파민도 팡팡 터지네요 🤪
<문제 7 . 중첩된 딕셔너리>
#중첩된 딕셔너리
# 문제 7: 다음과 같은 중첩된 딕셔너리에서 address 값을 출력하는 프로그램을 작성하세요. (고급)
# 출력 예시 : 서울시 강남구
person = {
'name': '김하나',
'contact': {
'email': 'hana@naver.com',
'phone': '010-1234-5678'
},
'address': '서울시 강남구'
}
Parameter : Description keyname : Required. The keyname of the item you want to return the value from value : Optional. A value to return if the specified key does not exist. Default value None
#딕셔너리 값에 리스트 포함하기
# 문제 8: 주어진 student_scores 딕셔너리에서 각 학생의 점수를 평균을 구하여 출력하세요. (고급)
# 출력 예시
#홍길동의 평균 점수: 87.67
#이영희의 평균 점수: 85.00
#김철수의 평균 점수: 92.33
student_scores = {
'홍길동': [85, 90, 88],
'이영희': [78, 82, 95],
'김철수': [92, 94, 91]
}
홍 = student_scores.get('홍길동')
이 = student_scores.get('이영희')
김 = student_scores.get('김철수')
# 1트
print(avg("홍길동의 평균 점수:" "홍","이영희의 평균 점수:" "이",
"김철수의 평균 점수:" "김"))
Traceback (most recent call last):
File "/Users/baeminkyung/Desktop/딕셔너리 문제.py", line 118, in <module>
print(avg("홍길동의 평균 점수:" "홍","이영희의 평균 점수:" "이",
^^^
NameError: name 'avg' is not defined
?????? 아니 Python에 avg()가 없어요?????
SQL에만 있는 거예요??????
# 2트
평균 = sum(student_scores) / len(student_scores)
print("평균")
Traceback (most recent call last):
File "/Users/baeminkyung/Desktop/딕셔너리 문제.py", line 122, in <module>
평균 = sum(student_scores) / len(student_scores)
~~~^^^^^^^^^^^^^^^^
TypeError: unsupported operand type(s) for +: 'int' and 'str'
baeminkyung@baemingyeong-ui-MacBookAir Desktop %
'타입이 달라서 안 되는구나,,'
미치겠어요
와,, 머리가 안 굴러 가요 ㅠㅠㅠ
계속 머리를 굴리다가 점심 시간이 되어서 잠시 멈추었습니다..
오후 (14 : 00 ~ 18 : 00)
점심시간이 지난 후,
내일은 팀별로 발표가 있기 때문에 팀 회의가 조금 길어졌어요
16시부터 18시까지 회의를 하게 되어서
16시 전까지 발표장표를 각자 만들어 오기로 했거든요!
제일 마음에 드는 부분입니다
내일 제가 발표하기 때문에 파일을 계속 돌아보면서
모의 발표 연습도 해보았습니다
시간 정말 금방 가네요 😭
저녁 (19 : 15 ~ 21 : 00)
#딕셔너리 값에 리스트 포함하기
# 문제 8: 주어진 student_scores 딕셔너리에서 각 학생의 점수를 평균을 구하여 출력하세요. (고급)
# 출력 예시
#홍길동의 평균 점수: 87.67
#이영희의 평균 점수: 85.00
#김철수의 평균 점수: 92.33
student_scores = {
'홍길동': [85, 90, 88],
'이영희': [78, 82, 95],
'김철수': [92, 94, 91]
}
저녁이 되어서는
오전에 풀다가 멈춘 8번 문제를 다시 보았습니다.
# 3트 - 튜터 님과 함께
for k in student_scores.keys():
print(k)
total = 0
for v in student_scores.values():
# print(v)
total += v
print(total)
print(len(v))
# print(sum(v)) / len(v) -> for문 안이 아니라 밖에서 print() 돌려서 타입이 다름
안녕하세요! 오늘은 문제를 더 많이 풀어보면서 제 코딩 실력을 확인하고, 증진하려고 해요!
하루종일 문제를 풀어댈 거랍니다 😋
오전(09 : 00 ~ 13 : 00)
오늘은 튜터 님께 어제 받은 6가지 문제를 풀어보았어요!
개념 강의는 많이 들었지만,
막상 문제를 풀려고 하니까 막막하더라구요..??
코드를 전혀 짜내질 못 했습니다 👀
그래서
이전에 공부하면서 손으로 적어두었던
노트와 python 자료들을 하나하나 다시 읽으면서 해보았어요
#1 숙제 Hello World를 5번 출력
#1 Hello World를 5번 출력
a = 5
print(type(a))
while a > 0:
print("Hello World")
a -= 1
#결과값
<class 'int'>
Hello World
Hello World
Hello World
Hello World
Hello World
a = 5라고 입력한 이유가
총 5번을 반복하려고 했기 때문에 넣었구요
혹시 타입이 뭘로 나오는지도 궁금해서 해봤습니다
정수로 표시되는 Int()로 나오더라구요!
그리고
조건식이 거짓이 되면 계산이 종료되는 while을 작성 후
범위값이 없으면 무한동력으로 돌아가기 때문에
a > 0:으로 범위값 설정해주고
제가 원하는 print("Hello World")를 입력해주었습니다
마지막으로
a 값이 점점 줄어들기 위하여
a -= 1이라는 조건을 넣어서 완성하였습니다!
#4 숙제 Hello World 4번 출력
b = [1,2,3,4]
print(type(b))
for i in b:
print("Hello World")
if b != [1,2,3,4]:
break
#결괏값
<class 'list'>
Hello World
Hello World
Hello World
Hello World
앞서 동일안 문제이지만 이번엔 다르게 풀어보았습니다
for을 사용하여 풀어보았는데요!
for은 리스트, 튜플, 문자열을 받아서 하기 때문에
b = [1,2,3,4]로 설정하였습니다! 총 4개를 출력할 거니까요
b가 list로 잘 들어갔는지 type()으로 확인해주고
for i in b:
출력하려는 print("Hello World")을 입력 후
for은 순차적으로 계속 순회하기 때문에 break를 써서 멈춰주었습니다.
멈추기 위하여 조건식을 붙여줬구요
if b != [1,2,3,4]:
break으로요!
list에 4개의 값이 있기 때문에 결괏값에도 Hello World가 4개 출력되었습니다!
너무 재밌네요!
#5 숙제 numbers = [1, 2, 3, 4, 5] 순회를 돌아 numbers 요소 출력
#5 순회를 돌아 numbers 요소 출력
numbers = [1,2,3,4,5]
for i in numbers:
print(i)
#결괏값
1
2
3
4
5
"순회"라는 단어에 힌트를 얻어서 for문으로 완성하였습니다
for문은 리스트, 튜플, 문자열 타입을 순차적으로 순회하죠?
그래서 for문 양식대로 입력하여 원하는 결괏값을 도출하였습니다.
#6 숙제 1부터 4까지 합 계산
e = [1,2,3,4]
print(sum(e))
#결괏값
10
[]이 괄호를 사용하면 그 값은 리스트가 되잖아요?
튜플()로 입력하려다가 값이 바뀔수도 있기 때문에
[]괄호를 써서 입력하였습니다
그 뒤로는 print(sum(e))를 작성하여 결괏값을 도출하였습니다.
#2 숙제 1부터 44까지 짝수만 출력
#2 1부터 44까지 짝수만 출력
c = 1
while c <45:
if c %2 == 0:
print(c)
c += 1
#결괏값
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
c로 시작 숫자를 알려주고
While c > 45:라는 범위값을 설정한 후
if c%2 ==0: 이면 짝수죠? 그래서 조건식을 붙였습니다
print(c)를 해준 뒤
c 값이 +=1 씩 증가할 거라고 조건식도 넣어주었습니다
그리하여 1 ~ 44까지의 범위 중 짝수들만 도출하였습니다!
#3 숙제 1부터 44까지 짝수는 *4, 홀수는 그냥 출력
#3 1부터 44까지 짝수는 * 4, 홀수는 그냥 출력 (모르겠음)
f = 1
while f <45:
if f %2 == 0:
if f %2 != 0:
자동화 작업 : 일정한 패턴의 작업을 반복해야 할 때. (100번의 반복 작업을 수행해야 하는 경우)
조건에 따른 반복 : 특정 조건이 만족될 때까지 작업을 반복하는 경우 (사용자가 올바른 값을 입력할 때까지 계속 입력을 요구하는 경우)
1.3 제어문과 반복문의 결합
특징
더욱 복잡한 논리 흐름을 만들 수 있음
반복문 앞에서 조건문을 사용하여 특정 조건을 만족할 때만 반복을 계속하거나, 반복을 중단할 수 있음
사용처
조건부 반복 : 특정 조건이 만족될 때까지 반복을 실행
반복 중 조건 처리 : 반복 과정 중 조건을 체크하여 특정 작업을 수행하거나, 반복을 중단하는 기능을 추가.
1.4 프로그래밍에서의 중요성
유연성 : 제어문과 반복문을 사용하면 프로그램이 다양한 상황에 대처할 수 있음
코드 재사용 : 반복문을 통해 동일한 작업을 여러 번 반복할 수 있으므로, 코드의 길이를 줄이고 유지보수를 쉽게 할 수 있음
자동화 : 반복문을 활용하여 대량의 데이터 처리나 반복 작업을 자동화할 수 있음
2. Python 조건문
개념
프로그램에서 주어진 조건에 따라 특정 코드 블록을 실행하거나 건너뛰는 기능을 함
조건문을 통해 프로그램은 단순한 순차적 실행을 넘어서 결정을 할 수 있게 됨
2.1 If문
if 뒤에는 조건이 오고, 조건이 참(True)이면 해당 코드 블록이 실행됨.
if 조건식:
실행할 코드
#If문
age = 20
if age > 19:
print("성인입니다")
#결괏값 = 성인입니다
여기서 포인트가 되는 것은
하나의 코드를 입력 후 들여 쓰기를 해서 Print()를 하게 된다면
해당 코드에 관한 Print()가 됩니다!
들여 쓰기를 유용히 쓰면 될 거 같네요!
if문 예시
#If문 실습
## 사용자로부터 나이를 입력받아 성인인지 아닌지 판단하는 프로그램
age = int(input("나이를 입력하세요: "))
반드시 Int()를 입력하여야 문자열을 정수로 변환해 주기 때문에 꼭!! 입력하셔야 합니다!
실습
#If문 실습
age = 20
if age >= 18:
print("성인입니다")
#결괏값 = 성인입니다
2.2 else문
개념 : else문은 if문의 조건이 거짓(False) 일 때 실행되는 코드 블록
else문 예시
if 조건식 :
실행할 코드 (조건이 참일 때)
else :
실행할 코드 (조건이 거짓일 때)
실습
#If + else문 실습
age = 17
if age >= 18:
print("성인입니다")
else:
print("미성년자입니다.")
#결괏값 = 미성년자입니다.
2.3 elif문
특징
여러 개의 조건을 순차적으로 검사할 때 사용함
if문 다음에 여러 개의 elif문을 사용하여 각 조건을 순서대로 검사함
처음으로 참인 조건이 발견되면 해당 코드 블록이 실행됨
주의점
큰 값이 위로 올라와야 하며 밑으로 내려갈수록 작은 값이어야 함!
elif문 예시
if 조건식1:
실행할 코드1
elif 조건식2:
실행할 코드2
elif 조건식3:
실행할 코드3
else:
실행할 코드4 (모든 조건이 거짓일 때)
실습
#If + elif + else문 실습
age = 31
if age > 19:
print("성인입니다.")
elif age > 30:
print("확실한 성인입니다.")
else:
print("미성년자입니다.")
#결괏값 = 성인입니다.
age가 31인데 결괏값이 "확실한 성인입니다."가 나오지 않았죠?
왜냐하면
elif문은 순차적으로 검사하기 때문에 그렇습니다.
그렇기 때문에 이렇게 수정해 준다면
#If + elif + else문 실습2
age = 31
if age > 30:
print("확실한 성인입니다.")
elif age > 19:
print("성인입니다.")
else:
print("미성년자입니다.")
#결괏값 = 확실한 성인입니다.
원하는 "확실한 성인입니다"가 도출됩니다!
2.4 중첩 구조문
개념 : 조건문 안에 또 다른 조건문을 사용할 경우
중첩 구조문 예시
#중첩 구조문
if 조건식1:
if 조건식2:
실행할 코드1
else:
실행할 코드2
else:
실행할 코드3
실습
#중첩 구조문1
age = 25
name = "배민경"
if age > 20:
if name == "배민경":
print("그래요, 저예요!")
#결괏값 = 그래요, 저예요!
#중첩 구조문2
age = 25
name = "김민경"
if age > 20:
if name == "배민경":
print("그래요, 저예요!")
else:
print("없어요")
#결괏값 = 없어요
중첩 구조문을 개념으로만 들었을 땐 짜증 났는데
직접 해보니까 재밌네요 😋
중첩 구조문 심화 실습
#사용자로부터 나이와 학생 여부를 입력받아 상태를 출력하는 프로그램
age = int(input("나이를 입력하세요: "))
is_student = input("학생입니까? (yes/no): ")
if age >= 18:
if is_student.lower() == "yes";
print("성인이며, 학생입니다.")
else:
print("성인이며, 학생이 아닙니다.")
else:
if is_student.lower() == "yes"
print("미성년자이며, 학생입니다.")
else:
print("미성년자이며, 학생이 아닙니다.")
이 프로그램은 나이와 학생 여부에 따라 다양한 메시지를 출력하고, 소문자로 출력합니다.
추가 개념
#and를 써서 똑같은 결괏값 도출하기
age = 25
name = "배민경"
if age > 20 and name == "배민경":
print("그래요, 저예요!")
#결괏값 = 그래요, 저예요!
이렇게 and를 써서도 도출해 낼 수 있다는 것도 배웠습니다!
3. Python 반복문
개념 : 프로그램 내에서 동일한 코드 블록을 여러 번 실행할 수 있도록 하는 구조
특징
코드의 중복을 줄이고, 효율적인 프로그램을 작성할 수 있음
가장 기본적인 반복문은 for문과 while문임
3.1 for문
개념 : 컬렉션(리스트, 튜플, 문자열)을 순차적으로 순회하여 코드 블록을 실행
#반복문
## for문 (컬렉션 기반)
for 변수 in 컬렉션:
실행할 코드
for문 예시
#반복문
## for문 (컬렉션 기반)
list_sample = [2,4,6,8,10]
for element in list_sample:
print(element)
#결괏값 = #2 4 6 8 10
## for문 (문자열)
list_sample_2 = "안녕"
for a in list_sample_2:
print(a)
#결괏값 = 안 녕
그리고!
컬렉션 명 이름이 아니라 컬렉션 그 자체가 들어가도 결괏값이 도출됩니다!
또한 결괏값이 각각 낱개로 도출되더라구요
신기했습니다 🤨
for문 실습
## for문 (제곱 실습)
numbers = [5,6,7]
for number in numbers:
square = number ** 2
print(f"{number}의 제곱은 {square}입니다.")
#결괏값
5의 제곱은 25입니다.
6의 제곱은 36입니다.
7의 제곱은 49입니다.
3.2 while문
개념 : 조건식이 참인 동안 반복해서 코드 블록을 실행
특징 : 조건식이 거짓이 되면 반복문이 종료됨.
## while문 (조건식이 참일 때 실행, 거짓이면 종료)
while 조건식:
실행할 코드
while문 예시
## while문 (조건식이 참인 동안 실행됨, 거짓이 되면 종료됨)
age = 15
while age < 20:
print("나이를 먹었습니다")
이 상태에서 실행을 한다면 무한 동력으로 실행된다고 하더라구요
이런 걸 활용할 때는 게임 서버를 운영할 때 쓰이는 구조라는 걸 배웠습니다!
하지만, 저희는 서버를 운영하는 것이 아니라
공부하기 위함이기 때문에 좀 더 붙여주었습니다.
## while문 (조건식이 참인 동안 실행됨, 거짓이 되면 종료됨)
age = 15
while age < 20:
print("나이를 먹었습니다", age)
age = age + 1
#결괏값
나이를 먹었습니다 15
나이를 먹었습니다 16
나이를 먹었습니다 17
나이를 먹었습니다 18
나이를 먹었습니다 19
언젠가 멈추어야 하기 때문에 거짓된 값을 만들어주어야 합니다!
재밌어요!
정말 코드를 자세히 쓸 때마다 결괏값이 달라진다는 게
너무 재밌습니다 😁
while문 실습
## while문 실습1
age = 15
while age <= 20:
print(age)
age += 1
15
16
17
18
19
20
## while문 실습2
age = 15
while age <= 20:
age += 1
print(age)
16
17
18
19
20
21
결괏값이 이렇게 두 가지로 나오게 되었습니다
이게 참이 되는 조건문이랑
조건문이 거짓이 되는 문장의
위치에 따라 결괏값이 달라지더라구요
이 점을 주의해서 코드를 활용해야겠습니다!
다르게 표현해 보기 (list)
## while을 다르게 표현해보기
start_position = 0
while start_position < len(list_sample):
print(list_sample[start_position])
start_position += 1
2
4
6
8
10
3.3 break문
개념 : 반복문을 즉시 종료시킴
특징 : 반복문 내에서 특정 조건이 만족되면 더 이상 반복할 필요가 없을 때 사용함
break문 예시
## break문 (반복문 자체를 멈추고 싶을 때)
a = 0
while a < 100:
condition = int(input("10을 입력하면 출력이 안 돼요!"))
if condition == 10:
break
a += 1
10을 입력하면 출력이 안 돼요!1
10을 입력하면 출력이 안 돼요!2
10을 입력하면 출력이 안 돼요!3
10을 입력하면 출력이 안 돼요!10
baeminkyung@baemingyeong-ui-MacBookAir Desktop %
break는 10을 입력하자마자 반복문이 끝나버렸습니다.
아예 반복문을 끝내고 싶을 때 반복문 밑에
break를 써주시면 됩니다!
for문에서도 사용 가능한 break
### for문에서도 사용 가능한 break
list_sample_3 = [1,2,3,4,5,6]
for i in list_sample_3:
print(i)
if i == 4:
break
1
2
3
4
for문을 써도 적용이 가능하네요!
그냥 반복문 전체에서 사용 가능하기 때문에
여기저기 다 붙여 쓰시면 됩니다!
3.4 continue문
개념 : 현재 반복을 건너뛰고, 다음 반복을 이어감
특징 : 특정 조건에서 코드 블록의 일부를 실행하지 않고 다음 반복으로 넘어가고 싶을 때 사용
continue문 예시
## continue문 (특정 조건이 들어와도 다시 반복)
a = 0
while a < 100:
condition = int(input("10을 입력하면 출력이 안 돼요!"))
if condition == 10:
continue
print("hi")
a += 1
10을 입력하면 출력이 안 돼요!10
10을 입력하면 출력이 안 돼요!10
10을 입력하면 출력이 안 돼요!2
hi
10을 입력하면 출력이 안 돼요!9
hi
10을 입력하면 출력이 안 돼요!10
10을 입력하면 출력이 안 돼요!
반면에 continue를 쓰게 되면 계속 반복문이 반복되는 걸 알 수 있습니다
break는 단어 그대로 끝! 내는 거고
continue도 단어 그대로 이어져 가는 거네요! 😉
3.5 range() 함수
개념 : 특정 범위의 숫자 시퀀스를 생성함
특징
for문과 함께 자주 사용됨
반복 횟수를 지정할 때 유용함
# range() : 특정 범위의 숫자 시퀀스 생성
for i in range(시작, 종료, 단계):
실행할 코드
시작 : 시작할 숫자 (기본값 0).
종료 : 종료할 숫자 (해당 숫자는 포함되지 않음).
단계 : 숫자 간의 간격 (기본값 1).
range() 예시
# range()_1
for e in range(0,10,2):
print(e)
2
4
6
8
이번 거는 range() 함수 안에 3개의 값 모두 서술한 경우이고,
# range()_2
for e in range(10):
print(e)
0
1
2
3
4
5
6
7
8
9
이번 거는 range() 함수에 한 가지 값만 넣었더니
0부터 9까지 출력되었습니다!
한 가지 값만 넣으면 그 값이 "종료"값이 되네요! 😮
몇 번째의 값인지 확인해 보는 코드
# range()_3
for e in range(len(list_sample_3)):
print(list_sample_3[e])
print(e,"번째")
1
0 번째
2
1 번째
3
2 번째
4
3 번째
5
4 번째
6
5 번째
list_sample_3에는 총 6개의 값이 들어가 있었음을 알 수 있네요!
재밌습니다 🤗
좀 더 보기 좋게 출력하려면
# range()_4
for e, f in enumerate(list_sample_3):
print(e,f)
0 1
1 2
2 3
3 4
4 5
5 6
enumerate()를 써주시면 더 가독성이 좋아지게 도출됩니다!
3.6 중첩 반복문
개념 : 반복분 안에 또 다른 반복문을 사용하는 것(=Nested Loop)
특징
2차원 데이터 (예 : 행렬)를 처리할 때 씀
복잡한 반복 작업을 수행할 때 유용함
# 중첩 반복문
for i in range(첫 번째 범위):
for j in range(두 번째 범위):
실행할 코드
중첩 반복문 예시 (구구단)
# 중첩 반복문 (구구단)
for i in range(2,3):
print(f"{i}단:")
for j in range(1,10):
print(f"{i} x {j} = {i*j}")
print()
2단:
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
오늘 한 것 중에 제일 재밌었던
결괏값이었습니다 🤣
4. 들여 쓰기
개념 : 코드의 각 줄을 왼쪽에서 오른쪽으로 일정한 간격만큼 일어내는 것
특징
Python에서 들여 쓰기는 필수적
Python은 들여 쓰기를 통해 코드 블록의 시작과 끝을 구분함
들여 쓰기가 잘못되면, Python 인터프리터가 코드의 구조를 이해하지 못하여 오류를 발생시킴
조건문, 반복문, 함수 등의 모든 구조적 코드에서 필수적으로 사용됨
들여쓰기가 오류가 생기면 indentationError라고 뜸
규칙
일관된 들여쓰기
공백 4칸이 표준
탭과 공백(띄어쓰기)의 혼용 금지
들여쓰기 예시
#들여쓰기 예시
if True:
print("이 코드는 실행됩니다.")
#결괏값 = 이 코드는 실행됩니다.
<조건문과 들여 쓰기>
# if문과 else문, elif문도 마찬가지
if 조건식:
실행할 코드 # 조건이 참일 때 실행
else:
실행할 코드 # 조건이 거짓일 때 실행
<반복문과 들여 쓰기>
# for문과 while문
for 변수 in 컬렉션:
실행할 코드 # 반복할 코드 블록
while 조건식:
실행할 코드 # 조건이 참인 동안 반복될 코드 블록
<함수 정의와 들여 쓰기>
# def 함수이름(매개변수)
def 함수이름(매개변수):
실행할 코드 # 함수 본문
5. 함수의 개념
개념 : 특정 작업을 수행하는 코드 블록을 정의하는 프로그래밍 구성 요소
특징
함수는 각기 이름을 가지고 있고, 필요할 때마다 그 이름을 호출하여 코드 실행
함수는 입력값(매개변수)을 받아 처리하고, 결괏값을 반환할 수 있음
함수의 사용처
반복되는 코드의 재사용
코드의 모듈화
이때 모듈화란?
프로그램을 여러 개의 작은 함수로 분할하여, 각 함수가 하나의 특정한 작업만 수행하도록 하는 것