LiJell's 성장기

03.python_conditional_statements_loop 본문

Bigdata/파이썬_Python

03.python_conditional_statements_loop

All_is_LiJell 2021. 12. 15. 17:39
반응형

Modified on Wed Dec 29

-- coding: utf-8 --

"""
Created on Wed Dec 15 13:37:35 2021

@author: hanju
"""

1) 조건문과 반목문

논리연산자

  • and
  • or
  • not
v1=1
(v1>=3) and (v1<=7) #3과 7사이
False
(v1>=3) & (v1<=7)
False
(v1<=3) or (v1>=7) #3과 같거나 작거나 7과 같거나 크다
True
(v1<=3) | (v1>=7) #shift 하고 원화 표시 누르면 나옴 |
True
not(v1==1)
False

1. 조건문 if

형식

if 조건:
#참(True)일 때 실행문장

else:
#거짓(False)일 때 실행문장

if 조건1:
#조건1이 참(True)일 때 실행문장

elif 조건2:
#조건1이 거짓(False)이고 조건2가 참일 때 실행문장

else:
#조건1,2,가 모두 거짓(False)일 때 실행 문장

v1=10

if v1>5:
print('A')
else:
print('B')
A

#리스트는 불가
l1 = [1,3,5,7,8]
if l1>5:
print('A')
else:
print('B')
# TypeError: '>' not supported between instances of 'list' and 'int'

2. 반복문

  • 객체의 각 원소에 동일한 연산처리 진행할 경우 사용

for 문 : 정해진 횟수, 대상이 있을 경우

for 반복변수 in 반복할 대상(범위):

  • 반복 실행할 문장

1~10 까지 출력하세요.

  • range(1,11)
for i in range(1,11):
print(i)
1
2
3
4
5
6
7
8
9
10

예제

다음의 리스트 선언하고 5보다 클 경우, 'A', 작거나 작을 경우 'B'

l1 = [1,3,5,15,25]

for i in l1:
if i>5:
print('A')
else:
print('B')
B
B
B
A
A

위 l1 리스트에서 각 원소에 10을 더해서 출력

l1 +10 # 불가
TypeError: can only concatenate list (not "int") to list

l1 = [1,3,5,15,25]
for i in l1:
print(i+10)
SyntaxError: invalid syntax
  • for 문의 결과를 바로 변수로 저장하는 것은 불가

정답

l1 = [1,3,5,15,25]
l2 =[] #넣을 공간인 리스트를 만든다
for i in l1:
l2.append(i+10)

print(l2)

[11, 13, 15, 25, 35]
l3 = [1,2,3]
l3.append(4)
l3
[1,2,3,4]

while 문: 조건에 따른 반복을 실행하는 경우

  • while 조건:
    조건이 참일 때 반복 문장

예제

while 문으로 1~10까지 출력

i=1
while i<=10:  # 조건이 끝날 때 까지 반복
print(i)
i= i+1
1
2
3
4
5
6
7
8
9
10 

문제

1~100 까지 총 합

vsum = 0
for i in range(1,101):
vsum=vsum + i

print(vsum)
5050
i     vsum            일반화
1     1              vsum + 1
2     1 + 2          vsum + 2
3     1 + 2 +3       vsum + 3
4     1 + 2 +3 + 4   vsum + 4
---> vsum+i

# 다른 방법
vvvv= sum(i for i in range(1,101))
print(vvvv)
5050

1~100까지 짝수 총합

vsum=0
for i in range(1,101):
    if i%2 ==0:
        vsum=vsum +i
print(vsum)
2550

3.반복제어문

  1. continue : 특정 조건일 경우 반복문 스킵
  2. break : 특정 조건일 경우 반복문 종료 (정지조건)
  3. exit : 특정 조건일 경우 프로그램 종료
  4. pass : 문법적으로 오류가 발생시키지 않기 위해 자리를 채우는 역할

예제

1~10출력, 5제외

  • continue
for i in range(1,11):
if i == 5:
continue
print(i)

5일 때 종료 하고싶을 때

  • break
for i in range(1,11):
if i ==5:
break
print(i)
1
2
3
4
  • exit
# for i in range(1,11):
# if i ==5:
# exit(0)
# print(i)   실행하진 말자! 프로그램이 종료된다. 
  • pass
v1 = 1
if v1> 10:
#pass
else:
print('b')         # pass에 주석처리를 없애면 오류가 나지 않고 b 값이 반환된다.

#IndentationError: expected an indented block

v1 = 1
if v1> 10:
pass
else:
print('b')
b

문제

1부터 100까지 누적합이 최초 2000 이상이 되는 시점의 k 과 총 합을 출력하세요.

1 + 2 + 3 + .... + k >=2000

vsum = 0
for i in range(1,101):
    vsum = vsum + i # or vsum += i
        if vsum >=2000:
            break

print(i, vsum)
63 2016
반응형

'Bigdata > 파이썬_Python' 카테고리의 다른 글

06.python_str_method  (0) 2021.12.20
05.python_numpy  (0) 2021.12.15
04.python_def_lambda_map  (0) 2021.12.15
02.python_02_함수와 메서드  (0) 2021.12.15
01.python_01_변수와 리스트  (0) 2021.12.14
Comments