본문 바로가기
학습노트/Python

[강의노트] Python - 기초문법(1) - 실습

by kime2 2024. 1. 6.

 

변수선언과 자료형

 

  • 숫자들의 평균 구하기
a = 24
b = 16
c = 26

print((a+b+c)/3)

 

 

문자열 다루기

 

  • 문자열의 앞의 반만 출력하기
text = "sparta"
print(text[:3])

 

 

  • 전화번호의 지역번호 출력하기
phone = "02-123-1234"
print(phone.split('-')[0])

 

 

리스트와 딕셔너리

 

  • 딕셔너리에서 원하는 정보 찾아내기 : jhon의 math점수
people = [
    {'name': 'bob', 'age': 20, 'score':{'math':90,'science':70}},
    {'name': 'carry', 'age': 38, 'score':{'math':40,'science':72}},
    {'name': 'smith', 'age': 28, 'score':{'math':80,'science':90}},
    {'name': 'john', 'age': 34, 'score':{'math':75,'science':100}}
]

print(people[3]['score']['math'])
#people 리스트3번째에서 딕셔너리 score키의 밸류에서 math의 밸류

 

 

조건문

 

  • 가격이 10000미만일 경우 정가 30000원 초과일 경우 10%할인, 그 외에는 5%할인 일때 15000원 지불시 받는 할인은?
pay=15000

if pay <10000:
    print('정가제')
elif pay > 30000:
    print('10%할인')
else:             #else 조건(pay>=10000 and pay <=30000)이 생략되어 있으므로 콜론(:)필수
    print('5%할인')

 

 

반복문

 

  • 나이가 20보다 큰 사람의 이름 출력하기
people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

for person in people:
    if person['age'] >20:
        print(person['name'])

 

  • 앞 5개의 과일만 출력하기
fruits = ['사과', '배', '감', '귤','귤','수박','참외','감자','배','홍시','참외','오렌지']

for i, fruit in enumerate(fruits): #enumerate()함수는 인덱스와 원소로 이루어진 튜플을 만듧, i가 없을경우에도 자동생성
    print(i,fruit)
    if i == 4: #i가 4가되면
        break  #멈춰

 

 

  • 리스트에서 짝수만 출력하는 함수 만들기
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]

for num in num_list:
    if num%2 == 0: #num의 나머지가 0일경우
        print(num)

 

  • 리스트에서 짝수의 개수를 출력하기
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
count = 0
for num in num_list:
    if num % 2 == 0:#num이 짝 수 일 경우
        count += 1  #count=count+1, count에서 1을 더함 -> 다음 또 1을 더함..
print(count) #조건문의 결과가 아님, 최종 더해진 count를 한번만 출력

 

<오답>

print(count)가 반복문의 수행문일 경우
print(count)가 조건문의 수행문일 경우
num_list의 0번째부터 11번째 까지 모든 과정을 출력
1 -> 짝수아님 -> 0
2 -> 짝수O -> 0+1
3 -> 짝수아님 -> 1
6 -> 짝수-> 1+1
3 -> 짝수아님 -> 2
2 -> 짝수 -> 2+1
...
num_list가 짝수일 경우만 수행
1 -> 짝수아님 -> 출력X
2 -> 짝수O -> 0+1 -> 출력 1
3 -> 짝수아님 -> 출력X
6 -> 짝수-> 1+1-> 출력2
3 -> 짝수아님 -> 출력X
2 -> 짝수 -> 2+1 ->출력3
...

 

  • 리스트 안에 있는 모든 숫자 더하기

(방법1)

num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
count = 0
for num in num_list:
    count += num  #total = count = count+ num
print(count)

 

(방법1)

num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]

print(sum(num_list))

 

  • 리스트 안에 있는 자연수 중 가장 큰 숫자 구하기

 

(방법1)

num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]

max_num = 0
for num in num_list: 
    if num > max_num: #num이 max_num보다 크다면
        max_num = num #max_num에 num을 저장
print(max_num)

 

(방법2)

num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]

print(max(num_list))

 

함수

  • 주민등록번호를 입력받아 성별을 출력하는 함수 만들기