집에서 GPU를 탑재한 PC로 본격적으로 딥러닝 공부하고 싶은 분들이라면 


- 어느 정도 사양으로 PC를 구성해야 하나? 


- 가격대는 어느정도 되나? 


궁금하실 것 같습니다.  


저도 궁금해서 구글링도 하고, 주변에 지인 통해서 물어도 보면서 조사를 해보았었거든요. 


이번 포스팅에서는 제가 2주일 전에 집에서 딥러닝 공부하는데 사용하려고 장만한 PC 사양과 가격을 공유하고자 합니다.  사양 조사하고 견적받아서 비교해보는데 조금이나마 도움이 될 것 같습니다. 


와이프한테 재가(?)를 받은 예산 한도가 있어서 그래픽카드는 GTX 1070 DDR5 8GB로 했구요(예산이 넉넉하시면 GTX 1080 으로...), 가성비를 감안해 조립 PC로 장만했습니다.  


그동안 매번 노트북만 사용했고 데스크탑은 처음인데요, 데스크탑이 소음이 조금 있는거 빼면 가격대비 성능이 월등해서 아주 만족하고 있습니다. 






아래에 표로 사양이랑 가격을 표로 정리해보았습니다. (2017년 09월 01일 기준) 

가격은 시간이 지날 수록 내려갈 것이니 참고만 하시구요, 저는 11번가 에서 조립PC 업체 중에 한군데서 주문했는데요, 뽁뽁이로 칭칭 감아서 안전하게 빨리 배송 받았습니다.  


구분

제품명/ 스펙 

 가격 (단위: 원)

 가격 합

  데스크탑

  본체

 CPU : 인텔 7세대 카비레이크 i7 7700

 1,300,000 

 1,761,600 

(배송비 3,000 별도) 

 쿨러 : 잘만 CNPS80F 저소음 쿨러

 메인보드 : 기가바이트 B250M DS3H M-ATX

 메모리 : DDR4 16GB PC4 17000

 SSD : 120G SATA3

 그래픽 : AXLE GTX 1070 DDR5 8GB

 파워 : STROM 600LF 정격 600W V2.3

 케이스 : MK2 MAG 3.0 USB3.0

 게이밍 장 패드 (이벤트 선물)

 추가
 구성

 HDD 1TB 추가 (1개)

  59,900 

 RAM 16GB 추가 (1개)

138,000 

 삼성850 250G 변경 (1개)

67,900 

 LG DVD-RW (1개)

23,000 

 윈도우10+설치복구 (1개)

149,900 

 브리츠 BA-R9 스피커 (1개)

22,900 


GPU로 딥러닝 하는거 말고도요, VMware 깔아서 그 위에 우분투 설치하고, Ambari 설치한 후에, Ambari로 하둡 Eco 설치하기 위해서 SSD는 250GB로 했습니다.  


메모리도 최소 8GB 이상으로 하라고 권고하는데요, 저는 넉넉하게 32GB로 했습니다. 


왠만한 것은 D 드라이브 1TB에 저장해서 쓰면 하드도 꽤 안정적으로, 넉넉하게 사용할 수 있을 것 같습니다. 


5년여 전의 회사에서 쓰던 서버급을 집에서 사용하는 호사를 누리다니, 정말 기분이 좋습니다. ^____^



Wifi 인터넷 사용하기 위해 USB무선랜카드 듀얼밴드 랜카드로 했습니다. 듀얼밴드라서 속도가 무척 빠르구요, USB 꽂기만 하면 알아서 드라이버도 설치되고, 사용하기 무척 편하네요. 


구분 

제품명/ 스펙 

가격 (단위 : 원) 

무선

랜카드

 IPTIME A2000UA-4dbi USB무선랜카드 

 듀얼밴드 랜카드 (1개)

  31,300 

(배송비 2,500 별도) 



모니터는 삼성 32인치 커브드 모니터를 메인으로 쓰고, 세로로 돌려서 쓸 수 있는 델 24인치 모니터를 보조로 사용하고 있습니다. 델 24인치 모니터가 베젤도 얇고, 세로로 길게 쓸 수 있어서 긴 코드 참고해서 보면서 쓰기에 아주 좋습니다. 삼성 모니터는 기사님께서 배송 & 설치해주셔서 편했구요, 델 모니터는 택배로 온거 제가 설치했는데요, 설명서 보고 따라하면 아주 쉬웠습니다. 


