티스토리 뷰

2.2 간단한 프로그램 작성(변수에 관한)

 

* 원의 넓이를 구하는 프로그램

 

1
2
3
4
5
6
7
8
# 값을 radius 변수에 할당하기
radius = 20 # 반지름 = 20
 
#넓이 구하기
area = radius * radius * 3.14159
 
#결과 출력하기
print("반지름이 ", radius,"인 원의 넓이는 ",area)
cs

 

 

변수(variable) : 컴퓨터 메모리에 저장되어있는 값을 가르키는 주소이름.

 

- 위 원의 넓이를 구하는 프로그램을 예로 들어,  radius가 반지름의 값을 가르키는 변수, area가 원의 넓이를 가르키는 변수이다.

- 변수의 이름은 프로그램 작성자가 임의로 정할 수 있다.

- 변수에 원하는 값을 할당 할 수 있다. ex) radius = 20

- 변수를 이용하여 다른 변수에 값을 할당 할 수 있다.

- 변수를 이용해 연산과 그 결과 값을 다른 변수에 할당 할 수 있다. ex) area = radius * radius * 3.14159  → area = 1256.636

- 자바나 c와 같은 다른 언어에서는 데이터타입(data type)을 지정해야 하지만, 파이썬에서는 그럴 필요가 없다. 파이썬은 할당된 값을 통해 알아서 데이터 타입을 알아낸다.

- 8번 라인에서 보듯이 print 명령으로 변수 이름을 통해 얼마든지 많은 아이템(item)을 출력할 수 있다.

- 만약 아이템(item)이 숫자라면, 그 숫자는 출력을 할 때 자동적으로 문자형 타입으로 변환된다.

 

2.3 콘솔에서 입력받기

 

* 콘솔창에서 반지름을 입력받아 원의 넓이를 구하는 프로그램

 

1
2
3
4
5
6
7
8
9
// input your code here#사용자가 반지름 값 입력하기
radius = eval(input("반지름 입력: "))
 
#넓이 계산하기
area = radius * radius * 3.14159
 
#결과 출력하
print("원의 반지름 :", radius, "원의 넓이 :", area)
 
cs

 

다른 반지름 값을 이용하기 위해서는 소스코드를 수정해야만 한다. 하지만 아래와 같이 input() 함수를 이용한다면 사용자에게 반지름 값을 입력을 요청할 수 있다.

 

variable(변수) = input("값 입력 : ")

 

input() 함수

- 콘솔(console)창을 통해 변수에 할당할 값을 직접 입력할 수 있게 한다.

- 값을 입력받을때 문자(String) 데이터 타입으로 입력을 받는다.

- 우리는 이때 eval() 함수를 통해 문자(string)로 입력받은 값숫자(numeric value)로 변환계산을 할 수 있다. ex) eval("34.5") => 34.5, eval("51 + (54 * (3 + 2))") => 321

- 아래와 같은 방법으로 여러개 동시에 입력을 받는 것도 가능하다.

 

* 평균 구하는 프로그램

1
2
3
4
5
6
7
8
9
10
11
12
13
#사용자가 숫자 3개 입력하기
number1 = eval(input("숫자1 입력: "))
number2 = eval(input("숫자2 입력: "))
number3 = eval(input("숫자3 입력: "))
 
#평균 구하기
average = (number1 + number2 + number3)/3
 
#결과 출력하기
print("숫자 :",number1, number2, number3,
      "의 평균값 : ", average)
 
 
cs

 

 

- line 2-4 는 사용자로 부터 정수 세개를 입력받고, line 7 에서 이 값들의 평균을 구한다. 그리고 lint 10-11 에서 그 결과값을 출력한다.

- 만약 숫자 이외에 다른 형태로 입력을 한다면, 프로그램은 런타임 에러를 발생시키며 종료하게 된다.

- line 10-11 처럼 하나의 명령이 두 줄로 갈라진 경우, 파이썬은 line 10의 print 명령이 아직 끝나지 않았다는 것을 알아채고 괄호가 닫히는 부분까지 해석을 진행한다.

- 하지만 명령이 여러줄로 갈리는 경우, 가끔 파이썬이 명령의 끝을 잘 찾지 못하는 경우가 있다. 이럴 땐 line continuation symbol(\, 한국은 \)을 이용하여 인터프리터에게 다음 라인부터 계속해서 명령을 해석하게 만들 수 있다.

 

sum = 1+2+3+4+\(한국은 \)

   5+6

 

 

 

sum = 1+2+3+4+5+6

과 동등한 의미이다.

 

eval() 함수

- 위 예제의 line 2 는 사용자로부터 문자형태로 값을 입력받고 그 값을 숫자로 변환한다.

- line 2 의 코드는 아래의 코드와 동등한 의미를 지닌다.

 

s = input("반지름 입력하기 : ") #input 함수를 읽어들인다.

radius = eval(s) #문자를 숫자로 변환한다.

 

 

참고 문헌 : Introduction to Programming Using Python / Y.DANIEL LIANG



본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.


교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다. 

 


 

 

 

 

댓글