Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- #abc 프로젝트 멘토링 #유클리드소프트 #고용노동부 #대한상공회의소 #미래내일일경험사업 #공부일지 #멘토링일지
- #abc부트캠프 #유클리드소프트 #고용노동부 #대한상공회의소 #미래내일일경험사업
Archives
- Today
- Total
나른한 코딩 생활
[4일차] ABC 부트캠프 Python 기초 3 본문
금일 수업은 주로 여러가지의 연습문제를 푸는 형식으로 진행되었다
예제를 통해 응용능력을 기르고 비슷한 유형의 문제를 여러 방식으로 풀어보자
While 반복문
3일차에 끝내지 못했던 제어문의 마지막 while 반복문 이다.
해당 반복문은 Python에서는
while 조건문 :
위에 같은 형태로 이루어져 있으며, 조건문이 True 일 경우 아래 코드블럭을 반복함
## while 문을 사용하여 리스트의 모든 요소를 출력하시오
menu = ["spagetti","hamburger", "chicken","Tanghuru"]
index = 0 # 인덱스를 통해 리스트 내의 값을 뽑기 위함
while index < len(menu): # 인덱스 값이 리스트 길이보다 작으면 반복
print(menu[index])
index += 1 # 반복문 마지막에 index 값 증가
#'spagetti','hamburger', 'chicken','Tanghuru'
반복문을 이용한 여러 예제중 간단한 예제 몇가지를 풀어보자
#구구단 19단을 출력하는 코드를 작성해보자
for i in range(19,19*10,19): # range의 set을 이용한 건너뛰기
print(f"19 X {int(i/19)} = {i}")
# 19 X 1 = 19
# 19 X 2 = 38
# 19 X 3 = 57
# 19 X 4 = 76
# 19 X 5 = 95
# 19 X 6 = 114
# 19 X 7 = 133
# 19 X 8 = 152
# 19 X 9 = 171
해당 코드를 활용해 구구단을 만들면 다음과 같다
#2단부터 9단까지
gugu = int(input("원하는 구구단 입력"))
match gugu: ## case를 통해 input 값에 해당하는 구구단만 출력
case 2:
for i in range(2,2*10,2):
print(f"2 X {int(i/2)} = {i}")
case 3:
for i in range(3,3*10,3):
print(f"3 X {int(i/3)} = {i}")
case 4:
for i in range(4,4*10,4):
print(f"4 X {int(i/4)} = {i}")
case 5:
for i in range(5,5*10,5):
print(f"5 X {int(i/5)} = {i}")
case 6:
for i in range(6,6*10,6):
print(f"6 X {int(i/6)} = {i}")
case 7:
for i in range(7,7*10,7):
print(f"7 X {int(i/7)} = {i}")
case 8:
for i in range(8,8*10,8):
print(f"8 X {int(i/8)} = {i}")
case 9:
for i in range(9,9*10,9):
print(f"9 X {int(i/9)} = {i}")
case _: # 해당 case 이외의 경우 출력문
print("틀렸습니다 2-9사이의 숫자 입력")
근데 위의 코드를 만들고 보니 반복되는 구간이 많았다.
굳이 match문을 사용해야 하나 ? gugu 변수를 더 적극적으로 사용하여 다음과 같이 함축했다
gugu = int(input("원하는 구구단 숫자입력"))
for i in range(gugu,gugu*10,gugu):
print(f"{gugu} X {int(i/gugu)} = {i}")
해당 코드문을 통해 양의 정수 상의 구구단은 대부분 출력할 수 있다.
종합 응용 문제 풀이 1
2~3일차 동안 배웠던 python 의 기초적인 지식들로
여러 문제를 풀어보자 !
#주어진 두 수 리스트 대각선의 합을 각각 구하여 출력
matrix = [[1,2,3],
[4,5,6],
[7,8,9]]
do_total = 0 #좌하단 대각선 값들의 합 ( 주대각선 )
up_total = 0 #우상단 대각선 값들의 합 ( 부대각선 )
for i in range(len(matrix)):
do_total += matrix[i][i]
# 인덱스 값을 통해 계산
x = range(len(matrix),0,-1)
for j in list(x):
up_total += matrix[j-1][j-1]
# 역방향 인덱스 값으로 계산
print(f"정방향 덧셈 : {up_total}, 역방향 덧셈 : {do_total}")
# 정방향 덧셈 : 15, 역방향 덧셈 : 15
아래 문제는 2일차때부터 끙끙앓던 문제이다
[연습] 주어진 문자열 s에서 연속으로 반복되는 문자를 압축하여 출력하세요.
예: s = "aaabbccccdaa" -> "a3b2c4d1a2"
s = input("영어 문자열 입력") #문자열의 인덱스로 for문
s += ' ' # 공백을 추가해 마지막 문자는 무조건 다르다고 인식시킴
new_s = "" # 문자열 s를 통해 만들 새로운 문자열 생성
count = 1 # 문자의 중복된 횟수
for i in range(0,len(s)-1):
#print(s[i])
if s[i] == s[i+1] and i + 1 <= len(s): # 문자열 인덱스를 다음 인덱스의 값과 비교 후 같다면~
# del s[i+1] 이러한 형태는 문자열에서 사용할 수 없음
count += 1
else :
new_s += s[i] #새로운 형태의 문자열에 추가// i
new_s += str(count) # 이후 해당 문자의 반복(count)횟수 추가
count = 1
print(new_s)
함수와 메서드
함수 Function
# 함수는 def 를 통해 정의 한다
def sum(a,b):
return a+b
sum(5,4) # 9
함수에서 특수부호를 사용하여 매개변수의 호출방법을 지정할 수 있다
# Special Parameters - /, *
# def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):
# / 가 나오기 이전에 나온 매개변수는 무조건 순서로만!
# 이름 달아서 보내도 인식 불가 ( 오류 )
# / 와 * 사이는 이름 및 위치를 혼용해서 가능하다
# * 다음에 오는 매개변수는 무조건 위치로만!
## 즉, pos1, pos 2 = 무조건 순서 // pos_or_kwd = 위치나 이름 암거나 // kwd1, kwd2 = 무조건 위치
def standard_arg(arg): # 둘 다 가능
print(arg)
def pos_only_arg(arg, /): # 순서로만 전달
print(arg)
def kwd_only_arg(*, arg): # 위치로만 전달
print(arg)
def combined_example(pos_only, /, standard, *, kwd_only): # 3개의 형태 혼합
print(pos_only, standard, kwd_only)
다음시간에는 간단한 게임(배스킷볼)을 만들어볼것 같다
+ 어려운 연습문제 풀이까지
'ABC 부트캠프' 카테고리의 다른 글
| [6일차] ABC 부트캠프 데이터 시각화 (0) | 2024.07.01 |
|---|---|
| [5일차] ABC 부트캠프 Python 기초 4 & 미니 프로젝트 (1) | 2024.06.28 |
| [3일차] ABC 부트캠프 PYTHON 기초 2 (0) | 2024.06.26 |
| [2일차] ABC 부트캠프 PYTHON 기초 (0) | 2024.06.25 |
| [1일차] ABC 부트캠프 OT 와 뜨거운 감자 (0) | 2024.06.24 |