키보드는 회사에서 쓰고 있는 MS거 인체공학 키보드로 집에서 쓸거 하나 더 장만했습니다. 'ㅎ'이랑 'ㅠ'의 자판 위치가 일반 키보다랑은 사용하는 손가락이 달라서 처음에 좀 익숙해지는데 시간이 필요한데요, 확실히 인체공학적이라 이 키보드 사용하고나서 부터는 손목 시린거가 없어졌어요. 비싼게 흠이긴 해요. ^^;


구분 

제품 스펙

가격 (단위 : 원)

 모니터

 삼성 커브드 모니터[LC27F396FHKXKR] (1개)

 310,000 (배송 무료) 

 DELL U2417H 24인치 모니터 (1개)

264,000 (배송 무료) 

모니터

받침대 

 강화유리 모니터 받침대 (1개)

17,500 (배송 무료) 

 키보드

 MS스컬프트 인체공학 데스크탑 (1개)

125,800 (배송 무료) 



PC 장만하려고 준비하시는 분들에게 도움이 되었기를 바랍니다. 



Tensorflow GPU 설치는 아래의 2곳 블로그를 참고하였습니다. 

(Visual Studio 2017 설치, CUDA Toolkit 설치, cuDNN 설치, Anaconda 설치, 가상환경 설정 등)

=> (1) http://www.datamarket.kr/xe/index.php?mid=board_LCmL04&document_srl=34034

=> (2) http://blog.naver.com/chrhdhkd/221082575543

    (참고 : 두번째 블로그는 Keras 설치 소개인데요, conda install -n test git graphviz 실행하면 python이 버전 3.5에서 버전 2.7로 Downgrade 되면서 Tensorflow가 설치가 안되더군요. 그래서 저는 conda install -n test git graphviz 는 실행/설치하지 않고 바로 Tensorflow-gpu 실행/설치했습니다) 


이번 포스팅이 도움이 되었다면 아래의 '공감~'를 꾸욱 눌러주세요. ^^



저작자 표시 비영리 변경 금지
신고
Posted by R Friend R_Friend

문자열이나 숫자를 특정 형식으로 길이를 지정해주면 데이터를 출력했을 때 깨끗하게 정리가 되어 보이기 때문에 가독성이 좋아집니다. 


혹은 데이터가 특정 형식(format)으로 DB에 이미 지정이 되어 있어서 데이터 간 병합이나 join을 하기 위해 특정 형식으로 데이터를 표준화 해주어야 할 경우가 있습니다. 


이번 포스팅에서는 {base} package의 sprintf() 함수를 사용해서 


 - (1) 문자열을 매개변수 width 길이로 만들고, 빈 자리는 '0'으로 채우기 : sprintf("%05d", var)


 - (2) 소수점 숫자(numeric)의 자리수를 지정해주기 : sprintf(".5f", var)


하는 방법에 대해서 알아보겠습니다. 


이번 포스팅의 함수 sprintf()는 데이터 전처리할 때 종종 사용하는 편이예요. 



 (1) 문자열을 특정 길이로 만들고, 빈 자리수만큼 '0'을 채우기 : sprintf("%05d", var)





1자리, 2자리, 3자리, 4자리를 가진 데이터를 가지고 예제로 사용할 간단한 DataFrame을 만들어보겠습니다. 



> # making a sample DataFrame

> df <- data.frame(var1 = c(1, 11, 111, 1111))

> df

  var1

1    1

2   11

3  111

4 1111

 




위의 예제 데이터셋을 가지고, 칼럼 var1의 데이터를 


- '1 자리수를 가진 문자열'로 만들되, '1자리수가 안되면 모자라는 자리수 만큼'0'으로 채우기'

- '2 자리수를 가진 문자열'로 만들되, '2자리수가 안되면 모자라는 자리수 만큼'0'으로 채우기'

- '3 자리수를 가진 문자열'로 만들되, '3자리수가 안되면 모자라는 자리수 만큼'0'으로 채우기'

- '4 자리수를 가진 문자열'로 만들되, '4자리수가 안되면 모자라는 자리수 만큼'0'으로 채우기'

- '5 자리수를 가진 문자열'로 만들되, '5자리수가 안되면 모자라는 자리수 만큼'0'으로 채우기'


를 해보겠습니다. 


만약 매개변수 자리수보다 데이터의 길이가 더 크다면 '0'이 채워지지는 않습니다.  아래의 예제의 결과를 View(df)로 해서 보면 원래의 변수 var1과 sprintf() 함수를 사용해서 만든 var1_01d 변수의 데이터 출력 형식이 다른 것을 알 수 있습니다. 


