02.Control

01.if

  1 '''
  2 제어문 = 조건문(if) + 반복문(while, for)
  3 
  4 조건문 
  5 기본 형식1) 
  6 
  7 python 블럭 
  8 if 조건식 :
  9     실행문
 10     실행문
 11     
 12 cf) c언어 블럭     
 13 if 조건식 {
 14    실행문
 15    }
 16 '''
 17 
 18 var = 10 # 초기화 
 19 
 20 if var >= 5 : # True
 21     print('var=', var)
 22     print('var는 5보다 크다.')
 23 
 24 
 25 if var >= 20 : # False
 26     print('var=', var)
 27     print('var는 5보다 크다.')
 28 
 29 print('항상 실행된다.')
 30 
 31 '''
 32 형식2)
 33 if 조건식 :
 34     실행문1 -> True
 35 else :
 36     실행문2 -> False
 37 '''
 38 var = 12
 39 if var > 5 :
 40     print('var는 5이상') # 12 : var는 5이상
 41 else :
 42     print('var는 5미만') # 2: var는 5미만
 43 
 44 # 키보드 점수 입력 : 100~85: 우수, 84~70: 보통, 69미만 : 저조
 45 score = int(input('점수 입력 : '))
 46 
 47 if score >= 85 and score <= 100 :
 48     print('우수')
 49 else :
 50     if score >= 70 and score <= 84 :
 51         print('보통')
 52     else :
 53         print('저조')
 54     
 55 
 56 # 시스템 날짜/시간 가져오기 
 57 import datetime # 패키지
 58 
 59 today = datetime.datetime.now() # 패키지.모듈.함수()
 60 print(today) # 2018-12-16 13:38:20.973000   
 61 
 62 day = today.weekday()
 63 print('요일 : ', day) # 요일 :  6(일요일) - (0~6)
 64 
 65 if day >= 5 :
 66     print('오늘은 주말')
 67 else :
 68     print('오늘은 평일')
 69 # 오늘은 주말
 70 
 71 '''
 72 형식3)
 73 if 조건식1 :
 74     실행문1
 75 elif 조건식2 :
 76     실행문2 -> 조건식 False
 77 else :
 78     실행문3 -> 조건식1 & 조건식2 False
 79 '''
 80     
 81     
 82 # 문) 키보드 점수 입력 : 100~85: 우수, 84~70: 보통, 69미만 : 저조
 83 # 조건> 형식3 으로 적용 
 84 grade = '' # None
 85 if score >= 85 and score <= 100 :
 86     #print('우수')
 87     grade = "우수"
 88 elif score >= 70 and score <= 84 :    
 89     #print('보통')
 90     grade = "보통"
 91 else :
 92     #print('저조')
 93     grade = "저조"
 94     
 95 print('점수는 %d 이고, 등급은 %s 이다.'%(score, grade))
 96     
 97 '''
 98 블럭 외부에서 선언한 변수는
 99 블럭 내부와 외부에서 사용 가능함
100 '''
101 
102 # 3항 연산자 
103 num = 9
104 result = 0
105 
106 if num >= 5 :
107     result = num * 2
108 else :
109     result = num + 2
110 
111 print('result =', result) # result = 18
112 
113 '''
114 3항 연산자 
115 형식) 변수 = 참 if 조건식 else 거짓
116 '''
117 result = num * 2 if num >= 5 else num + 2
118 print('result =', result) # result = 18
119     

02.while

  1 '''
  2 반복문(while)
  3 
  4 형식)
  5 
  6 while 조건식 :
  7     실행문
  8     실행문
  9 
 10 조건식 : 산술,관계,논리 연산자
 11 '''
 12 
 13 # 카운터/누적 변수 
 14 cnt=tot=0
 15 
 16 while cnt < 5 : #True(cnt=0~4), False(cnt=5~)
 17     cnt += 1 # cnt = cnt + 1(카운터 변수)
 18     tot += cnt # tot = tot + cnt(누적 변수)
 19     print('cnt=',cnt, 'tot=', tot)
 20 '''
 21 cnt= 1 tot= 1 -> 1회 반복 
 22 cnt= 2 tot= 3
 23 cnt= 3 tot= 6
 24 cnt= 4 tot= 10
 25 cnt= 5 tot= 15 -> 5회 반복 
 26 '''
 27     
 28 # 문1) 1~100까지 누적 합을 출력하시오.
 29 # 문2) 1~100사이 중 5의 배 합을 출력하시오.
 30 # 문3) 1~100사이 중 3의 배수이면서(and) 2의 배수가 아닌 경우의 합 출력
 31 i = tot = tot5 = tot32 = 0 # 카운터/누적 변수
 32 dataset = [] # 여러 개 원소 저장 변수
 33 dataset2 = []  
 34 
 35 while i < 100 : # 문1) i=100 : False, i=99 : True
 36     i += 1 # 카운터(99+1=100)
 37     tot = tot + i # 누적(1~100)
 38     
 39     if i % 5 == 0 : # 문2) 
 40         tot5 += i # 누적(5배)
 41         dataset.append(i) # 원소 추가         
 42     
 43     # 연산자 우선순위 : 산술 > 관계 > 논리     
 44     if (i % 3 == 0) and (i % 2 != 0)  : # 문3)
 45         tot32 += i
 46         dataset2.append(i)
 47    
 48 print('1~100까지 누적 합 = %d'%tot)
 49 print('1~100까지 5의 배수의 합 = %d'%tot5)
 50 print('1~100까지 3의 배수이면수 2의 배수가 아닌 합 = %d'%tot32)
 51 '''
 52 1~100까지 누적 합 = 5050
 53 1~100까지 5의 배수의 합 = 1050
 54 '''
 55 print('5의 배수 원소 : ', dataset)
 56 print(len(dataset)) # 20
 57 
 58 print('3의 배수이면수 2의 배수가 아닌 원소 : ', dataset2)
 59 print(len(dataset2)) # 17
 60   
 61     
 62 '''
 63 scala : 한 개의 값(상수)을 갖는 변수(크기) 
 64 vector : 다수의 값을 갖는 변수(크기와 방향)
 65 '''
 66 
 67 vector = [] # 벡터 변수 
 68 cnt = 0 # 스칼라 변수 
 69 
 70 while cnt < 5 :
 71     vector.append(cnt+5) # 0+5
 72     cnt += 1
 73 
 74 print('vector :', vector) # vector : [5, 6, 7, 8, 9]
 75 
 76 print('vector 원소 찾기')
 77 search = int(input('찾을 값 입력 : ')) # 8
 78 
 79 i = 0 # index 역할 
 80 #print(vector[i]) # 5
 81 
 82 '''
 83 스위칭[on/off] 기법 
 84 '''
 85 size = len(vector)
 86 sw = False
 87 
 88 while i < size :
 89     if vector[i] == search : # True
 90         sw = True
 91         print(vector[i])
 92     i += 1
 93 
 94 if sw == False :
 95     print('찾는 값이 없습니다.')
 96 else :
 97     print('찾는 값이 있습니다.')
 98     
 99 
100 '''
101 break, continue
102  - 반복문에서 사용되는 키워드 
103  - break : 반복을 탈출(exit)
104  - continue : 반복을 지속(다음 문장 수행 안함) 
105 '''
106     
107 i = 0
108 while i < 10 :
109     i += 1 # 카운터 변수 
110     
111     if i == 3 :
112         continue # 지속
113     print('i=', i) # 1 ~ 6
114     
115     if i == 6 :
116         break # exit
117     
118 '''
119 i= 1
120 i= 2
121 i= 4
122 i= 5
123 i= 6
124 '''    
125     
126 # vector : [5, 6, 7, 8, 9]
127 
128 size = len(vector)
129 
130 # 찾는 데이터가 있으면 출력 
131 idx = 0
132 while idx < size :
133     if vector[idx] == search : # True        
134         print(vector[idx])
135         break
136     idx += 1
137   

