01.if

 '''
 제어문 = 조건문(if) + 반복문(while, for)

 조건문
 기본 형식1) 

 python 블럭
 if 조건식 :
     실행문
     실행문

 cf) c언어 블럭
 if 조건식 {
    실행문
    }
 '''

 var = 10 # 초기화 

 if var >= 5 : # True
     print('var=', var)
     print('var는 5보다 크다.')

 if var >= 20 : # False
     print('var=', var)
     print('var는 5보다 크다.')

 print('항상 실행된다.')

 '''
 형식2)
 if 조건식 :
     실행문1 -> True
 else :
     실행문2 -> False
 '''
 var = 12
 if var > 5 :
     print('var는 5이상') # 12 : var는 5이상
 else :
     print('var는 5미만') # 2: var는 5미만

 # 키보드 점수 입력 : 100~85: 우수, 84~70: 보통, 69미만 : 저조
 score = int(input('점수 입력 : '))

 if score >= 85 and score <= 100 :
     print('우수')
 else :
     if score >= 70 and score <= 84 :
         print('보통')
     else :
         print('저조')

 # 시스템 날짜/시간 가져오기
 import datetime # 패키지

 today = datetime.datetime.now() # 패키지.모듈.함수()
 print(today) # 2018-12-16 13:38:20.973000   

 day = today.weekday()
 print('요일 : ', day) # 요일 :  6(일요일) - (0~6)

 if day >= 5 :
     print('오늘은 주말')
 else :
     print('오늘은 평일')
 # 오늘은 주말

 '''
 형식3)
 if 조건식1 :
     실행문1
 elif 조건식2 :
     실행문2 -> 조건식 False
 else :
     실행문3 -> 조건식1 & 조건식2 False
 '''

 # 문) 키보드 점수 입력 : 100~85: 우수, 84~70: 보통, 69미만 : 저조
 # 조건> 형식3 으로 적용
 grade = '' # None
 if score >= 85 and score <= 100 :
     #print('우수')
     grade = "우수"
 elif score >= 70 and score <= 84 :
     #print('보통')
     grade = "보통"
 else :
     #print('저조')
     grade = "저조"

 print('점수는 %d 이고, 등급은 %s 이다.'%(score, grade))

 '''
 블럭 외부에서 선언한 변수는
 블럭 내부와 외부에서 사용 가능함
 '''

 # 3항 연산자
 num = 9
 result = 0

 if num >= 5 :
     result = num * 2
 else :
     result = num + 2

 print('result =', result) # result = 18

 '''
 3항 연산자
 형식) 변수 = 참 if 조건식 else 거짓
 '''
 result = num * 2 if num >= 5 else num + 2
 print('result =', result) # result = 18
     