그리고 class 함수로 데이터 형식을 살펴보니 원래 변수 var1은 숫자형(numeric)이지만 sprintf() 함수로 만든 새로운 변수는 요인형(factor)의 문자열로 바뀌어 있음을 알 수 있습니다. 



> #-------------------------

> # (1) sprintf(%03d, var) : Format number as fixed width, with leading zeros

> df <- transform(df, 

+                 var1_01d = sprintf("%01d", var1), 

+                 var1_02d = sprintf("%02d", var1), 

+                 var1_03d = sprintf("%03d", var1), 

+                 var1_04d = sprintf("%04d", var1), 

+                 var1_05d = sprintf("%05d", var1))

> df

  var1 var1_01d var1_02d var1_03d var1_04d var1_05d

1    1        1       01      001     0001    00001

2   11       11       11      011     0011    00011

3  111      111      111      111     0111    00111

4 1111     1111     1111     1111     1111    01111



> View(df)



> sapply(df, class)

     var1  var1_01d  var1_02d  var1_03d  var1_04d  var1_05d

"numeric"  "factor"  "factor"  "factor"  "factor"  "factor"




 (2) 소수점 숫자(numeric)의 자리수를 지정해주기 : sprintf(".5f", var)


무리수인 자연상수 e의 소수점 10째 자리까지의 수를 대상으로 sprintf("%.5f", e) 함수를 사용해서 소수점의 자리수를 설정해보겠습니다. "%.숫자f"의 숫자 만큼 소수점을 표시해주는데요, 반올림을 해서 표시해줍니다. 아래의 예제를 보시면 금방 이해할 수 있을 것입니다. 



> #-------------------------

> # (3) sprintf("%.5f", x) : formatting decimal point, 

> e <- c(2.7182818284) # mathematical constant, the base of the natural logarithm

> sprintf("%.0f", e)

[1] "3"

> sprintf("%.1f", e)

[1] "2.7"

> sprintf("%.2f", e)

[1] "2.72"

> sprintf("%.3f", e)

[1] "2.718"

> sprintf("%.5f", e)

[1] "2.71828"

> sprintf("%.10f", e)

[1] "2.7182818284"

 