03.for

  1 '''
  2 반복문(for)
  3 
  4 형식)
  5 for 변수 in 열거형객체 :
  6     실행문
  7     실행문 
  8     
  9 열거형 객체 : list, tuple, set, dict
 10 '''
 11 
 12 # list 이용 
 13 dataset = [1,2,3,4,5] 
 14 print(len(dataset)) # 5
 15 
 16 for d in dataset :
 17     print(d) # 실행문
 18     print(d*2) # 실행문 
 19 
 20 
 21 # range() 함수 : 일련의 정수 생성 
 22 '''
 23 range(n) : 0 ~ n-1 정수 
 24 range(n,m) : n ~ m-1 정수
 25 ''' 
 26 print('range')
 27 r = list(range(10)) # 0 ~ 9
 28 print(r)
 29 # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 30 
 31 for i in r : # 10회 반복 
 32     print(i, end = ' ')
 33 # 0 1 2 3 4 5 6 7 8 9
 34 
 35 print() # line skip
 36 
 37 for i in range(1,6) : # 1~5
 38     print(i, end = ' ')
 39 # 1 2 3 4 5    
 40 
 41 print()
 42 
 43 # list -> list 
 44 lst = list(range(1,101)) # 1 ~ 100 
 45 lst2 = [] # 빈 list -> 2의 배수 
 46 
 47 for i in lst : # 100반복 
 48     if i % 2 == 0 :
 49         lst2.append(i) 
 50 
 51 print('lst2=', lst2)   
 52          
 53 # 문) lst3에 1~50을 저장하고, lst4에 5의 배수만 추가하기 
 54 lst3 = list(range(1, 51))
 55 lst4 = [] # 빈 list 
 56 
 57 for i in lst3 :
 58     if i % 5 == 0 :
 59         lst4.append(i)
 60 print('lst4=', lst4)
 61 # lst4= [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
 62 
 63 
 64 # 분류정확도 계산 
 65 Y = [1,2,3,1,2] # 관측치[정답]
 66 y = [1,2,1,1,2] # 예측치[모델]
 67 
 68 acc = 0 # 분률정확도 
 69 for i in range(len(Y)) : # [0~4]
 70     fit = int(Y[i] == y[i]) # T/F -> 1/0
 71     acc += fit * 20 # 분류정확도 계산 
 72 
 73 print('accuracy =', acc) # accuracy = 80  
 74     
 75 
 76 # 다중 for문 
 77 '''
 78 형식)
 79 for 변수 in 열거형객체 :
 80     for 변수 in 열거형 객체 :
 81         실행문
 82 '''
 83 
 84 # 구구단 : 2~9단
 85 for i in range(2,10) : # outer(2~9단)
 86     print('***',i,'단***')
 87     
 88     for j in range(1,10) : # inner(곱수:1~9) 
 89         print('%d * %d = %d'%(i, j, i*j))   
 90     
 91     print() # 빈줄 
 92     
 93     
 94 lst1 = [3,4,5] # outer
 95 lst2 = [0.5, 0.25, 0.125] # 1/2, 1/4, 1/8 - inner 
 96 
 97 for i in lst1 :
 98     print('i=', i)
 99     for j in lst2 :
100         calc = i * j
101         print(calc)
102     print()
103     
104 
105 # for + 문자열 처리 
106 string = """나는 홍길동 입니다.
107 나이는 35세 입니다.
108 주소는 서울 입니다."""
109 
110 # 문단 -> 문장 : 엔터키 기준         
111 lines = string.split(sep="\n")
112 print(lines)
113 # ['나는 홍길동 입니다.', '나이는 35세 입니다.', '주소는 서울 입니다.']
114 print(len(lines)) # 3   
115 
116 for doc in lines :
117     print(doc)
118 '''
119 나는 홍길동 입니다.
120 나이는 35세 입니다.
121 주소는 서울 입니다.
122 '''
123 
124 docs = [] # 문장 
125 words = [] # 단어 
126     
127 # outer for : 문단 -> 문장 : 엔터키 기준 
128 for doc in string.split(sep='\n') : # '나는 홍길동 입니다.'
129     docs.append(doc)
130     # inner for : 문장 -> 단어 : 공백 기준
131     for word in doc.split(sep=" ") : # sep=" " 생략 
132         words.append(word)
133         
134 print('전체 문장')
135 print(docs); print('문장 길이 : ', len(docs))
136 
137 print('전체 단어')
138 print(words); print('단어 길이 :', len(words))
139 '''
140 전체 문장
141 ['나는 홍길동 입니다.', '나이는 35세 입니다.', '주소는 서울 입니다.']
142 문장 길이 :  3
143 전체 단어
144 ['나는', '홍길동', '입니다.', '나이는', '35세', '입니다.', '주소는', '서울', '입니다.']
145 단어 길이 : 9
146 '''

猜你喜欢

转载自www.cnblogs.com/kingboy100/p/10381548.html
02
今日推荐