[문제] 1부터 10까지 출력하세요. 단, 4,6은 제외하세요. |
i = 1 while i <= 10: if i not in (4,6): print(i) i += 1 |
score = [90,55,63,78,80] | |
i = 0 while i < len(score): if score[i] >= 60: print('합격') else: print('불합격') i += 1 |
while score: v_s = score.pop() # 제거하는 마지막값 if v_s >= 60: print('점수 : {} => 합격'.format(v_s)) else: print('점수 : {} => 불합격'.format(v_s)) |
[문제] 반복횟수를 입력값으로 받아서 아래 화면과 같이 출력 <출력> 반복횟수를 입력해주세요 : 5 ***** **** *** ** * |
||
i = int(input('반복횟수를 입력해주세요 : ')) | ||
while i> 0: print('*' * i) num -= 1 |
while i > 0: j = i while j > 0: print('*', end='') j -= 1 print() i -= 1 |
while i > 0: j = i v_star = '' while j > 0: v_star += '*' j -= 1 print(v_star) i -= 1 |
# 개행문자 '\n' : enter key
dan = 2 i = 1 while i < 10: print('{} * {} = {}'.format(dan,i,dan*i)) i += 1 |
2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 |
[문제] 2단 ~ 9단 구구단 출력해주세요. |
dan = 2 while dan < 10: i = 1 while i < 10: print('{} * {} = {}'.format(dan,i,dan*i)) i += 1 print() dan += 1 |
[문제] 2단을 가로로 출력해주세요. <출력> 2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 ... |
dan = 2 i = 1 while i < 10: print('{} * {} = {}'.format(dan,i,dan*i), end=' ') i += 1 |
dan = 2 i = 1 while i < 10: print('{} * {} = {}'.format(dan,i,str(dan*i).ljust(5)), end='') # ljust() 는 숫자불가. str() 문자형으로 변환하여 사용 i += 1 |
dan = 2 i = 1 result = '' while i < 10: result = result + '{} * {} = {}'.format(dan,i,str(dan*i).ljust(5)) i += 1 result |
2. for 문
리스트, 튜플, 집합, 딕셔너리, 문자열의 첫번째 값부터 마지막 값까지 순서대로
카운터 변수에 입력해서 반복 수행한다.
for 카운터변수 in (리스트, 튜플, 집합, 딕셔너리, 문자열):
반복수행할 문장
x = ['sql','plsql','python'] for i in x: print(i) |
sql plsql python |
for i in 'python': print(i) |
p y t h o n |
x = [(1,2),(3,4),(5,6)] | |
for i in x: print(i) |
(1, 2) (3, 4) (5, 6) |
for i, j in x: print(i, j) |
1 2 3 4 5 6 |
for i, j in x: print(i + j) |
3 7 11 |
score = [90,55,63,78,80] for i in score: if i >= 60: print('점수 : {} => 합격'.format(i)) else: print('점수 : {} => 불합격'.format(i)) |
점수 : 90 => 합격 점수 : 55 => 불합격 점수 : 63 => 합격 점수 : 78 => 합격 점수 : 80 => 합격 |
- range(시작, 끝(미만), 증가분)
증가분 기본값 : 1
range(1,101,1) for i in range(1,11,1): print(i) |
list(range(1,101,1)) for i in list(range(1,101,1)): print(i) |
[문제] 1 ~ 100까지의 합을 구하세요. |
hap = 0 for i in range(1,101,1): hap += i hap |
[문제] 2단~9단 구구단 출력. |
for dan in range(2,10,1): for i in range(2,10,1): print('{} * {} = {}'.format(dan,i,dan*i)) print() |
[문제] 리스트 변수에 18,2,3,1,4,5,7,8,9,10,11,15,16 값이 들어있습니다. 짝수만 합을 구하세요. |
|
1) while num = [18,2,3,1,4,5,7,8,9,10,11,15,16] hap = 0 i = 0 while i < len(num): if num[i] % 2 == 0: hap += num[i] i += 1 print(hap) |
num = [18,2,3,1,4,5,7,8,9,10,11,15,16] hap = 0 while num: i = num.pop() # 제거하는 마지막값 if i % 2 == 0: hap += i print(hap) |
2) for num = [18,2,3,1,4,5,7,8,9,10,11,15,16] hap = 0 for i in num: if i % 2 == 0: hap += i print(hap) |
[문제] 빈도수를 구하세요. fruits = ('사과','오렌지','배','귤','포도','바나나','키위','딸기','망고', '사과','오렌지','배','귤','포도','바나나','키위','딸기','망고', '사과','오렌지','배','귤','포도','바나나','키위','딸기','블루베리', '사과','오렌지','배','귤','포도','바나나','키위','딸기','파인애플') |
for i in set(fruits): if i in fruits: print('{} : {}'.format(i,fruits.count(i))) |
↓ dic |
<<방법1>> fruits_dict = {} for i in fruits: if i not in fruits_dict.keys(): # key값이 없으면 생성 + 카운트 fruits_dict[i] = 1 else: fruits_dict[i] += 1 # key값이 없으면 카운트 fruits_dict |
<<방법2>> fruits_dict = {} for key in set(fruits): # 중복제외한 튜플을 key값으로 생성 fruits_dict[key] = 0 for i in fruits: fruits_dict[i] += 1 # 동일 key값에 카운트 fruits_dict |
<<방법3>> fruits_dict = {} for i in fruits: p = fruits_dict.get(i,0) # .get(있으면 value : 1, 없으면 0) fruits_dict[i] = p + 1 fruits_dict |
<<방법4>> fruits_dict = {} import collections fruits_dict = collections.defaultdict(int) # <-- fruits_dict.get(i,0) for i in fruits: fruits_dict[i] += 1 fruits_dict |
<<방법5>> fruits_dict = {} import collections fruits_dict = collections.Counter(fruits) # <-- collections.defaultdict(int) fruits_dict |
# 딕셔너리 변수에 키 값을 정렬
type(fruits_dict) # collections.Counter -> dic
sorted(fruits_dict) # key를 기준으로 오름차순
sorted(fruits_dict, reverse=True) # key를 기준으로 내림차순
import operator
operator.itemgetter(0) : key 기준
operator.itemgetter(1) : value 기준
# 키를 기준으로 오름차순 정렬
for key, value in sorted(fruits_dict.items()):
print(key,value)
for key, value in sorted(fruits_dict.items(), key=operator.itemgetter(0)):
print(key,value)
# 키를 기준으로 내림차순 정렬
for key, value in sorted(fruits_dict.items(),reverse=True):
print(key,value)
for key, value in sorted(fruits_dict.items(),reverse=True,key=operator.itemgetter(0)):
print(key,value)
# 값을 기준으로 오름차순 정렬
for key, value in sorted(fruits_dict.items(), key=operator.itemgetter(1)):
print(key,value)
# 값을 기준으로 내림차순 정렬
for key, value in sorted(fruits_dict.items(),reverse=True,key=operator.itemgetter(1)):
print(key,value)
■ 리스트 내장 객체(List Comprehension)
[표현식 for 변수 in 자료형]
y = [] for i in range(1,11,1): y.append(i * 2) y |
y = [i * 2 for i in range(1,11)] y |
x = [1,2,3] y = [4,5,6] for i in x: for j in y: print(i * j) |
x = [1,2,3] y = [4,5,6] result = [] for i in x: for j in y: result.append(i * j) result |
x = [1,2,3] y = [4,5,6] result = [i * j for i in x for j in y] result |
[참값 for 변수 in 자료형 if 참조건]
예) 세글자 이상만 변수에 담기 fruits = ['사과','오렌지','배','귤','포도','바나나','키위','딸기','망고'] |
|
fruits_lst = [] for i in fruits: if len(i) >= 3: fruits_lst.append(i) fruits_lst |
[i for i in fruits if len(i) >= 3] |
예) 음수만 변수에 담기 x = [2,-10,5,-9,5,-3] |
|
negative = [] for i in x: if i < 0: negative.append(i) negative |
[i for i in x if i < 0] |
[참값 if 참조건 else 기본값 for 변수 in 자료형]
x = [2,-10,5,-9,5,-3] y = [2,'음수',5,'음수',5,'음수'] |
|
y = [] for i in x: if i < 0: y.append('음수') else: y.append(i) y |
['음수' if i < 0 else i for i in x] 또는 [i if i >= 0 else '음수' for i in x] |
■ 함수
- 기능의 프로그램
- 반복되는 코드를 하나로 묶어서 처리하는 방법
def 함수이름(형식매개변수, 형식매개변수, ...):
수행할 문장
...
[return 값] # return 문 : 옵션, 수행 후 함수 종료
함수이름() # 호출
def message(): print('오늘 하루도 행복하자!!') return 'happy' # return 문을 수행한 후 함수 종료 print('오늘 하루도 수고하셨습니다.!!') # --> 이미 종료되어 미출력 x = message() x |
def hap(arg1, arg2): return arg1 + arg2 hap(10,20) # 30 : 숫자 + 숫자 hap('10','20') # '1020' : 문자 + 무자 |
- *가변인수 : 튜플
def 함수이름(*가변인수): for i in 가변인수: 수행할 문장 [return 값] |
def 함수이름(인수1, *가변인수): for i in 가변인수: 수행할 문장 [return 값] |
def hap(*arg): total = 0 for i in arg: total += i return total hap(10,20,30,40) hap(10,20,30,40,50) |
def cal(arg1, *arg2): for i in arg2: if arg1.lower() == 'sum': total = 0 for i in arg2: total += i elif arg1.lower() == 'multiply': total = 1 for i in arg2: total *= i else: total = None return total cal('sum',1,2,3,4,5) cal('multiply',1,2,3,4,5,6,7) |
# 가변인수 형식매개변수에 실제 값을 리스트, 튜플로 전달할 때 꼭 변수 이름 앞에 * 붙이자 x = (1,2,3,4,5) # 튜플 cal('sum', *x) x = [1,2,3,4,5] # 리스트 cal('sum', *x) |
\n : enter key
for 카운터변수 in (리스트, 튜플, 집합, 딕셔너리, 문자열):
for i, j in x:
range(시작, 끝(미만), 증가분)
for i in range(1,11,1): # 1~10, +1증
p = fruits_dict.get(i,0) # .get(있으면 value : 1, 없으면 0)
collections.defaultdict(int) # <-- fruits_dict.get(i,0)
collections.Counter(fruits) # <-- collections.defaultdict(int)
sorted(fruits_dict) # key를 기준으로 오름차순
sorted(fruits_dict, reverse=True) # key를 기준으로 내림차순
import operator
key=operator.itemgetter(0) : key 기준
key=operator.itemgetter(1) : value 기준
sorted(fruits_dict.items(), key=operator.itemgetter(1)): # value값을 기준으로 오름차순
[표현식 for 변수 in 자료형]
[참값 for 변수 in 자료형 if 참조건]
[참값 if 참조건 else 기본값 for 변수 in 자료형]
def 함수이름(형식매개변수, 형식매개변수, ...):
...
[return 값]
def 함수이름(*가변인수):
for i in 가변인수:
...
[return 값]
def 함수이름(인수1, *가변인수):
for i in 가변인수:
...
[return 값]
리스트, 튜플로 전달할 때 꼭 변수 이름 앞에 * 붙이자
cal('sum', *x)
'PYTHON 3.11' 카테고리의 다른 글
31 PYTHON isin, null, apply, str, 그룹함수, MERGE (1) | 2023.11.20 |
---|---|
30 PYTHON WITH, CSV, Lambda, PANDAS, SERIES, DATAFRAME (0) | 2023.11.17 |
29 PYTHON Global Variable, Module, DATETIME, FILE (0) | 2023.11.16 |
27 PYTHON LIST, TUPLE, DICTIONARY, SET, IF, WHILE (1) | 2023.11.14 |
26 PYTHON 설치, 문자열, 문자함수 (1) | 2023.11.13 |