본문 바로가기
  • 適者生存
WorkOut/정보처리기사

파이썬 | 입출력 함수와 연산자, 반복문

by lcrvvxln 2024. 3. 26.

적자생존

 

 

3. 입출력 함수

(1) 표준 출력 함수 (print)

- 화면에 출력하기 위한 표준 출력 함수 print

 

[1] 단순 출력 및 개행

 

print(문자열, end)

 

end 파라미터 : print 함수가 완료될 때 추가할 문자 ( default - '\n' 개행문자) 

 - print 함수 종료 이후에, 기본으로 개행 (줄바꿈) 실행

 

ex. print('ABC') 
▶ end 파라미터를 별도로 지정하지 않았으므로 default 값인 end='\n'이 생략된 형태
     문자열 ABC 출력 이후, 개행 진행 

 

# 파이썬 단순 출력 

print('Hello', end='')
print('Hoxypot')
print('Hello', end='!')
print('Hoxypot')

# HelloHoxypot
# Hello!Hoxypot
  • print 함수로 'Hello' 문자열 출력 후, end 파라미터에 '' blank 값 넣었으므로 개행 X
  • print 함수로 'Hoxypot' 문자열 출력, 위에 개행되지 않았으므로 'Hello' 문자열 뒤에 바로 붙여서 출력 > 'Hoxypot' 뒤에는 default 값인 개행 실행
  • print 함수로 'Hello' 문자열 출력 후, end 파라미터에 '!' 값 넣었으므로 개행 없이 느낌표 출력 >  Hello!
  • print 함수로 'Hoxypot' 문자열 출력, end 파라미터에 아무것도 하지 않았으므로 default 값인 개행 실행 > 위에서 개행하지 않았으므로 '!' 뒤에 붙여서 출력

 

[2] 변수 출력

 

- print 함수로 변수 출력 시, 매개변수에 출력할 변수명 넣어주면 됨 

 

print(변수명) 

# 파이썬 변수 출력 

a=5
print(a)

b=3
print('a=', a, 'b=', b)

# 5
# a= 5 b= 3
  • 변수 a에 정수 5 대입 > 5 출력
  • 변수 b에 정수 3 대입 > 문자열 'a=' 출력 후 a 출력인데 자동 띄어쓰기 포함이므로 a= 5  출력 
  • 위에 이어서 띄어쓰기 한 칸만 하고 b= 3 출력

 

(2) 표준 입력 함수 (input)

- 문자열이나 숫자 입력받을 수 있는 파이썬 표준 입력 함수 - input

- 파이썬에서 정수형, 실수형 같은 숫자 입력받을 때 문자열 저장 후, **eval 함수** 써서 숫자 변환 필요

 

1. 문자열 입력

변수명 = input( )

 

2. 숫자 입력

변수명 = input( )

변수명 = eval(변수명)

 

- eval 매개변수가 숫자로 변환할 수 없는 문자열일 경우, 에러 발생

 

# 파이썬 input 함수 

s=input( )
s=eval(s)
print(s)

# 입력 : 1
# 출력 : 1 (정수형)
  • 변수 s에 값 입력 받음 > 입력값 1이 문자열 '1'로 저장됨 
  • eval 함수를 통해 문자열 '1'을 숫자로 변환 
  • 정수 1 출력 

 


 

 

4. 연산자 (Operator)

- 프로그램 실행 목적으로 연산을 표현하는 기호

 

(1) 연산자 종류 

 [1] Swap 연산자

 

- 두 변수 값 교환하는 연산자

- 콤마 기준 두 값 교환

 

파이썬 연산자와 C언어 연산자 

파이썬과 C언어는 대부분의 연산자가 동일
C언어에 없는 연산자만 다룰 예정 

파이썬은 증감 연산자 ++ , -- 지원 X

 

# 파이썬 Swap 연산자

a, b= 10, 20
print(a)
print(b)

a, b = b, a
print(a)
print(b)

