생능출판사 (가칭)"데이터과학 파이썬" 코드 2장

2.1 데이터를 저장하는 공간 : 변수

In [1]:
weight = 78.2
In [2]:
weight
Out[2]:
78.2
In [3]:
weight = 16.2
print(weight)
16.2

2.2 변수의 내용은 언제든 바꿀 수 있다

In [4]:
weight = 78.2
weight = 76.9
weight
Out[4]:
76.9
In [5]:
x = 100
y = 200
x, y
Out[5]:
(100, 200)
In [6]:
x, y = 100, 200
result = x + y
result
Out[6]:
300

2.4 변수에 문자열도 저장할 수 있어요!

In [7]:
s1 = '안녕하세요!!!'
s1
Out[7]:
'안녕하세요!!!'
In [8]:
s1 = 'Hello World!'
len(s1)
Out[8]:
12
In [9]:
s1 = "Hello"
s2 = "World!"
s1 + s2
Out[9]:
'HelloWorld!'
In [10]:
n1 = 100
n2 = 200
n1 + n2
Out[10]:
300

LAB 2-1 BMI 계산하기

In [11]:
height = 1.80
weight = 78.2
bmi = weight / height**2
bmi
Out[11]:
24.1358024691358

2.5 왜 변수를 사용하는가?

In [12]:
height = 1.80
weight = 72.8
bmi = weight / height**2
bmi
Out[12]:
22.469135802469133

LAB 2-2 피자의 면적을 계산해보자.

In [13]:
radius = 80
area = 3.14 * radius**2
print('피자 면적은', area)
피자 면적은 20096.0

LAB 2-3 터틀 그래픽으로 피자그리기

In [14]:
import turtle

t = turtle.Turtle()
t.shape('turtle')

radius = 100
t.circle(radius)      # 반지름이 100인 원이 그려진다. 

radius = 200
t.circle(radius)      # 반지름이 200인 원이 그려진다.

turtle.done()
try:
    turtle.bye()
except:
    print("bye") 
bye

LAB 2-4 복리 이자 계산하기

In [15]:
principal = 10000000 
years = 5 
interest_rate = 0.03 
money = principal * (1.0 + interest_rate) ** years 

print('원금: ', principal)
print('이율: ', interest_rate)
print('기간: ', years)
print('수령금액: ', money)
원금:  10000000
이율:  0.03
기간:  5
수령금액:  11592740.743

2.6 자료형

In [16]:
x = 10
x
Out[16]:
10
In [17]:
x = 3.14
x 
Out[17]:
3.14

2.7 변수의 자료형을 알려면?

In [18]:
weight = 78.2
type(weight)
Out[18]:
float
In [19]:
salary = 250
type(salary)
Out[19]:
int
In [20]:
name = "홍길동"
address = "서울시 종로구 1번지"
type(name)
Out[20]:
str
In [21]:
name = "홍길동"
address = "서울시 종로구 1번지"
type(address)
Out[21]:
str
In [22]:
b = True
type(b)
Out[22]:
bool

2.8 자료형에 신경써야 할까?

In [23]:
x = 10
y = 10
x + y
Out[23]:
20
In [24]:
x = 'good'
y = 'morning!'
x + y
Out[24]:
'goodmorning!'
In [25]:
'23' + '56'
Out[25]:
'2356'
In [26]:
23 + 56
Out[26]:
79

2.9 컴퓨터 수치 표현의 한계

In [27]:
0.1 + 0.1 == 0.2
Out[27]:
True
In [28]:
0.1 + 0.1 + 0.1 == 0.3          #수치오류로 인해 우리가 생각한 True가 나오지 않음
Out[28]:
False
In [29]:
0.1 + 0.1 + 0.1                 #0.3이 아닌 미세한 수치오류를 가진 근사값
Out[29]:
0.30000000000000004
In [30]:
10 ** 100                       #10의 100승
Out[30]:
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

2.11 문자열을 만드는 방법

In [31]:
"Hello"
Out[31]:
'Hello'
In [32]:
msg = "Hello"   # 변수를 이용해서 문자열을 저장한다
msg             # 문자열을 출력하면 기본적으로 작은 따옴표내에 문자가 나타남
Out[32]:
'Hello'
In [33]:
msg = "Hello"   # 변수를 이용해서 문자열을 저장한다 
print(msg) # print()로 문자열을 출력하면 따옴표는 나타나지 않음
Hello
In [34]:
msg = "Hello'
  File "<ipython-input-34-0b4ced172a88>", line 1
    msg = "Hello'
                 ^