아래의 예시는 sprintf("%숫자.f, e)로 '숫자' 부분에 매개변수로 정수 부분의 자리수를 지정해주는 예시입니다. 소수점의 자리도 모두 포함해서 '숫자' 부분 매개변수만큼의 길이로 표시 형식을 맞추어줍니다. 



> e <- c(2.7182818284) # mathematical constant, the base of the natural logarithm

> sprintf("%1.1f", e)

[1] "2.7"

> sprintf("%2.1f", e)

[1] "2.7"

> sprintf("%3.1f", e)

[1] "2.7"

> sprintf("%5.1f", e)

[1] "  2.7"

> sprintf("%10.1f", e)

[1] "       2.7"

>  



많은 도움 되었기를 바랍니다. 

이번 포스팅이 도움이 되었다면 아래의 '공감~'를 꾸욱 눌러주세요. ^^





저작자 표시 비영리 변경 금지
신고
Posted by R Friend R_Friend

이번 포스팅에서는 R ggplot2 패키지의 coord_fixed(ratio = number) 옵션을 사용해서 그래프의 크기 (가로, 세로 비율)를 조정하는 방법을 소개하겠습니다. 


1 ~ 4의 정수 좌표를 가지는 X 축과 

1 ~ 4의 정수 좌표를 가지는 Y 축을 가지는 

가상의 데이터를 사용해서 예를 들어보겠습니다. 


X축이 Y축이 1:1 비율인 그래프가 되겠습니다. 



[ 가상 데이터셋 생성 ]



#==========================

# Rssizing the plot

#==========================


install.packages("ggplot2")

library(ggplot2)


# X, Y coordinate and segments(A, B category) data set

my.df <- data.frame(XCoord = c(1, 1, 1, 2, 2, 2, 3, 3, 4, 4), 

                    YCoord = c(1, 2, 4, 1, 3, 4, 2, 4, 1, 4), 

                    Seg = c("A", "A", "A", "A", "B", "A", "B", "B", "B", "B"))





X와 Y좌표별로 Seg. 변수의 "A"는 검정색, "B"는 흰색으로 색깔을 지정해서 Heatmap을 그려보겠습니다. 

X좌표와 Y좌표가 1~4 범위를 동일하게 가지고 있으므로 크기에 대한 설정없이 디폴트 세팅으로 그래프를 그리면 아래 처럼 정사각형 1:1 비율로 그래프가 그려집니다. 



[ 그림 1 ] 원본 그래프 (Original Plot) : 가로축과 세로축이 1:1



# Original plot

ggplot(my.df, aes(x=XCoord, y=YCoord, fill=Seg)) +

  geom_tile(colour="gray80") +

  scale_fill_manual(values = c("black", "white")) +

  ggtitle("Original Heatmap by X4*Y4 size")






[ 그림 2 ] 가로축과 세로축의 비율을 1:2 로 설정하기 : coord_fixed(ratio = 2)


[그림 1]에서 원본 이미지가 가로축과 세로축이 1:1 비율의 정사각형 그래프였는데요, 이를 가로:세로 비율을 1:2로 세로가 가로의 2배 비율인 그래프(가로:세로 = 1:2)로 바꾸어 주려면 coord_fixed(ratio = 2) 를 설정해주면 됩니다. 



# Resized plot using coord_fixed(ratio = number)

ggplot(my.df, aes(x=XCoord, y=YCoord, fill=Seg)) +

  geom_tile(colour="gray80") +

  scale_fill_manual(values = c("black", "white")) +

  coord_fixed(ratio = 2) +

  ggtitle("Heatmap : Resized X:Y axis size with 1:2 ratio")







[ 그림 3 ] 가로축과 세로축의 비율을 2:1 로 설정하기 : coord_fixed(ratio = 0.5)


가로와 세로축 비율이 1:1인 원본 이미지 [그림 1] 을 가로가 세로축의 2배인 그래프 (가로:세로 = 2:1)로 바꾸고 싶다면 coord_fixed(ratio = 0.5) 로 설정해주면 됩니다. 



# Resized plot using coord_fixed(ratio = number)

ggplot(my.df, aes(x=XCoord, y=YCoord, fill=Seg)) +

  geom_tile(colour="gray80") +

  scale_fill_manual(values = c("black", "white")) +

  coord_fixed(ratio = 0.5) +

  ggtitle("Heatmap : Resized X:Y axis size with 2:1 ratio")









아래는 EBImage 패키지의 resize() 함수를 사용해서 png 이미지 파일로 출력할 때 이미지 크기를 (a) 특정 가로, 세로 크기로 설정해주는 방법과 (b) 비율로 설정해주는 방법입니다. 

R code는 stackoverflow 의 답변 중에서 aoles 님께서 달아놓은 것인데요, 코드 그대로 인용해서 소개합니다. ( * R code 출처 : https://stackoverflow.com/questions/35786744/resizing-image-in-r )


#==============
# Image resize using EBImage package

# installing EBImage package
source("http://bioconductor.org/biocLite.R")
biocLite("EBImage")


# resizing image using EBImage package's resize() function

library("EBImage")

x <- readImage(system.file("images", "sample-color.png", package="EBImage"))


# width and height of the original image
dim(x)[1:2]


# scale to a specific width and height
y <- resize(x, w = 200, h = 100)


# scale by 50%; the height is determined automatically so that
# the aspect ratio is preserved
y <- resize(x, dim(x)[1]/2)


# show the scaled image
display(y)


# extract the pixel array
z <- imageData(y)


# or
z <- as.array(y)

 



많은 도움이 되었기를 바랍니다. 

이번 포스팅이 도움이 되었다면 아래의 '공감~'를 꾸욱 눌러주세요. 



저작자 표시 비영리 변경 금지
신고
Posted by R Friend R_Friend

지난 포스팅에서는 파이썬 프로그래밍에 들어가기에 앞서 파이썬이 어떻게 참(True), 거짓(False)을 평가, 판단하는지에 대한 기본 문법을 알아보았습니다. 


이번 포스팅부터는 파이썬 프로그램의 흐름을 제어(Python progmram flow control)하는 방법에 대해서 몇 개 포스팅으로 나누어서 소개를 하겠습니다. 


파이썬 프로그램 흐름 제어에서 알아야 할 큰 2가지 뼈대가 있다면 


- (1) 조건이 참(True), 거짓(False)인지에 따라 프로그램 흐름을 나누어 주는 분기문(Branch statements)

       : if statements

       : if, else statements

       : if, elif, else statements

       : nested if statements


- (2) 조건이 참이거나 순서열의 끝까지 반복, 중단하게 해주는 반복문

       : while

       : for

       : continue, break


가 있습니다. 


이번 포스팅에서는 먼저 if, elif, else 분기문(Branch statement)에 대해서 알아보겠습니다. 



[ 파이썬 프로그램 흐름 제어 (Python program flow control) ]






먼저 if, else 분기문에서 사용하는 용어를 간단히 짚어보고 넘어가겠습니다. 


  • if 조건문에는 참(True), 거짓(False)을 평가할 수 있는 조건을 써주고, 마지막에는 콜론(:)을 붙여줍니다.
  • if 조건문이 거짓이면 'else:' 조건문으로 프로그램 흐름이 넘어가게 되며, 역시 마지막 부분에 콜론(:)을 붙여줍니다. 
  • if, else 조건문 아래의 컴퓨터에게 시킬 일을 적어놓은 부분은 '코드 덩어리 (Code Block)'라고 합니다. 
  • Code Block 은 '들여쓰기(indentation)'를 해서 구분을 해줍니다. 보통 space bar로 4칸 사용합니다. 
    (R, Java, C 등은 중괄호 { } 를 사용)


[ 파이썬 if, else 분기문 예시 (example of Python if, else branch statement) ]




이제 파이썬의 if, else 분기문을 가지고 간단한 프로그램을 하나 짜보도록 하겠습니다. 


 (1) 조건이 1개 일 때 if, else 분기문 (if, else branch statement with 1 condition)


파이썬이 해야 하는 일의 흐름은, 

  • (1-1) 파이썬 시험 점수를 입력받아서

  • (1-2) 만약 파이썬 시험 점수가 80점 이상이면 (if 조건문 True)
    "당신의 파이썬 점수는 xx점입니다. 축하합니다. 파이썬 시험을 통과하였습니다. :-)"
    를 출력하고, 종료. 

  • (1-3) 만약 파이썬 시험 점수가 80점 이상이 아니면 (if 조건문 False)
    "당신의 파이썬 점수는 xx점입니다. 파이썬 시험을 낙제했습니다. 공부 더 하세요. T_T"
    를 출력하고 종료. 

        [ Flow Diagram ]



위의 프로그램 흐름을 if, else 분기문을 사용해서 파이썬 프로그래밍을 해보면 아래와 같습니다. 



# (1) if, else statement


print('Put your Python test score : ')


py_score = int(input())


if py_score >= 80:

    

    print('Your Python score is {0}'.format(py_score))

    print('Congratulations! You passed Python test. :-)')

    

else:

    

    print('Your Python score is {0}'.format(py_score))

    print('You failed Python test. Study more! T_T')

 



아래에 파이썬 시험 점수가 90점일 때와 70점일 때 원하는 메시지대로 출력을 제대로 해주는지 시험해 보겠습니다. 



Put your Python test score :

90


Your Python score is 90

Congratulations! You passed Python test. :-)

 



Put your Python test score :

70


Your Python score is 70

You failed Python test. Study more! T_T

 



if 와 else 분기절의 마지막에 콜론(colon, :)을 실수로 빼먹으면 'SyntaxError: invalid syntax' 에러가 발생합니다. 



# If you miss colon(:) at the end, then 'SyntaxError: invalid syntax'

In [3]: print('Put your Python test score : ')

    ...:

    ...: py_score = int(input())

    ...:

    ...: if py_score >= 80 # Oops! Syntax Error due to no colon(:)

    ...:

    ...: print('Your Python score is {0}'.format(py_score))

    ...: print('Congratulations! You passed Python test. :-)')

    ...:

    ...:

    ...: else:

    ...:

    ...: print('Your Python score is {0}'.format(py_score))

    ...: print('You failed Python test. Study more! T_T')

    ...:

File "<ipython-input-18-b2c00ee4ee98>", line 5

if py_score >= 80 # Oops! Syntax Error due to no colon(:)

^

SyntaxError: invalid syntax

 




다음으로, 조건이 2개 이상일 때 if, elif, else 분기문 사용하는 법을 알아보겠습니다. elif 는 else if 의 줄임말로 보면 되겠습니다. 


 (2) 조건이 2개 일 때 if, elif, else 분기문 

      (if, elif, else branch statement with multiple condition expressions)


파이썬 시험 점수는 0점 ~ 100점 사이의 정수만 가능하고, 0점~100점 사이의 정수를 벗어나면 (예: -50점, 150점) '점수를 잘못입력했습니다'라는 안내 메시지를 출력하는 것으로 프로그램 코드를 좀더 똑똑하게 짜보겠습니다. 

  • (2-1) 파이썬 시험 점수를 입력받아서

  • (2-2) 만약 파이썬 시험 점수가 '80점 이상 ~ 100점 이하' 이면 
    "당신의 파이썬 점수는 xx점입니다. 축하합니다. 파이썬 시험을 통과하였습니다. :-)"를 출력하고, 종료. 

  • (2-3) 만약 파이썬 시험 점수가 '80점 이상 ~ 100점 이하'가 아니면서, '0점 이상 ~ 80점 미만'이면 
    "당신의 파이썬 점수는 xx점입니다. 파이썬 시험을 낙제했습니다. 공부 더 하세요. T_T"를 출력하고 종료. 

  • (2-4) 만약 파이썬 시험 점수가 '80점 이상 ~ 100점 이하'도 아니고, '0점 이상 ~ 80점 미만'도 아니면 
    "파이썬 시험 점수를 잘못 입력하였습니다" 를 출력하고 종료. 


       [ Flow Diagram ]




위의 (2-2) 프로그램 흐름을 파이썬 코드로 짜보면 아래와 같습니다.  if 조건문 안에 if 조건문을 중첩해서 쓸 수도 있구요, and, or 논리 연산자를 같이 쓸 수도 있습니다. 


# (2) if, elif, else statement


print('Put your Python test score : ')


py_score = int(input())


if py_score >= 80 and py_score <= 100:

    

    print('Your Python score is {0}'.format(py_score))

    print('Congratulations! You passed Python test')

    

elif py_score >= 0 and py_score < 80:

    

    print('Your Python score is {0}'.format(py_score))

    print('You failed Python test. Study more!')

    

else:

    

    print('You put the wrong score.')

 



파이썬 점수로 150점 (<- 잘못 입력), 90점(<- 시험 통과), 60점(<- 시험 낙제), -50점(<- 잘못 입력) 을 각 각 입력해보겠습니다. 



Put your Python test score : 

150


You put the wrong score.

 



Put your Python test score : 

90


Your Python score is 90

Congratulations! You passed Python test

 



Put your Python test score : 

60


Your Python score is 60

You failed Python test. Study more!

 



Put your Python test score : 

-50


You put the wrong score.

 




 (3) if 조건문 안에 if 조건문을 중첩해서 프로그래밍 하기 (nested if statements)


위의 (2)번 프로그램 흐름을 nested if statements를 사용해서 아래에 구현해 보았습니다. 위의 (2)번 if, elif, else 보다 더 복잡하고 코드도 길군요. 특히, nested if statements 를 사용할 때는 들여쓰기(indentation) 할 때 유의해야 합니다.  Spyder나 Pycharm 같은 IDE 의 Editor 창을 사용하면 자동으로 들여쓰기를 해줘서 실수를 방지하는데 도움이 됩니다. 



# (3) nested if statements

print('Put your Python test score : ')


py_score = int(input())


if py_score <= 100:

    if py_score >= 80:       

        print('Your Python score is {0}'.format(py_score))

        print('Congratulations! You passed Python test. :-)')

    

    else:       

        if py_score < 80:

            if py_score > 0:

                print('Your Python score is {0}'.format(py_score))

                print('You failed Python test. Study more! T_T')

                

            else:                

                print('You put the wrong score.')

        

else:    

    print('You put the wrong score.')

 



프로그램 흐름 제어 코드를 잘 짠건지 한번 시험을 해볼까요?  150점 (<- 잘못 입력), 90점 (<- 시험 통과), 60점 (<- 시험 낙제), -50점 (<- 잘못 입력)을 각 각 입력해보겠습니다.  아래 결과를 보니 파이썬 프로그램 코드를 제대로 짰네요. ^^



Put your Python test score : 

150


You put the wrong score.

 



Put your Python test score : 

90


Your Python score is 90

Congratulations! You passed Python test. :-)

 



Put your Python test score : 

60


Your Python score is 60

You failed Python test. Study more! T_T

 



Put your Python test score : 

-50


You put the wrong score.

 



많은 도움이 되었기를 바랍니다. 

이번 포스팅이 도움이 되었다면 아래의 '공감~'를 꾸욱 눌러주세요. 


다음 포스팅에서는 반복문(Loop statement)에 대해서 알아보겠습니다. 



저작자 표시 비영리 변경 금지
신고
Posted by R Friend R_Friend