728x90
반응형
# 【for 반복문 구조】
# for 변수 in 시퀀스(리스트 또는 튜플, 문자열)):
# <구현할 내용>
# .
# .
# planets 이름을 가진 리스트 타입의 변수를 만들었습니다.
from builtins import enumerate
planets = ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']
# planets에 있는 요소 하나하나 씩이 planet 변수에 할당 되고,
# 마지막 요소까지 할당이 되고 for 문 끝까지 도달하면,
# for 문을 빠져나옵니다.
for planet in planets:
print(planet)
# 문법은 for 사용할 변수 in 반복할 시퀀스입니다.
# 반복문 예제
# 정수형으로 정해진 횟수만큼 반복 할 수도 있고, 리스트 및 튜플을 사용 할 수도 있습니다.
muliplicands = {2, 2, 2, 3, 3, 5}
product = 1
# 리스트에서 값을 하나씩 가져와 product 변수에 곱하기를 합니다.
# -> 1*2*2*2*3*3*5 => 360
for mult in muliplicands:
product = product * mult
print(product)
print(product)
# 문자열의 글자에도 반복문 사용이 가능하다.
# isupper() 메소드는 대문자인지를 묻고 참, 거짓으로 리턴한다.
s = 'steganograpHy is the practicE of conceaLing a file, message, image, or video within another fiLe, message, image, Or video.'
# 변수에 담긴 문장에서 모든 대문자를 출력합니다.
for char in s:
if char.isupper():
# print 함수에 end 파라미터 고정 값을 ''로 지정했기 때문에, 출력시
# 다음 라인에 출력하지 않고, 붙어서 출력합니다.
print(char, end='')
# range() 는 숫자의 시퀀스를 반환하는 함수이며 반복문에서 자주 사용됩니다.
# 예를 들어 어떤 조건을 5번 반복하고 싶다면 방법은 아래와 같이 작성할 수 있습니다.
for i in range(5) :
print("숫자를 출력해 봅시다. i =", i)
r = range(5)
print(r)
# 인덱스와 리스트요소 두가지를 모두 얻고 싶을경우 enumerate 내장함수 사용
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons))
print(list(enumerate(seasons)))
# 홀수인경우에 *2를 하는 함수
def double_odds(nums):
for i, num in enumerate(nums):
# num 변수가 홀수인 경우에 아래 코드를 실행한다.
if num % 2 == 1:
nums[i] = num * 2
print(nums[i])
x = list(range(10))
# 정의된 double_odds 함수를 호출
double_odds(x)
list(enumerate(['a','b']))
print(list(enumerate(['a','b'])))
#
x = 0.125
numerator, denominator = x.as_integer_ratio()
print(numerator, denominator )
#
nums = [
('one', 1, 'I'),
('two', 2, 'II'),
('three', 3, 'III'),
('four', 4, 'IV'),
]
for word, integer, roman_numeral in nums:
print(integer, word, roman_numeral, sep=' = ', end='; ')
# while 반복문
# for가 정해진 조건내의 대한 반복문이었다면 while은 조건이 만족할때까지 반복하는 반복문 입니다.
# while 조건문:
# <구현할 내용>
# .
# .
# while 반복문은 조건이 참일 경우에만 실행이 됩니다.
i = 0
# i라는 변수가 10보다 작은 경우에만 while문 안에 있는 코드를 실행 합니다.
while i < 10:
print(i, end=' ')
i += 1
# List Comprehension
# iterable한 오브젝트를 생성하기 위한 방법 중 하나로 파이썬에서 사용할 수 있는 유용한 기능
squares = [n**2 for n in range(10)]
print(squares)
# 기존 방식으로 구현한 코드
squares_01 = []
for n in range(10):
squares_01.append(n**2)
print(squares_01)
# 일반 for문과 List Comprehension 비교
# 일반 for 문
# 리스트 내부의 음수의 수를 반환하는 함수입니다.
def count_negatives(nums):
n_negative = 0
for num in nums:
if num < 0:
n_negative = n_negative + 1
return n_negative
count_negatives([5, -1, -2, 0, 3])
print(count_negatives([5, -1, -2, 0, 3]))
# LC를 사용한 예시
def count_negatives(nums):
return len([num for num in nums if num < 0])
count_negatives([5, -1, -2, 0, 3])
print(count_negatives([5, -1, -2, 0, 3]))
#
def count_negatives(nums):
# num < 0 조건문
# [5, -1, -2, 0, 3
# F, T, T, F, F => 2
return sum([num < 0 for num in nums])
count_negatives([5, -1, -2, 0, 3])
print(count_negatives([5, -1, -2, 0, 3]))
# 위의 세 코드는 모두 동일한 기능을 하는 코드지만 모두 다른 형태를 취하고 있습니다. 가능하다면 코드를 줄이는 것이 좋지만 항상 그런 것은 아닙니다.
# 일반적으로 중요한점은 다음과 같습니다.
# 높은 가독성
# 직관적인 코드
# 가독성과 직관적인 코드 요소를 고려 했을 때, count_negatives예시의 마지막 코드는 가장 짧은 코드이지만, 좋은 코드라고 볼 수 없습니다.
728x90
반응형
'파이썬 > 파이썬 예제 코드' 카테고리의 다른 글
[파이썬 예제코드] 라이브러리 (0) | 2022.02.07 |
---|---|
[파이썬 예제코드] 문자열 자료형 (0) | 2022.02.07 |
[파이썬 예제코드] 딕셔너리 형 (0) | 2022.02.07 |