[혼공파] # 2. 자료형

문연수·2023년 1월 9일
0

혼공파

목록 보기
2/8

1. 자료형과 문자열

- 1. 문자열

구문의미
"문자"큰 따옴표로 문자열 만들기
'문자'작은 따옴표로 문자열 만들기
"""문자열
문자열
문자열"""
여러 줄 문자열 만들기

 책에서는 표의 좌측을 구문 (Statement) 이라고 하였으나 실제로는 표현식 (Expression) 이 더 바른 표현이다. 굳이 억지를 부리자면 Expression Statement 라고 부를 순 있긴 하나, 이 상황에선 표현식이 올바른 표현으로 보인다.

- 2. 이스케이프 문자

이스케이프 문자의미
\"큰 따옴표
\'작은 따옴표
\n줄 바꿈
\t
\\백슬래시

- 3. 실행 결과 예측

# 연습 문제
\\\\
--------

- 4. 실행 결과 & 오류 찾기

녕
하
세
요
# print("안녕하세요"[5])

에러: Index out of range

확인은 안해봤지만 무조건 이 에러임.

- 5. 실행 결과 예측

녕하
하세
녕하세요
안녕하

2. 숫자

- 1. 숫자 자료형

단어예시
정수273, 52, 0, 1234, -25
실수0.0, 1.234, 2.73e2, -25.0

- 2. 숫자 연산자

연산자의미
+덧셈 연산자
-뺄셈 연산자
*곱셈 연산자
/나눗셈 연산자
//정수 나누기 연산자
**제곱 연산자

- 3. 실행 결과 예측

# 기본적인 연산
15 + 4 = 19
15 - 4 = 11
15 * 4 = 60
15 / 4 = 3.75

- 4. 몫과 나머지 계산

실행 결과

346217로 나누었을 때의
- 몫: 203
- 나머지: 11
print("3462를 17로 나누었을 때의")
print("- 몫:", 3462 // 17)
print("- 나머지:", 3462 % 17)

- 5. 실행 결과

print(2 + 2 - 2 * 2 / 2 * 2)
print(2 - 2 + 2 / 2 * 2 + 2)

실행 결과:

0.0
4.0

3. 변수와 입력

- 1. 값 할당

변수_이름 = 값

- 2. 복합 대입 연산자

연산자내용
+=숫자 덧셈 후 대입
-=숫자 뺄셈 후 대입
*=숫자 곱셈 후 대입
/=숫자 나눗셈 후 대입
%=숫자 나머지 구한 뒤 대입
**=숫자 제곱 후 대입

- 3. 자료형 변환 함수

함수내용
int()문자열을 int 자료형으로 변환
float()문자열을 float 자료형으로 변환
str()숫자를 문자열로 변환

 답지는 안 봤지만 책에서 요구하는 정답은 아무래도 이게 맞는 것 같긴 한데... 실제로 int 는 함수라기 보단 class 로 보는게 맞고 굳이 함수라고 우긴다면 생성자 정도로 보는게 맞을 것 같다.

 또한 int() 는 문자열만 int 자료형으로 변환할 뿐만 아니라 실수에 대해서도 동일한 형변환 작업을 수행한다. 그 외 float(), str() 도 마찬가지이다.

 사실 초심자 책이라서 무언가 많이 바라진 않지만 이런 부분은 조심해야 된다고 생각한다. 그러나 이거 저거 따져봐도 이 책은 정말 잘 쓰여진 책이긴 하다.

- 4. inch to cm

str_input = input("숫자 입력 > ")
num_input = int(str_input)

print()
print(num_input, "inch")
print((num_input * 2.54), "cm")

- 5. 원의 둘레와 넓이

str_input = input("원의 반지름 입력> ")
num_input = int(str_input)
print()
print("반지름: ", num_input)
print("둘레: ", 2 * 3.14 * num_input)
print("넓이: ", 3.14 * num_input ** 2)

- 6. 문자열 스왑

a = input("문자열 입력>")
b = input("문자열 입력>")

print(a, b)

c = a
a = b
b = c

print(a, b)

4. 숫자와 문자열의 다양한 기능

- 1. 오류 찾기

"{} {} {}".format(52, type(273)) # Index error

- 2. 함수의 기능

함수명기능
split()문자열을 특정 문자로 자릅니다.
upper()문자열을 대문자로 변환합니다.
lower()문자열을 소문자로 변환합니다.
strip()문자열 양옆의 공백을 제거합니다.

- 3. 빈칸 채우기

a = input("> 1번째 숫자: ")
b = input("> 2번째 숫자: ")
print()

print("{} + {} = {}".format(a, b, a + b))

- 4. 실행 결과 예측

string = "hello"

string.upper()
print("A 지점: ", string)

print("B 지점: ", string.upper())

실행 결과:
hello
HELLO

5. 도전 문제

- 1. 구의 부피와 겉넓이

PI = 3.141592

radius = float(input("구의 반지름을 입력해주세요: "))

print("= 구의 부피는 {:f}".format(4 / 3 * PI * (radius ** 3)))
print("= 구의 겉넓이는 {:f}".format(4 * PI * (radius ** 2)))

- 2. 피타고라스의 정리

base = float(input("밑변의 길이를 입력해주세요: "))
height = float(input("높이의 길이를 입력해주세요: "))

print("= 빗변의 길이는 {:.1f}입니다.".format((base ** 2 + height ** 2) ** 0.5))
profile
2000.11.30

0개의 댓글