회고
- if문 조건을 걸때 더욱 생각하고 걸기. 가장 좋은 조건을 걸 수 있게 노력하자.
- 어느상황에 어떤 조건/반복문을 사용해야 할지 확신이 안선다.
많은 경우를 더 찾아볼 필요가 있다. 예제를 많이 접하고 옆친구들의 과제도 다 까봐야겠다.
- 힘들지만 잘 나아가고 있다. 꾸준함이 생명이다. 지치지말고 끝까지 완주하자.
필기
리스트
- 앞으로 다양한 형태가 나온다하니 리스트를 꼭 숙지하고 넘어가자.
a = [1,2,3,4]
b = [5,6,7,8]
c = a + b
print(c)
a.extend(b)
print(a)
del c[0]
print(c)
del c[4:]
print(c)
a = [1,3,5,6,2,4,5,7]
a.sort()
print(a)
a.reverse()
print(a)
a.insert(0,100)
print(a)
a.insert(5,77)
print(a)
a.insert(len(a),88)
print(a)
a.remove(77)
print(a)
a=[]
a.append("A")
a.append("B")
a.append("C")
a.append("D")
a.append("E")
print(a)
튜플
- 리스트와 달리 튜플은 값을 수정불가하다. 이점을 유의하여 공부하자.
a = (1,2,3,4,5)
print(a,type(a))
a = 5
b = 7
c = 9
a,b,c = 5,7,9
print(a,b,c)
def myfunc1():
return 3,4
a = myfunc1()
print(type(a))
b,c = a
print(b,c)
a = 5
b = 7
c = a
a = b
b = c
print("A =",a, "B =",b)
b, a = a, b
print("A =",a, "B =",b)
a = (1,2,3,4,5,6,7,8,9)
print(a[0])
print(a[1])
print(a[2])
print(a[:5])
print(a[2:5])
print(a[::-1])
b = a + a
print(b)
b = a * 3
print(b)
dictionary
- key, value라는 개념이 새로 나왔다. dict는 key값에 따른 할당된 value값이 있다.
colors = {"red":"빨간색", "blue":"파란색", "green":"초록색"}
print(colors["red"])
print(colors["blue"])
print(colors["green"])
print(colors.keys())
colors["black"] = "검은색"
print(colors["black"])
colors["red"] = "붉은색"
print(colors)
if "pink" in colors.keys():
print(colors["pink"])
else:
print("pink is not exist")
print(colors.items(),type(colors))
print(colors.values())
colors.pop("red")
print(colors)
컴프리헨션
- 컴프리헨션을 활용하여 list, tuple, dict을 효율적으로 사용하는 법을 익히자.
a = [1,2,3,4,5,6,7,8,9,10]
b = a
a[2] = -3
print( a )
print( b )
b = []
for item in a:
b.append(item)
b[3]=99
print(a)
print(b)
c = [item for item in a]
c[5] = 55
print("a= ", a)
print("c= ", c)
d = [ item*2 for item in a]
print("d= ", d)
oddList = [ x for x in a if x%2==1 ]
print( oddList )
wordList = ["rain", "desk", "hospital", "building", "java", "python",
"cloud", "rainbow", "assembly", "javascript", "html", "css"]
wordList2 = [w for w in wordList]
print( wordList2 )
wordList3 = [w.upper() for w in wordList]
print( wordList3 )
wordList3 = [ (w, len(w), w.upper()) for w in wordList]
print( wordList3 )
wordList3 = [w for w in wordList if len(w)>=5]
print( wordList3 )
wordList3 = [w for w in wordList if "java" in w]
print(wordList3)
wordList3 = [w for w in wordList if len(w)<5]
print(wordList3)
if문
- if문은 어떤 조건이 참일때만 특정작업을 수행하고 싶을 때 사용한다.
n = int(input("정수 : "))
if n>0:
n=n*5
print(n)
if n>0:
print("양수")
else:
print("양수 아님")
if n>0:
print("양수")
elif n==0:
print("0")
else:
print("음수")
for, while 반복문
- for, while 반복문 역시 많이 사용되니 꼭 숙지하자
- for : 순서가 있는 데이터를 반복할 때, 반복횟수가 명확히 정해져 있을 때 사용
- while : 특정 조건을 만족할 때까지, 반복횟수가 정해져 있지 않을 때 사용
for i in [1,2,3,4,5,6,7,8,9,10]:
print(i)
print(range(1,11))
for i in range(1,11):
print(i)
a = list(range(1,11))
print(a)
for i in range(2,100,2):
print(i,end = " ")
print()
for i in range(100,1,-2):
print(i,end = " ")
print()
for i in range(1,101,1):
print(i, end = "")
if i%10 == 0:
print()
print(ord("A"))
print(ord("B"))
print(ord("a"))
print(ord("0"))
print(ord("1"))
print(chr(49))
print(chr(65))
for i in range(ord("A"), ord("Z")+1):
print(chr(i), end="")
주급계산_if
work_time = int(input("근무시간을 입력하세요 "))
name = input("이름을 입력하세요 ")
time_pay = int(input("시간당 급여액을 입력하세요 "))
basic_pay = int(work_time * time_pay)
plus_pay = 0
if work_time > 20 :
plus_pay = (time_pay * 0.5) * (work_time - 20)
total_pay = basic_pay + plus_pay
print(f"{name}, {work_time}, {time_pay}, {int(basic_pay)}, {int(plus_pay)}, {int(total_pay)}")
컴퓨터활용능력_if
- if문을 활용 시 조건을 어떻게 줄것인가에 대해 고민이 필요하다.
더 깔끔한 조건을 걸수는 없을까?
person = input("이름을 입력하세요 ")
writing = int(input("필기 점수를 입력하세요 "))
word = int(input("워드점수를 입력하세요 "))
sheet = int(input("스프레드시트 점수를 입력하세요 "))
ppt = int(input("프리젠테이션 점수를 입력하세요 "))
total_score = writing + word + sheet + ppt
if total_score > 800:
grade = "A"
elif total >= 600:
grade = "B"
elif total >= 400:
grade = "C"
else:
grade = "D, 재시험요망"
print(f"{person},{writing},{word},{sheet},{ppt},{grade}")
과제
짝수, 홀수의 합과 평균 구하기(김성재풀이)
- 문제를 풀며 평균을 구하는 부분에서 애를 먹었다.
짝수와 홀수의 개수를 셀 수 있게 for문안에 even_cou와 odd_cou를 셀 수 있는 부분을 만들었다.
even_sum = 0
odd_sum = 0
even_cou = 0
odd_cou = 0
for i in range(1,11):
num = int(input("숫자를 10개 입력하세요"))
if i % 2 == 0:
even_sum = even_sum + num
even_cou = even_cou + 1
else:
odd_sum = odd_sum + num
odd_cou = odd_cou + 1
even_ave = even_sum // even_cou
odd_ave = odd_sum // odd_cou
print(f"짝수의 개수는 {even_cou}개, 합은 {even_sum}이며 평균은 {even_ave} 입니다.")
print(f"홀수의 개수는 {odd_cou}개, 합은 {odd_sum}이며 평균은 {odd_ave} 입니다.")
짝수, 홀수의 합과 평균 구하기(백현숙강사님풀이)
- 내 문제풀이와 비교했을 때 너무 간단하게 나왔다.
좀 더 클린코드를 적을 수 있게 고민하고 코딩을 해야할 것 같다.
even_sum = 0
odd_sum = 0
for i in range(0,10):
num = int(input("정수"))
if num % 2 ==0:
even_sum += num
else:
odd_sum += num
print(f"짝수의 합계 : {even_sum}")
print(f"홀수의 합계 : {odd_sum}")
복습
gpt를 활용한 유사예제
비밀번호 확인
user_id = "admin"
user_pw = "1234"
while True:
input_id = input("id를 입력하세요 : ")
input_pw = input("pw를 입력하세요 : ")
if user_id == input_id and user_pw == input_pw:
print("로그인 성공")
else:
print("로그인 실패, 다시 입력하세요")
교통요금 구분
while True:
age = int(input("나이를 입력 : "))
if age < 0:
print("잘못된 나이입니다. 다시 입력해주세요")
continue
if age <= 6 or age >= 65:
charge = "무료"
break
if 7 <= age <= 18:
charge = "1,000원"
break
if 19 <= age <= 64:
charge = "1,250원"
break
print(charge)
확장자 판단
filename = "holiday.jpg"
filename_extension = filename.split(".")
sen = "jpg"
if sen in filename_extension:
print("이미지 파일입니다.")
else:
print("이미지 파일이 아닙니다.")
비밀번호 맞추기
correct_pw = "pass123"
tries = 0
chance = 3
while tries <= 2:
pw = input("pw를 입력하세요 : ")
chance = chance - 1
if pw != correct_pw:
print(f"다시 입력하세요. 남은 기회는 {chance}번 입니다.")
tries += 1
if pw == correct_pw:
print("비밀번호가 일치합니다.")
break
else:
print("기회 끝!")
누적합 100넘기기
nums = [5, 10, 15, 30, 40, 20]
total = 0
for num in nums:
total = total + num
if total > 100:
print(f"누적합 {total}, 종료")
이메일에 @가 있나?
inputs = ["hello", "myemail.com", "user@example.com"]
for sen in inputs:
if "@" in sen:
print(f"입력완료 : {sen}")
else:
print("잘못된 이메일입니다.")
연봉인상!!
salaries = [3000, 4000, 5000]
up_salaries = []
for i in salaries:
result = i + (i * 0.05)
up_salaries.append(result)
print(up_salaries)
5글자 이상 단어는?
words = ["data", "science", "AI", "analytics", "deep"]
up5_words = []
for word in words:
if len(word) >= 5:
up5_words.append(word)
print(up5_words)
리스트에서 숫자만 더하기
data = [[1, 2], [3, 4], [5]]
total = 0
for i in data:
for num in i:
total += num
print(total)
재고가 0인 상품은?
inventory = {"apple": 10,"banana": 0,"orange": 5,"mango": 0}
zero_inventory = []
for key,value in inventory.items():
if value == 0:
zero_inventory.append(key)
print(zero_inventory)
정리
- 컴프리헨션 사용법이 코드작성에 간결함을 줄 것 같다. 아래는 컴프리헨션에 대한 내용이다.
squares = [x**2 for x in range(1, 6)]
print(squares)
even_squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print(even_squares)
nums = [x if x % 2 == 0 else -1 for x in range(10)]
print(nums)
gugudan = [i * j for i in range(2, 4) for j in range(1, 10)]
print(gugudan)
result = []
for x in range(10):
if x % 2 == 0:
result.append(x)
result = [x for x in range(10) if x % 2 == 0]