Language/Python

[Section2] 데이터 형식 이해 및 문자열

HeeWorld 2025. 1. 9. 16:10

[udemy] Python 부트캠프 : 100개의 프로젝트로 Python 개발 완전 정복을 통해 학습하고 있습니다.

 

파이썬 기본 데이터 형식

- String, Integer, Float, Boolean

 

String

- "Hello"를 []안에 원하는 문자의 인덱스나 위치를 넣을 수 있음.

- 만약 "Hello"의 첫 번째 글자만 출력하고 싶다면, 아래와 같이 사용할 수 있음. 

- 문자나 어떤 것을 시작할 때 항상 0부터 시작함. (0 > 1 > 2> 3 ...)

- 음수로 지정하게되면, 마지막 문자부터 시작함.(-1 > -2  > -3...)

print("Hello"[0])
print("Hello"[-1])

# 결과

H
o

 

Integer(정수), Whole Number

- Large Integers를 사용할 때는 ,가 아닌 _를 사용할 수 있음.

- 모든 정수는 양수든 음수이든 프로그래밍에서는 정수(Integer)라고 부름.

print(123 + 456)

print(123_456_789)

# 결과

468
123456789

 

Float(소수점), Floating Point Number

- 예를 들어 3.14159를 입력하면 소수점이 있기 때문에 부동 소수점이 됨.

print(float(3.14))

# 결과
3.14

 

Boolean

- 두 가지 값 True, False만 가지며, 항상 대문자 T또는 대문자 F로 시작하고 따옴표나 다른 기호는 없음.

- 프로그램에서 어떤 것이 true이고 false인지 테스트하고 이에 따라 응답하는데 많이 사용됨.

 

형식 오류와 형식 확인 및 형 변화

- len() 함수에 숫자를 넣어서 사용하면, 에러가 발생하며 제대로 출력이 되지 않음.

   len의 인수는 문자열, 바이트, 튜플, 리스트 또는 range 등을 사용할 수 있음.

   12345를 len()을 사용하여 결과 값을 받고 싶을 때 아래와 같이 사용할 수 있음.

print(len("12345"))

# 결과

5

   

tpye

- 파이썬에는 데이터나 변수의 데이터 타입을 확인할 수 있는 type()함수가 있음.

- ()안에 어떤 데이터든 넣을 수 있고, 반환값으로 데이터 타입을 알려줌.

print(type("Hello"))
print(type(12345))

# 결과

<class 'str'>
<class 'int'>

 

 

Qusetion

Q1. Write out 4 type checks to print all 4 data types.
Using the type() and print() functions to print out 4 lines into the output area so we get the full collection of data types that we learnt about. <class 'str'> <class 'int'> <class 'float'> and <class 'bool'>

print(type("Hello Joy"))
print(type(12345))
print(type(3.1415))
print(type(True))

# 결과

<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>

 

타입 변환

- 문자 타입의 "123"을 숫자로 변경하고 싶을 때 변환할 타입 함수를 사용하면 숫자로 변경할 수 있음.

- "abc"을 정수로, 정수를 문자로 변경할 수 없음. (상식적으로 생각...)

print("123" + "456")

print(int("123") + int("456"))

# 결과

123456
579

 

- 결과 확인 시, 첫 번째 print문은 문자열 "123"과 "456"을 합쳐서 출력한 것을 확인할 수 있음.

- 두 번째 print문은 int를 씌워 정수로 변경하였기 때문에 123+456의 합계를 출력한 것을 볼 수 있음.

 

 

 Qusetion

Q2. Make this line of code run without errors

print("Number of letters in your name: " + len(input("Enter your name")))

TypeError: can only concatenate str (not "int") to str

 

print("Number of letters in your name: " + str(len(input("Enter your name"))))

# 결과

Enter your namejoy
Number of letters in your name: 3

 

→ "Number of letter~"가 str타입이기 때문에 뒤에 len도 str 타입으로 변경해줘야 에러 없이 결과 출력 가능.

     input을 변수로 만드셨지만 나는 그냥 str로 묶어 버림.

 

파이썬의 수학 연산

- +,- 등은 기본적으로 사용할 수 있고, 곱셈의 경우 *를 사용하며 나눗셈은 / 을 사용하고 제곱의 경우 **을 사용함.

   나눗셈의 결과 값 타입은 기본적으로 float이며, 이를 암시적 형변환이라고 부름.

   float 형태가 아닌 int 타입으로 결과 값을 받고 싶다면 // 을 사용하면 됨.

 

- 연산의 순위는 나눗셈이나 곱셈이 가장 먼저 계산되고, 덧셈이나 뺄셈은 나중에 계산됨.

   학교 다닐 때 배웠던 연산 순위와 동일함.

   * PEMDAS: 괄호() > 지수** > 곱셉* 및 나눗셈/ > 덧셈+ 및 뺄셈-

 

- 같은 순위의 계산은 왼쪽에서 오른쪽으로 진행됨.

