숫자형
print(7 / 2)
print(6 / 2)
print(7.0 / 2)
print(6.0 / 2.0)
3.5
3.0
3.5
3.0
나눗셈은 정수를 정수로 나누든. 소수를 정수로 나누든, 소수를 소수로 나누든
소수 형태의 결괏값이 나온다.
만약 정수 형태의 결괏값을 원한다면 "형 변환"을 사용한다.
숫자형 심화
# floor division (버림 나눗셈)
print(7 // 2)
3
3.5에서 소수 부분이 버려지고 3만 출력된다.
# floor division (버림 나눗셈)
print(8.0 // 3)
print(8 // 3.0)
print(8.0 // 3.0)
2.0
2.0
2.0
# round (반올림)
print(round(3.1415926535))
print(round(3.1415926535, 2))
3
3.14
문자열
"Hello" * 3
"Hello" + "Hello" + "Hello"
"HelloHelloHello"
print("Hello" * 3)
HelloHelloHello
실습과제: 문자열 연습 1
print 함수와 문자열 개념을 이용해서 다음 두 문장을 출력하세요.
'응답하라 1988'은 많은 시청자들에게 사랑을 받은 드라마예요.
데카르트는 "나는 생각한다. 고로 존재한다."라고 말했다.
print("'응답하라 1988'은 많은 시청자들에게 사랑을 받은 드라마예요.")
print('데카르트는 "나는 생각한다. 고로 존재한다."라고 말했다.')
실습과제: 문자열 연습 2
print 함수와 문자열 개념을 이용해서 다음 문장을 출력하세요.
영화 '신세계'에서 "드루와~"라는 대사가 유행했다.
print('영화 \'신세계\'에서 "드루와~"라는 대사가 유행했다.')
방법 1
print("영화 '신세계'에서 \"드루와~\"라는 대사가 유행했다.")
방법 2
print('영화 \'신세계\'에서 "드루와~"라는 대사가 유행했다.')
방법 3
print('영화 \'신세계\'에서 \"드루와~\"라는 대사가 유행했다.')
형 변환
print(int(3.8))
print(float(3))
print(int("2") + int("5"))
print(float("1.1") + float("2.5"))
print(str(2) + str(5))
3
3.0
7
3.6
25
age = 7
print("제 나이는" + age + "살입니다.") # int형과 str형은 함께 쓸 수 없음
age = 7
print("제 나이는" + str(age) + "살입니다.")
제 나이는 7살입니다.
format을 이용한 문자열 포맷팅
# 오늘은 2019년 10월 29일입니다.
year = 2019
month = 10
day = 29
print("오늘은" + str(year) + "년" + str(month) + "월" + str(day) + "일입니다.")
print("오늘은 {}년 {}월 {}일입니다.".format(year, month, day))
오늘은 2019년 10월 29일입니다.
오늘은 2019년 10월 29일입니다.
혹은, 이렇게도 가능하다.
date_string = "오늘은 {}년 {}월 {}일입니다."
print(date_string.format(year, month, day))
print(date_string.format(year, month, day + 1))
오늘은 2019년 10월 29일입니다.
오늘은 2019년 10월 30일입니다.
format 다루기
print("저는 {}, {}, {}를 좋아합니다!".format("박지성", "유재석", "빌 게이츠"))
print("저는 {1}. {0}, {2}를 좋아합니다!".format("박지성", "유재석", "빌 게이츠"))
저는 박지성, 유재석, 빌 게이츠를 좋아합니다!
저는 유재석, 박지성, 빌 게이츠를 좋아합니다!
num_1 = 1
num_2 = 3
print("{0} 나누기 {1}은 {2}입니다.".format(num_1, num_2, num_1 / num_2))
print("{0} 나누기 {1}은 {2:.2f}입니다.".format(num_1, num_2, num_1 / num_2))
# 여기서 f는 소수를 의미하고, .2는 소수점 둘째자리로 반올림하라는 의미
print("{0} 나누기 {1}은 {2:.0f}입니다.".format(num_1, num_2, num_1 / num_2))
1 나누기 3은 0.333333333333333입니다.
1 나누기 3은 0.33입니다.
1 나누기 3은 0입니다.
문자열 포맷팅을 하는 다양한 방식
우리는 앞서 format 메소드를 이용한 문자열 포맷팅을 배웠습니다. 하지만 사실 파이썬에는 문자열 포맷팅을 하는 방법이 몇 가지 더 있습니다. 각각 간단하게라도 소개드리겠습니다.
가장 오래된 방식 (% 기호)
name = "최지웅"
age = 32
print("제 이름은 %s이고 %d살입니다." % (name, age))
제 이름은 최지웅이고 32살입니다.
이제는 잘 쓰지 않는, 옛날 방식입니다. %s, %d와 같은 '포맷 스트링'이라는 것을 사용하는데요. C나 자바 등 많은 언어들에서 이와 유사한 방식으로 문자열 포맷팅을 합니다.
현재 가장 많이 쓰는 방식 (format 메소드)
name = "최지웅"
age = 32
print("제 이름은 {}이고 {}살입니다.".format(name, age))
제 이름은 최지웅이고 32살입니다.
2020년 2월 기준, 파이썬 커뮤니티에서 가장 많이 사용하는 방식입니다. 그래서 이걸 최우선적으로 가르쳐 드렸습니다.
새로운 방식 (f-string)
name = "최지웅"
age = 32
print(f"제 이름은 {name}이고 {age}살입니다.")
제 이름은 최지웅이고 32살입니다.
파이썬 버전 3.6부터 새롭게 나온 방식입니다. 아직 완전히 대중화되지는 않았지만 좋은 평을 받고 있기 때문에, 곧 f-string을 더 많이 사용하는 추세로 갈 수 있습니다.
실습과제: 문자열 포맷팅 연습
주어진 코드에서 wage는 1시간에 얼마 버는지를 나타내는 값이고, exchange_rate는 1달러를 한국 돈으로 바꾸면 얼마인지 나타내는 값(환율)입니다. 1시간 동안 번 금액은 wage * 1의 결과값인 5달러이고, 이 금액을 한국 돈으로 환전하면 wage * 1 * exchange_rate의 결과값인 5710.8원이 되는거죠.
문자열 포맷팅의 개념을 이용하여 아래의 문장들을 출력하세요.
1시간에 5달러 벌었습니다.
5시간에 25달러 벌었습니다.
1시간에 5710.8원 벌었습니다.
5시간에 28554.0원 벌었습니다.
주어진 변수와 문자열 포맷팅을 반드시 이용하셔야 합니다. 그리고 원화 금액은 소수점 첫째 자리까지만 출력되어야 합니다.
wage = 5 # 시급 (1시간에 5달러)
exchange_rate = 1142.16 # 환율 (1달러에 1142.16원)
# "1시간에 5달러 벌었습니다." 출력
print("{}시간에 {}{} 벌었습니다.".format(1, wage * 1, "달러"))
# "5시간에 25달러 벌었습니다." 출력
print("{}시간에 {}{} 벌었습니다.".format(5, wage * 5, "달러"))
# "1시간에 5710.8원 벌었습니다." 출력
print("{}시간에 {:.1f}{} 벌었습니다.".format(1, wage * 1 * exchange_rate, "원"))
# "5시간에 28554.0원 벌었습니다." 출력
print("{}시간에 {:.1f}{} 벌었습니다.".format(5, wage * 5 * exchange_rate, "원"))
불 대수
- 불 대수 : 일상적인 논리를 수학적으로 표현한 것
- 불 대수의 값, 진리값 : True, False
- 불 대수의 연산 : AND, OR, NOT
AND 연산 : x와 y가 모두 참일 때만 x AND y가 참
x | y | x AND y |
True | True | True |
True | False | False |
False | True | False |
False | False | False |
OR 연산 : x와 y 중 하나라도 참이면 x OR y는 참
x | y | x OR y |
True | True | True |
True | False | True |
False | True | True |
False | False | False |
type 함수
print(type(3))
print(type(3.0))
print(type("3"))
print(type("True"))
print(type(True))
def hello():
print("Hello world!")
print(type(hello))
print(type(print))
<class 'int'>
<class 'float'>
<class 'str'>
<class 'str'>
<class 'bool'>
<class 'function'>
<class 'builtin_function_or_method'>
'~2023.02 > Python' 카테고리의 다른 글
프로그래밍 기초 in Python _ [토픽3] 프로그래밍과 데이터 in Python _ 사전 & 파이썬 데이터의 비밀 (0) | 2021.09.05 |
---|---|
프로그래밍 기초 in Python _ [토픽3] 프로그래밍과 데이터 in Python _ 리스트 & for 반복문 (0) | 2021.09.04 |
프로그래밍 기초 in Python _ [토픽2] 프로그래밍 핵심 개념 in Python _ 제어문 (0) | 2021.09.03 |
프로그래밍 기초 in Python _ [토픽2] 프로그래밍 핵심 개념 in Python _ 추상화 (0) | 2021.09.03 |
프로그래밍 기초 in Python _ [토픽1] 프로그래밍 시작하기 in Python (0) | 2021.09.02 |