파이썬 수업 2일차이자 첫 주의 마지막 수업날이다. 오늘도 크게 어려운 내용은 없었지만, 양이 많아서 정리하고 복습할 내용이 꽤 많았다.
먼저 파이썬의 가상환경에 대해 간단히 설명을 들었다. 가상환경이란 독립된 작업 환경으로, 프로젝트마다 사용하는 도구나 버전이 다를 수 있기 때문에 자주 사용한다.
f-string : 문자열 포매팅 (Formatting)
# 일반적으로 print 사용
my_name = "taehyun"
my_age = 27
# print("내 이름은", my_name, "이고, 나이는", my_age, "살 입니다.")
# 공격력 : 100 방어력 : 80 민첩성 : 95 지력 : 105
my_att = 100
my_def = 80
my_agi = 95
my_int = 105
# print("공격력 :", my_att, "방어력 :", my_def, "민첩성 :", my_agi, "지력 :", my_int)
# f-string 사용
print(f"공격력 : {my_att}, 방어력 : {my_def}, 민첩성 : {my_agi}, 지력 : {my_int}")
f-string 이전 방식의 문자열 포매팅
# 방식 1
print("내 이름은 %s입니다" % "태현")
# 방식 2
print("내 이름은 {}입니다".format("태현"))
최근 파이썬 버전에는 새로운 문자열 포매팅 방식이 도입되었다고 한다. 하지만 아직은 f-string이 가장 많이 사용되기 때문에, f-string 사용법에 빨리 익숙해져야겠다 생각이 들었다. 그리고 시간이 된다면 새로운 문자열 포매팅 방식도 찾아보고 정리해 블로깅 해봐야겠다.
파이썬의 2번째 챕터인 자료형의 마지막은 '형변환'이었다.
명시적 형변환 : 프로그래머가 직접 변환을 명령하는 것
# 1. 실수 -> 정수
# 2. 문자열로 표현된 정수 -> 정수 "100"
# 3. 논리형 -> 정수
# 가능한 경우
print(f"3.14 -> {int(3.14)}")
print(f"'100' -> {int('100')}")
print(f"True -> {int(True)}")
print(f"False -> {int(False)}")
# 불가능한 경우
print(int("3.14")) # 문자열로 표현된 실수
print(int("abc")) # 문자열 그대로 변환하려는 경우# 1. 정수 -> 실수
# 2. 문자열로 표현된 실수 -> 실수
# 3. 문자열로 표현된 정수 -> 실수
# 4. 논리형 -> 실수
# 가능한 경우
print(f"7 -> {float(7)}")
print(f"'3.14' -> {float('3.14')}")
print(f"'100' -> {float('100')}")
print(f"True -> {float(True)}")
print(f"False -> {float(False)}")
# 불가능한 경우
print(float("def")) # 문자열 그대로 변환하려는 경우# 모든 타입을 문자열로 변환 가능
print(str(100), type(str(100)))
print(str(3.14), type(str(3.14)))
print(str(True), type(str(True)))
print(str(False), type(str(False)))print(bool(1))
print(bool(0))암시적 형변환 : 프로그램이 자동으로 자료형을 변환해주는 것
- 약타입 : 상대적으로 암시적 형변환을 많이 사용하는 타입
- 정수와 실수의 연산에서 자동으로 실수로 연산
```python
print(10 + 5.0)
print("100" + 200) # 불가능
```
파이썬의 3번째 챕터의 시작은 '연산자'이다.
# 산술 연산자
print("더하기", 10 + 3)
print("빼기", 10 - 3)
print("곱하기", 10 * 3)
print("나누기", 10 / 3)
print("몫", 10 // 3)
print("나머지", 10 % 3)
print("거듭제곱", 10 ** 3)# 변수와 산술 연산
# 반복되는 항이 있다면 변수로 처리
a = 20
b = 9
print("더하기", a + b)
print("빼기", a - b)
print("곱하기", a * b)
print("나누기", a / b)
print("몫", a // b)
print("나머지", a % b)
print("거듭제곱", a ** b) 복합 대입 연산자는 변수에 자기 자신에 대한 연산 결과를 다시 저장할 때 사용한다.
# 일반적 연산 방법
# 변수의 값을 변경
x = 10
# x에 5를 더하고 싶다면?
x = x + 5
# x에서 10을 빼고 싶다면?
x = x - 10
# x에 두배를 해주고 싶다면?
x = x * 2
# 결과값 출력
print(x)
# 복합 대입 연산자
# 변수의 값을 변경
x = 10
# x에 5를 더하고 싶다면?
x += 5
# x에서 10을 빼고 싶다면?
x -= 10
# x에 두배를 해주고 싶다면?
x *= 2
# x를 5로 나누고 싶다면?
x /= 5
# 결과값 출력
print(x)
복합 대입 연산자를 사용한 실습 문제도 풀어보았다.
# 실습 1) 대학생의 용돈 관리
# 시작 용돈 : 30
money = 30
# 책 구매 8만원 사용
money -= 8
# 점심값 9천원 5일간 사용
money -= 0.9 * 5
# 아르바이트 비용 12만원
money += 12
# 용돈으로 현재 금액의 20% 추가
money *= 1.2
전기요금 등 공과금으로 남은 돈의 1/3 지출
money *= 2/3
print(f"남은 금액은 {money}만원 입니다.")
# + : 문자열의 결합(연결)
# print(100 + 200)
# print("100" + "200")
# 문자열과 정수의 더하기 연산은 불가능
# print("100" + 200)
first_name = "taehyun"
last_name = "an"
full_name = first_name + " " + last_name
print(full_name)
# * : 문자열의 반복
인사 = "안녕"
print(인사 * 3)
# 지원하지 않는 문자열 연산
print("안녕하세요" / 5)
print("안녕하세요" - "하세요")
이렇게 3번째 챕터도 마무리되었다. 오늘은 정말로 정리할 내용이 많다.
4번째 챕터는 사용자 입력 input() 함수에 대해 공부했다.
input을 통해 받은 입력 -> 문자열
숫자로 활용할시 '형변환'을 해줘야 됨
# 정수 계산시 정수형으로 변환
a = int(input())
b = int(input())
print(a + b)
실수 계산을 하려면 실수형으로 변환
c = float(input())
d = float(input())
print(c + d)
input의 입력에 대한 설명문 추가
name = input("이름을 입력하세요 :")
print(f"제 이름은 {name}입니다.")
split은 구분자를 기준으로 문자열을 쪼개서 리스트를 반환함 (구분자의 기본값은 공백)
과일1, 과일2, 과일3 = "수박 사과 참외".split()
print(과일1)
print(과일2)
print(과일3)
# 여러 자료 입력하기
# input에 적용
과일1, 과일2, 과일3 = input().split()
print(과일1)
print(과일2)
print(과일3)
split() 안의 기본값을 변경 가능
과일 = "수박-사과-참외".split(-)
print(과일)
오늘도 많은 내용을 배워서 시간이 너무 빨리 지나간 느낌이다. 다음 주에는 또 어떤 내용을 배우게 될지 벌써부터 기대된다.
추가로, 한 주가 끝났을 때나 어떤 프로젝트가 마무리되었을 때처럼 어떤 일을 마치고 지난 시간을 돌아보며 앞으로의 계획을 세우는 '회고'에 대해서도 들었다. 주말 중으로 '회고'에 대해 좀 더 알아보고, 이번 주에 대한 회고록도 작성해봐야겠다.