728x90
반응형
SMALL
1. 자료형 참/거짓 판단하기
- 파이썬에서 사용하는 모든 자료형은 참 또는 거짓으로 표현이 가능
- 파이썬에서 모든 자료형은 요소가 있는 경우는 True, 요소가 없는 경우는 False
a = '100'
print(type(a))
>>> <class 'str'>
print(type(int(a)))
>>> <class 'int'>
bool1 = True
print(bool1)
>>> True
print(type(bool1)
>>> <class 'bool'>
- bool(int/float): 숫자형 데이터 타입의 경우 0이면 False, 0이 아닐 경우 모두 True
num1 = 10
print(num1)
print(type(num1))
print(bool(num1))
>>> 10
<class 'int'>
True
num2 = 0
print(num1)
print(type(num2))
print(bool(num2))
>>> 10
<class 'int'>
False
- bool(str): 문자열 데이터 타입의 경우 데이터가 없으면 False, 데이터가 있으면 무조건 True
str1 = '이것은 문자열 타입'
print(str1)
print(type(str1))
print(bool(str1)) # True
>>> 이것은 문자열 타입
<class 'str'>
True
str2 = ''
print(str2)
print(type(str2))
print(bool(str2)) # False
>>>
<class 'str'>
False
- bool(list): 리스트 데이터 타입의 경우 데이터가 없으면 False, 데이터가 있으면 무조건 True
list1 = [1, 2, 3]
print(list1)
print(type(list1))
print(bool(list1)) # True : 값이 있기 때문에 True
>>> [1, 2, 3]
<class 'list'>
True
list2 = []
print(list2)
print(type(list2))
print(bool(list2)) # False : 빈 리스트는 False
>>> []
<class 'list'>
False
- if문으로 리스트에 요소가 있는지 확인하기.
list1 = [1, 3, 5]
if list1:
print('요소가 있습니다')
else:
print('요소가 없습니다')
>>> 요소가 있습니다
2. 대입 연산자
- =, +=, -=, *=, /=, %=
- 왼쪽에 저장된 값과 오른쪽에 값을 연산한 뒤 다시 왼쪽에 대입(inplace 연산)
- 연산자 순위 중 가장 하위로 가장 마지막에 연산됨
num = 10
num += 1 # num = num + 1
print(num)
>>> 11
num -= 1 # num = num - 1
print(num)
>>> 10
num *= 10 # num = num * 10
print(num)
>>> 100
num /= 10 # num = num / 10
print(num)
>>> 10.0
num %= 2 # num = num % 2 (나머지값)
print(num)
>>> 0.0
3. 반복문
- 파이썬에서는 while문 / for 문 두 가지
- 두 종류의 반복문 속도가 같음
3-1. while 문
- while 문 형식
while 조건식(결과가 bool type):
조건식의 결과가 True인 동안 반복할 문장
...
- 무한루프 : 끝나지 않아야하는 프로그램이 필요할 때 사용(
무한루프가 돈다고 무조건 안좋은건 아님.)
while True:
print('무한반복')
- while문으로 '안녕'이 5번만 찍히도록 작성해보자.
i = 1
# i가 6이상이 될 때부터 while문의 조건식이 False
while i <= 5:
print('안녕')
i += 1
print('현재 i의 값은 {}입니다'.format(i))
>>> 안녕
안녕
안녕
안녕
안녕
현재 i의 값은 6입니다
- while문으로 1 ~ 10 까지의 총합 구하기
sum = 0
i = 1
while i <= 10:
sum += i
i+= 1
print(f'1부터 10까지의 합: {sum}')
>>> 1부터 10까지의 합: 55
📌 문제
- 1 ~ 100까지 짝수의 총합을 구하는 프로그램을 작성해보자.
i = 1
sum = 0
while i <= 100:
if i % 2 == 0:
sum += i
i += 1
print(f'1부터 100까지의 짝수의 총합: {sum}')
>>> 1부터 100까지의 짝수의 총합: 2550
📌 문제
- 원하는 단을 입력받아 해당 단의 구구단을 출력하는 프로그램을 작성해보자.
dan = int(input('원하는 단을 입력하세요: '))
print('{}단'.format(dan))
i = 1
while i <= 9:
print('{} * {} = {}'. format(dan, i, dan * i))
i += 1
>>> 원하는 단을 입력하세요: 7
7단
7 * 1 = 7
7 * 2 = 14
7 * 3 = 21
7 * 4 = 28
7 * 5 = 35
7 * 6 = 42
7 * 7 = 49
7 * 8 = 56
7 * 9 = 63
3-2 for in 문
for 변수 in iterable 객체:
이터러블 객체의 요소 갯수만큼 반복할 문장
- isinstance(이터러블한 객체인지 확인하고자 하는 객체, collections.Iterable) : iterable 하면 True, 아니면 False
- import collections 해야함.
import collections
list1 = [10,20,30,40]
isinstance(list1, collections.Iterable)
>>> True
- range(): 범위를 생성해주는 함수
- range(시작인덱스, 종료인덱스(직전까지 출력), 증가값)
- 시작인덱스와 증가값은 생략이 가능하며, 시작 인덱스를 생략하면 기본값은 0, 증가값을 생략하면 기본값은 1
# 0부터 10까지의 짝수를 출력해보자.
num = range(0, 11, 2)
print(num)
>>> range(0, 11, 2) # range 객체값
print(list(num))
>>> [0, 2, 4, 6, 8, 10]
for i in num:
print(i, end=' ')
>>> 0 2 4 6 8 10
- num 변수가 iterable한 객체인지 확인
isinstance(num, collections.Iterable)
>>> True
- num = 10 일 때 iterable 객체일까?
isinstance(num, collections.Iterable)
>>> False
num = 10
print(num)
>>> 10
for i in num:
print(i, end=' ')
>>> TypeError: 'int' object is not iterable
- 시작 인덱스와 증가값을 각각 생략하여 표현해보자.
for i in range(0,11,2):
print(i, end=' ')
>>> 0 2 4 6 8 10
for i in range(0,10):
print(i, end=' ')
>>> 0 1 2 3 4 5 6 7 8 9
for i in range(11):
print(i, end=' ')
>>> 0 1 2 3 4 5 6 7 8 9 10
📌 문제
- for in문을 이용하여 1 ~ 100까지의 짝수의 총합을 구하는 프로그램을 작성해보자.
sum = 0
for i in range(2, 101,2):
sum += i
print('1부터 100까지의 총합: {}'.format(sum))
>>> 1부터 100까지의 총합: 2550
3-3. enumerate
- 반복문 사용 시 몇번째 반복인지 인덱스 번호로 확인이 가능
- 인덱스 번호와 요소를 튜플 형태로 반환
- 출력: (인덱스번호, 요소)
li1 = [10, 20, 30, 40]
for e in enumerate(li1):
print(e)
>>> (0, 10)
(1, 20)
(2, 30)
(3, 40)
- index와 value 변수에 각각 값을 저장하기
for index, value in enumerate(li1):
print(f'index:{index}, value: {value}')
>>> index:0, value: 10
index:1, value: 20
index:2, value: 30
index:3, value: 40
3-4. zip
- 객체가 담고 있는 원소를 엮어서 튜플의 형태로 반환
- 매개변수의 길이가 다를 때는 짧은 매개변수 기준으로 데이터가 엮이고, 나머지는 버려짐
- 다음과 같이 출력되도록 프로그램을 작성해보자.
(10, 'apple')
(20, 'banana')
(30, 'orange')
li1 = [10, 20, 30]
li2 = ['apple', 'banana', 'orange']
for i in range(len(li1)):
print((li1[i],li2[i]))
>>>
(10, 'apple')
(20, 'banana')
(30, 'orange')
# 위 코드는 두 데이터의 길이가 같은 경우에만 출력하기 때문에 좋지 않은 코드이다.]
# 하나의 데이터에만 의존)
for i in range(len(li1)):
print((li1[i],li2[i]))
>>> IndexError: list index out of range
- zip()함수 이용하기
for l1, l2 in zip(li1, li2):
print((l1, l2))
>>>
(10, 'apple')
(20, 'banana')
(30, 'orange')
# 통합해서 튜플로 반환
for l1 in zip(li1, li2):
print(l1)
>>>
(10, 'apple')
(20, 'banana')
(30, 'orange')
- zip()함수로 문자열 원소를 엮어보자.
for n, A, a in zip('12345','ABCDE','abcde'):
print((n,A,a))
>>>
('1', 'A', 'a')
('2', 'B', 'b')
('3', 'C', 'c')
('4', 'D', 'd')
('5', 'E', 'e')
# 짧은 매개변수에 맞춰 엮이고 나머지는 버려짐
for n, A, a in zip('12345','ABCDEF','abcdef'):
print((n,A,a))
>>>
('1', 'A', 'a')
('2', 'B', 'b')
('3', 'C', 'c')
('4', 'D', 'd')
('5', 'E', 'e')
3-5. list와 tuple을 for문과 함께 사용하기
# iterable: 순서가 있고 요소가 있음
li1 = ['apple', 'banana', 'orange', 'melon']
for i in li1:
print(i, end=' ')
>>> apple banana orange melon
tu1 = ('apple', 'banana', 'orange', 'melon')
for i in tu1:
print(i, end=' ')
>>> apple banana orange melon
📌 문제
- 아래 score 리스트에 저장된 점수가 60점 이상인 학생이 몇명인지 알아보는 프로그램을 작성해보자.
- score = [90, 30, 50, 60, 80, 70, 100, 40, 20, 10]
score = [90, 30, 50, 60, 80, 70, 100, 40, 20, 10]
cnt = 0
for i in score:
if i >= 60:
cnt += 1
print(f'60점 이상인 학생의 수는 {cnt}명 입니다')
>>> 60점 이상인 학생의 수는 5명 입니다
728x90
반응형
LIST
'Python > Basic' 카테고리의 다른 글
[파이썬, Python] 자료구조(Data Structure) - 3️⃣ 딕셔너리(Dictionary, dict) (0) | 2023.03.08 |
---|---|
[파이썬, Python] 제어문 - 2️⃣ 반복문(2)_다중반복문, 컴프리헨션(Comprehension) (0) | 2023.03.08 |
[파이썬, Python] 제어문 - 1️⃣ 조건문_ if문, 삼항 연산자, 논리 연산자 (0) | 2023.03.07 |
[파이썬, Python] 부동 소수점(floating point number) - 실수의 연산, 부동 소수점 오차, 실수의 비교 (0) | 2023.03.07 |
[파이썬, Python] 자료구조(Data Structure) - 2️⃣튜플(tuple) (0) | 2023.03.07 |