Unit 5-9. 숫자계산, 변수, 출력, 비교연산자, 논리연산자, 문자열

Joy·2020년 2월 28일
0

Unit 5

숫자 자료형

  • 정수 int
  • 실수 float
  • 허수 complex

사칙연산

산술연산자

더하기 +
빼기 -
곱하기 *
거듭제곱 **
나누기 /
나누고 소수점이하 버리기 //
나누고 나머지 %
몫과 나머지(튜플로 나옴) divmod(a,b) -> (몫, 나머지)

2진수 숫자 앞에 0b (0b110) -> 6

Unit 6 변수

변수 = 값 (문자열은 '')
변수1, 변수2 = 값1, 값2

변수 제거

>>> x = 10
>>> del x
>>> x
오류

빈 변수

x = None

파이썬은 None 자료형. 타 언어는 null

할당연산자 (Assignment Operators)


(img: https://wikidocs.net/1160)

주의:
할당연산자는 붙여서 사용.
+= 와 같은 할당연산자 사용시에는 값이 들어있는 변수 사용해야함

입력값을 변수로

input 함수

  • input()

input으로 받은 값 변수에 할당

  • 변수 = input()
>>> x = input('문자열을 입력하세요: ')
문자열을 입력하세요: Hello, world! (입력)
>>> x
'Hello, world!'

입력값을 여러개 변수로

input 한 번에 값을 여러 개 입력 : input에서 split을 사용한 변수 여러 개에 저장

변수1, 변수2 = input().split()
변수1, 변수2 = input().split('기준문자열')
변수1, 변수2 = input('문자열').split()
변수1, 변수2 = input('문자열').split('기준문자열')

예시 - 두개 입력받기

a, b = input('문자열 두 개를 입력하세요: ').split()    # 입력받은 값을 공백을 기준으로 분리
 
print(a)
print(b)

결과

문자열 두 개를 입력하세요: Hello Python (입력)
Hello
Python

주의 : 숫자를 받으려면 변수를 정수로 변환해서 다시 저장해줘야함

map 사용해서 바로 정수로

Map은 파이썬 내장함수 중 하나
참고> https://wikidocs.net/32#map

변수1, 변수2 = map(int, input().split())
변수1, 변수2 = map(int, input().split('기준문자열'))
변수1, 변수2 = map(int, input('문자열').split())
변수1, 변수2 = map(int, input('문자열').split('기준문자열'))

map에 int와 input().split()을 넣으면 split의 결과를 모두 int로 변환

a, b = map(int, input('숫자 두 개를 입력하세요: ').split())
print(a + b)
숫자 두 개를 입력하세요: 10 20 (입력)
30

공백이 아닌 콤마를 기준으로 분리하기

split에 기준 문자열을 지정하여 공백이 아닌 다른 문자로 분

a, b = map(int, input('숫자 두 개를 입력하세요: ').split(',')) # 입력받은 값을 콤마를 기준으로 분리
 
print(a + b)
숫자 두 개를 입력하세요: 10,20 (입력)
30

문제: 변수만들기

표준 입력으로 국어, 영어, 수학, 과학 점수가 입력됩니다. 평균 점수를 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 단, 평균 점수를 출력할 때는 소수점 이하 자리는 버립니다(정수로 출력).

답:

a, b, c, d = map(int, input().split())
avr = int((a+b+c+d)/4)
print (avr)

Unit 7 출력

값 여러개 출력

print(값1, 값2, 값3)
print(변수1, 변수2, 변수3)

>> print(1, 2, 3)
1 2 3
>> print('Hello', 'Python')
Hello Python

값 사이 공백대신 문자 넣기 - print에서 sep 활용

print(값1, 값2, sep='문자 또는 문자열')
print(변수1, 변수2, sep='문자 또는 문자열')

>> print(1, 2, 3, sep=', ')    # sep에 콤마와 공백을 지정
1, 2, 3
>>> print(4, 5, 6, sep=',')    # sep에 콤마만 지정
4,5,6
>>> print('Hello', 'Python', sep='')    # sep에 빈 문자열을 지정
HelloPython
>>> print(1920, 1080, sep='x')    # sep에 x를 지정
1920x1080

줄바꿈 제어문자 "\n"

>>> print(1, 2, 3, sep='\n')
1
2
3
>>> print('1\n2\n3')    # 문자열 안에 \n을 사용하여 줄바꿈
1
2
3

print는 기본적으로 출력하는 값 끝에 \n을 붙임. 그래서 print 여러번 사용하면 줄이 바껴서 나옴.

print에서 end 사용하기

프린트를 여러번 사용해서 한줄에 출력할때: print의 end에 빈 문자열을 지정
기본적으로 print의 end에 \n이 지정된 상태인데 빈 문자열을 지정하면 강제로 \n을 지워주기 때문

print(1, end='')    # end에 빈 문자열을 지정하면 다음 번 출력이 바로 뒤에 오게 됨
print(2, end=' ') #end 에 공백 한칸 지정
print(3)

결과

12 3

7.5 심사문제: 날짜와 시간 출력하기

표준 입력으로 년, 월, 일, 시, 분, 초가 입력됩니다. 다음 소스 코드를 완성하여 입력된 날짜와 시간을 년-월-일T시:분:초 형식으로 출력되게 만드세요.

답:

year, month, day, hour, minute, second = input().split()
print(year, month, day, sep='-', end='T')
print(hour, minute, second, sep=':')

Unit 8 불리언, 비교 논리 연산자

boolean : True, False
비교, 논리 연산자의 판단결과로 사용
정수, 실수, 문자열 등 다른 type 을 불리언으로 : bool() 함수

print할때는 print(boolean)

비교연산자

출처: https://wikidocs.net/1159

is, is not

==, !=는 값 자체를 비교하고, is, is not은 객체(object)를 비교

예시) 정수객체와 실수객체 다르게 파악

>>> 1 == 1.0
True
>>> 1 is 1.0
False
>>> 1 is not 1.0
True

논리연산자

  • a and b
  • a or b
  • not x

8.5 심사문제: 합격 여부 출력하기

표준 입력으로 국어, 영어, 수학, 과학 점수가 입력됩니다. 국어는 90점 이상, 영어는 80점 초과, 수학은 85점 초과, 과학은 80점 이상일 때 합격이라고 정했습니다(한 과목이라도 조건에 만족하지 않으면 불합격). 다음 소스 코드를 완성하여 합격이면 True, 불합격이면 False가 출력되게 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다).

답:

a,b,c,d = map(int, input().split())
print(a >= 90 and b > 80 and c > 85 and d >= 80)

Unit 9 문자열

' '
" "
''' '''
""" """

문자열에 따옴표 쓰기 - 이스케이프(escape)

앞에 (역슬래시)

여러줄로

>>> print('Hello\nPython')
Hello
Python

9.4 문제: 여러 줄로 된 문자열 사용하기

다음 소스 코드를 완성하여 실행 결과대로 문자열이 출력되게 만드세요.
'Python' is a "programming language"
that lets you work quickly
and
integrate systems more effectively.

s = """'Python' is a "programming language"
that lets you work quickly
and
integrate systems more effectively.""" 
print(s)
profile
roundy

1개의 댓글

comment-user-thumbnail
2020년 2월 28일

input에서 받는 자료는 문자! 숫자로 변환해 주는 거 잊지마라

답글 달기