데이터 취업 스쿨 스터디 노트 -(2) format, 연산자, 조건문

테리·2024년 6월 4일

데이터 입력

input()
ex) userInputData=input('데이터 입력해라!')

input으로 받은 데이터는 전부 str(문자형)

정수형으로 받고 싶으면 int(input())의 형태를 사용
ex)

userInputData = int(input('입력 : '))

print(userInputData)
print(type(userInputData)) -> int

데이터 출력

print()함수는 기본적으로 자동 자동개행(오른쪽 끝에서 다음줄로 자동으로 내려감)을 한다.
cf) But 자동 개행을 안하려면 end='' 를 사용하면 됨.

ex)
print('3*5= ')
print(3*5)
-> 3*5= 
   15
print('3*5= ', end='')
print(3*5)
-> 3*5= 15

포멧 문자열 사용 방법(기존의 콤마 방법을 사용해도 됨.)

하지만 이 방법을 더 추천함.
콤마를 사용하지 않기 때문에 쉽게 알아볼 수 있음.

\t: 4칸 탭
\n: 개행

ex)
userName = 홍길동
UserAge = 34
print(f'User name:/t{userName}/nUser age:/t{UserAge}')
-> User name:    홍길동
   User age:    34

format 함수


형식문자

%s -> 문자열
%d -> 정수
%f -> 실수

ex)
userName = '김나박'
userAge = 28
print('User name : %s' % userName)
print('User age : %d' % userAge)
print('User name : %s, User age : %d' %(userName, userAge))

print('pi : %f' %3.14) -> 3.14
print('pi : %d' %3.14) -> 3

소수점 자릿수 정하기

%n.f -> 소수점 n자리까지 표현

print('pi : %f' %3.141592) -> 3.141592
print('pi : %.0f' %3.141592) -> 3
print('pi : %.2f' %3.141592) -> 3.12

연산자

종류

  • 산술 연산자: +, -, *, /, %(나머지), //(몫), **(제곱)
  • 할당,복합 연산자: =, +=, -=, *=, /=, %=, //=
  • 비교 연산자: >, >=, <, <=, ==, !=
  • 논리 연산자: and, or, not

연산자 팁

  • 문자를 더하면 옆으로 나열된다.
  • 숫자와 문자를 덧셈 할수는 없다.
  • 문자열을 뺄셈 할수는 없다

다양한 포멧을 활용해 출력해보기

ex)
partTimeMoney = int(input('알바비:'))
cardMoney = int(input('카드값:'))
result = partTimeMoney - cardMoney

print('알바비: {}'.format(partTimeMoney))
print('카드값: %d' %cardMoney)
print(f'남은 돈: {result}')
ex)
num1 = 10
num2 = 3

result = num1/num2

print('result: {}'.format(result)) -> 3.33333333333
print('result: %.2f' %result) -> 3.33

*연산값을 int로 해주지 않는이상 나눗셈을 하면 기본적으로 실수 형태로 나온다.

ex)
korScore = int(input('국어점수: '))
engScore = int(input('영어점수: '))
matScore = int(input('수학점수: '))

total = korScore+engScore+matScore
avgScore = total/3

print('국어점수: {}'.format(korScore))
print('영어점수: {}'.format(engScore))
print('수학점수: {}'.format(matScore))
print(f'종합점수: {total}') -> print('종합점수: {}'.format(avgScore))로 해도 똑같음.
print('평균점수: %.2f' %avgScore) -> 소수점 2자리까지 표현

나머지 연산자

  • %는 나머지 값, //는 나눴을 때 몫을 구함.
  • divmod() 함수: 나머지와 몫을 같이 구할 수 있는 함수.
ex)
num1=10
num2=3

result = divmod(num1, num2) #결과 값: (3,1)
print('result: {}'.format(result))

print('몫: {}'.format(result[0])) #3
print('나머지: {}'.format(result[1])) #1

거듭제곱 연산자

거듭제곱: '**'
n의 m 제곱근 공식

math 모듈의 sqrt()와 pow()함수

import math

math.pow(2,3) -> 2의 3제곱
math.pow(3,4) -> 3의 4제곱

math.sqrt(2) -> 2의 2제곱근
math.sqrt(3) -> 3의 2제곱근
즉, sqrt는 2제곱근만 구할 수 있다.

*format()을 활용해 숫자에 ',' 넣기
format(49000,',') -> 49,000

복합 연산자

  • 할달 연산자: =
  • 복합 연산자
    += -> 덧헴 연산 후 할당
    ex) num1 = num1+5를 num1 += 5라고 간략하게 표현 할 수 있다.
    -= -> 뺄셈 연산 후 할당
    ex) num1 = num1-5를 num1 -= 5라고 간략하게 표현 할 수 있다.
    *= -> 곱셈 연산 후 할당
    /= -> 나눗셈 연산 후 할당
    %= -> 나머지 연산 후 할당
    //= -> 몫 연산 후 할당
    **= -> 거듭제곱 연산 후 할당

비교연산자

모든 연산의 결과는 boolean(True, False)로 나온다.
문자 비교: 아스키 코드를 이용한 비교 연산(A는 65, S는 83이다. 이 숫자를 비교하는 것이다.)

cf) 작은 따옴표를 문자로 출력하는 방법
\를 사용한 후 작은 따옴표를 넣는다.

cha1 = 'A'
cha2 = 'S'
print('\'{}\' > \'{}\' : {}'.format(cha1, cha2,(cha1>cha2)))
# 결과: 'A' > 'S' : False

문자<->아스키코드 변환

문자 -> 숫자: ord()
숫자 -> 문자: chr()

문자열 비교: 문자열 자체 비교

==와 !=밖에 못씀

논리 연산자

  • True, False를 이용한 연산
  • 논리 연산자 종류: and, or, not

and 연산
A and B: A와 B 모두 True인 경우만 결과값으로 True이다.
True and True : True
True and False : False
False and False : False

or 연산
A or B: A와 B중 어느 하나만 True이면 결과 값은 True이다.
True or Flase : True

not 연산
not A: A의 상태를 부정하는 경과를 나타낸다.
not True : False

operator 모듈

모듈이란, 누군가 이미 만들어 놓은 훌륭한 기능

import operator로 불러와서 사용하면 된다.

ex) operator.add(num1,num2) -> num1+num2


조건식

A if 조건식 else B: 조건식의 결과가 True이면 A실행, 그렇지 않으면 B실행

limitSnowAmount = 30
snowAmount= int(input('적설량 입력(mm): '))

print('적설량: {}mm, {}'.format(snowAmount,'대설경보 발령!')) if snowAmount >= limitSnowAmount \
    else print('적설량: {}mm, {}'.format(snowAmount,'대설경보 해제!'))

조건문

특정 조건에 따라 프로그램을 분기한다.

조건문 종류
if문: 단일 조건
if ~else문: 양자택일
if~elif문: 다자택일(다중조건)

if문

조건식이 True여야 실행됨. False이면 실행되지 않음.
조건식을 쓰고 콜론(:)을 넣어줘야함.
실행문은 꼭 들여쓰기를 해야 실행됨.

if 10 > 5:
	print('10은 5보다 크다')

양자택일 조건문

if~else문: 조건식 결과에 따라 둘 중에 하나가 실행됨.

if num1 > 5:
	print('OK')
else:
	print('Sorry')

pass 키워드
: 지금 당장 조건문에 대한 실행문 코드를 아직 작성하지 못한 상태에서 나중에 작성하려고 할때 사용함.

if len(afjeifal) >= 500:
	pass
else:
	pass

cf) len(): 문자열의 길이를 나타내는 함수

조건식 vs if~else문

조건식을 사용해 결과를 변수에 넣어둘 수 있다.

ex) result = '가능' if userPoint>=minpoint else '불가능'

모든 조건식은 if~else문으로 변경할 수 있다.
모든 if~else문을 조건식으로 별경할 수는 없다.(실행문이 여러 개일 수도 있어서)

다자택일 조건문

if~elif문: 여러가지 조건식 결과에 따라 실행문이 결정됨.

중첩 조건문

조건문 안에 또다른 조건문이 있을 수 있다.

if some > 50:
	print('Great')
else:
	if some <= 50 and some >= 40
    	print('A')
    if some < 40
    	print('F')

0개의 댓글