# 10
# 20
# 20
# 10
  • 변수 a 10, 변수 b 20 초기화 > 10 출력 > 20 출력
  • a, b = b, a 연산을 통해 a와 b 값 교환 > a=20, b=10
  • 20 출력 > 10 출력

 

[2] 산술 연산자

 

- 두 수의 수치 계산을 위한 연산자 

- 사칙 연산(+, -, *, /, //) , 지수 연산(**), 나머지 연산(%) 

' // ' 의 역할

- C언어와 자바의 ' // ' : 주석
- 파이썬의 '//' : 몫 계산 연산자 

 

 

# 파이썬 산술 연산자

print(3/2)
print(3//2)
print(3**2)
print(3%2)

# 1.5
# 1
# 9
# 1

 

[3] 비교 연산자 

 

- 두 피연산자같은지 다른지 비교하는 연산자

# 파이썬 비교 연산자

print(3==3)
print(5==3)

# True
# False
  • 3과 3은 같은 값이므로 참인 True 출력
  • 5와 3은 다른 값이므로 거짓인 False 출력

 

[4] 대입 연산자

 

- 변수에 값을 할당하는 연산자

- '+=', '-=', '*=', '/='은 C, Java와 동일, 파이썬은 추가적으로 '**=', '//=' 연산자 제공

 

  • **= : 왼쪽 변수 값을 오른쪽 수 제곱한 후, 왼쪽 변수에 재할당
  • //= : 왼쪽 변수 값을 오른쪽 수로 나눈 후, 내림한 값을 왼쪽 변수에 재할당
# 파이썬 대입 연산자

a, b= 3, 2

a*=b
print(a)

a**=b
print(a)

a/=b
print(a)

a//=b
print(a)

a%=b
print(a)

# 6
# 36
# 18.0
# 9.0
# 1.0
  • 변수 a에 3 , 변수 b에 2 대입
  • a*=b > a=a*b 이므로 a=3*2=6 > 6 출력
  • a**=b > a=a**b 이므로 a=6**2=36 > 36 출력
  • a/=b > a=a/b 이므로 a=36/2=18 > 18.0 출력
  • a//=b > a=a//b 이므로 a=18.0//2=9.0 > 9.0 출력
  • a%=b > a=a%b 이므로 a=9.0%2=1.0 > 1.0 출력

 


 

5. 조건문 - if문

- if문 조건이 참인지 거짓인지에 따라 경로 선택하는 명령문

swich문 
: 파이썬은 자바, C언어와 달리 switch 문이 없음

 

(1) if문 문법

- if문 조건 인 경우, if문 내의 명령문 실행

- if문 조건 거짓일 때, elif 문 조건 인 경우, elif 문 내 명령문 실행

- else 문if문 조건 거짓이고 , 여러 개의 elif문 모두 거짓일 때 마지막으로 else문 안 명령문 실행 

  → else 문은 안 써도 되고 쓸 경우, 한 번만 사용 가능

- elif 문여러 개 사용 가능 

 

if 조건문 :
  명령문;
elif 조건문 : 
  명령문;
else:
  명령문;

 

# 파이썬 if문

score=input()
score=eval(score)

if score >=90:
  print('A');
elif score >=80:
  print('B');
elif score >=70:
  print('C');
else:
  print('F');

# 입력 : 60
# 출력 : F
  • score 변수에 입력값 저장 > 입력값 : 60이므로 score = '60'
  • 파이썬은 숫자가 입력되도 문자열로 받으므로 숫자로 바꿔주기 위해 eval 함수 적용 > score =60
  • if score>=90 을 통해 score 값이 90이상일 경우, A 출력이지만 pass
  • elif score >=80 을 통해 score 값이 90미만이지만 80이상인 경우, B 출력이나 pass
  • elif score >=70 을 통해 score 값이 80미만이지만 70이상인 경우, C 출력이나 pass
  • if 조건과 elif 조건문 모두 만족하지 못 했으므로 마지막인 else문 안의 명령문 실행 > F 출력 

 


 

 

6. 반복문

(1) while 문

- while 조건문 일 경우, 명령문 반복 수행

- 조건문 뒤에 반드시 콜론(':') 붙일 것

 

while 조건문 :

  명령문 

 

# 파이썬 while문 

i=0
sum=0

while i<4:
  i=i+1
  sum=sum+i

print(sum)

# 10
  • 변수 i 선언 및 0 초기화 > 변수 sum 선언 및 0 초기화 
  • while 반복문 속의 조건문 i<4 > i가 0이므로 참이기 때문에 반복 수행
  • i=0+1=1 > sum=0+1=1 > 1<4 조건 참이므로 반복 수행 
  • i=1+1=2 > sum=1+2=3 > 2<4 조건 참이므로 반복 수행
  • i=2+1=3 > sum=3+3=6 > 3<4 조건 참이므로 반복 수행
  • i=3+1=4 > sum=6+4=10 > 4<4 조건 불만족이어서 반복문 탈출 
  • sum=10 이므로 10 출력
※ 파이썬은 do-while문 지원 X

 

(2) for문

- for문은 in 연산자range 함수 사용하여 반복 범위 지정하거나 리스트 개수만큼 반복 수행

 

 

[1] 일반 for문

- range 함수는 범위 지정 함수 

- range 함수에서 시작 생략 시 0, 스텝 값 생략 시 1default

 

for 변수 in range (시작, 종료, 스텝) :
  명령문 

'시작' 값부터 for문 반복 시마다 '스텝' 수만큼 값 증가하여 변숫값이 '종료' **이상**일 때 반복문 종료
종료 값 '이전'까지로 생각

 

- range 함수에 값 하나일 경우, (시작=0, 스텝=1) 이 default 값

- range 함수두 개일 경우, 스텝=1 이 default

 

# 파이썬 for 문

i=0
sum=0

for i range(1,4):
  sum=sum+i

print(sum)

# 6
  •  변수 i 0 초기화, 변수 sum 0 초기화
  • for 반복문으로 변수 i가 1부터 4미만까지, 즉 1부터 3까지 생략된 default step=1 1만큼 증가하여 총 3번 반복 수행
  • sum=0+1=1 > step에 의해서 i 자동 1 증가 i=2 > 반복문 재수행
  • sum=1+2=3 > step에 의해서 i 자동 1 증가 i=3 > 반복문 재수행
  • sum=3+3=6 > step에 의해 i 자동 1 증가 i=4 >  4미만 조건 불만족으로 반복문 탈출
  • sum 값인 6 출력

 

[2] for each문 

 

- 시퀀스 자료형 요소들을 차례대로 변수에 대입하여 반복하는 명령문

 

for 변수 in 시퀀스자료형:

  명령문

 

# 파이썬 for each문

li= [1,2,3,4,5]

for a in li:
  print(a)


# 1
# 2
# 3
# 4
# 5
  • li 변수에 리스트 [1,2,3,4,5] 대입
  • for a in li 명령문을 통해 리스트 li의 요소 값을 a에 대입하여 처음부터 끝까지 반복문 수행 > 요소 5개이므로 5번 
  • print 문에 따라 1, 2, 3, 4, 5 출력

 

# 파이썬 이중 for each문

li= [[1,2], [3,4,5]]

for a in li:
  for b in a:
    print(b, end='')
    

# 12345
  • 변수 li에 2차원 리스트 [[1,2], [3,4,5]] 대입
  • for a in li 명령문을 통해 리스트 li의 요소들 a에 대입 > a가 1차원 리스트이므로 for b in a 명령문 재적용 
  • for b in a 명령문을 통해 리스트 li의 요소인 a 리스트의 요소들을 b에 대입
  • print문에 따라 리스트 li의 요소인 a 리스트의 요소들을 출력하되 end='' blank 값이므로 개행없이 붙여 출력 
  • for a in li에서 a=[1,2] 일 때, for b in a에 의해 12출력 
  • for a in li에서 a=[3,4,5]일 때, for b in a에 의해 345출력