5/26 TIL

정희린·2025년 5월 26일

오늘은 수준별 강의가 있었던 날..
오전 내내 과제 푼다고 너무 정신 없었다
오늘 최종 프로젝트 데이터도 좀 찾고
sqld도 1과목 강의 듣고
뭔갈 많이 하긴 했는데 흠..
프로젝트 끝났는데 놀게 해주면 안될까요
오늘도 12시까지 과제 풀게 생겼네..

실습 1. 입출력

# 01.실습 1
name = input("이름을 입력하세요:")
age = input("나이를 입력하세요:")
print(f"이름: {name} | 나이: {age}")


# 01. 실습 2
for i in range(1,6):
    print(i, sep=";", end="!" if i == 5 else ";")
    
# 01. 실습 3
number1, number2 = map(int, input("숫자들을 입력하세요: ").split())
print(f"{number1} + {number2} = {number1+number2}")
print(f"{number1} - {number2} = {number1-number2}")

실습 2. 변수

# 02. 실습 1
var = 42
var1 = 3.14
var2 = "Python"
print(f"값: {var}, 타입: {type(var)}")
print(f"값: {var1}, 타입: {type(var1)}")
print(f"값: {var2}, 타입: {type(var2)}")

# 02. 실습 2
a, b, c = 5, 7, 9
avg = a+b / 3
print(f"a={a}, b={b}, c={c} -> 평균: {round(avg, 0)}")

실습 3. 문자열

# 03. 실습 1
sentnece = input("영어 문장을 입력하세요: ")
print(f"첫 글자: {sentnece[0]}, 마지막 글자: {sentnece[-1]}")

# 03. 실습 2
raw = "  Life is too short, you need Python. Python is fun!   "
clean = raw.strip().lower()
count_num = clean.count('python')
world_list = clean.split(' ')
print(f"clean : {clean} \ncount : {count_num} \nreplaced : {clean.replace('python', 'Java')} \nwords : {world_list}")

실습 4. 리스트

# 04. 실습 1
cities = ["Seoul", "Busan", "Incheon", "Daegu", "Gwangju", "Daejeon"]

sub_cities = cities[1:4]
reversed_cities = sub_cities.reverse()
sub_cities.append('Ulsan')
print(sub_cities)

# 04. 실습 2
# result = []
# for x in range(1, 30):
#     if x % 3 == 0 and x % 2 != 0:
#         result.append(x**2)
# print(result)

result = [x**2 for x in range(1, 30) if x % 3 == 0 and x % 2 != 0]
print(result)

실습 5. 딕셔너리

# 05. 실습 1
# 1. 빈 딕셔너리 생성
phonebook = {}

# 2. 이름과 전화번호를 3번 입력받아 추가
for _ in range(3):
    name = input("이름을 입력하세요: ")
    number = input("전화번호를 입력하세요: ")
    phonebook[name] = number

# 3. 모든 연락처 출력
print("\n저장된 연락처:")
for name, number in phonebook.items():
    print(f"{name}:{number}")

# 4. 삭제할 이름 입력 후 pop()
delete_name = input("\n삭제할 이름을 입력하세요: ")
phonebook.pop(delete_name, None) 

# 5. 남은 연락처 출력
print("\n남은 연락처:")
for name, number in phonebook.items():
    print(f"{name}:{number}")

# 05. 실습 2
scores = {"Alice": 88, "Bob": 95, "Charlie": 70, "Dave": 95, "Eve": 62}

# 1. 평균 점수 구하기
values = scores.values()
avg_scores = sum(values) / len(values)
print("평균점수: ", avg_scores)

# 2. 최고 점수 받은 학생 이름과 점수
max_scores = max(values)
top_students = [name for name, score in scores.items() if score == max_scores]

print("최고점: ")
for student in top_students:
    print(f"{student}({scores[student]})")

# 3. 70점 이상이면 pass
# result = {}
# for name, score in scores.items():
#     if score >= 70:
#         result[name] = "Pass"
#     else:
#         result[name] = "Fail"
# print("패스 여부: ", result)

result = {name: "Pass" if score >=70 else "Fail" for name, score in scores.items()}
print("패스 여부: ",result)

# 05. 실습 3
products = {
    "Keyboard": 49_000,
    "Monitor": 219_000,
    "Mouse": 25_000,
    "Speaker": 49_000,
    "Webcam": 89_000
}

sorted_products = sorted(
    products.items(),
    key=lambda kv: (-kv[1], kv[0])
)
print(dict(sorted_products))

실습 6. 조건문

# 06. 실습 1
age = int(input("나이를 입력하세요: "))
if age < 0 or age > 150:
    print("잘못된 나이입니다.")
elif age < 7:
    print("요금은 무료입니다.")
elif age < 19: 
    print("요금은 8000원입니다.")
elif age < 65:
    print("요금은 12000원입니다.")
else:
    print("요금은 6000원입니다.")

# 06. 실습 2
weight = int(input("몸무게를 입력하세요(kg): "))
height = int(input("키를 입력하세요(cm): "))
height_m = height / 100
BMI = round(weight / (height_m ** 2), 1)
if weight <= 0 or height <= 0:
    print("잘못된 입력입니다.")
elif BMI < 18.5:
    print(f"BMI: {BMI} -> 저체중")
elif BMI < 23:
    print(f"BMI: {BMI} -> 정상")
elif BMI < 25:
    print(f"BMI: {BMI} -> 과체중")
else:
    print(f"BMI: {BMI} -> 비만")
    
# 06. 실습 3
a = int(input("a의 길이를 입력하세요: "))
b = int(input("b의 길이를 입력하세요: "))
c = int(input("c의 길이를 입력하세요: "))

if a <= 0 or b <= 0 or c <= 0:
    print("삼각형이 아닙니다.")
elif a + b <= c or a + c <=b or b + c <= a:
    print("삼각형이 아닙니다.")
elif a ** 2 + b ** 2 == c ** 2 or a**2 + c**2 == b ** 2 or b**2 + c**2 == a **2:
    print("직각삼각형")
elif a == b == c:
    print("정삼각형")
elif a == b or b == c or a == c:
    print("이등변삼각형")
else:
    print("일반 삼각형")

실습 7. 반복문

# 07. 실습 1
total = 0
while True:
    num = int(input("숫자 입력(0 입력 시 종료): "))
    if num == 0:
        break
    total += num
print("합계:", total)

# 07. 실습 2
sentnece = input("문장 입력: ").lower()
vowel_cnt = {'a': 0, 'e': 0, 'i':0, 'o': 0, 'u':0}
for ch in sentnece:
    if ch in vowel_cnt:
        vowel_cnt[ch] += 1

print(vowel_cnt)

# 07. 실습 3
name_score = input("이름, 점수 입력: ")
name, score_str = name_score.split(",")
score = int(score_str)

result = "합격" if score >= 80 else "불합격"

student = {"name": name, "score": score, "result": result}
print(student)

실습 8. 함수

# 08. 실습 1
def double_num(x):
    return 2*x

print(double_num(7))

문제 내용까진 못쓰겠다 복붙하는 것도 귀찮다 ..


이 수업은 라이브 코딩으로 진행되는데 뭔가 실력이 느는 것 같긴 하다.. 당연하지 하루에 4시간씩 코드 치는데..

라이브 코딩 문제

문제 1. 정수 a, b를 입력받아 합과 곱을 두 줄로 출력

a, b = map(int, input().split())

print(f"정수 {a}{b}의 합은 {a+b}입니다. \n정수 {a}{b}의 곱은 {a*b}입니다.")

문제 2. 문자열을 한 줄 입력받아 뒤집은 결과를 출력

sentence = input()

print(sentence[::-1])

문제 3. 1 ~ n까지의 수 중 짝수만 더해 합을 출력

n = int(input("정수를 입력하세요: "))
total = 0
for x in range(1, n+1):
    if x % 2 == 0:
        total += x
print(total)

문제 4. 쉼표로 구분된 과일 이름을 입력받아 리스트로 변환 후 출력

fruit = input().split(',')

print(fruit)

문제 5. 문자열 형태의 비밀번호를 입력받아 길이가 8 이상이면 "OK", 아니면 "Too Short"를 출력

password = input()

if len(password) >= 8 and password.isalpha():
    print("OK")
else:
    print("Too Short")

문제 6. 쉼표로 구분된 숫자들을 입력 받아, 최대-최소 차이를 "차이: 7" 형식으로 출력

num = list(map(int, input().split(',')))
print(f"차이: {max(num) - min(num)}")

문제 7. 리스트에 있으면 "제출 완료", 없으면 "미제출" 출력

list = ["Anna", "Ben", "Cara"]
name = input()

if name in list:
    print("제출 완료")
else:
    print("미제출")

문제 8. 딕셔너리를 값→키 형식으로 뒤집어 출력

origin_dict = {"Korea":"Seoul","Japan":"Tokyo","USA":"Washington"}
reversed_dict = {}

for key, value in origin_dict.items():
    reversed_dict[value] = key

print(reversed_dict)

# reversed_dict = {k:v for k, v in origin_dict.items()}

문제 9. Dog 클래스 정의

class Dog:
    def __init__(self, name):
        self.name = name
    def bark(self):
        print(f"월월! 내 이름은 {self.name}야")

dog_1 = Dog("초코")
dog_2 = Dog("사랑이")
dog_1.bark()
dog_2.bark()

응용 1. 정수 n의 소수인지 아닌지 판단하는 함수를 구하고, 약수를 모두 출력

n = int(input())

def divisors(n):
    # divisorslist = []
    divisorslist = [num for num in range(1, n+1) if n % num == 0]

    # for i in range(1, n+1):
    #     if (n % i == 0):
    #         divisorslist.append(i)

    return divisorslist

print(divisors(n))

if len(divisors(n)) == 2:
    print("Prime")
else:
    print("Not Prime")

응용 2. 조건문으로 평균 90↑ A / 80↑ B / 70↑ C / else D 등급을 이름 옆에 출력

score_dict = {}

for _ in range(3):
    name, score = input().split()
    score_dict[name] = int(score)

print(score_dict)

for key, value in score_dict.items():
    if value >= 90:
        grade = 'A'
    elif value >= 80:
        grade = 'B'
    elif value >= 70:
        grade = 'C'
    else:
        grade = 'D'
    print(f"{key} {grade}")

응용 3. 점수 내림차순, 점수 같으면 이름 오름차순으로 정렬해 리스트 출력

students = [("Bob",90),("Amy",90),("Cara",85)]  

sorted_students = sorted(
    students,
    key=lambda x: (-x[1], x[0])
)
print(sorted_students)

고생했다 ..

profile
스포츠 광인

0개의 댓글