Python 02일차 프로그래밍



  • Category : Python
  • Tag : Python


기본 프로그래밍

num1 = int(input('숫자1-->'))
num2 = int(input('숫자2-->'))


res = num1 + num2

#print(num1, '+', num2 , '=', hap)
#print("%d + %d = %d" % (num1, num2 , hap) )

print("{1:d} + {0:f} = {2:5.2f}".format(num1, num2 , res) )
res = num1 - num2

print("{1:d} - {0:f} = {2:5.2f}".format(num1, num2 , res) )
res = num1 * num2

print("{1:d} * {0:f} = {2:5.2f}".format(num1, num2 , res) )
res = num1 / num2

print("{1:d} / {0:f} = {2:5.2f}".format(num1, num2 , res) )
res = num1 % num2

print("{1:d} % {0:d} = {2:d}".format(num1, num2 , res) )

조건문

"""
num1 = 100
if num1 > 100 :
    print('100보다 크다')
    print('수고했어요.')

elif num1 < 100 :
    print('100보다 작다')
    print('또 수고했어요.')

else :
    print('100이다.')
"""

jumsu = int(input('점수-->'))
if jumsu > 90 :
    print('A', end='')

elif jumsu > 80 :
    print('B', end='')

elif jumsu > 70 :
    print('C', end='')

else :
    print('F', end='')

print('학점 입니다')

반복문

# 0부터 10까지 출력하기
# for (int i=0; i<11; i++)
# for i in range(0,11,1) :  # range(0,11) range(11)
#     print(i)
# 0부터 100까지의 합계는?

hap = 0
for i in range(101) :
    hap += i
print(hap)

# 퀴즈3-1. -3333 ~ +4444까지 합계
hap = 0
for i in range(-3333,4445,1) :
    hap += i
print(hap)

#       3-2. 77부터 2345까지 홀수의 합계
hap = 0
for i in range(77,2346,2) :
    hap += i
print(hap)

#       3-3. 777부터 23456까지 555의 배수의 합계
hap = 0
for i in range(777,23457,1) :
    if (i%555 != 0) :
        pass
    else :
        hap += i
print(hap)

# 퀴즈4(심화) 2부터 10000까지의 소수를 모두 출력하고 합계내기
#    ** 소수란 : 1과 자신을 제외하고 나눠지는 수가 없는 수.  2, 3, 5, 7, 11, 13, 17, 19, ........
hap = 2
print(2, end=',')
for i in range(3, 10001) :
    sosuYN = True
    for k in range(2,i,1) :
        if (i%k == 0) :
            sosuYN = False
            break
    if sosuYN :
        print(i,end=',')
        hap += i
print()
print("2~10000까지 소수 합 :", hap)

배열 1

# # 리스트
# # 4개짜리 배열 (초기값 0)

# # 1. 배열의 메모리 할당(+초기화)
# #lst1 = [ 0, 0, 0, 0]
# lst1 = []
# for i in range(4) :
#     lst1.append(0)
#

# # 2. 배열에 초기값 대입
# num = 1
# for i in range(4) :
#     lst1[i] = num
#     num += 1
# # lst1[0] = 1
# # lst1[1] = 2
# # lst1[2] = 3
# # lst1[3] = 4

# # 3. 배열 활용
# hap = 0
# for i in range(4) :
#     hap += lst1[i]
# #hap = lst1[0] + lst1[1] + lst1[2] + lst1[3]

# # 4. 배열 출력
# print(hap)

# 퀴즈5. 빈 배열 20개를 0으로 초기화 한 후,  20, 18, 16 ..... 을 채운다.
#         그리고 배열의 숫자 중 음수의 합계, 양수의 합계를 따로 구해서 출력한다.

#1
SIZE = 20
ary = []
for _ in range(SIZE) :
    ary.append(0)

#2
num = 20
for i in range(SIZE) :
    ary[i] = num
    num -= 2

#3
hapPlus, hapMinus = 0, 0
for i in range(SIZE) :
    if ary[i] >= 0 :
        hapPlus += ary[i]
    else :
        hapMinus += ary[i]

#4
print(hapPlus, hapMinus)

배열 2


# ary2 = [ [1, 2, 3, 4],
#          [5, 6, 7, 8],
#          [9,10,11,12] ]

#

# print(ary2[2][2])
# ary2 = [] # 2차원 배열
# tmp = []  # 임시 1차원 배열