02.while

 '''
 반복문(while)

 형식)

 while 조건식 :
     실행문
     실행문

 조건식 : 산술,관계,논리 연산자
 '''

 # 카운터/누적 변수
 cnt=tot=0

 while cnt < 5 : #True(cnt=0~4), False(cnt=5~)
     cnt += 1 # cnt = cnt + 1(카운터 변수)
     tot += cnt # tot = tot + cnt(누적 변수)
     print('cnt=',cnt, 'tot=', tot)
 '''
 cnt= 1 tot= 1 -> 1회 반복
 cnt= 2 tot= 3
 cnt= 3 tot= 6
 cnt= 4 tot= 10
 cnt= 5 tot= 15 -> 5회 반복
 '''

 # 문1) 1~100까지 누적 합을 출력하시오.
 # 문2) 1~100사이 중 5의 배 합을 출력하시오.
 # 문3) 1~100사이 중 3의 배수이면서(and) 2의 배수가 아닌 경우의 합 출력
 i = tot = tot5 = tot32 = 0 # 카운터/누적 변수
 dataset = [] # 여러 개 원소 저장 변수
 dataset2 = []  

 while i < 100 : # 문1) i=100 : False, i=99 : True
     i += 1 # 카운터(99+1=100)
     tot = tot + i # 누적(1~100)

     if i % 5 == 0 : # 문2)
         tot5 += i # 누적(5배)
         dataset.append(i) # 원소 추가         

     # 연산자 우선순위 : 산술 > 관계 > 논리
     if (i % 3 == 0) and (i % 2 != 0)  : # 문3)
         tot32 += i
         dataset2.append(i)

 print('1~100까지 누적 합 = %d'%tot)
 print('1~100까지 5의 배수의 합 = %d'%tot5)
 print('1~100까지 3의 배수이면수 2의 배수가 아닌 합 = %d'%tot32)
 '''
 1~100까지 누적 합 = 5050
 1~100까지 5의 배수의 합 = 1050
 '''
 print('5의 배수 원소 : ', dataset)

 print('3의 배수이면수 2의 배수가 아닌 원소 : ', dataset2)

 '''
 scala : 한 개의 값(상수)을 갖는 변수(크기)
 vector : 다수의 값을 갖는 변수(크기와 방향)
 '''

 vector = [] # 벡터 변수
 cnt = 0 # 스칼라 변수 

 while cnt < 5 :
     vector.append(cnt+5) # 0+5
     cnt += 1

 print('vector :', vector) # vector : [5, 6, 7, 8, 9]

 print('vector 원소 찾기')
 search = int(input(

 i = 0 # index 역할
 #print(vector[i]) # 5

 '''
 스위칭[on/off] 기법
 '''
 size = len(vector)
 sw = False

 while i < size :
     if vector[i] == search : # True
         sw = True
         print(vector[i])
     i += 1

 if sw == False :
     print('찾는 값이 없습니다.')
 else :
     print('찾는 값이 있습니다.')

 '''
 break, continue
  - 반복문에서 사용되는 키워드
  - break : 반복을 탈출(exit)
  - continue : 반복을 지속(다음 문장 수행 안함)
 '''

 i = 0
 while i < 10 :
     i += 1 # 카운터 변수 

     if i == 3 :
         continue # 지속
     print('i=', i) # 1 ~ 6

     if i == 6 :
         break # exit

 '''
 i= 1
 i= 2
 i= 4
 i= 5
 i= 6
 '''    

 # vector : [5, 6, 7, 8, 9]

 size = len(vector)

 # 찾는 데이터가 있으면 출력
 idx = 0
 while idx < size :
     if vector[idx] == search : # True
         print(vector[idx])
         break
     idx += 1
   

03.for

 '''
 반복문(for)

 형식)
 for 변수 in 열거형객체 :
     실행문
     실행문 

 열거형 객체 : list, tuple, set, dict
 '''

 # list 이용
 dataset = [1,2,3,4,5] 

 for d in dataset :
     print(d) # 실행문
     print(d*2) # 실행문 

 # range() 함수 : 일련의 정수 생성
 '''
 range(n) : 0 ~ n-1 정수
 range(n,m) : n ~ m-1 정수
 '''
 print('range')
 r = list(range(10)) # 0 ~ 9
 print(r)
 # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

 for i in r : # 10회 반복
     print(i, end = ' ')
 # 0 1 2 3 4 5 6 7 8 9

 print() # line skip

 for i in range(1,6) : # 1~5
     print(i, end = ' ')
 # 1 2 3 4 5    

 print()

 # list -> list
 lst = list(range(1,101)) # 1 ~ 100
 lst2 = [] # 빈 list -> 2의 배수 

 for i in lst : # 100반복
     if i % 2 == 0 :
         lst2.append(i) 

 print('lst2=', lst2)   

 # 문) lst3에 1~50을 저장하고, lst4에 5의 배수만 추가하기
 lst3 = list(range(1, 51))
 lst4 = [] # 빈 list 

 for i in lst3 :
     if i % 5 == 0 :
         lst4.append(i)
 print('lst4=', lst4)
 # lst4= [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]

 # 분류정확도 계산
 Y = [1,2,3,1,2] # 관측치[정답]
 y = [1,2,1,1,2] # 예측치[모델]

 acc = 0 # 분률정확도
 for i in range(len(Y)) : # [0~4]
     fit = int(Y[i] == y[i]) # T/F -> 1/0
     acc += fit * 20 # 분류정확도 계산 

 print('accuracy =', acc) # accuracy = 80  

 # 다중 for문
 '''
 형식)
 for 변수 in 열거형객체 :
     for 변수 in 열거형 객체 :
         실행문
 '''

 # 구구단 : 2~9단
 for i in range(2,10) : # outer(2~9단)
     print('***',i,'단***')

     for j in range(1,10) : # inner(곱수:1~9)
         print('%d * %d = %d'%(i, j, i*j))   

     print() # 빈줄 

 lst1 = [3,4,5] # outer
 lst2 = [0.5, 0.25, 0.125] # 1/2, 1/4, 1/8 - inner 

 for i in lst1 :
     print('i=', i)
     for j in lst2 :
         calc = i * j
         print(calc)
     print()

 # for + 문자열 처리
 string = """나는 홍길동 입니다.
 나이는 35세 입니다.
 주소는 서울 입니다."""

 # 문단 -> 문장 : 엔터키 기준
 lines = string.split(sep="\n")
 print(lines)
 # ['나는 홍길동 입니다.', '나이는 35세 입니다.', '주소는 서울 입니다.']
 print(len(lines)) # 3   

 for doc in lines :
     print(doc)
 '''
 나는 홍길동 입니다.
 나이는 35세 입니다.
 주소는 서울 입니다.
 '''

 docs = [] # 문장
 words = [] # 단어 

 # outer for : 문단 -> 문장 : 엔터키 기준
 for doc in string.split(sep='\n') : # '나는 홍길동 입니다.'
     docs.append(doc)
     # inner for : 문장 -> 단어 : 공백 기준
     for word in doc.split(sep=" ") : # sep=" " 생략
         words.append(word)

 print('전체 문장')
 print(docs); print('문장 길이 : ', len(docs))

 print('전체 단어')
 print(words); print('단어 길이 :', len(words))
 '''
 전체 문장
 ['나는 홍길동 입니다.', '나이는 35세 입니다.', '주소는 서울 입니다.']
 문장 길이 :  3
 전체 단어
 ['나는', '홍길동', '입니다.', '나이는', '35세', '입니다.', '주소는', '서울', '입니다.']
 단어 길이 : 9
 '''

02.Control的更多相关文章

  1. RMAN 备份与恢复深入解析(二)

    RMAN 备份与恢复深入解析(一)  http://space.itpub.net/26686207/viewspace-760869 更多精彩内容尽在 www.leonarding.com < ...

  2. CMSIS-RTOS的使用

    CMSIS-RTOS实现通常作为库提供.要将RTOS功能添加到现有的基于CMSIS的应用程序,需要添加RTOS库(通常是配置文件).RTOS库的可用功能在头文件cmsis_os.h中定义,该文件特定于 ...

  3. open阶段的一致性检验(二)

    SQL> select * from v$version where rownum=1; BANNER --------------------------------------------- ...

  4. Node.js学习笔记 02 Implementing flow control

    What is flow control? 和其它语言一样,Node.js 在代码编写时,如何组织代码,如何写出clean code都是不可避免的难点. 同时,由于Node.js的天然特性(异步,事件 ...

  5. Oracle Recovery 02 - 常规恢复之不完全恢复

    背景:这里提到的常规恢复指的是数据库有完备可用的RMAN物理备份. 实验环境:RHEL6.4 + Oracle 11.2.0.4 单实例. 二.常规恢复之不完全恢复:部分数据丢失 2.1 重做日志文件 ...

  6. Aoite 系列(02) - 超动感的 Ioc 容器

    Aoite 系列(02) - 超动感的 Ioc 容器 Aoite 是一个适于任何 .Net Framework 4.0+ 项目的快速开发整体解决方案.Aoite.Ioc 是一套解决依赖的最佳实践. 说 ...

  7. Java多线程系列--“JUC集合”02之 CopyOnWriteArrayList

    概要 本章是"JUC系列"的CopyOnWriteArrayList篇.接下来,会先对CopyOnWriteArrayList进行基本介绍,然后再说明它的原理,接着通过代码去分析, ...

  8. Linux VFS Extended Attribute And Access Control Table

    catalog . 简介 . 扩展属性 . 访问控制表 . 小结 0. 简介 许多文件系统都提供了一些特性,扩展了VFS层提供的标准功能,虚拟文件系统不可能为所有特性都提供具体的数据结构.超出标准的U ...

  9. 仿iOS Segmented Control样式"

    同步发表于http://avenwu.net/2015/02/05/styled_radiogroup_segmented_control Fork on github https://github. ...

随机推荐

  1. poj-2516(最小费用流)

    题意:有n个商店,每个商店有k种货物,每个货物需要a[n][k]个,有m个仓库,每个仓库也有k种货物,每个货物有b[m][k]个,然后k个矩阵,每个矩阵都是n*m的,第i行第j列表示从仓库j到商店i每 ...

  2. centos6 mongodb 安装

    1. 下载MongoDB 官网下载地址 https://www.mongodb.com/download-center#community 下载地址 32位 http://dl.mongodb.org ...

  3. git 原理

    1.git基本原理 2.git提交代码到远程仓库 3.远程仓库同步到本地 git pull #等同于下面命令 git fetch git merge 3.提交代码是冲突解决 一般提交前先get pul ...

  4. P1033 自由落体

    原题链接 https://www.luogu.org/problemnew/show/P1033 不得不说,这个题太坑了!!!主要是题目说得不明确...... 先来看图: 看一下用红圈圈起来的部分,就 ...

  5. AWS设置允许root登陆

    Refer to the following to set root login: sudo -s (to become root) vi /root/.ssh/authorized_keys Del ...

  6. Ceph分布式存储(luminous)部署文档-ubuntu18-04

    Ceph分布式存储(luminous)部署文档 环境 ubuntu18.04 ceph version 12.2.7 luminous (stable) 三节点 配置如下 node1:1U,1G me ...

  7. Django练习——图书管理系统

    Django图书管理系统 创建一个项目 1. django-admin startproject 图书管理 2. cmd 命令终端下创建一个app python manage.py startapp ...

  8. 【UVA1660】Cable TV Network

    题目大意:给定一个 N 个点的无向图,求至少删去多少个点可以使得无向图不连通. 题解:学习到了点边转化思想. 根据网络流的知识可知,一个网络的最小割与网络的最大流相等.不过最小割是图的边集,而本题则是 ...

  9. CMDB服务器管理系统【s5day90】:API验证

    1.认证思路刨析过程 1.请求头去哪里拿? 1.服务器端代码: def test(request): print(request) return HttpResponse('你得到我了') 2.客户端 ...

  10. Makefile 使用总结(转)

    Makefile 使用总结  转自 https://www.cnblogs.com/wang_yb/p/3990952.html 1. Makefile 简介 Makefile 是和 make 命令一 ...