본문 바로가기

Study/class note

python / 주석, 자료형 개념, print, for문 개념

ㅁ데이터를 저장하고 처리하는 아키텍처

rdbms(relation database management system) : orcal, mssql, mysql, db2

1. 대화식 모드 : 라인별로 하나씩 실행하는 모드

2. 배치 모드 : 여러개의 스크립트로 작성해서 한 번에 실행하는 모드

 

파이썬은 인터프리터 언어이기 때문에 소스코드 한 라인씩 순서대로 실행하고 그 결과를 출력합니다. 프로그래머가 한 라인의 소스코드를 입력하면 인터프리터가 곧바로 해석하여 그 결과를 프로그래머에게 제시하는 방식을 대화식모드라고 하고, 방금 인공지능 핑퐁 코드처럼 여러개의 스크립트를 한번에 작성해서 한번에 수행하는 것을 배치모드라고 합니다.

 

ㅇ인공지능

1. 지도 학습

2. 비지도 학습

3. 강화학습 => salsa이론을 적용한 핑퐁게임

 

배치모드 예제 :

메모장을 열고 다음과 같이 코드를 작성합니다.

a = 1
b = 5
c = 4
d = 6
print( a + b * c + d )

 

 

002 텍스트 에디터로 프로그래밍하기

 

라인단위로 코드를 입력하고 실행하는 인터페이스는 코드 한라인의 실행결과를 곧바로 확인하는 용도로는 유용하지만, 코드가 복잡해지고 길어지면 다소 효율성이 떨어집니다.

그래서 현업에서는 텍스트 에디터로 모드로 주로 작업을 하는데 텏트 에디터 모드는 spyder에서 코드를 실행하거나 주피터 노트북에서 코드를 실행하는 것 말합니다.

 

간단하게 데이터 분석과 시각화를 할때는 주피터 노트북이 유용합니다. 그렇지않고 아까 인공지능 핑퐁 코드처럼 긴 코드를 작성해서 수행할 때는 spyder나 파이참이 유용합니다.

 

 

예제. 

a = 1

b = 2

print(a+b)

a 변수에는 1을 할당하고 b변수에는 2를 할당하고 a와 b를 서로 더해서 변수에 할당된 값을 서로 더합니다.

 

 

003 변수명 만들기

"어떤 값을 임시로 저장하는 변수의 이름을 만드는 방법을 배움"

변수는 빈 컵이라고 생각하면 됨. 이 변수 이름을 생성할 때 주의사항은 다음과 같음.

1. 변수 이름에는 다음 문자만 사용할 수 있음.

 소문자(a~z), 대문자(A~Z), 숫자(0~9), 언더스코어(_)

2. 변수 이름은 숫자로 시작할 수 없음. (문자로 시작해야함)

3. 예약어를 사용할 수 없음.(파이썬에서 이미 사용하고 잇는 단어를 예약어라고 함)

 

문제2. 파이썬의 예약어가 무엇인지 확인하시오.

import keyword    #keyword라는 모듈을 이 코드창에서 사용하겠다.
                  #모듈(module)은 어떤 목적을 위해서 작성된 프로그램 코드의 집합

print(keyword.kwlist)    #keyworde라는 모듈안에 kwlist라는 변수를 실행하고 결과를 출력해라

즉, 변수이름이 'true = 1'이 될 수 없음

 


004 변수에 값 대입하기

파이썬은 변수에 값을 대입할 때 = (assingment) 기호를 사용함.

등호는 == 로 표시함.

a = 1
b = 'scott'
print (b)

다른 c++, 자바와 같은 프로그램 언어보다 훨씬 더 코드가 간단함.

 

문제3. 파이썬의 기본 철학을 확인하세요.

import this

문제4. 아래의 변수 b의 자료형을 확인하시오

ㅇ파이썬의 자료형 5가지 : 문자형, 숫자형, 리스트형, 튜플형, 사전형

print(b)          # b 변수의 값이 출력됨
print(type(b))    # b변수의 자료형이 출력됨

scott이라는 문자를 담은 b변수는 문자 자료형 변수라는 뜻.

 

문제5. 숫자 변수를 만들고 자료형을 확인해보세요.

int : 숫자형 자료

 

 

005 주석 처리하기(#)

프로그램에서 주석부분은 인터프리터에 의해 무시되는 텍스트의 한 부분.

코드를 설명하거나 나중에 어떤 문제를 고치기 위해 표시하는 등 다양한 목적으로 주석을 사용할 수 있음. 

코드를 작성할 때 주석을 잘 작성해두면 차후에 코드를 다시 보거나 타인이 코드를 검토할 때 매우 중요한 정보로 활용될 수 있음.

그래서 주석을 항상 달아주는 습관을 가지는 것이 좋음.

# 한 줄 주석

""" 여러 줄 
주석
사용 """

문제6. 알파벳 a부터 z까지 출력하는 아래의 코드를 실행하고 주석을 달아주세요.

import string                    #string 모듈을 코드창에서 사용할 수 있도록 임폴트
print(string.ascii_lowercase)    #알파벳 a부터 z까지 출력하는 코드

 

점심시간 문제. (SQL / 구글 입사 문제) 완전수를 출력하시오.

완전수란? 자기 자신을 제외한 모든 양의 약수들의 합이 자기 자신이 되는 자연수를 완전수라고 함.

예를 들면, 6, 28.

6 = 1+2+3  < == 1, 2, 3은 6의 약수

28 = 1+2+4+7+14  <== 1,2,4,7,14는 28의 약수

accept p_num prompt '숫자를 입력하세요~'
 
with num_table as (select level as num1
                     from dual
                     connect by level < &p_num ) 
select &p_num || '은 ' || case when sum(num1) = &p_num then '완전수 입니다'
                               else '완전수가 아닙니다.' end as "완전수 출력기"
 from num_table
 where mod(&p_num, num1) = 0 ;

 

 

006 자료형 개념 배우기

자료형이란 프로그래밍을 할 때 쓰이는 숫자, 문자열 등의 자료 혀앹로 사용되는 모든 것을 뜻함.

 

파이썬에서 자주 다루게 되는 자료형 5가지

1. 숫자형 : 숫자를 표현하는 자료형  ex) a = 1

2. 문자형 : 문자를 표현하는 자료형 ex) a = 'scott'

3. 리스트형 : 대괄호( [ ] ) 안에 임의 객체를 순서있게 나열한 자료형 ex) a = [1, 2, 3]

4. 튜플형 : 소괄호( ( ) ) 안에 임의 객체를 순서 있게 나열한 자료형 ex) a = ( 1, 2, 3 )

    - 리스트 자료형과 비슷하지만 요소값을 변경할 수 없다는 것이 리스트와 다름. 따라서 튜플형으로 구성한 데이터에 대한 신뢰가 생김.

5. 사전형 : 중괄호( { } ) 안에 키:값 으로 쌍으로 요소로 구성된 순서가 없는 자료형 e) a = {'i' : '나는', 'am' : '입니다','boy':'소년'}

 

문제7. 주사위의 눈 6개를 담는 dice라는 리스트 변수를 만드시오

dice = [1, 2, 3, 4, 5, 6]

문제8. 주사위를 한 번 파이썬으로 던져보세요.

import random                 # random 이라는 모듈을 불러옴

dice = [1,2,3,4,5,6]          # 주사위를 1개 만듦
print(random.choice(dice) )   # random이라는 모듈 안에 choice라는 함수를 실행하겠다

= dice 리스트 안의 요소중 아무거나 하나 랜덤으로 출력함.

 

문제9. 동전을 한 번 던져서 앞면이 나오는지 뒷면이 나오는지 확인할 수 있게 코드를 작성하시오

import random

coin = ['앞면','뒷면']
print(random.choice(coin) )

 

 

007 자료형 출력 개념 배우기(print)

print함수를 이용하면 다양한 자료형을 화면에 출력할 수 있습니다.

a = 200
b = 'scott'
c = [1,2,3,4,5,6]

print(a)
print(b)
print(c)

# 아래의 b변수에 들어있는 문자중에 s를 출력하시오
b = 'scott'

print(b[0])

문자 : s c  o t  t

위치 : 0 1 2 3 4

문자열 변수에서 특정 철자만 출력하려면 변수명 다음에 대괄호를 열고 위치 인덱스 번호를 쓰면 됨.

파이썬은 "0"번부터 시작함.

 

문제10. 아래의 리스트에서 첫번째 요소인 알파벳 a를 출력하시오

c = ['a','b','c']

print(c[0])

 

 

008 들여쓰기 개념 배우기

파이썬에는 실행코드 부분을 묶어주는 괄호가 없음. 따라서 괄호 대신에 들여쓰기를 사용함.

파이썬은 다른 프로그래밍 언어와 달리 if문, for loop문 등과 같은 제어문과 루프문의 실행코드를 구분해주는 괄호가 없음. 대신 들여쓰기로 괄호를 대신함.

# 아래의 a리스트 안의 요소를 하나씩 뽑아내서 출력하시오
a = [1,2,3,4]

for i in a :
    print(i)

print(i)는 실행문인데, for loop문 관할하에 속한 실행문.

for i in a : 하고 나서 다음 라인에 4칸 들여쓰기하고 실행문을 쓰면 그 실행문은 for loop문의 영향을 받는 실행문. for loop문은 실행문을 반복수행하는 파이썬 문법.

 

for 인덱스 카운터 in 반복할 요소 :

    실행문

 

for문 끝에는 콜론(:)을 지정해야함.

 

문제11. 주사위(dice)의 눈 6개를 모두 출력하시오

dice = [1,2,3,4,5,6]

for i in dice:
    print(i)

문제12. 주사위를 한 번 던지시오

import random

dice = [1,2,3,4,5,6]

print(random.choice(dice) )

문제13. 주사위를 3번 던지시오.

# 방법1
import random

dice = [1,2,3,4,5,6]

for i in [1,2,3]:
    print(random.choice(dice) )
    
# 방법2
import random

dice = [1,2,3,4,5,6]

for i in range(3):
    print(random.choice(dice) )

for i in range(3) : 0이상이고 3미만인 숫자 즉 0,1,2를 발생시키는게 range(3)

 

문제14. 동전을 10번 던져보세요

import random

coin = ['앞면','뒷면']

for i in range(10):
    print(random.choice(coin) )

 

 

009 if문 개념 배우기 ① (if~else)

어떤 조건을 참과 거짓으로 판단할 때 if문을 사용함.

참과 거짓을 구분하여 코드를 실행하면 if~else를 사용함.

코드를 작성하다보면 조건에 따라 수행하는 일이 달리 해야하는 경우가 있음.

조건이 참인지 거짓인지를 검사하고 참인 경우에는 if를 수행하고 거짓인 경우에는 else를 수행해라 라는 식으로 처리를 할 수 있음.

if 조건 :
    실행코드1
else :
    실행코드2

조건에 해당되면 실행코드1을 실행하고 그렇지 않다면 실행코드2를 실행해라

dice = [1,2,3,4,5,6]
for i in dice:          # for 반복문을 이용해서 dice리스트 변수의 요소를 하나씩 뽑겠음
    print(i)            # i 에 할당된 요소 출력
dice = [1,2,3,4,5,6]
for i in dice:                        # for 반복문을 이용해서 dice리스트 변수의 요소를 하나씩 뽑아냄
    if i % 2 == 0:                    # i를 2로 나눈 나머지 값이 0이라면 다음의 실행문을 실행해라
        print( i , '짝수 입니다')      # 'i는 짝수입니다'라고 출력

if문과 print문이 dice 요소의 갯수만큼 반복해서 수행됨.

 

문제15. 이번에는 아래와 같이 홀수의 눈만 실행되게 하시오

홀수의 눈이 1

홀수의 눈이 3

홀수의 눈이 5

dice = [1,2,3,4,5,6]
for i in dice:
    if i % 2 == 1:
        print('홀수의 눈이',i)

콜론(:) 다음행은 실행문이기 때문에 반드시 들여쓰기를 해줘야함.

 

dice = [1,2,3,4,5,6]
for i in dice:
    if i % 2 == 1:
        print('홀수의 눈이',i)
    else:                          # 위의 조건이 아니라면 다음의 실행문을 실행해라
        print('짝수의 눈이',i)

 

문제16. 주사위를 10번 던져보세요.

import random

dice = [1,2,3,4,5,6]

for i in range(10):
    print(random.choice(dice) )

문제17. 주사위를 10번 던지는데 아래와 같이 출력되게 하시오

짝수가 나왔습니다.

홀수가 나왔습니다.

import random

dice = [1,2,3,4,5,6]

for i in range(10):
    if random.choice(dice) % 2 == 0:
        print('짝수가 나왔습니다')
    else:
        print('홀수가 나왔습니다')

문제18. 동전을 20번 던져서 다음과 같이 출력되게 하시오

앞면이 나왔습니다.

뒷면이 나왔습니다.

    :

import random

coin = ['앞면','뒷면']

for i in range(20):
    if random.choice(coin) == '앞면':
        print('앞면이 나왔습니다.')
    else:
        print('뒷면이 나왔습니다.')

이 코드에서 for문의 i는 실행문에서 사용되고 있지 않음. 따라서 굳이 i라고 하지 않고 언더바(_)를 써도 됨.

for _ in range(20)이라고 작성해도 동일하게 실행됨.

 

 

010 if문 개념 배우기 ② (if~elif)

여러개의 조건을 순차적으로 체크하고 해당 조건이 참이면 특정 실행문을 수행하고자 할 때 if ~elif문을 사용함.

if 조건1:

    실행코드1

elif 조건2:

    실행코드2

elif 조건3:

    실행코드3

else:

    실행코드4

import random

dice = [1,2,3,4,5,6]

for _ in range(10):                   # 아래의 실행문을 20번 반복수행하겠음
    a = random.choice(dice)           # dice의 숫자6개 중 랜덤으로 하나를 뽑아 변수a로 지정
    if a == 1 or a == 2:   
        print(a,'는 숫자 3보다 작습니다.')
    elif a == 3 or a == 4:
        print(a, '는 숫자 2보다 크고 5보다 작습니다.')
    else:
        print(a,'는 숫자 4보다 큽니다.')

 

ㅁ input 함수

a = input('숫자를 입력하세요~')
print(a)

input이라는 함수는 물어보기 함수임.

input 괄호 안의 문장을 화면에 출력하고 입력받은 값을 a라는 변수에 담아 출력시켰음.

 

문제19. input함수와 if~else문을 이용해서 다음의 결과가 출력되게 하시오

a = int(input('숫자를 입력하세요~'))

if a % 2 == 0:
    print('짝수입니다.')
else:
    print('홀수입니다.')

int()는 오라클의 to_number()와 같은 함수임.

str()은 오라클의 to_char()와 같은 함수임.

 

문제20. 숫자를 다음과 같이 2번 물어보게 하고 아래의 메시지처럼 출력되게 하시오

첫번째 숫자를 입력하세요~ 2

두번째 숫자를 입력하세요~ 3

2는 3보다 작습니다.

a = int(input('첫번째 숫자를 입력하세요~'))
b = int(input('두번째 숫자를 입력하세요~'))

if a > b:
    print(a,'(은/는) ',b,'보다 큽니다.')
else:
    print(a,'(은/는) ',b,'보다 작습니다.')

 

문제21. 위의 코드를 수정해서 이번에는 같은 숫자를 넣으면 '숫자가 같습니다.'가 출력되게 하세요.

a = int(input('첫번째 숫자를 입력하세요~'))
b = int(input('두번째 숫자를 입력하세요~'))

if a > b:
    print(a,'(은/는) ',b,'보다 큽니다.')
elif a < b:
    print(a,'(은/는) ',b,'보다 작습니다.')
else:
    print(a,'(은/는) ',b,'와 같습니다.')

 

문제22. 동전을 10번 던지세요.

import random

coin = ['앞면','뒷면']

for i in range(10):
    print(random.choice(coin))

문제23. 동전을 10번 던져서 앞면이 몇번 나오는지 count하시오.

import random
coin = ['앞면','뒷면']

cnt = 0     # 동전 10번 던지기 전에 cnt라는 변수에 숫자0을 할당해줘야 함
for i in range(10):     # 실행문을 10번 수행하는데
    a = random.choice(coin)     #동전을 던져서 나온 결과를 변수 a에 넣고
    if a == '앞면':              #만약에 a가 앞면이면
        cnt = cnt +1            #cnt를 1씩 증가시키라는 뜻
print('10번중에 앞면이 ',cnt,'번 나왔습니다.')   #print를 마지막에 쓰면 최종적인 결과값이 나옴.

for문의 실행문이 10번 수행되면서 cnt가 증가함. print문으로 최종적으로 cnt값을 출력시킴.

 

 

문제24. (오늘의 마지막 문제) 동전을 던져서 앞면이 나오는 확률을 출력하시오. (동전을 만번, 10만번, 100만번 던져보세요)

# 1000번 던졌을 때
import random
coin = ['앞면','뒷면']

cnt = 0     
for i in range(1000):    
    a = random.choice(coin)     
    if a == '앞면':            
        cnt = cnt +1           
print(cnt / 1000)

# 10000번 던졌을 때
import random
coin = ['앞면','뒷면']

cnt = 0     
for i in range(10000):    
    a = random.choice(coin)     
    if a == '앞면':            
        cnt = cnt +1           
print(cnt / 10000)

# 100000번 던졌을 때
import random
coin = ['앞면','뒷면']

cnt = 0     
for i in range(100000):    
    a = random.choice(coin)     
    if a == '앞면':            
        cnt = cnt +1           
print(cnt / 100000)

반응형

'Study > class note' 카테고리의 다른 글

python / while문  (0) 2021.12.09
python / for ~ else, for~continue~break, 이중 for문  (0) 2021.12.08
python / 설치  (0) 2021.12.06
sql / TCL  (0) 2021.12.06
sql / DCL  (0) 2021.12.06