{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 4 일차\n", "\n", "6 명이 한 팀이 되어 문제를 푼다. \n", "\n", "# input 명령 \n", "\n", "이름을 물어보고, 입력 받은 이름을 넣어서 인사하는 프로그램은 다음과 같이 작성할 수 있다. 동작 방식을 이해해보자." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "name = input(\"What is your name? \")\n", "print(\"Hello,\", name)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "위의 예제는 문자를 입력한 경우이다. 만약 숫자를 입력을 받아 연산을 하려고 한다면 숫자의 종류에 맞는 함수를 사용해야 한다. 다음의 두 예제를 이해해보자." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# 정수 입력받기\n", "number = int(input(\"input a integer: \"))\n", "print(\"interger, \", number)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# 소숫점 입력받기\n", "number = float(input(\"input a floating number: \"))\n", "print(\"floating, \", number)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 예제 따라하기\n", "교재에 71p에 있는 프로그램의 동작 방식을 이해해보자. " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import time # 시간 관련 라이브러리를 불러옴\n", "\n", "input(\"엔터를 누른 후 20초를 속으로 셉니다.\")\n", "start = time.time()\n", "\n", "input(\"20초가 되었으면 다시 엔터를 누릅니다.\")\n", "end = time.time()\n", "\n", "delta = end - start\n", "\n", "print(\"실제 시간 : \", delta, \"초\")\n", "print(\"차이 : \", abs(et - 20), \"초\") # abs()는 절대값을 계산하는 함수" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## \\로 특수 문자 출력하기\n", "다음은 토끼와 거북이 이야기를 출력하는 프로그램이다. ```print```함수에서 쌍따옴표로 묶인 모든 글자는 화면에 그대로 출력된다. 만약, 쌍따옴표도 출력되도록 하려면 어떻게 해야 할까? 아래 프로그램에서는 어떻게 하고 있는지 보자." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "print(\"거북이가 숲 속을 엉금엉금 기어가고 있었어요.\")\n", "print(\"깡충깡충 뛰어오던 토끼가 그 모습을 보며 놀렸어요.\" )\n", "print(\"\\\"비켜라 비켜. 깡충깡충 토끼님이 나가신다. 느림보는 길을 비켜라.\\\"\")\n", "print(\"약이 오른 거북이가 걸음을 멈추고 말했어요.\" )\n", "print(\"\\\"이봐, 토끼. 우리 산꼭대가 나무까지 누가 빨리 가나 시합하자.\\\"\")\n", "print(\"\\\"아하하. 해 보나마나 내가 이길 텐데? 좋아. 그럼 준비, 출발!\\\"\")\n", "print(\"토끼와 거북이는 동시에 나무를 향해 출발했어요. \")\n", "print(\"토끼는 깡충깡충 뛰어 순식간에 쌩 사라졌고, \")\n", "print(\"거북이는 느릿느릿 땀을 흘리며 뛰따랐지요.\") \n", "print(\"\\\"느림보가 어디쯤 오나?\")\n", "print(\"헤헤. 쫓아오려면 아직도 멀었네. 한숨 자야지.\\\"\")\n", "print(\"하지만 거북이는 쉬지 않고 엉금엉금 산을 올라겠어요. \")\n", "print(\"거북이는 쿨쿨 잠이 든 토끼를 지나 마침내 산꼭대기에 도착했어요.\") \n", "print(\"\\\"야호! 내가 토끼를 이겼다.\\\" \\\"아, 아니. 뭐라고?\\\"\")\n", "print(\"뒤늦게 잠에서 깨어난 토끼는 그제야 허둥지둥 산으로 달려갔어요.\") \n", "print(\"하지만 거북이는 이미 산쪽대가 나무 아래에서 쉬고 있었답니다. \")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 문제 1\n", "위의 코드를 거북이와 토끼 대신 언제든지 사람이 입력한 이름으로 출력되도록 바꿔보자. 입력을 안한 경우를 판별해서 입력이 없으면 거북이 또는 토끼가 나오도록 해보자. 힌트: ```input``` 명령과 ```or``` 명령을 같이 써보자. ```or```는 둘 중에 하나만 참이면 되는 참이 되는 명령이다. ```input```에 입력이 없으면 거짓이라고 판단하게 된다. " ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True\n", "True\n", "True\n", "False\n" ] } ], "source": [ "# or 의 예제\n", "print(True or True) # print() 내에서만 사용할 수 있는 것은 아님\n", "print(True or False)\n", "print(False or True)\n", "print(False or False)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# your code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 문제 2\n", "다음의 순서도에 따라 동작하는 프로그램을 작성하시오.\n", "\n", "![flow](figure/Q_flow_01.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 문제 3\n", "사용자로부터 정보를 입력받아 사각형, 원, 삼각형의 넓이와 둘레를 계산하는 프로그램을 작성하시오." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# your code here\n", "print(\"Area of Square\")\n", "\n", "print(\"Area of Circle\")\n", "\n", "print(\"Area of Triangle\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 문제 4\n", "이름을 물어보고 그 이름을 출력하는 프로그램을 작성하시오" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# your code here\n", "\n", "print(\"Hello, \")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 문제 5\n", "X 각형 도형을 그리는 프로그램을 작성하시오. 단 X는 사용자가 입력" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import turtle as t\n", "\n", "print(\"insert number of edges: \")\n", "# your code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 문제 6\n", "거북이 함수들을 활용하여 다음의 그림을 그려보자. 공통 좌표계를 사용하여 각 사람이 특정 위치의 도형을 책임지고 그린 후, 서로의 코드를 합치면 쉽게 해결 할 수 있다. \n", "\n", "![court](figure/ws04_court.png)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# your code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 숙제\n", "\n", "위에서 예제로 살펴본 \"속으로 20초 세기\" 프로그램을 응용하여 타자 게임을 만들어 보자. 한 문장당 타자치는 데 걸린 시간과 문장에 사용된 문자의 수의 비로 평타를 계산하고, 20개의 문장의 평균을 구하도록 해보자.\n", "\n", "활용할 개념은 input과 시간 함수 그리고 배열 등이다. " ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }