티스토리 뷰
INTRO
Code Block은 제어문/반복문이나 함수에서 콜론(:)을 기준으로 들여쓰기된 덩어리 모양
제어문은 case-by-case를 구성하고 반복문은 중복 제거와 단순화의 목적을 가짐
Target/Model에 따라 coding 방식은 개발자의 특성에 따라 다르지만 제어흐름은 2가지로 구분함
1. 조건문 : if-else, if-elif-else
2. 반복문 : for / while
1. if-else, if-elif-else
swich, case를 다루는 언어도 있으나 python은 if-elif-else로 커버
다음은 회원가입 sequence를 단순하게 구현했을 때 if-else와 if-elif-else 사용 방법이다.
mebers 객체는 dic의 user1,user2로 구성
input()를 이용하여 user1 or user2를 넣으면 message1을 print한다.
user3 or 다른 아이디를 넣으면 다음 if문으로 넘어가 4글자 암호를 입력하도록 제어흐름이 구성되었다.
python code : test7.py
#### if-else
members = {'user1':('id1','pass1','name1'),'user2':('id2','pass2','name2')}
message1 = 'You are member'
message2 = '**Please input password : 4-letters**\n'
message3 = 'Please 4-letters'
message4 = 'Good-bye'
user = input('input your ID : \n')
if user in members:
print(message1)
yno = True
else:
print(' You are not member.\n Use \'{}\' ID?'.format(user))
yno = input("Input 'yes' or 'no' : \n")
if yno == 'yes':
pwrd = input(message2)
if len(pwrd) == 4:
print('\nThanks for sign up!')
print("Your ID : '{}'".format(user))
else:
print(message3)
print('Please retry sing-up, Bye~~\n')
elif yno == 'no':
print(message4)
else:
print("Welcome!! '{}'\n".format(user))
---- SublimeText python Run test7.py ----
case1) user2 입력 시 결과
input your ID :
user2
You are member
Welcome!! 'user2'
***Repl Closed***
case2) user3 입력 후 회원가입 진행
members 객체에 할당되어있지 않기 때문에 가입여부를 묻고 yes를 입력하고 4글자의 암호를 지정했을 때 결과
input your ID :
user3
You are not member.
Use 'user3' ID?
Input 'yes' or 'no' :
yes
**Please input password**
ttca
Thanks for sign up!
Your ID : 'user3'
***Repl Closed***
case3) user3 입력 후 회원가입 진행 이후 암호 갯수가 틀렸을 때
members 객체에 할당되어있지 않기 때문에 가입여부를 묻고 yes를 입력하고 3글자의 암호를 지정했을 때 결과
input your ID :
user3
You are not member.
Use 'user3' ID?
Input 'yes' or 'no' :
yes
**Please input password : 4-letters**
kkd
Please 4-letters
Please retry sing-up, Bye~~
***Repl Closed***
case4) user3 입력 후 회원가입 미진행
members 객체에 할당되어있지 않기 때문에 가입여부를 묻고 no를 입력하면 Good-bye message를 print
input your ID :
user3
You are not member.
Use 'user3' ID?
Input 'yes' or 'no' :
no
Good-bye
***Repl Closed***
2. for / while
일반적으로 for문을 주로 사용하기에 while문 보다 for문에 집중
while문은 code block의 body loop에서 실시간 데이터수집이나 실행 횟수/환경을 알고 있을 때 유용
python code, if-elif-else + while 조건/반복문 복합 : test8.py
#### if-else
members = {'user1':('id1','pass1','name1'),'user2':('id2','pass2','name2')}
message1 = 'You are already the our member'
message2 = '**Please input password : 4-letters**\n'
message3 = 'Please 4-letters'
message4 = 'Good-bye'
user = input('input your ID : \n')
if user in members:
print(message1)
yno = True
else:
print(' You are not the our member.\n Use \'{}\' ID?'.format(user))
yno = input("Input 'yes' or 'no' : \n")
if yno == 'yes':
pwrd = input(message2)
count = 0
while count < 4:
if len(pwrd) == 4:
print('\nThanks for sign up!')
print("Your ID : '{}'".format(user))
break
else:
count += 1
print(message3)
print('Fail count = {}'.format(count))
if count == 4:
print('Please Retry sign-up, bye~')
break
else:
pwrd = input(message2)
elif yno == 'no':
print(message4)
else:
print("Welcome!! '{}'\n".format(user))
---- SublimeText python Run test8.py ----
user3 입력 후 회원가입 진행 이후 암호 갯수가 틀렸을 때 반복만.... 나머지는 if-elif-else 결과와 유사
input your ID :
user3
You are not the our member.
Use 'user3' ID?
Input 'yes' or 'no' :
yes
**Please input password : 4-letters**
ild
Please 4-letters
Fail count = 1
**Please input password : 4-letters**
hti
Please 4-letters
Fail count = 2
**Please input password : 4-letters**
iis
Please 4-letters
Fail count = 3
**Please input password : 4-letters**
bit
Please 4-letters
Fail count = 4
Please Retry sign-up, bye~
***Repl Closed***
python code, for 반복문 복합 : test9.py
- 1~10 counting과 지능형 리스트를 이용한 for문 간결화
- for문 속에 for문을 이용하여 j = 1~10 loop 속에 j와i의 곱한 list를 nums-group에 저장
#### for
n_nums = []
print('python은 0부터 카운팅 시작')
for n in range(10):
n_nums.append(n)
print('n = {}, nums = {}'.format(n,n_nums))
print('\n해결방법 : 카운팅 number m+1을 사용')
m_nums = []
for m in range(10):
m_nums.append(m+1)
print('m = {:2d}, nums = {}'.format(m+1,m_nums))
#### for문 지능형 리스트
print('\n지능형 리스트 사용')
M_nums = []
[M_nums.append(M+1) for M in range(10)]
print('M_nums = {}'.format(M_nums))
print('\n\nfor문 속에 for문을 넣어 list-group 만들기')
print('j = 1:10, j = 1:10 단위곱 list 10개')
nums_group = []
for j in range(10):
nums = []
for i in range(10):
v = (i+1)*(j+1)
nums.append(v)
print('j={:2d}, nums={}'.format(j+1,nums))
nums_group.append(nums)
print('nums_group\n'.format(nums_group))
---- SublimeText python Run test9.py ----
python은 0부터 카운팅 시작
n = 0, nums = [0]
n = 1, nums = [0, 1]
n = 2, nums = [0, 1, 2]
n = 3, nums = [0, 1, 2, 3]
n = 4, nums = [0, 1, 2, 3, 4]
n = 5, nums = [0, 1, 2, 3, 4, 5]
n = 6, nums = [0, 1, 2, 3, 4, 5, 6]
n = 7, nums = [0, 1, 2, 3, 4, 5, 6, 7]
n = 8, nums = [0, 1, 2, 3, 4, 5, 6, 7, 8]
n = 9, nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
해결방법 : 카운팅 number m+1을 사용
m = 1, nums = [1]
m = 2, nums = [1, 2]
m = 3, nums = [1, 2, 3]
m = 4, nums = [1, 2, 3, 4]
m = 5, nums = [1, 2, 3, 4, 5]
m = 6, nums = [1, 2, 3, 4, 5, 6]
m = 7, nums = [1, 2, 3, 4, 5, 6, 7]
m = 8, nums = [1, 2, 3, 4, 5, 6, 7, 8]
m = 9, nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]
m = 10, nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
지능형 리스트 사용
M_nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for문 속에 for문을 넣어 list-group 만들기
j = 1:10, j = 1:10 단위곱 list 10개
j= 1, nums=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
j= 2, nums=[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
j= 3, nums=[3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
j= 4, nums=[4, 8, 12, 16, 20, 24, 28, 32, 36, 40]
j= 5, nums=[5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
j= 6, nums=[6, 12, 18, 24, 30, 36, 42, 48, 54, 60]
j= 7, nums=[7, 14, 21, 28, 35, 42, 49, 56, 63, 70]
j= 8, nums=[8, 16, 24, 32, 40, 48, 56, 64, 72, 80]
j= 9, nums=[9, 18, 27, 36, 45, 54, 63, 72, 81, 90]
j=10, nums=[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
nums_group
***Repl Closed***
'python > Lecture' 카테고리의 다른 글
python 기초 #6 : File Handling - txt (0) | 2021.03.03 |
---|---|
python 기초 #5 : function(함수)/method(메서드)/module(모듈) (0) | 2021.02.26 |
python 기초 #3 : Data-type Handling(자료형 다루기) (0) | 2021.02.24 |
python 기초 #2 : Data-type(자료형) (0) | 2021.02.23 |
python 기초 #1 : 기본 문법 (0) | 2021.02.22 |
- Total
- Today
- Yesterday
- 자가격리
- template
- vscode
- Model
- pyserial
- 라즈베리파이
- 코로나19
- MacOS
- github
- git
- server
- 코로나
- Python
- SSH
- COVID-19
- 확진
- arduino
- Pandas
- Templates
- CSV
- Django
- Regression
- raspberrypi
- Raspberry Pi
- ERP
- r
- analysis
- sublime text
- DAQ
- DS18B20
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |