조컴퓨터

200813 OOP 01 - 컴퓨터 기초 및 Python 환경 구축 본문

자바 웹개발자 과정/Python

200813 OOP 01 - 컴퓨터 기초 및 Python 환경 구축

챠오위 2020. 8. 26. 01:22

컴퓨터의 신호체계는 0과 1로 이루어진 이진 코드이다.

사람의 단어와 컴퓨터가 이해할 수 있는 언어는 다르기 때문에 이를 이어주는 프로그래밍 언어가 필요하다.

 

프로그래밍 언어는 고급 언어와 저급 언어로 구분된다.

① 고급 언어 - Java, Python, C++, R, 델파이 등등

② 저급 언어 - 기계어

 

이때 고급 언어로 작성된 소스는 컴퓨터가 바로 이해할 수 없기 때무네 컴파일(compile) 과정을 통해서 컴퓨터가 이해할 수 있는 0과 1로 이루어진 기계어로 변환한 후 컴퓨터가 사용하게 된다. 

 

입력데이터 → 가공  출력  

 

위의 과정을 거쳐 화면에 출력된다. 

 

 

 

 

[프로그램(코딩) 기초 문법]

① 변수와 상수

② 연산자

③ 조건문

④ 반복문

⑤ 배열

⑥ 함수

 

 

[Python 프로그램 참조사이트]

pythonstudy.xyz/

 

예제로 배우는 파이썬 프로그래밍

파이썬 프로그래밍 학습 사이트 파이썬 전자책(eBook) 출간

pythonstudy.xyz

 

 

[명령프롬프트]

바탕화면 하단의 돋보기

→ cmd

>cls (clear screen) 화면소거

>cd..                  상위폴더 이동

>cd.                   현재폴더
>e:                    드라이브 변경
>dir                   목록확인
>cd java0812       폴더변경
>cd python
>cd section0814

 

>python  --version      파이선 설치 및 버전 확인

>python 01_varible.py  파이선 파일 실행

 

 

print(123)          #숫자형데이터
print("대한민국")    #문자형데이터 "", ''
print('서울특별시')

 

 

 

① 변수와 상수

 

데이터의 형태

- 숫자형(정수, 실수)

- 문자형(문자형, 문자열형)

- 논리형

- 날짜형

- 리스트, 데이터프레임, 딕셔너리, 튜플 등등

 

print(456)    #양의 정수
print(-789)   #음의 정수
print(1.2)    #실수
print(-3.4)

print("S")    #문자형 (character)
print("SKY")  #문자열형 (string)

print(True)   #논리형, 참
print(False)  #논리형, 거짓
print("True") #문자열형, True

 

 

데이터(data), 값(value)의 표현

- 상수 constant

- 변수 variable

 

 

상수 constant

절대 변하지 않는 고정 불변의 값을 말한다.

 

print(3)
print(4.5)
print("A")
print("ㄱ")
print(True)

 

변수 variable

변하는 값을 말한다. 단, 대입(저장)연산자 '='에서 이루어 진다. 

 

a=3
print(a)    #변수
print("a")  #상수
print('a')  #상수

 

 

변수명을 작성하는 규칙

변수명에 의미를 부여해서 영문자, 숫자 등을 조합하여 작성한다.

한글 변수명도 가능하지만 되도록 사용하지 않는다.

 

name="코로나"
kor=95
eng=100
mat=80
myAge=20
flag=True

print(name)
print(kor)
print(eng)
print(mat)
print(myAge)
print(flag)

print(5+3) #8
print(5-3) #2
print(5*3) #15
print(5/3) #1.6666666666666667

a=5
b=3
print(a+b) #8
print(a-b) #2
print(a*b) #15
print(a/b) #1.6666666666666667

total=kor+eng+mat
aver=total/3
print(total) #275
print(aver)  #91.66666666666667

 

 

출력서식 formatting

UI, 인터페이스

 

print("SEOUL")
print("\n")     #줄 바꿈 (2줄)
print("JEJU")
print("\n\n\n") # (4줄)
print("#\t#")   #탭 기능
print("\"")     # " 기호
print("\'")     # ' 기호
print("\\")     # \ 기호

 

 

%d 정수

%f 실수

%s 문자열

 

print("나이:%d" % 25)
print("키:%f" % 178.9)
print("이름:%s" % "손흥민")

*/ 출력값
	나이:25
	키:178.9
	이름:손흥민