SyntaxError: EOL while scanning string literal
In [35]:
msg = "Hello
  File "<ipython-input-35-f35b3e510a22>", line 1
    msg = "Hello
                ^
SyntaxError: EOL while scanning string literal

2.12 왜 큰따옴표와 작은따옴표를 동시에 사용할까?

In [ ]:
msg = "Hello"
In [ ]:
message="철수가 "안녕"이라고 말했습니다."
In [ ]:
message = '철수가 "안녕"이라고 말했습니다.'
message
In [ ]:
message = '철수가 "안녕"이라고 말했습니다.'
print(message)
In [ ]:
print('철수가 \'안녕\'이라고 말했습니다.')
In [ ]:
print('안녕\n우리 다시 만나~~')
In [ ]:
print('안녕\t우리 다시 만나~~')

2.13 왜 오류가 발생할까? - 자료형의 변환

In [ ]:
'100' + '원'
In [ ]:
str(100) + '원'   # str() 함수는 100을 문자열 '100'으로 변환시킴
In [ ]:
str(100)
In [ ]:
int("100")
In [ ]:
str(3.14)
In [ ]:
float("3.14")

2.14 사용자로부터 문자열 입력받기

In [36]:
name = input("이름을 입력하시오: ")
이름을 입력하시오: 홍길동
In [37]:
name = input("이름을 입력하시오: ") 
print(name, "씨, 안녕하세요?") 
print("파이썬 프로그래밍의 세계에 오신 것을 환영합니다.")
이름을 입력하시오: 홍길동
홍길동 씨, 안녕하세요?
파이썬 프로그래밍의 세계에 오신 것을 환영합니다.

2.15 사용자로부터 정수 입력받기

In [38]:
x = int(input("첫 번째 정수를 입력하시오: ")) 
y = int(input("두 번째 정수를 입력하시오: ")) 
s = x + y 
print(x, "과", y, "의 합은", s, "입니다.")
첫 번째 정수를 입력하시오: 10
두 번째 정수를 입력하시오: 20
10 과 20 의 합은 30 입니다.

LAB 2-5 로봇 기자 만들기

In [39]:
# 사용자의 대답을 변수에 저장한다. 
stadium = input("경기장은 어디입니까? ") 
winner = input("이긴 팀은 어디입니까? ") 
loser = input("진 팀은 어디입니까? ") 
vip = input("우수선수는 누구입니까? ") 
score = input("스코어는 몇대몇입니까? ") 

# 사용자의 입력을 바탕으로 기사를 작성한다.
print("") 
print("===========================================") 
print("오늘", stadium, "에서 야구 경기가 열렸습니다.") 
print(winner, "과", loser, "은 치열한 공방전을 펼쳤습니다.") 
print(vip, "의 맹활약으로 ", winner,"가", loser,"를 ", score,"로 이겼습니다.") 
print("===========================================")
경기장은 어디입니까? 상암
이긴 팀은 어디입니까? 삼성
진 팀은 어디입니까? LG
우수선수는 누구입니까? 홍길동
스코어는 몇대몇입니까? 8:7

===========================================
오늘 상암 에서 야구 경기가 열렸습니다.
삼성 과 LG 은 치열한 공방전을 펼쳤습니다.
홍길동 의 맹활약으로  삼성 가 LG 를  8:7 로 이겼습니다.
===========================================

LAB 2-6 부동산 광고 만들기

In [40]:
street = "서울시 성북구" 
type = "오피스텔" 
number_of_rooms = 1 
price = 70000000
 
print("###############################") 
print("#                             #") 
print("# 부동산 매물 광고                #") 
print("#                             #") 
print("###############################") 
print("") 
print(street, "에 위치한 아주 좋은 ", type, "가 매물로 나왔습니다. 이 ", 
type, "는 ", number_of_rooms, "개의 방을 가지고 있으며 가격은", 
price, "입니다.") 
###############################
#                             #
# 부동산 매물 광고                #
#                             #
###############################

서울시 성북구 에 위치한 아주 좋은  오피스텔 가 매물로 나왔습니다. 이  오피스텔 는  1 개의 방을 가지고 있으며 가격은 70000000 입니다.
In [ ]: