Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

BASEMENT

Python 2주차 - 1 본문

Programming/Python

Python 2주차 - 1

2_34 2020. 7. 11. 15:44

 

조건문

1. 기본 if 문

조건식이 참일 경우에 실행

일반적으로 참(True) 또는 거짓(False)의 결과가 나오는 식을 사용

또는 in 연산자를 이용하여 데이터의 존재 유무를 확인할 수 있도록 작성

if 에 종속되어 참일 경우 실행해야할 코드는 들여쓰기(indent)로 작성

실행문1
if 조건식:
	실행문2;
    실행문3
실행문4;
Python

기본 if문 예제

num = 200

if num < 100:
	print("100보다 작은 수")
    print("num:: %d 입니다" % num)
    
print("100보다 큰 수 입니다)
print("program end")
Python

2. if ~ else 문

조건식이 참이 아닌 경우에 실행해야 할 문을 별도로 else 를 통해 제시

else 다음에는 조건식을 작성하지 않음

else는 반드시 if와 한 쌍을 이룸, 단독으로 사용 불가

num = 50

if num < 100:
	print("100보다 작은 수")
else:
	print("100보다 큰 수")
    
Python

 

3. if ~ else ~ if ~ else 중첩 if문

 

실행문1
if 조건식1:
	실행문2
elif 조건식2:
	실행문3
else:
	실행문4
실행문5
      
Python
p1 = int(input("Enger frist number:: ")
p2 = int(input("Enger second number:: ")
p3 = int(input("Enger third number:: ")
avg = (p1 + p2 + p3) / 3

if avg >= 90:
	print("A")
elif avg >= 80:
	print("B")
elif avg >= 70:
	print("C")
elif avg >= 60:
	print("D")
else:
	print("F")
Python

cf) if 의 조건식이 참 또는 거짓인 경우에 실행해야하는 문장이 없는 경우

    -> pass 사용

belongings = ['pencil', 'wallet', 'python', 'transportation card']
if 'python' in belongings:
    pass
else:
    print("도서관에서 대출")
Python

반복문

for : range 함수 또는 list 등과 같은 자료형과 함께 반복 횟수 또는 반복에 사용될 데이터가 확실한 경우 사용while : 반복 횟수가 미정일 경우, 조건식의 참/거짓 여부에 따라 반복실행 할 때 사용 (조건식이 참일 동안 반복문 실행)

 

1. for

 

for <변수1, 변수2, 변수3...> in iterable:

for문의 iterable은 주로 rangelist 사용

 

iterable

  • 반복의 의미, 한 번에 하나씩 값을 반환할 수 있는 데이터(객체)를 의미
  • 순회가 가능하다라는 가능 여부이며 iterator로 변환할 수 있는 자료형
  • 집합형 자료형인 list, tuple, dictionary, set 등과 문자열, range 등

iterator

  • 값을 순차적으로 꺼낼 수 있는 객체
  • next() 함수로 데이터를 순차적으로 호출 가능
  • 호출할 값이 없는 경우 StopIteration Exception 발생
  • iterable은 iter() 또는 __iter__()을 통해 iterator로 변환

range 함수

  • iterable인 range()의 사용은 iterator로 변환하여 range()를 통해 생성된 값을 하나씩 반환
  • range()의 자료형은 <class range>
  • range(start=0, end, step=1) -> end값은 생성값에서 제외, 각 값은 정수
range(10)		# 1씩 증가하면 0~9 생성
range(1,10)		# 1씩 증가하면서 1~9 생성
ranage(1,10,2)	# 2씩 증가하면서 1~9 생성
Python

for문에서 range() 작동 방식

for i in range(3):
	print(i)
Python
int_list = [0,1,2,3,4]
for _ in int_list:			# 반복문의 반복 횟수에만 적용될 때 변수대신 _(밑줄) 사용 가능
	print("_ 의 사용법 예제")
Python
# 예제 - 1~100 누적합 구하기

total = 0
for i in range(1,101):
	total += i
print("1~100의 합산은 : ", total)
Python

2. while

 

변수 = start 값

while 변수 < end값:

     반복문

     변수 = 변수 + step값

# 1~100까지의 누적합

total = 0
i = 1
while i < 101:
	total += i
    i += 1
print("1~100의 합산은 : ", total)
Python

상태 기반으로 while문 작성

in 연산자 뒤의 데이터 중에 특정항목이 존재하면 True, 아니면 False

while_list = [1,2,3,4,1,2,2,5,7,2]
value = 2

while value in while_list:
	while_list.remove(value)

print(while_list)
Python

무한루프

무한 while 문을 stop 할 수 있는 식이 반드시 필요

# 무한루프 예제 - 입력된 양의 정수의 소수를 판별, 1보다 작은 값 입력시 무한루프 종결(1포함)

while True:
	count = 0
    prime = int(input("input positive integer>> "))
    if prime <= 1:
    	print("program end")	
        break				# break : 반복문의 무한루프 종결
    else:
    	for i in range(2, prime+1):
        	if prime % i == 0:
            	count += 1
        if count ==1:
           	print("%d is prime number" % prime)
        else:
        	print("%d is not prime number" % prime)
    print()
Python

시간을 기반으로 조건을 사용 시 while문 이용

# 5초 동안 반복 수를 출력하는 코드 작성

import time			# 시간 관련 모듈

number = 0
tick = time.time() + 5		# .time() : 현재 컴퓨터 시스템의 시간
while time.time() < tick:
	number += 2
print(f'5초동안 {number}번 반복했습니다.')

중첩 루프(nested loop)

  • 루프의 본체 내에 다른 루프를 포함
  • ex) while루프 내 while루프, for루프 내 for루프, while루프 내 for루프 등
  • 바깥 루프의 각 반복에 대해서 안쪽 루프가 완전히 실행되므로 이차원의 반복적인 일 수행 가능
# for문 중첩루프 사용

for i in range(5):
	for j in range(i,5):
    	print("*", end='')
    print()
    
# while문 중첩루프 사용   

i = 0
while i < 5:
	j = i
    while j < 5:
    	print("*", end='')
        j += 1
    print()
    i += 1
    

3. break, continue

 

반복문을 제어하는 구문

break : 반복문 탈출

continue : 반복해야 할 코드 일부를 실행하지 않고 반복문을 이어나가도록 해주는 구문

반드시 반복문 안에다 작성

# break 예제

fact, n = 1, 0
n = int(inpute("factorial 정수입력>> " ))
for n in range(1,n+1):
	fact *= n
    print("n: %d, 누적곱: %d" % (n,fact))
	break
# continue 예제

for i in range(10):
	print("i: %d" % i)
    continue			# countinue 다음의 코드는 실행되지 않음
    print("%d의 거듭제곱: %d" % (i,i**2))

turtle 모듈

파이썬 내장 모듈 (turtle.py)

import turtle 로 사용

# 예제 - 정사각형 그리기

import turtle

turtle.shape('turtle')

for i in range(4):
	turtle.foward(200)
	turtle.right(90)

turtle.done()
# 예제 - random 모듈을 이용하여 그리기

import turtle
import random		# random 모듈 호출

pSize = 10
r,g,b = 0.0, 0.0, 0.0
turtle.title("Sketch Conch with Turtle")
turtle.shape("turtle")
turtle.pensize(pSize)
turtle.goto(0,0)

for i in range(0,100,1):
	turtle.pencolor((r,g,b))
    r = random.random()		# 0.0~1.0 사이의 랜덤값 발생
    g = random.random()
    b = random.random()
    turtle.left(30)
    turtle.forward(i+5)
 
turtle.done()
# turtle모듈을 사용하여 1을 입력하면 원, 2를 입력하면 태극문양 그리기

import turtle as t

def turtle_circle(n):
    t.bgcolor("black")
    t.color("pink")
    t.speed(0)
    for x in range(n):
        t.circle(100)
        t.left(360/n)
    
def turtle_taegeuk():
    t.bgcolor("black")
    t.speed(0)
    t.shape("turtle")
    for x in range(200):
        if x % 3 == 0:
            t.color('red')
        elif x % 3 == 1:
            t.color('yellow')
        else:
            t.color('blue')
        t.forward(x*2)
        t.left(119)


if __name__ == "__main__":
    select = int(input("번호를 1,2번 중 선택 >> "))
    if select == 1 :
        turtle_circle(100)
    elif select == 2:
        turtle_taegeuk()
    else:
        print("Error")

random 모듈

random 모듈의 함수

  • random() : 0.0 ~ 1.0 사이의 랜덤값
  • uniform(2.5, 10.0) : 2.5 ~ 10.0 사이의 랜덤값 (10.0 미포함)
  • randrange(10) : 0~9 사이의 정수 랜덤값
  • randrange(0,101,2) : 0~100 사이 중 짝수 정수 랜덤값
  • choice(['win', 'lose', 'draw']) : 집합형 자료형 중 랜덤하게 항목 하나 선택
  • suffle(항목) : 항목들을 랜덤하게 섞음. 리스트에만 사용 가능, 리스트 자체가 변함
  • sample(항목, k=<숫자>) : 항목들 중에서 k개 선택

-> choice, suffle, sample 함수는 집합형 자료형에만 사용 가능

 

'Programming > Python' 카테고리의 다른 글

Python 3주차 - 2  (0) 2020.07.12
Python 3주차 - 1  (0) 2020.07.12
Python 2주차 - 2  (0) 2020.07.11
Python 1주차 - 2  (0) 2020.07.09
Python 1주차 - 1  (1) 2020.07.05
Comments