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 | 31 |
Tags
- 자람테크놀로지
- 대한민국산업지도
- 명의개서
- 12월 외환보유액
- Fusion 360
- 마른뼈골짜기
- road to fund manager
- Autodesk
- 생성형AI
- 손정의 제곱법칙
- 투자은행의눈으로보라
- 연혁정리
- 주담통
- 파일입출력
- 요네자와 호노부
- 손짧수길
- nopat
- 12월 수출입지수
- 기업법
- 회사의 의의
- 3D모델링
- math module
- day13
- 주가분석
- spss
- PYTHON
- 이타가키에이켄
- 강의안 11
- for문의 활요
- 케어젠
Archives
- Today
- Total
별의별 이야기
Day5 복습: for문 본문
728x90
for 연습하기
1. 특정 구간에서 홀수만 출력하기 (for/while)
i=0
count=0
for i in range(1,10):
if i%2==1:
i=i+1
print(count)
GPT가 말해주는 문제점
문제점 1: i = i + 1이 루프의 흐름에 영향을 미치지 않음
for i in range(1, 10)에서 i는 range 함수에 의해 매 반복마다 새 값이 할당됩니다.
i = i + 1은 그 순간의 i 값을 수정할 뿐, 다음 반복에서 range가 덮어쓰기 때문에 루프에 전혀 영향을 미치지 않습니다.
문제점 2: count가 갱신되지 않음: count는 코드에서 초기값 0으로 설정된 후, 이후에 아무 변경도 이루어지지 않습니다.따라서, print(count)는 항상 0만 출력됩니다.
문제점 3: "홀수 출력"이 코드에 구현되지 않음: 코드에서 홀수를 출력하는 print()가 전혀 없습니다.
#count 미포함
for i in range(1,11): #1부터10까지 반복
if i%2==1: #홀수인지 확인
print(i) #홀수 출력
#count 포함
count=0
for i in range(1,11): #1부터10까지 반복
if i%2==1: #홀수인지 확인
print(i) #홀수 출력
count +=1
print("홀수개수:", count)
#while ver
i=0
while i%2==0:
print(i)
#정답
i=1
n=int(input("양의정수입력:"))
while i <n:
print(i)
i=i+2
2. 문자열을 한 글자씩 출력하기(for/while)
#for ver
name=str(input("문자를 입력하세요:" ))
for i in range(3):
print(i)
#정답
for i in "mango":
print(i)
# while ver
#틀린 답
i=1
name = int(input("문자를 입력하세요:" ))
while i < name:
print(i)
i=i+1
#정답
i=0
fr="mango"
while i <len(fr):
letter= fr[i] #리스트나 인덱스에는 괄호가 아닌 대괄호로 표시해야 함.
print(letter)
i=i+1
3. 2에서 10까지 짝수 출력하기(for/while)
#3. 2에서 10까지 짝수 출력하기(for/while)
# for ver
for i in range(2,11):
if i%2==0:
print(i)
i=i+1
# while ver
i=2
while i%2==0:
print(i)
i=i+1
# while ver 정답
i =1
while i <=5:
print((i)*2)
i=i+1
4. 1-50사이의 7배수 찾고 그 수의 제곱값 출력(for loop 사용)
#4. 1-50사이의 7배수 찾고 그 수의 제곱값 출력(for loop 사용)
#if 사용 O
for i in range(1,51):
if i%7==0:
print(i)
print(i*7)
#if 사용 X
for i in range(7,50,7):
print(i)
print(i*7)
str="helloWorld"에서 짝수번째 문자들 합하여 출력하기 (for사용)
str="helloWorld"
word="" # 빈 문자열 초기화
count=1 # 문자 위치를 세기 위한 카운터 변수
for i in str: # 문자열 str의 각 문자를 순회
if count%2==0: # 짝수 번째 문자인지 확인
word=word+i # 현재 문자 i를 word에 추가
count= count+1 # 위치 카운터 증가
print(word) # word에 저장된 짝수 번째 문자 출력
입력받은 문자열에서 모음이 몇 개인지 센 후 출력(모음:AEIOUaeiou)
#6. 입력받은 문자열에서 모음이 몇 개인지 센 후 출력(모음:AEIOUaeiou)
#내가푼거
name=str(input("문자를 입력하세요: "))
count =1
word=''
for i in str():
if count == 1:
word = 'AEIOUaeiou'
print(word)
#answer
str=input("문자를 입력하세요: ")
count=0
for i in str:
if i in 'AEIOUaeiou':
count +=1
print(count)
range함수, in함수
1. 문자열 처리 (HORSTMANN)
name="HORSTMANN"
count =0
for i in name:
print(i)
count=count+1
print("글자수:", count)
2. 리스트 처리
리스트처리 (apple, banana, lemon, tomato)
fruit = ['apple', 'banana', 'lemon', 'tomato']
count=0
for i in fruit:
print(i)
count=count+1
print("아이템수=", count)
2-1. 리스트 처리(2)
fruit = ['apple', 'banana', 'lemon', 'tomato']
for i in fruit: #리스트의 각 단어를 하나씩 가져옴
count=0
for j in i: #전체 리스트 반복이 아닌, 각 리스트를 순회
print(j)
count=count+1
print("글자수=", count)
3. 연습문제1. #1, 문자 “*”를 첫 줄에는 한 개, 두번째 줄에는 두개, 반복하여 열 번째 줄에는 열 개 출력
for i in range (1,11):
i = i*"*"
print(i)
#거꾸로
for i in range (10,0,-1):
i = i*"*"
print(i)
3-1.연습문제1. 문자 “*”를 첫 줄에 열 개, 둘째 줄에 아홉 개..이어서 열 번째 줄에 한개 출력
#내가 푼거
for i in range (1,11):
print(" "*(10-i), "*"*2*i, " "*(10-i))
#교수님
i=0
for i in range(1,11):
print(" "*(10-i), '*'*(i*2), " "*(10-i))
주의할 점: 이 때 " " 사이에 공백 꼭 넣기!
4. for문을 사용하여, 문자 “ “, “*” 로 다음과 같이 좌우 대칭의 삼각형 모양을 출력해본다
for i in range (1,11):
#i = (" "*(10-i), "*"*i, " "*(10-i))
print(" "*(10-i), "*"*2*i, " "*(10-i))
다중 for 문
a=0 # 초기화: 변수 `a`를 0으로 설정
for i in range(1,10): # 첫 번째 for 루프
a=a+1 # `a` 값을 1씩 증 가시킴
for j in range(1,10): # 두 번째 for 루프
a=a+1 # 다시 `a` 값을 1씩 증가시킴
print(a) # 최종적으로 `a`의 값을 출력
= 18
a=0
for i in range(10):
a=a+1 # a를 1 증가시킴
for j in range(10):
a=a+1 # a를 1 증가시킴
print(a)
=>결과값은 110이 출력됨. 그 이유는 외부횟수(100)*내부횟수*+(외부횟수+1*10=10번)
a=0
for i in range(2,10):
a=a+i
for j in range(10,1,-2):
a=a+j
print(a)
=> 첫번째 루프에서 a= (2+0),(3+1),(4+2),(5+3),(6+4),(7+5),(8+6),(9+7) 로 한번씩 증가할 때,
두번째 루프에서(2+10),(4+8),(6+6),(8+4),(10+2) 한바퀴
break 이해와 활용
count=0
for i in range(5):
print("--------------------")
for j in range(3):
if (i+j)%5 != 0:
count= count+1
print("i+j=", i+j, "and count =", count)
else:
break
print("i+j=", i+j, "and count =", count)
for i in range(1,5):
for j in range(i+1, 10):
if j%i==0:
print(j, "는", i,"의 배수입니다")
break
mon =int(input("현재 갖고있는 금액: "))
pri =int(input("사려는 물건 가격: "))
num =int(input("원하는 개수: "))
for i in range(1,num+1):
char=mon-pri*i
if char >=0:
print(f'구매가능합니다, {char}원 잔액입니다.')
else:
print(f'구매불가능합니다. {char}원 부족합니다')
break
=> 이거는 잔액 만들어내는 연습문제
#prime number 연습문제1
num=int(input("숫자를 입력하세요: "))
if num <2 :
print("소수가아닙니다")
else:
for i in range(2,num):
if num%i==0: #소수판별식
print("소수가 아닙니다")
break
else:
print("소수입니다")
=> 이건 소수판별문제
'3. > Python' 카테고리의 다른 글
string methods (0) | 2024.12.24 |
---|---|
for esle, sort, 다중 for, 문자열 (0) | 2024.12.23 |
for loop의 활용: range 함수, 다중 for문, break (0) | 2024.12.20 |
반복문: while, for (1) | 2024.12.19 |
출력문(print), 입력문(input), 조건문(if) (3) | 2024.12.18 |