Problem Solving

monzheld·2022년 4월 4일
0

의사코드(pseudocode)

말로 풀어쓴 코드

# 의사코드 

function div # div라는 함수 
For반복문 (i = 1부터 i<=10까지, 반복할때마다 i값 1씩 증가) 
{
    If i가 3으로 나눠지는 경우,
        print 3으로 나눠진다.
    If i is divisible by 5
        print 5로 나눠진다.
    If print_number, print i.
    print 줄바꿈.
}
# 실제 실행 코드

def div():
  for i in range(1,11):
    if i % 3 == 0: # i를 3으로 나눴을 때 나머지가 0인 경우
      print('숫자',i, '=>','3으로 나눠짐')
    elif i % 5 == 0: # i를 5로 나눴을 때 나머지가 0인 경우
      print('숫자',i, '=>','5로 나눠짐')
    else: 
      print('그외',i, '=>','숫자 3과 5로 나눠지지 않음')
    
div()




컴프리헨션(comprehension)

한 줄 for문

# for문 형태
for 반복변수 in 반복범위:
    반복실행문 
# 컴프리헨션
[반복실행문 for 반복변수 in 반복범위]
# if문 컴프리헨션
[반복실행문 for 반복변수 in 반복범위 if]
# if~else문 컴프리헨션
[반복실행문(if 통과시) if 조건문 else 조건문(else 통과시) for 반복변수 in 반복범위 if]

  • if문만 있을 때
    • for문 오른쪽(뒤)
  • if~else문
    • for문 왼쪽(앞)

  • ex) for문
# for문 
squares = []

for n in numbers:
  squares.append(n**2)
  

# 컴프리헨션 
squares = [n**2 for n in numbers]
# for문
common_num = []

for a in list_a:
  for b in list_b:
    if a == b:
      common_num.append(a)
 
 
 # 컴프리헨션
 common_num = [a for a in list_a for b in list_b if a == b]
  • ex) if~else문
# if~else문
pas = []
for name, score in zip(names, scores):
    if score > 8:
        pas.append('PASS')
    else:
        pas.append('NO PASS')
        

# 컴프리헨션
pas = ['PASS' if score > 8 else 'NO PASS' for name, score in zip(names, scores)]




지역변수와 전역변수

A = "전역변수" # 전역변수
def a():
	A = "지역변수" # 지역변수
def a():
	global A # global 선언으로 전역변수
	A = "이제 전역변수" 




예외처리

for ~ else / while ~ else

continue / break

try ~ except / try ~ except ~ else / try ~ except ~ finally

raise Exception(’Error message’)

raise AssertionError

0개의 댓글