#

# num = 1
# for i in range(3) : # 행
#     tmp = []
#     for k in range(4) : # 열
#         tmp.append(num)
#         num += 1
#     ary2.append(tmp)

## 이미지를 읽어서 2차원 배열에 채우기 (가상)

import random

# 1. 파일의 크기를 알아내기
row = random.randint(5,7)
col = random.randint(5,7)

# 2. 메모리 할당
image=[]
tmp=[]
for i in range(row) :
    tmp = []
    for k in range(col) :
        tmp.append(0)
    image.append(tmp)

# 3. 파일 --> 메모리
for i in range(row) :
    for k in range(col) :
        image[i][k] = random.randint(0,255)

# *** 출력하기. ***
for i in range(row) :
    for k in range(col) :
        print("%3d" % (image[i][k]), end=' ')
    print()

# 4-1. 밝게하기 영상처리 알고리즘 적용
for i in range(row) :
    for k in range(col) :
        if image[i][k]+100 > 255 :
            image[i][k] = 255
        else :
            image[i][k] += 100

# *** 출력하기. ***
print()
for i in range(row) :
    for k in range(col) :
        print("%3d" % (image[i][k]), end=' ')
    print()

** 2일차 ** 복습 퀴즈

  • (1) PC 조립 : 엑셀 시트에 정리 (총 비용 나와야 함)

    • 문1. 24시간 촬영 CCTV 데이터 저장용 컴퓨터. 최소의 비용. 캠코더 추가. OS 필요.
    • 문2. 딥러닝 데이터 처리용 워크스테이션 급의 컴퓨터. OS 필요. 고해상도 모니터 필요. 비용은 관계없음
  • (2) Python 개발 환경 구축 : 결과 화면 캡처

    • 문3. Windows Server 2019 또는 2016 가상머신에 Anaconda + Pycharm 개발환경 구축

      Pycharm 헬로월드 출력 화면

  • 퀴즈1. 계산기 완성 : + - * / % **
  • 퀴즈2. 점수를 입력받기 (0~100) –> 학점 출력하기 (A, B, .. F)
  • 퀴즈3
    • 3-1. -3333 ~ +4444까지 합계
    • 3-2. 77부터 2345까지 홀수의 합계
    • 3-3. 777부터 23456까지 555의 배수의 합계
  • 퀴즈4(심화) 2부터 10000까지의 소수를 모두 출력하고 합계내기

    ** 소수란 : 1과 자신을 제외하고 나눠지는 수가 없는 수. 2, 3, 5, 7, 11, 13, 17, 19, ……..

  • 퀴즈5. 빈 배열 20개를 0으로 초기화 한 후, 20, 18, 16 ….. 을 채운다.

    그리고 배열의 숫자 중 음수의 합계, 양수의 합계를 따로 구해서 출력한다.

** 2일차 미션 **

미션 1-1. 구구단을 출력한다. 그리고 단의 제목도 쓴다.

2단

2x1 = 2

2x2 = 4


3단

3x1 = 3


9x9 = 81

미션1-2. 구구단을 세로로 출력한다.

2x1=2 3x1=3 …

2x2=4 3x2=6


미션2. 2~10000까지 소수를 모두 배열에 저장한 후, 배열의 합계를 출력한다.

미션3. 랜덤(10~20)한 크기의 NxN 배열(이미지)를 생성하고, 랜덤(0~255)한 값을 채운다. 그리고 다음 요구사항을 처리해서 새 배열로 저장한다.

  • 미션 3-1. 이미지에 모두 100을 더한다.
  • 미션 3-2. 이미지를 반전한다. 0–> 255, 1 –> 254….
  • 미션 3-3. 이미지를 2진화 시킨다. 127 기준 ( 0 과 255만 있는 배열)
  • 미션 3-4. 이미지를 2진화 시킨다. 평균값 기준
  • 미션 3-5<심화>. 이미지를 2진화 시킨다. 중위수 기준
  • 미션 3-6. 이미지를 좌우 미러링 한다.
  • 미션 3-7<심화>. 이미지를 2배 축소한다
  • 미션 3-8<심화>. 이미지를 2배 확대한다
  • 미션 3-9<심화>. 이미지를 90도 회전한다.
  • 미션 3-10<심화*2> 이미지를 45도 회전한다.

#


Share this post