/*

 

print("#%d#" % 123)     #123#
print("#%5d#" % 123)    #  123# -> 5칸 내에서 오른쪽 정렬
print("#%-5d#" % 123)   #123  # -> 5칸 내에서 왼쪽 정렬
print("#%05d#" % 123)   #00123# -> 5칸 내에서 빈칸을 0으로 채워라 **

money=123.456789
print("#%f#" % money)       #123.456789#
print("#%10.3f#" % money)   #   123.457# -> 123.456789의 소수점 6자리에서 앞의 3자리만 사용하고 
						10칸 내에서 오른쪽 정렬
print("#%-10.3f#" % money)  #123.457   # -> 123.456789의 소수점 6자리에서 앞의 3자리만 사용하고 
						10칸 내에서 왼쪽 정렬
print("#%.3f#" % money)     #123.457#    -> 123.456789의 소수점 6자리에서 앞의 3자리만 사용한다

print("#%s#" % "KOREA")     #KOREA#
print("#%10s#" % "KOREA")   #     KOREA# -> 10칸 내에서 오른쪽 정렬
print("#%-10s#" % "KOREA")  #KOREA     # -> 10칸 내에서 왼쪽 정렬

print("%d년 %d월 %d일" %(2020, 8, 13))

 

 

예제) 성적표를 출력하시오.

 

name="박지성"
kor=95
eng=90
mat=100
aver=(kor+eng+mat)/3

print("이름:%s" % name)
print("국어:%d" % kor)
print("영어:%d" % eng)
print("수학:%d" % mat)
print("평균:%.2f" % aver)   #평균:95.00
print("이름:%s, 국어:%d, 영어:%d, 수학:%d, 평균:%.2f" % (name, kor, eng, mat, aver))

 

 

출력서식을 재활용할 수 있다.

 

str="%s 날짜는 %d년 %d월 %d일입니다."
msg1= str % ("정모", 2020, 8, 5)
print(msg1)     #정모 날짜는 2020년 8월 5일입니다.

msg2= str % ("번개", 2019, 9, 3)
print(msg2)     #번개 날짜는 2019년 9월 3일입니다.

 

 

 

② 연산자

이식성이 풍부하다. → 만들어낼 수 있는 연산자가 많다

*이식성 : 소프트웨어가 한 컴퓨터 시스템이나 환경에서 다른 시스템이나 환경에서 다른 시스템이나 환경으로 쉽게 옮겨질 수 있는 성질

 

산술연산자, 비교연산자, 논리연산자

 

 

 

②- 1) 산술연산자

 

print(5+3)  #8
print(5-3)  #2
print(5*3)  #15
print(5/3)  #1.6666666666666667 -> (실수값을 포함한) 몫

print(5//3) #1 -> (정수값만을 포함한) 몫
print(5%3)  #2 -> 나머지(값)

print(3/5)  #0.6
print(3//5) #0
print(3%5)  #3

print(3**5) #243 = 3^5

 

 

②- 2) 비교(관계)연산자

결과값이 논리형(참, 거짓)으로 반환된다.

논리형(boolean): True/False

 

print(3<5)  #True
print(3>5)  #False
print(3>=5) #False
print(3<=5) #True
print(3==5) #False * '==' : 서로 같다.
print(3!=5) #True ** '!=' : 서로 같지 않다.

 

 

예제1) 임의의 정수가 짝수인지 확인하시오.

        (Tip) 짝수: 2로 나누어서 나머지가 0인 수

 

num=4
print(num%2==0) #True

num=5
print(num%2==0) #False

 

 

예제2) 임의의 정수가 3의 배수인지 확인하시오.

 

num=9
print(num%3==0) #True

num=10
print(num%3==0) #False

 

 

문제1) 해당 년도가 윤년인지 확인하시오.

 

#->365.2422222
#->윤년: 1년이 366일
#->4년마다 윤년(4의 배수)

year=2020
print(year%4==0)  #True -> 2월 29일까지 있음

leap=year%4==0
print(leap)       #True

 

 

문제2) 지폐의 개수를 구하시오.

 

money=54320
"""
    만 원 5장
    천 원 4장
    백 원 3장
    십 원 2장
"""

 

내 답안

print("만 원 %d장" % (money//10000))
print("천 원 %d장" % ((money%10000)//1000))
print("백 원 %d장" % (((money%10000)%1000)//100))
print("십 원 %d장" % ((((money%10000)%1000)%100)//10))

 

선생님 답안

 

m=money//10000      #5
print("만 원 %d장" % m)

money=money%10000   #4320 / 다시 대입 가능
c=money//1000       #4
print("천 원 %d장" % c)

money=money%1000    #320
b=money//100        #3
print("백 원 %d장" % b)

money=money%100     #20
s=money//10         #2
print("십 원 %d장" % s)

 

나열하는 방식이 더 예쁘다.

 

 

 

②- 3) 논리연산자

조건이 2가지 이상일 때 전체적으로 판단

결과값이 논리형(boolean)으로 반환

 

and연산자 / or연산자 / not연산자

 

 

②- 3)- 1) and연산자

그리고, ~이면서

모든 조건을 만족하면 True

 

print(True and True)    #True
print(True and False)   #False
print(False and True)   #False
print(False and False)  #False

 

 

②- 3)- 2) or연산자

또는, ~이거나

조건들 중에서 하나라도 True이면 True

 

print(True or True)     #True
print(True or False)    #True
print(False or True)    #True
print(False or False)   #False

 

 

②- 3)- 3) not연산자

부정연산자, ~아니라면

 

flag=not (3<5)
print(flag)

 

 

※ 연산자 우선순위

최우선 연산자 () / 후순위 연산자 =

 

 

문제1) 임의의 정수가 2의 배수이면서 5의 배수인지 확인하시오.

 

num=10
print(num%2==0 and num%5==0)    #True

 

 

문제2) 임의의 정수가 1이거나 3인지 확인하시오.

 

code=1
print(code==1 or code==3)

 

 

문제3) 국어 점수가 80 ~ 89점 사이인지 확인하시오.

 

내 답안

 

kor=70
print(80<=kor<=89)

 

선생님 답안

 

kor=90
print(kor>=80 and kor<=89)

 

 

문제4) 윤년 구하는 공식

 

y=2020
print(y%4==0 and y%100!=0 or y%400==0)

 

 

==와 is 연산의 차이

a=100           #정수
b=100.0         #실수

# 단순히 값만 비교하므로 두 값이 같다고 판단함
print(a==b)     #True

#값의 종류(데이터타입)까지 비교하므로
#->정수와 실수는 다르다고 판단함
print(a is b)   #False