일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 기업법
- 케어젠
- Autodesk
- spss
- 요네자와 호노부
- nopat
- 파일입출력
- day13
- quiz9
- road to fund manager
- 손정의 제곱법칙
- 주담통
- 12월 외환보유액
- math module
- PYTHON
- 주가분석
- 연혁정리
- 마른뼈골짜기
- Fusion 360
- 명의개서
- 12월 수출입지수
- 이타가키에이켄
- 회사의 의의
- 3D모델링
- 대한민국산업지도
- 투자은행의눈으로보라
- 생성형AI
- for문의 활요
- 강의안 11
- 자람테크놀로지
- Today
- Total
별의별 이야기
for esle, sort, 다중 for, 문자열 본문
for~else
for-else 구조는 while 구조에도 사용가능하다.
연습문제1.
#for else 연습문제
num=[1,3,9,2,11]
for i in num:
if num>=12:
print(num)
else:
print()
#교수님 풀이
num=[1,3,9,2,11]
for i in num: #num을 i변수에 넣음.
if i>12:
print(i)
break
else:
print("12보다 큰 수는 리스트에 없습니다. ")
sort
점점 크게
#sort
num=[5,4,1,3,9,2,15]
for i in range(0,7): #외부:정렬패스 수
for j in range(0,6): #내부: 요소비교
if num[j]>num[j+1]: #현재 값이 다음 값보다 크면
temp=num[j] #두 값을 교환
num[j] = num[j+1];
num[j+1]=temp
print(num)
[점점 크게 비교]: 15가 뒤로 고정 즉 뒤에서 부터 15,9 ,,, 이런식으로 고정된다. (뒤에서 부터 정렬!)
=> 두개씩 계속 비교. 한번 비교시 [4,1,3,5,2,9,15] 식으로 계속 자기 옆에꺼랑 비교
=> [1,4,3,5,2,9,15] 이런 식으로 비교
#sort
num=[5,4,1,3,9,2,15]
for i in range(0,len(num)): #외부:정렬패스 수
for j in range(0,len(num)-1): #내부: 요소비교
if num[j]>num[j+1]: #현재 값이 다음 값보다 크면
temp=num[j] #두 값을 교환
num[j] = num[j+1];
num[j+1]=temp
print(num)
=> 리스트의 크기가 변할 수 있기에
for i in range(0, 7): 라고 쓰기보다는
for i in range(0, len(numbers)): 이렇게 list의 길이로 넣어주는 형태가 더 좋은 형태의 코드이다.
점점 작게(내림차순 정렬)
#sort 내림차순
num=[5,4,1,3,9,2,15]
for i in range(0,len(num)-1): #외부:정렬패스 수
for j in range(0,len(num)-1-i): #내부: 요소비교
if num[j]<num[j+1]: #현재 값이 다음 값보다 크면
temp=num[j] #두 값을 교환
num[j] = num[j+1];
num[j+1]=temp
print(num)
예제
#예제
num01=int(input("첫번째 수 입력: "))
num02=int(input("두번째 수 입력: "))
num03=int(input("세번째 수 입력: "))
num04=int(input("네번째 수 입력: "))
num05=int(input("다섯번째 수 입력: "))
num=[num01,num02,num03,num04,num05]
for i in range(0,len(num)):
for j in range(0, len(num)-1):
if num[j] > num[j+1]:
temp = num[j] #현재 값을 temp에 저장
num[j]=num[j+1]; #다음 값을 현재 위치로 복사
num[j+1]=temp #temp값을 다음 위치로 이동
print(num)
=> 오름차순 문제
=>num[j]=num[j+i]로 오타 : 이상한 숫자 나옴 => num[j]=num[j+1]로 바꿔야 함!
다중 for 연습하기
###다중 for 연습하기
#입출력문제-혼자풀기
word=input("단어를 입력하세요: ")
word2 =input("위치를 찾을 한 글자를 입력하세요: ")
for i in word:
count = count+1
print(f'{word2}는 {word}의 index는 {count}입니다.')
for j in word:
print(f'{word2}는 {word}에 들어있지 않는 글자입니다.')
#답: 냅다비교
word=input("단어를 입력하세요: ")
letter =input("위치를 찾을 한 글자를 입력하세요: ")
count = 0
for i in word: #i를 word에서 비교해서 줌
if i == letter: #같으면?
break
count= count+1 #같으면 break 후 count 해줌
if letter not in word:
print(f'{letter}는 {word}에 들어있지 않는 글자입니다.')
else:
print(f'{letter}는 {word}의 index는 {count}입니다.')
#교수님 답: 있을 때 비교
word=input("단어를 입력하세요: ")
letter =input("위치를 찾을 한 글자를 입력하세요: ")
count = 0
if i in word:
for i in word:
if i ==1:
break
count+=1
print(f'{letter}는 {word}의 index는 {count}입니다.')
else:
print(f'{letter}는 {word}에 들어있지 않는 글자입니다.')
##예제2: a 개수 확인해서 출력하기
word = input("input message: ")
count = 0
if i in word:
for i in word:
if i == 'a':
break
count +=1
print("count of a: ", )
else:
print("there is no 'a'")
##같이 풀기
msg = input("input message: ") #메시지 입력받기
count=0 #a몇개인지 확인하는 변수
for i in msg:
if 'a' == i: #같다면? 카운트 증가
count+=1
print("count of \'a\':", count)
#예제3-구구단 2~4단 출력
#혼자풀기
word=int(input("구구단, 몇단까지 입력하실래요?: "))
count = 0
for i in word:
if word == i:
count +=1
for j in range(1,12):
print(f'{count}*{word-j}')
##같이 풀기
num=int(input("구구단, 몇단까지 출력하실래요?: ")) #정수형 형변환
for i in range(2,num+1): #구구단 동작(2단~n단) : range로 범위 만들기
print("="*20) # === 줄그어주는 퍼즐 만들어주기
for j in range(1,10):
print(f"{i}*{j}={i*j}")
##연습문제: list로 다섯개 단어 입력받고, 모음이 몇개있는지 출력해주는 코드 만들기
#혼자풀기
word1 = input("input word1: ")
word2 = input("input word2: ")
word3 = input("input word3: ")
word4 = input("input word4: ")
word5 = input("input word5: ")
word= [word1, word2, word3, word4, word5]
count = 0
for i in range(0, len(word)-1):
if i in 'aeiou':
count+=1
print(f' item= {word1} aeiou count= {count} ')
#같이 풀기
fruit = ['a','b','c','d','e']
count = 0
for i in range(len(fruit)):
fruit[i] = input("enrter word: ")
for word in fruit:
count = 0 #count변수를 쓰고 지워야하기때문에 여기 들어올 때 0으로 설정
for j in word:
if j in 'aeiou':
count +=1
print(f" item= {word}, aeiou count= {count}")
=> 아직 해결 못함
문자열
문자열과 문자는 다름.
'문자': character 하나, 보통 '' 사용
'문자열을 출력하시오': 글자들(characters)의 나열(sequence), 보통 ""사용, 구성되는 각 들자를 첨자 표현으로 따로 나누어서 활용 가능함
문자열에서 사용하는 연산자
더하기와 곱하기는 문자열을 만났을 때 다르게 반응함
+: 문자열을 이어 붙이는 역할
* : 뒤에 오는 숫자만큼 문자열을 반복함
관계연산자도 다르게 사용된다. 문자열은 크기 비교가 가능함.
ASCII code 크기 순으로 비교 가능
사전 상 뒤에 나오는 문자열이 앞에 나오는 문자열보다 크기가 더 큼
소문자 > 대문자
len()은 list에 있는 item의 개수를 반환해줌.
예를들어 fruit = 'banana'를 list로 봐도 된다.
나중에 len은 dictionary, tuple 모두 사용 가능하다.
연습문제(과제문제)
#문자열 예제1
word = input("문자열을 입력하세요: ")
count = 0
for i in range(0, len(word)+1):
count +=1
print('count')
#답
word = input("문자열을 입력하세요: ")
count = 0
for i in str:
count = count +1
print('count')
#같이 풀기
#문제 해석: len()함수 만들어봐라
msg = input("문자열을 입력하세요: ")
count = 0
len(msg) #문자열의 길이를 바로 확인할 수 있음
for i in msg: #msg에 있는 단어를 하나씩 가져올거임. count 필요
count += 1
print(count)
=>?
반복으로 문자열 처리, 문자열 자르기
반복문으로 문자열 처리 - for문 / 반복문으로 문자열 처리 - while문
문자열 자르기
#연습문제: 문자열 입력받고, apple이라고 하면 한글자씩 점차 출력되게
#혼자풀기
msg = input("문자열을 입력하세요: ")
count = 0
len(msg)
for i in msg:
count +=1
print(f" {i}*{i+1}")
#같이풀기
msg = input("문자열을 입력하세요: ") #문자열 입력
for i in range(1, len(msg)+1): #그냥 msg로 하면 안됨....
print(f"msg[0:{i}]={msg[0:i]}")#문자열 출력 구조, 1아니고 i 오타
#연습문제2. 2개 문자열 입력받고 문자열의 3번째 글자 출력 후 어떤 글자가 큰지 출력
#혼자풀기
s1 = input("문자열1을 입력하세요: ") #문자열1 입력
s2 = input("문자열2을 입력하세요: ") #문자열2 입력
for i in range(1, s1+1):
if s1[2] > s2[2]:
print(f"{s1}의 {word}가 크다.")
else s1[2] < s2[2]:
print(f"{s2}의 {word}가 크다.")
#같이 풀기
s1 = input("문자열1을 입력하세요: ") #문자열1 입력
s2 = input("문자열2을 입력하세요: ") #문자열2 입력
if s1[2]<s2[2]:
print(f"s2[2]의 {s2[2]}가 크다.")
else:
print(f"s1[2]의 {s1[2]}가 크다.")
'3. > Python' 카테고리의 다른 글
내장함수, math module, 사용자 정의 함수 (0) | 2024.12.30 |
---|---|
string methods (0) | 2024.12.24 |
Day5 복습: for문 (3) | 2024.12.23 |
for loop의 활용: range 함수, 다중 for문, break (0) | 2024.12.20 |
반복문: while, for (1) | 2024.12.19 |