print(123 + 456)
print(7 - 3)
print(3 * 4)
print(6/3)
print(6//3)
print(5/3)
print(3**2)

# 결과

579
4
12
2.0
2
1.6666666666666667
9

 

 

❓ Qusetion

 

Q1. What is the output of this code?

print(3 * 3 + 3 / 3 - 3)

# 결과

7

 

→ 괄호가 없기 때문에 왼쪽에서 오른쪽으로 연산하여 (1) 3*3 수행 → (2) 3/3 수행 → (3) (1)+(2) 수행 → (3)-3이 수행됨.

 

Q2. Change the code so it outputs 3?

print(3 * 3 + 3 / 3 - 3)
print(((3 * 3) / 3) + 3 - 3)
print(3 * (3 + 3) / 3 - 3)

# 결과

3

 

 

실습: BMI 계산기
체질량 지수(BMI)는 의학에서 사용되는 측정 항목으로, 누군가가 저체중인지 비만인지 확인하는 데 사용됩니다. 이를 계산하기 위해 사용되는 공식은 다음과 같습니다:
* BMI는 해당 사람의 체중을 해당 사람의 키의 제곱으로 나눈 값입니다.
이 문장을 6번 줄의 코드로 변환해보세요.

# Default
height = 1.65 
weight = 84

# Write your code here.
# Calculate the bmi using weight and height.
bmi =

print(bmi)

# 테스트 코드

bmi = weight / (height ** 2)

 

파이썬의 숫자 처리 및 F-String

- 과제에서 BMI를 계산하고 출력 값을 확인하면 소숫점이 많이 출력되는 것을 확인할 수 있음.

bmi = 84 / 1.65 ** 2
print(bmi)

# 출력

30.85399449035813

 

- 이때 round 함수를 사용하여 반올림을처리를 할 수 있음.

   0.5 이상일 때는 다음 정수로 반올림하고, 이하일 때는 반 내림함.

bmi = 84 / 1.65 ** 2

print(bmi)

print(int(bmi))

print(round(bmi))

# 결과

30.85399449035813

30

31

 

- int을 사용하였을 때는 30으로 출력된 것을 확인할 수 있고, round 사용시 소숫점 첫번째 자리에서 반올림하여 출력한 값을 확인할 수 있음.

 

round

- round(number, ndigits) 형식으로 첫 번째는 숫자를 두 번째는 자릿수를 입력할 수 있음.

- 자릿수를 사용하지 않으면 기본적으로 첫째 자리에서 정리하고, 2를 입력하면 둘째 자리까지 출력함.

 

할당 연산자

- 계산 결과를 누적할 수 있음.

- +=, -=, *=, /= 의 형태로 사용할 수 있음.

score = 0

# User scores a point

score += 1
# score + 1 = 

print(score)

# 결과

1

 

f-string

- 문자열과 다양한 테이터 타입을 쉽게 혼합할 수 있게 함.

- 예를 들어 "Your score is = 0, your height is 1.8. You are winning is True." 라는 결과를 출력하고 싶으면

   타입 변환과 + 를 사용하여 코드가 깔끔하지 못한데, f-string을 사용하면 한 번에 깔끔하게 작성할 수 있음.

 

- f"", 쌍따옴표 앞에 f를 붙여주고 출력하고 싶은 변수는 {}로 묶어주면 됨.

 

- 다양한 테이터 타입을 문자열 앞에 f를 사용하고, 중괄호를 사용하여 변수를 문자열에 넣음으로써 하나의 문자열로 결합됨.

# f-string

score = 1
height = 1.8
winning = True

print(f"Your score is = {score}, your height is {height}. You are winning is {winning}.")

# 결과

Your score is 1, your height is 1.8. You are winning is True.

 

 

2일차 프로젝트

아래와 동일하게 출력하는 코드를 만들기.

 

Code

print("Welcom to the tip calculator!")
bill = float(input("What was the total bill? $"))
tip = int(input("How much tip would you like to give? 10, 12, 15? "))
people = int(input("How many people to split the bill? "))
cal = round((((tip/100) * bill) + bill) / people, 2)

print(f"Each person should pay: {cal}")

# 결과

Welcom to the tip calculator!
What was the total bill? $150
How much tip would you like to give? 10, 12, 15? 15
How many people to split the bill? 5
Each person should pay: 34.5

 

 

p.s  코드를 다 쓰고 나니, cal 변수 내용이 많이 지저분한 것 같으나 저걸 다 쪼개기 싫었음.

    다음에는 쪼개서 써야 할 거 같다 가독성이 좀 떨어지는 거 같다는 생각이 듦.

'Language > Python' 카테고리의 다른 글

[Section6] 파이썬 함수와 카렐  (0) 2025.01.13
[Section5] 파이썬 반복문  (0) 2025.01.13
[Section4] 파이썬 리스트  (0) 2025.01.12
[Section3] 흐름 제어와 논리 연산자  (0) 2025.01.10
[Section1] 파이썬 변수 사용  (0) 2025.01.08