|
54 | 54 | }, |
55 | 55 | { |
56 | 56 | "cell_type": "code", |
57 | | - "execution_count": 53, |
| 57 | + "execution_count": 2, |
58 | 58 | "id": "6e9beb3f-f2f8-40b1-8ef9-b35793c981bf", |
59 | 59 | "metadata": {}, |
60 | 60 | "outputs": [ |
|
80 | 80 | "metadata": {}, |
81 | 81 | "source": [ |
82 | 82 | "빈 문자열을 출력하면 화면에는 아무것도 보이지 않는다.\n", |
83 | | - "하지만 값이 없는 것이 아니라, 길이가 0인 문자열 값이다." |
| 83 | + "하지만 보이지 않을 뿐이며, 길이가 0인 문자열 값이다." |
84 | 84 | ] |
85 | 85 | }, |
86 | 86 | { |
87 | 87 | "cell_type": "code", |
88 | | - "execution_count": 54, |
| 88 | + "execution_count": 3, |
89 | 89 | "id": "9b80665f-b75f-42aa-8b4e-47b7f3daff2f", |
90 | 90 | "metadata": {}, |
91 | 91 | "outputs": [ |
|
109 | 109 | "metadata": {}, |
110 | 110 | "source": [ |
111 | 111 | "반면에 `' '`는 공백 문자 하나를 포함한 문자열이다.\n", |
112 | | - "눈에 잘 보이지 않지만 길이는 1이다." |
| 112 | + "역시 눈에 보이지 않지만 길이가 1인 문자열 값이다." |
113 | 113 | ] |
114 | 114 | }, |
115 | 115 | { |
116 | 116 | "cell_type": "code", |
117 | | - "execution_count": 59, |
| 117 | + "execution_count": 4, |
118 | 118 | "id": "a4275bda-9aa6-47d6-ae2d-f41168f65fe4", |
119 | 119 | "metadata": {}, |
120 | 120 | "outputs": [ |
|
139 | 139 | ":::{note} 한 글자 문자열\n", |
140 | 140 | "\n", |
141 | 141 | "C, 자바 같은 언어는 문자 하나를 저장하는 `char` 자료형을 별도로 제공한다.\n", |
142 | | - "파이썬에는 별도의 문자 자료형이 없으며, 문자 하나도 길이가 1인 문자열로 다룬다.\n", |
| 142 | + "파이썬에는 별도의 문자 자료형이 없으며, 문자 하나로 구성된 길이가 1인 문자열로 다룬다.\n", |
143 | 143 | "::: " |
144 | 144 | ] |
145 | 145 | }, |
|
213 | 213 | "id": "7f4efc84-66c6-42a9-a5a7-c9aff730b646", |
214 | 214 | "metadata": {}, |
215 | 215 | "source": [ |
216 | | - "**문제 2**\n", |
| 216 | + "**문제 1**\n", |
217 | 217 | "\n", |
218 | 218 | "아래 코드가 `False`를 출력하는 이유를 설명하라." |
219 | 219 | ] |
220 | 220 | }, |
221 | 221 | { |
222 | 222 | "cell_type": "code", |
223 | | - "execution_count": 61, |
| 223 | + "execution_count": 5, |
224 | 224 | "id": "ca85ff41-3377-4289-aa39-318e4896b19f", |
225 | 225 | "metadata": {}, |
226 | 226 | "outputs": [ |
|
282 | 282 | "id": "a912aa5b", |
283 | 283 | "metadata": {}, |
284 | 284 | "source": [ |
285 | | - "다음 세 문자열의 출력 결과를 설명할 수 있어야 한다." |
| 285 | + "다음 세 개의 문자열엔 각각 공백, 탭, 줄바꿈 화이트 스페이스가 포함되어 있어서 출력 결과가 서로 많이 다르다." |
286 | 286 | ] |
287 | 287 | }, |
288 | 288 | { |
289 | 289 | "cell_type": "code", |
290 | | - "execution_count": 2, |
| 290 | + "execution_count": 6, |
291 | 291 | "id": "ad6b063b-9934-44b4-ba78-e5ca43a42ca8", |
292 | 292 | "metadata": {}, |
293 | 293 | "outputs": [ |
|
313 | 313 | "id": "52fecec7-9b20-4386-8dab-3161a3c4dce7", |
314 | 314 | "metadata": {}, |
315 | 315 | "source": [ |
316 | | - "화이트 스페이스도 문자열에 포함된 하나의 문자로 계산된다.\n", |
| 316 | + "화이트 스페이스는 모두 한 개의 문자로 취급된다.\n", |
317 | 317 | "따라서 위 세 문자열의 길이 모두 3이다. " |
318 | 318 | ] |
319 | 319 | }, |
320 | 320 | { |
321 | 321 | "cell_type": "code", |
322 | | - "execution_count": 3, |
| 322 | + "execution_count": 7, |
323 | 323 | "id": "5a6fb4b0-6818-4495-a612-d8c8b477adf5", |
324 | 324 | "metadata": {}, |
325 | 325 | "outputs": [ |
|
359 | 359 | }, |
360 | 360 | { |
361 | 361 | "cell_type": "code", |
362 | | - "execution_count": null, |
| 362 | + "execution_count": 8, |
363 | 363 | "id": "b576662a", |
364 | 364 | "metadata": {}, |
365 | 365 | "outputs": [ |
|
405 | 405 | }, |
406 | 406 | { |
407 | 407 | "cell_type": "code", |
408 | | - "execution_count": null, |
| 408 | + "execution_count": 9, |
409 | 409 | "id": "10e0d0ae", |
410 | 410 | "metadata": {}, |
411 | 411 | "outputs": [ |
|
415 | 415 | "13" |
416 | 416 | ] |
417 | 417 | }, |
| 418 | + "execution_count": 9, |
418 | 419 | "metadata": {}, |
419 | | - "output_type": "display_data" |
| 420 | + "output_type": "execute_result" |
420 | 421 | } |
421 | 422 | ], |
422 | 423 | "source": [ |
|
449 | 450 | "`print()` 함수에 의해 다음과 같이 두 줄로 출력되는 하나의 문자열을 정의하라.\n", |
450 | 451 | "\n", |
451 | 452 | "```python\n", |
452 | | - "이름 점수\n", |
453 | | - "민준 90\n", |
| 453 | + "Name Score\n", |
| 454 | + "Minjun 90\n", |
454 | 455 | "```" |
455 | 456 | ] |
456 | 457 | }, |
|
467 | 468 | "id": "6068c118", |
468 | 469 | "metadata": {}, |
469 | 470 | "source": [ |
470 | | - "탭과 줄바꿈 화이트 스페이스를 적절히 이용한다." |
| 471 | + "출력 모양을 정확히 맞추기 위해 공백과 줄바꿈 화이트 스페이스를 적절히 이용한다.\n", |
| 472 | + "탭(`\\t`)은 무조건 4칸을 띄우는 것이 아니라 출력 환경에 따라 보이는 간격을 적절히 조절한다." |
471 | 473 | ] |
472 | 474 | }, |
473 | 475 | { |
474 | 476 | "cell_type": "code", |
475 | | - "execution_count": 4, |
| 477 | + "execution_count": 14, |
476 | 478 | "id": "c983e4b2-a6d2-46be-b488-5d7189f45f3b", |
477 | 479 | "metadata": {}, |
478 | 480 | "outputs": [ |
479 | 481 | { |
480 | 482 | "name": "stdout", |
481 | 483 | "output_type": "stream", |
482 | 484 | "text": [ |
483 | | - "이름\t점수\n", |
484 | | - "민준\t90\n" |
| 485 | + "Name\tScore\n", |
| 486 | + "Minjun\t90\n" |
485 | 487 | ] |
486 | 488 | } |
487 | 489 | ], |
488 | 490 | "source": [ |
489 | | - "print(\"이름\\t점수\\n민준\\t90\")" |
| 491 | + "print(\"Name\\tScore\\nMinjun\\t90\")" |
490 | 492 | ] |
491 | 493 | }, |
492 | 494 | { |
|
542 | 544 | "`\\n`은 줄바꿈 문자다. 따라서 첫 줄에 `Hello`, 둘째 줄에 `World`가 출력된다." |
543 | 545 | ] |
544 | 546 | }, |
545 | | - { |
546 | | - "cell_type": "markdown", |
547 | | - "id": "4ce06b6f-4721-49c7-9021-18f6153a111c", |
548 | | - "metadata": {}, |
549 | | - "source": [ |
550 | | - "**문제 2**\n", |
551 | | - "\n", |
552 | | - "아래 문자열의 길이가 얼마인지 설명하라." |
553 | | - ] |
554 | | - }, |
555 | | - { |
556 | | - "cell_type": "code", |
557 | | - "execution_count": 74, |
558 | | - "id": "b26c99c7-25c9-4d8e-8ef7-fd538b692c1e", |
559 | | - "metadata": {}, |
560 | | - "outputs": [ |
561 | | - { |
562 | | - "data": { |
563 | | - "text/plain": [ |
564 | | - "6" |
565 | | - ] |
566 | | - }, |
567 | | - "execution_count": 74, |
568 | | - "metadata": {}, |
569 | | - "output_type": "execute_result" |
570 | | - } |
571 | | - ], |
572 | | - "source": [ |
573 | | - "len(\"A B\\tC\\n\")" |
574 | | - ] |
575 | | - }, |
576 | | - { |
577 | | - "cell_type": "markdown", |
578 | | - "id": "793e62b8-bb38-4eff-b79e-a0a67f9186f9", |
579 | | - "metadata": {}, |
580 | | - "source": [ |
581 | | - "답:" |
582 | | - ] |
583 | | - }, |
584 | | - { |
585 | | - "cell_type": "markdown", |
586 | | - "id": "5c7e4b6c-33b4-4567-a15f-f5a590a36503", |
587 | | - "metadata": {}, |
588 | | - "source": [ |
589 | | - "결과는 6이다. `A`, 공백 문자, `B`, 탭, `C`, 줄바꿈이 각각 한 글자로 계산된다." |
590 | | - ] |
591 | | - }, |
592 | 547 | { |
593 | 548 | "cell_type": "markdown", |
594 | 549 | "id": "3d152b65", |
595 | 550 | "metadata": {}, |
596 | 551 | "source": [ |
597 | | - "**문제 3**\n", |
| 552 | + "**문제 2**\n", |
598 | 553 | "\n", |
599 | 554 | "아래 코드의 실행 결과를 설명하라." |
600 | 555 | ] |
|
634 | 589 | "metadata": {}, |
635 | 590 | "source": [ |
636 | 591 | "사용된 세 개의 모든 화이트스페이스 문자의 길이는 1이다.\n", |
637 | | - "문자열 `' \\t\\n'`의 길이는 3인데 이 문자열을 10번 복제해서 이어붙인 결과의 문자열은 따라서 30이다." |
| 592 | + "문자열 `' \\t\\n'`의 길이는 3이며, 따라서 이 문자열을 10번 복제해서 이어붙인 결과의 문자열의 길이는 30이다." |
638 | 593 | ] |
639 | 594 | }, |
640 | 595 | { |
|
650 | 605 | "id": "dbd04468-64d9-43e8-9196-235d824cef5a", |
651 | 606 | "metadata": {}, |
652 | 607 | "source": [ |
653 | | - "문자열에 따옴표, 백슬래시, 줄바꿈처럼 특별한 의미를 갖는 문자를 포함시키려면\n", |
| 608 | + "문자열에 따옴표, 백슬래시, 화이트 스페이스처럼 특별한 의미를 갖는 문자를 포함시키려면\n", |
654 | 609 | "백슬래시(`\\`)로 시작하는 **이스케이프 시퀀스**<font size=\"2\">escape sequence</font>를 사용한다.\n", |
655 | 610 | "\n", |
656 | 611 | "| 표기 | 문자열에 들어가는 문자 |\n", |
|
675 | 630 | "id": "75bcfe0c-a190-4ba8-bb33-4c36489da217", |
676 | 631 | "metadata": {}, |
677 | 632 | "source": [ |
678 | | - "예를 들어 문자열을 감싼 따옴표와 같은 따옴표를 문자열 안에 넣을 때는 이스케이프 시퀀스가 필요하다." |
| 633 | + "문자열을 감싸는 따옴표와 동일한 따옴표를 문자열 안에 넣을 때는 이스케이프 시퀀스가 필요하다." |
679 | 634 | ] |
680 | 635 | }, |
681 | 636 | { |
682 | 637 | "cell_type": "code", |
683 | | - "execution_count": 75, |
| 638 | + "execution_count": 15, |
684 | 639 | "id": "6964ef7b-8328-4d10-af97-8febcbb9df4b", |
685 | 640 | "metadata": {}, |
686 | 641 | "outputs": [ |
|
706 | 661 | "id": "b0db0602-d324-4f14-8897-e2c8cadbb8ce", |
707 | 662 | "metadata": {}, |
708 | 663 | "source": [ |
709 | | - "이스케이프 시퀀스를 사용하지 않으면 문제가 발생할 수 있다.\n", |
710 | | - "예를 들어 문자열을 감싼 따옴표와 동일한 따옴표를 문자열 안에 사용하면 `SyntaxError` 오류가 발생한다.\n", |
711 | | - "이유는 문자열의 시작과 끝이 명확하게 정할 수 없어지기 때문이다." |
| 664 | + "이스케이프 시퀀스를 사용하지 않으면 `SyntaxError` 오류가 발생한다.\n", |
| 665 | + "이유는 문자열의 시작과 끝이 명확하지 않게 되기 때문이다." |
712 | 666 | ] |
713 | 667 | }, |
714 | 668 | { |
|
737 | 691 | "id": "692dadd1", |
738 | 692 | "metadata": {}, |
739 | 693 | "source": [ |
740 | | - "반면에 감싸는 따옴표를 문자열 내부에 사용된 따옴표와 다르면 이스케이프 시퀀스를 사용하지 않아도 오류가 발생하지 않는다." |
| 694 | + "반면에 감싸는 따옴표를 문자열 내부에 사용된 따옴표와 다르게 하면\n", |
| 695 | + "이스케이프 시퀀스를 사용하지 않아도 오류가 발생하지 않는다." |
741 | 696 | ] |
742 | 697 | }, |
743 | 698 | { |
744 | 699 | "cell_type": "code", |
745 | | - "execution_count": 7, |
| 700 | + "execution_count": 16, |
746 | 701 | "id": "1cc38e8d", |
747 | 702 | "metadata": {}, |
748 | 703 | "outputs": [ |
|
823 | 778 | "source": [ |
824 | 779 | "**예제 1**\n", |
825 | 780 | "\n", |
826 | | - "아래 문자열이 화면에 출력되도록 문자열을 작성하라.\n", |
| 781 | + "아래 문자열이 화면에 출력되도록 이스케이프 시퀀스를 사용하는 문자열을 작성하라.\n", |
827 | 782 | "\n", |
828 | 783 | "```python\n", |
829 | 784 | "그는 \"Python\"을 좋아한다.\n", |
|
869 | 824 | "id": "648413df", |
870 | 825 | "metadata": {}, |
871 | 826 | "source": [ |
872 | | - "문자열 전체를 작은따옴표로 감싸도 된다." |
| 827 | + "작은따옴표로 감싸도 된다." |
873 | 828 | ] |
874 | 829 | }, |
875 | 830 | { |
876 | 831 | "cell_type": "code", |
877 | | - "execution_count": null, |
| 832 | + "execution_count": 17, |
878 | 833 | "id": "fa0ed992", |
879 | 834 | "metadata": {}, |
880 | 835 | "outputs": [ |
|
887 | 842 | } |
888 | 843 | ], |
889 | 844 | "source": [ |
890 | | - "print('그는 \"Python\"을 좋아한다.')" |
| 845 | + "print('그는 \\\"Python\\\"을 좋아한다.')" |
891 | 846 | ] |
892 | 847 | }, |
893 | 848 | { |
|
932 | 887 | "id": "9ef3d676", |
933 | 888 | "metadata": {}, |
934 | 889 | "source": [ |
935 | | - "세 종류의 화이트 스페이스가 사용되었음. \n", |
| 890 | + "네 종류의 이스케이프 시퀀스가 사용되었다.\n", |
936 | 891 | "\n", |
937 | | - "- `' '`: 공백\n", |
938 | 892 | "- `'\\t'`: 탭\n", |
| 893 | + "- `' '`: 공백\n", |
939 | 894 | "- `'\\n'`: 줄바꿈\n", |
| 895 | + "- `\\\\`: 백슬래시 기호\n", |
940 | 896 | "\n", |
941 | 897 | "문자열이 먼저 탭(스페이스 4칸)으로 시작하고 이후에 Hello World를 출력한 다음 줄바꿈을 진행한다.\n", |
942 | 898 | "줄이 바뀐 후 백슬래시(원화) 기호가 이스케이프된 상태로 출력된다." |
|
0 commit comments