๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“๐Ÿ’ช/Python

Python ํŠน๊ฐ• (3)

by ์ˆ˜์จ”์•™ 2022. 9. 7.

๋ฐ˜๋ณต๋ฌธ

 

1. for๋ฌธ

list, tuple, set ์ž๋ฃŒํ˜•์˜ ์š”์†Œ๋“ค๋กœ ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

enumerate : ๋ฐ˜๋ณต๋˜๋Š” ์š”์†Œ๊ฐ€ ๋ช‡๋ฒˆ์งธ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

members = ["lee", "park", "kim"]

for i, member in enumerate(members):
    print(f"{member}๋Š” {i}๋ฒˆ์งธ ํšŒ์›์ž…๋‹ˆ๋‹ค.")

# result print
"""
lee๋Š” 0๋ฒˆ์งธ ํšŒ์›์ž…๋‹ˆ๋‹ค.
park๋Š” 1๋ฒˆ์งธ ํšŒ์›์ž…๋‹ˆ๋‹ค.
kim๋Š” 2๋ฒˆ์งธ ํšŒ์›์ž…๋‹ˆ๋‹ค.
"""

๋งŒ์•ฝ

for i in numbers:

i๋ฅผ ์•ˆ์“ด๋‹ค๋ฉด i ๋Œ€์‹  _๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

for _ in numbers:

์ง ~

 

 

dictionary

๊ทธ๋ƒฅ ๋Œ๋ฆฌ๋ฉด ํ‚ค๋งŒ ๋‚˜์˜ค๊ณ , value๋ฅผ ์ฐ๊ณ  ์‹ถ์œผ๋ฉด .values()๋ฅผ ํ•˜๋ฉด value๊ฐ€ ๋‚˜์˜ค๊ณ 

