● 1. 자료형과 문자열 / 2. 숫자
- 문자열 (string) : 따옴표로 감싸 입력
- 숫자 : 정수 (integer), 실수 (floating point)
- 불 (boolean) : True / False
연산자 (operator) 사용시, 문자열은 문자열끼리, 숫자는 숫자끼리 사용해야 한다. (위반시 TypeError)
- String Operators
의미 | 입력 | 출력 | |
+ | 연결 | print("안녕" + "하세요") | 안녕하세요 |
* | 반복 | print("안녕하세요" * 3) | 안녕하세요안녕하세요안녕하세요 |
[ ] | 문자 하나 선택 (indexing) | print("안녕하세요"[0]) | 안 #파이썬은 zero index #IndexError 주의 |
[:] | 문자 범위 선택 (slicing) | print("안녕하세요"[1:4]) print("안녕하세요"[ :3]) |
녕하세 #마지막 숫자 불포함 안녕하 |
● 3. 변수와 입력
input() 함수의 결과는 항상 string type이므로, 숫자로 변환(cast)해야 숫자 연산이 가능하다.
이때 int(), float() 함수를 사용한다. (다만, 숫자가 아닌 것을 변환하려고 할때는 ValueError)
- [예제 p.125] inch 단위를 cm 단위로 변경하기
raw_input = input("inch 단위의 숫자를 입력해주세요> ")
inch = int(raw_input) # 입력 데이터를 int type으로 변경
cm = inch * 2.54
print(inch, "inch는 cm 단위로", cm, "cm입니다.")
● 4. 숫자와 문자열의 다양한 기능
- "{ } { } { }".format() : data type 제약 없이 문자열 { }에 데이터 ( ) 삽입 가능 ({}가 매개변수보다 많으면 IndexError)
- f "str {exp}str" : 위 함수보다 간단하게 문자열에 데이터 삽입 가능 (단, 문자열 내용이 많거나, data를 list에 담아 사용할 때는 format() 함수가 낫다.)
- upper(), lower() : 대소문자 변환
- strip() : 문자열 양 옆의 공백 제거
- is___() : 문자열 구성 파악
- find(), rfind() : 문자열 찾기
- in 연산자 : 문자열 내부에 어떤 문자열이 있는지 확인
- split() : 문자열을 잘라 list로 만들기
- [도전문제 p.152] 구의 부피와 겉넓이
풀이 1
r = input("구의 반지름을 입력해주세요:")
int_r = int(r)
print("= 구의 부피는", 4/3*3.141592*int_r**3, "입니다.")
print("= 구의 겉넓이는", 4*3.141592*int_r**2, "입니다.")
풀이 2 - format() 함수 활용
r = input("구의 반지름을 입력해주세요:")
int_r = int(r)
vol_area = """\
= 구의 부피는 {} 입니다.
= 구의 겉넓이는 {} 입니다.\
""".format(4/3*3.141592*int_r**3, 4*3.141592*int_r**2)
print(vol_area)
풀이 3 - f-string 활용
r = input("구의 반지름을 입력해주세요:")
int_r = int(r)
vol_area = f"""\
= 구의 부피는 {4/3*3.141592*int_r**3} 입니다.
= 구의 겉넓이는 {4*3.141592*int_r**2} 입니다.\
"""
print(vol_area)
풀이 4 - 정답지
pi = 3.141592
r = float(input("구의 반지름을 입력해주세요: "))
vol = (4/3) * pi * (r**3)
area = 4 * pi * (r**2)
print(f"= 구의 부피는 {vol}입니다.")
print(f"= 구의 겉넓이는 {area}입니다.")
★ Self Feedback
- pi 같은 복잡한 숫자는 앞에서 미리 변수 설정 해놓자.
- input 값으로 정수가 아닌 값이 들어올 수 있기 때문에, int가 아닌 float를 사용하자.
- input 값을 바로 float로 처리하면 깔끔하다.
'Programming' 카테고리의 다른 글
git (0) | 2024.01.14 |
---|---|
[혼공파] Iteration (1) | 2023.12.31 |
[혼공파] Conditional (1) | 2023.12.15 |
[생활코딩] CSS (1) | 2023.11.27 |
[생활코딩] HTML & Internet (1) | 2023.10.28 |