|
1006 | 1006 | "metadata": {}, |
1007 | 1007 | "source": [ |
1008 | 1008 | "위 코드의 `if love_python` 조건문에서 `love_python`이 거짓이어서 들여쓰기된 코드 블록이 실행되지 않았다.\n", |
1009 | | - "그런데 그런 경우, 즉 `if` 다음이 거짓으로 판정될 때 실행되는 다른 코드 블록을 `else` 키워드를 이용하여 지정할 수 있다.\n", |
| 1009 | + "그런데 그런 경우, 즉 `love_python`이 거짓으로 판정될 때 실행되는 다른 코드 블록을 `else` 키워드를 이용하여 지정할 수 있다.\n", |
1010 | 1010 | "예를 들어 아래 코드는 파이썬을 좋아하지 않는 경우에 파이썬을 사랑해주면 행복진다는 문장을 출력한다." |
1011 | 1011 | ] |
1012 | 1012 | }, |
|
1099 | 1099 | "\n", |
1100 | 1100 | "- `x < y`가 참인 경우\n", |
1101 | 1101 | "- `x < y`가 거짓이면서 `x > y`가 참인 경우\n", |
1102 | | - "- `x < y`와 `x > y` 모두 거짓인 경우, 즉 `x == y` 가 참인 경우" |
1103 | | - ] |
1104 | | - }, |
1105 | | - { |
1106 | | - "cell_type": "markdown", |
1107 | | - "id": "9e5576e6-1ecf-4966-be7a-806f31c92abf", |
1108 | | - "metadata": {}, |
1109 | | - "source": [ |
1110 | | - "이처럼 `if ... elif ... else ...` 에 사용된 논리식은 항상 이전의 논리식이 거짓임을 가정한다.\n", |
1111 | | - "아래 코드는 `y`를 5로 나눈 나머지에 의존하여 서로 다른 명령문을 실행하도록 한다." |
| 1102 | + "- `x < y`와 `x > y` 모두 거짓인 경우, 즉 `x == y` 가 참인 경우\n", |
| 1103 | + "\n", |
| 1104 | + "이렇듯 `elif`와 `else`가 다루는 경우는 위쪽에 위치한 경우가 거짓이라는 전제하에 발생하는 경우들임에 주의한다.\n", |
| 1105 | + "또한 하나의 경우가 성립하면 그 아래의 다른 경우는 무시된다.\n", |
| 1106 | + "\n", |
| 1107 | + "예를 들어, 아래 코드는 `y`를 5로 나눈 나머지에 의존하여 서로 다른 명령문을 실행하도록 한다.\n", |
| 1108 | + "아래 코드에서 `x`는 4을 할당 받기에 0도, 1도, 2도 아니어서 `else`의 경우에 해당하게 되어\n", |
| 1109 | + "`'기타 등등'`이 화면에 출력된다." |
1112 | 1110 | ] |
1113 | 1111 | }, |
1114 | 1112 | { |
|
1139 | 1137 | " print('기타 등등')" |
1140 | 1138 | ] |
1141 | 1139 | }, |
| 1140 | + { |
| 1141 | + "cell_type": "markdown", |
| 1142 | + "metadata": {}, |
| 1143 | + "source": [ |
| 1144 | + "**`else` 대 `elif`**" |
| 1145 | + ] |
| 1146 | + }, |
1142 | 1147 | { |
1143 | 1148 | "cell_type": "markdown", |
1144 | 1149 | "id": "1e422b8f-b3a2-495e-93a2-b1fee8e469fa", |
|
1178 | 1183 | " print('기타 등등')" |
1179 | 1184 | ] |
1180 | 1185 | }, |
| 1186 | + { |
| 1187 | + "cell_type": "markdown", |
| 1188 | + "metadata": {}, |
| 1189 | + "source": [ |
| 1190 | + "**`else`의 필요성**" |
| 1191 | + ] |
| 1192 | + }, |
1181 | 1193 | { |
1182 | 1194 | "cell_type": "markdown", |
1183 | 1195 | "id": "a04c418a-3562-4e22-9574-98e20e40b138", |
1184 | 1196 | "metadata": {}, |
1185 | 1197 | "source": [ |
1186 | | - "반면에 아래 코드는 동일한 결과를 내는 것처럼 보이지만 사실 기능이 다르다.\n", |
1187 | | - "`y=4`일 때는 결과가 동일하다." |
| 1198 | + "아래 코드는 이전 코드와 동일한 결과를 내는 것처럼 보이지만 두 코드의 기능이 사실 다르다.\n", |
| 1199 | + "먼저 `y=4`일 때는 결과가 동일하다." |
1188 | 1200 | ] |
1189 | 1201 | }, |
1190 | 1202 | { |
|
1223 | 1235 | "하지만 예를 들어 `y=2`인 경우엔 결과가 다르다." |
1224 | 1236 | ] |
1225 | 1237 | }, |
| 1238 | + { |
| 1239 | + "cell_type": "markdown", |
| 1240 | + "metadata": {}, |
| 1241 | + "source": [ |
| 1242 | + "- `else`를 적용하는 경우" |
| 1243 | + ] |
| 1244 | + }, |
1226 | 1245 | { |
1227 | 1246 | "cell_type": "code", |
1228 | 1247 | "execution_count": 1, |
|
1250 | 1269 | " print('기타 등등')" |
1251 | 1270 | ] |
1252 | 1271 | }, |
| 1272 | + { |
| 1273 | + "cell_type": "markdown", |
| 1274 | + "metadata": {}, |
| 1275 | + "source": [ |
| 1276 | + "- `else`를 적용하지 않는 경우" |
| 1277 | + ] |
| 1278 | + }, |
1253 | 1279 | { |
1254 | 1280 | "cell_type": "code", |
1255 | 1281 | "execution_count": 6, |
|
1339 | 1365 | " print('x와 y가 같다')" |
1340 | 1366 | ] |
1341 | 1367 | }, |
| 1368 | + { |
| 1369 | + "cell_type": "markdown", |
| 1370 | + "metadata": {}, |
| 1371 | + "source": [ |
| 1372 | + ":::{attention} `else`의 문맥상 의미\n", |
| 1373 | + "\n", |
| 1374 | + "이전 코드에서 `else`가 두번 사용되었지만 문맥상 의미가 서로 다르다.\n", |
| 1375 | + "\n", |
| 1376 | + "- 4번 행의 `else`: `x < y`가 거짓인 경우, 즉 `x >= y`인 경우를 다룸\n", |
| 1377 | + "- 9번 행의 `else`: `x < y`와 `x > y` 모두 거짓인 경우, 즉 `x = y`인 경우를 다룸\n", |
| 1378 | + "\n", |
| 1379 | + "이렇듯 코드의 의미는 문맥에 따라 달라질 수 있다.\n", |
| 1380 | + ":::" |
| 1381 | + ] |
| 1382 | + }, |
| 1383 | + { |
| 1384 | + "cell_type": "markdown", |
| 1385 | + "metadata": {}, |
| 1386 | + "source": [ |
| 1387 | + "**논리 연산자 활용**" |
| 1388 | + ] |
| 1389 | + }, |
1342 | 1390 | { |
1343 | 1391 | "cell_type": "markdown", |
1344 | 1392 | "id": "72aafef9-b107-4947-9051-d6bd0bcd9bf8", |
1345 | 1393 | "metadata": {}, |
1346 | 1394 | "source": [ |
1347 | | - "그리고 많은 경우 논리 연산자를 활용하면 중첩 조건문을 굳이 사용하지 않아도 된다.\n", |
| 1395 | + "논리 연산자를 활용하면 많은 경우 중첩 조건문을 굳이 사용하지 않아도 된다.\n", |
1348 | 1396 | "예를 들어 아래 코드는 중첩 조건문을 사용하여 `x`가 0보다 크면서 동시에 10보다 작은 경우를 다룬다." |
1349 | 1397 | ] |
1350 | 1398 | }, |
|
2296 | 2344 | "name": "python", |
2297 | 2345 | "nbconvert_exporter": "python", |
2298 | 2346 | "pygments_lexer": "ipython3", |
2299 | | - "version": "3.12.11" |
| 2347 | + "version": "3.13.12" |
2300 | 2348 | } |
2301 | 2349 | }, |
2302 | 2350 | "nbformat": 4, |
|
0 commit comments