[스파르타 내배캠 ai 3기] 파이썬 (3)

_포카칩·2022년 9월 17일
0

3.파이썬 활용

가.반복문

1)for문

가)list, tuple, set 자료형의 요소들로 반복문 사용

number = [1,2,3,4]

for number in numbers:
 print(number)
 >>>
 1
 2
 3
 4

나)enumerate()를 사용해 반복되는 요소가 몇번째인지 확인

members=['a','b','c']

for i, member in enumerate(members):
print(f"{member}는 {i}번째 회원입니다.")
>>>
#하면 a은 1번째회원입니다. b는 2번째 회원입니다. 로 나옴.

for i, 변수명 in enumerate(list명) 하면 변수명이 몇번째인지 출력 가능

다)dictionary 자료형의 key, value 반복문 사용 가능

products = {
    "bread": 1000,
    "milk": 3000,
    "egg": 6000,
    "drink": 1500
}

for k in products: # key만 사용할 때
    print(k)

for v in products.values(): # value만 사용할 때
    print(v)

for k, v in products.items(): # key, value 모두 사용할 때
    print(k, v)

# result print
"""
bread
milk
egg
drink

1000
3000
6000
1500

bread 1000
milk 3000
egg 6000
drink 1500
"""

-key만 사용할때는 그냥 for 변수 in 딕셔너리명:
-value만 사용할때는 for 변수 in 딕셔너리명.values():
-key, value 둘다 사용할때는 for 변수1, 변수2 in 딕셔너리명.items():

라)range()함수를 활용해서 원하는 만큼의 반복문 사용 가능

for i in range(5)
print(i) > 0,1,2,3,4

마)continue를 활용해 특정 상황에서 아무 동작하지 않고 넘기기 가능

numbers = [24, 75, 12, 54, 30, 70, 99]

for number in numbers:
    if number <= 50: # number가 50보다 작거나 같은 경우
        continue # 아무런 동작도 하지 않고 다음으로 넘어감

    print(f"{number}는 50보다 큰 숫자입니다!")


# result print
"""
75는 50보다 큰 숫자입니다!
54는 50보다 큰 숫자입니다!
70는 50보다 큰 숫자입니다!
99는 50보다 큰 숫자입니다!
"""

바)break 활용해 특정상황에서 반복문 중지 가능

numbers = [1,2,3,4,5,6,7,8]

for number in numbers:
 if number >= 4 : number가 4보다 크거나 같은 경우 
 break #반복문 중지

 print(number)>>>
 1
 2
 3

2)while문

가)사용방법은 for문과 크게 다르지 않지만, 조건 다루는 방식에 차이가 있음.

-while문은 조건이 참일 경우 계속해서 실행됨.(무한루프 주의)

나)while문은 반복할 횟수가 정해져 있지 않을 때 사용.

while True:
    user_input = input('번호를 입력하세요. 종료 : 0')
    if user_input == "0":
     break

    print(f'{user_input}번을 입력하셨하셨습니다!')

나.자주사용되는 모듈 및 패턴

1)type() / 값의 자료형 확인

  • print(type())하면 안의 값에 따른 타입이 결과로 나옴.

2)split() / string을 list로 변환

  • string.split("구분자")
  • string = "hello/python/world!"
    strung_list = string.split("/")
    print(string_list) > ['hello','python','world!']

3)join()/ list를 string으로 변환

  • '사이에 들어갈 문자'.join(리스트)로 구성
  • string_list = ["hello", "python", "world"]
    string = "!!".join(string_list)
    print(string) > hello!!python!!world

4)replace() / 문자 바꾸기

  • '변경할 문자'.replpace('변경 전 문자','변경 후 문자')
    before_string = "hello world!!!"
    after_string = before_string.replace('!','~')
    print(after_string) > hello world ~

5)pprint() / 코드 예쁘게 출력

  • from pprint import pprint

6)random / 랜덤한 로직이 필요할 때

  • 난수 생성, 임의의 번호 생성 등 랜덤한 동작 필요시 사용
  • import random
  • numbers = [1,2,3,4,5,6,7,8]
    random.shuffle(numbers) #number를 무작위로 섞기
    print(numbers) # [랜덤으로 나옴]
  • random_number = random.randint(1, 10) #1 ~ 10 무작위 번호 생성
    print(random_number) > 1~10사이 아무숫자나 나옴.

7)time / 시간 다루기

  • 함수의 실행시간을 측정하는 등 시간 다룰 때 사용
  • import time
    strat_time = time.time() #현재 시간 저장
    time.sleep(1) #1초간 대기
    end_time = time.time()
    +)작동시간 구하기는 종료시간 - 시작시간 (단위 : 초)
    print(f"코드실행시간:{end_time-start_time:.5f}") > 1.00100
    ++)여기서 .5f는 소수점 5째 자릴 숫자까지 출력

8)detetime/ 날짜 다루기

  • from datetime import datetime, timedelta
    #현재 날짜 및 시간 출력
    print(datetime.now()) #2022-09-17 15:09:20/29932
    #datetime의 format code, 더 자세한 것
    -%y : 두 자리 연도 / 20, 21, 22
    -%Y : 네 자리 연도 / 2020, 2021, 2022
    -%m : 두 자리 월 / 01, 02 ... 11 ,12
    -%d : 두 자리 일 / 01, 02 ... 30, 31
    -%I : 12시간제 시간 / 01, 02 ... 12
    -%H : 24시간제의 시간 / 00, 01 ... 23
    -%M : 두 자리 분 / 00, 01 ... 58, 59
    -%S : 두 자리 초 / 00, 01 ... 58, 59
  • string을 datetime 날짜로 변경하기
    stringdatetime = "22/12/25 13:20"
    datetime
    = datetime.strptime(stringdatetime, "%y/%m/%d %H:%M" )
    print(datetime
    ) > 22/09/17 15:14
  • datetime 날짜를 string으로 변환하기
    now = datetime.now()
    string_datetime = datetime.strftime(now, "%y/%m/%d %H:%M:%S")
    print(string_datetime) > 22/09/04 04:04
  • 3일전 날짜 구하기
    three_days_ago = datetime.now() - timedelta(days=3)
    print(three_days_ago) > 2022-09-01 04:07:48.526502

다.지금까지 배운 문법들을 활용해 로또번호 뽑는 코드 작성

import random

count =int(input())
lotto = set()  # lotto 변수를 set 자료형으로 선언


def get_lotto_number(count):
    result = []
    if count < 1:
        print("1 이상의 값을 입력해주세요")

    for _ in range(count):  # count만큼 반복해서 실행
        lotto = set()

        while len(lotto) < 8:  # lotto의 요소 갯수가 8 이하일 경우 계속해서 반복
            lotto.add(random.randint(1, 45))  # lotto에 1~45 사이의 랜덤 값을 입력

        result.append(lotto)

    return result


lotto_numbers = get_lotto_number(count)
print(lotto_numbers)
profile
I love pocachip.

0개의 댓글