๋‘˜ ๋‹ค ๋‚˜์™”์œผ๋ฉด ์ข‹๊ฒ ์œผ๋ฉด .items()

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
"""

 

range()

์›ํ•˜๋Š” ๋งŒํผ ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

range(1:10)์€ 1๋ถ€ํ„ฐ 9๊นŒ์ง€์ด๋‹ค. 10์€ ํฌํ•จ ์•ˆ๋จ

# range์— ์ง€์ •ํ•œ ๊ฐ’๋งŒํผ ๋ฐ˜๋ณต๋˜๋ฉฐ, i์—๋Š” 0๋ถ€ํ„ฐ ์ง€์ •ํ•œ ๊ฐ’-1๊นŒ์ง€์˜ ๊ฐ’์ด ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.
for i in range(5):
   print(i)

# result print
"""
0
1
2
3
4
"""

 

continue

์•„๋ฌด๋Ÿฐ ๋™์ž‘๋„ ํ•˜์ง€ ์•Š๊ณ  ๋‹ค์Œ for๋ฌธ์œผ๋กœ ๋„˜์–ด๊ฐ„๋‹ค!

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)

# result print
"""
1
2
3
"""

 

 

2. while๋ฌธ

for๋ฌธ์ด๋ž‘ ๋น„์Šทํ•˜์ง€๋งŒ ์กฐ๊ฑด์„ ๋‹ค๋ฃจ๋Š” ๋ฐฉ์‹์—์„œ ์ฐจ์ด๊ฐ€์žˆ๋‹ค.

while "์กฐ๊ฑด":

    "์ˆ˜ํ–‰ํ•  ์ฝ”๋“œ"

์ฐธ์ด๋ฉด ๊ณ„์† ๋Œ์•„๊ฐ„๋‹ค.

while True:

    print("hello world")

ํ•˜๋ฉด hello world๊ฐ€ ๊ณ„์• ์• ์• ใ…์• ์• ์† ์ฐํžŒ๋‹ค.(๋ฌดํ•œ๋ฃจํ”„)

for๋ฌธ์€ ๋ฐ˜๋ณตํšŸ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ์žˆ์„๋•Œ

while์€ ๋ฐ˜๋ณตํšŸ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ์žˆ์ง€ ์•Š์„๋•Œ

while True:
    user_input = input("๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”. ์ข…๋ฃŒ : 0") # ์‚ฌ์šฉ์ž์˜ input์„ ๋ฐ›๋Š” ํ•จ์ˆ˜
    if user_input == "0":
        break

    print(f"{user_input}๋ฒˆ์„ ์ž…๋ ฅํ•˜์…จ์Šต๋‹ˆ๋‹ค!")

 

 


์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“ˆ ๋ฐ ํŒจํ„ด

1. type 

์ž๋ฃŒํ˜• ํ™•์ธ

integer = 10
float_ = 1.23
string = "hello world!!"
list_ = [1, 2, 3]
tuple_ = (1, 2, 3)
set_ = {1, 2, 3}
dictionary = {"key": "value"}
boolean = True

print(type(integer)) # <class 'int'>
print(type(float_)) # <class 'float'>
print(type(string)) # <class 'str'>
print(type(list_)) # <class 'list'>
print(type(tuple_)) # <class 'tuple'>
print(type(set_)) # <class 'set'>
print(type(dictionary)) # <class 'dict'>
print(type(boolean)) # <class 'bool'>

 

2. split() / string

# split์€ string.split("๊ตฌ๋ถ„์ž")๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

string = "hello/python/world!!"
string_list = string.split("/") # split() ์•ˆ์— ๋“ค์–ด๊ฐ„ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž๋ฅผ ๋‚˜๋ˆˆ๋‹ค.

print(string_list) # ['hello', 'python', 'world!!']

 

3. join() / list

๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค

join์€ "์‚ฌ์ด์— ๋“ค์–ด๊ฐˆ ๋ฌธ์ž".join(๋ฆฌ์ŠคํŠธ)

๊ทธ๋Ÿฌ๋ฉด ๋ฆฌ์ŠคํŠธ์‚ฌ์ด์— ๋ฌธ์ž๋ฅผ ๋„ฃ์–ด์„œ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค!

 

4. replace

์™ผ์ชฝ์„ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค

 

5.pprint

์•Œ์•„๋ณด๊ธฐ ์‰ฝ๊ฒŒ ์ถœ๋ ฅํ•ด์ค€๋‹ค

์›น์—์„œ ๋ฐ์ดํ„ฐ ๊ฐ€์ง€๊ณ  ์˜ฌ ๋•Œ(ํฌ๋กค๋ง) ๋งŽ์ด ์“ฐ์ž„

# pprint๋Š” pretty print์˜ ์•ฝ์ž์ด๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ๋” ์˜ˆ์˜๊ฒŒ ์ถœ๋ ฅํ•ด ์ค€๋‹ค.
from pprint import pprint

sample_data = {
    "id": "0001",
    "type": "donut",
    "name": "Cake",
    "ppu": 0.55,
    "batters":
        {
            "batter":
                [
                    {"id": "1001", "type": "Regular"},
                    {"id": "1002", "type": "Chocolate"},
                    {"id": "1003", "type": "Blueberry"},
                    {"id": "1004", "type": "Devil's Food"}
                ]
        },
    "topping":
        [
            {"id": "5001", "type": "None"},
            {"id": "5002", "type": "Glazed"},
            {"id": "5005", "type": "Sugar"},
            {"id": "5007", "type": "Powdered Sugar"},
            {"id": "5006", "type": "Chocolate with Sprinkles"},
            {"id": "5003", "type": "Chocolate"},
            {"id": "5004", "type": "Maple"}
        ]
}

pprint(sample_data) # print๋กœ ์ถœ๋ ฅํ–ˆ์„ ๋•Œ์™€ ๊ฒฐ๊ณผ ๋น„๊ตํ•ด ๋ณด๊ธฐ!!

 

 

6. random

๋‚œ์ˆ˜ ์ƒ์„ฑ, ์ž„์˜์˜ ๋ฒˆํ˜ธ ์ƒ์„ฑ ๋“ฑ ๋žœ๋คํ•œ ๋™์ž‘์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉ

.randint(1,3)  #3์„ ํฌํ•จ

.randrange(1,3)  #3์„ ํฌํ•จ ์•ˆํ•จ

 

6. time

# ํ•จ์ˆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๋Š” ๋“ฑ ์‹œ๊ฐ„์„ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“ˆ์ด๋‹ค.
import time

start_time = time.time() # ํ˜„์žฌ ์‹œ๊ฐ„ ์ €์žฅ

time.sleep(1) # 1์ดˆ๊ฐ„ ๋Œ€๊ธฐ

end_time = time.time()

# ์ฝ”๋“œ๊ฐ€ ์ข…๋ฃŒ๋œ ์‹œ๊ฐ„ - ์ฝ”๋“œ๊ฐ€ ์‹œ์ž‘๋œ ์‹œ๊ฐ„์œผ๋กœ ์‹คํ–‰ ์‹œ๊ฐ„ ๊ตฌํ•˜๊ธฐ (๋‹จ์œ„ : ์ดˆ)
print(f"์ฝ”๋“œ ์‹คํ–‰ ์‹œ๊ฐ„ : {end_time-start_time:.5f}") # ์ฝ”๋“œ ์‹คํ–‰ ์‹œ๊ฐ„ : 1.00100

 

7.datetime

 

from datetime import datetime, timedelta

# ํ˜„์žฌ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ์ถœ๋ ฅ
print(datetime.now()) # 2022-09-04 03:55:32.277095

# 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 ๋‚ ์งœ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ
string_datetime = "22/12/25 13:20"
datetime_ = datetime.strptime(string_datetime, "%y/%m/%d %H:%M")
print(datetime_) # 2022-12-25 13:20:00

# 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
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(10)
print(lotto_numbers)

# result print
"""
[
    {1, 3, 4, 6, 9, 44, 18, 22, 26},
    {2, 5, 9, 11, 44, 45, 19, 23, 28},
    {1, 4, 39, 41, 16, 18, 27, 29, 31},
    {2, 5, 8, 9, 14, 20, 22, 24, 31},
    {33, 37, 6, 40, 41, 42, 19, 30, 31},
    {33, 1, 36, 8, 41, 9, 17, 24, 30},
    {5, 39, 41, 10, 12, 16, 23, 25, 26},
    {3, 35, 37, 11, 14, 17, 19, 20, 30},
    {33, 35, 3, 11, 43, 15, 16, 27, 30},
    {33, 36, 38, 6, 43, 24, 25, 30, 31}
]
"""
# ๋žœ๋ค ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ๊ฒฐ๊ณผ๋Š” ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
728x90

๋Œ“๊ธ€