์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„(25.12.01~)

[๋ฌธ์ œํ’€์ด] Python | in / not in ์—ฐ์‚ฐ์ž ํ™œ์šฉํ•˜์—ฌ ํ™•์žฅํ•˜๊ธฐ

0๏ธโƒฃ 2026. 1. 7. 23:46

๊ตณ์ด ๊ถ๊ธˆํ•ด ํ•ด์„œ

๋จธ๋ฆฌ๊ฐ€ ํ„ฐ์งˆ ๊ฒƒ ๊ฐ™์•„์„œ ์ •๋ฆฌํ•˜๋Š”

์–ด๋ ต๋‹ค ์–ด๋ ค์›Œ ๋ฌธ์ œํ’€์ด


์›๋ž˜ ๋ฌธ์ œ)
in / not in ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, fruits ๋ฆฌ์ŠคํŠธ ์•ˆ์— ๊ณผ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.
fruits = ["apple", "banana", "cherry"]

if "apple" in fruits:
    print("์‚ฌ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.")   # ์ถœ๋ ฅ๋จ

if "orange" not in fruits:
    print("์˜ค๋ Œ์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.")  # ์ถœ๋ ฅ๋จ

๐Ÿง
ํ•œ ๊ฐœ์”ฉ๋งŒ ์ฐพ์„ ์ˆ˜ ์žˆ๊ณ , ๋ฌธ์ž์—ด๋งŒ ์ธ์‹ํ•˜๋Š” ๊ฒ€์ƒ‰์•ค์ง„์„ ๋งŒ๋“ค์ž.
๋‹ค์‹œ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•   ๋•Œ๋Š” input์„ ๋ฐ˜๋ณตํ•ด์„œ ์‹คํ–‰ํ•˜์ž.

์‹œ๋„ํ•œ ์ฝ”๋“œ

fruits = ["apple", "banana", "cherry"]

while True :
  while True :
    search = input("์นฎ๋Š” ๊ณผ์ผ์„ 1๊ฐœ๋งŒ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”: ")

    if len(search.replace(",", "").split()) != 1 :
      print("๊ณผ์ผ **ํ•˜๋‚˜์”ฉ**๋งŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.")
    elif map(str, search) == r'[\d!@#$%^&*()]+' : #isdigit() #import re
    # ์ •๊ทœํ‘œํ˜„์‹์€ == ๋กœ ๋น„๊ต ๋ถˆ๊ฐ€.
      print("์ˆซ์ž๋Š” ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ณผ์ผ๋ช…์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.")
    else:
      break

  if search in fruits :
    print(f"{search}์ด(๊ฐ€) ์žˆ์Šต๋‹ˆ๋‹ค.")
    break
  if search not in fruits :
    print(f"{search}์ด(๊ฐ€) ์—†์Šต๋‹ˆ๋‹ค.")
<์˜ค๋‹ต๋…ธํŠธ>
map(str, search) == r'[\d!@#$%^&*()]+'
โ–ถ๏ธŽ ๋ฌด์กฐ๊ฑด False
1. ์ขŒ์ธก) ๊ฒฐ๊ณผ: map ๊ฐ์ฒด / ๋ฌธ์ž์—ด ์•„๋‹˜ / ์ถœ๋ ฅํ•ด๋„ ๋‚ด์šฉ ์•ˆ ๋ณด์ž„
2. ์šฐ์ธก) ๊ฐ’์ด ์•„๋‹Œ, ๊ทœ์น™์„ ์ฐพ์•„๋‚ด๋Š” ๊ธฐ๋Šฅ / ๊ทธ๋ƒฅ ๋ฌธ์ž์—ด๋กœ ์ธ์‹

๐Ÿ’ก๋Œ€์ฒด ์‹œ๋„ ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•
1. isdigit()
๋ฌธ์ž์—ด์ด ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
๊ฒฐ๊ณผ๋Š” True / False
โš ๏ธ ์ •์ˆ˜ ์ž์—ฐ์ˆ˜๋งŒ True / ๋งˆ์ด๋„ˆ์Šค, ์†Œ์ˆ˜ False

2. import re
“ํŒจํ„ด ๊ฒ€์‚ฌ ๊ธฐ๋Šฅ(์ •๊ทœํ‘œํ˜„์‹)์„ ์“ฐ๊ฒ ๋‹ค”๋Š” ์„ ์–ธ


โ“ map ๊ฐ์ฒด
map ๊ฐ์ฒด: ๊ณ„์‚ฐ ์˜ˆ์•ฝ๋งŒ ๊ฑธ์–ด๋‘” ์ƒํƒœ๋กœ, ๊ทธ ์ž์ฒด๋กœ๋Š” ์•„์ง ๊ณ„์‚ฐ๋˜์ง€ ์•Š์€ ์ƒํƒœ.
- ๊ณ„์‚ฐ์ด ํ•„์š”ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ๊นŒ, ๊ณ„์‚ฐ์„ ์š”๊ตฌํ•  ๋•Œ๋งŒ ์ง„ํ–‰ → ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ, ์†๋„ ํšจ์œจ
(์ขŒ) ๊ณ„์‚ฐ ์•ˆ ๋œ (์šฐ) list๊ฐ€ ๊ณ„์‚ฐ์„ ์š”๊ตฌํ–ˆ์„ ๋•Œ์•ผ ๊ณ„์‚ฐํ•จ.

โ“ ์ •๊ทœํ‘œํ˜„์‹
๊ทœ์น™(์กฐ๊ฑด) ์œผ๋กœ์จ,  ๊ฐ’์„ ๊ฒ€์‚ฌํ•œ๋‹ค. (๐Ÿซจ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ์—... ๋‡Œ ๋ฐ”์‚ฌ์‚ญ...)

 

isdigit()

โ— search.isdigit():
"๋ฌธ์ž์—ด search๊ฐ€ ์ˆซ์ž๋กœ๋งŒ ๋ผ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•ด์ค˜."
- input() : ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด
- input ์ˆซ์ž ์ž…๋ ฅ → True → print("์ˆซ์ž๋Š” ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.") → while ๋ฐ˜๋ณต, ์ฒซ์ค„ ์‹คํ–‰
fruits = ["apple", "banana", "cherry"]

while True:
    while True:
        search = input("์ฐพ๋Š” ๊ณผ์ผ์„ 1๊ฐœ๋งŒ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”: ")

        if len(search.replace(",", " ").split()) != 1:
            print("๊ณผ์ผ **ํ•˜๋‚˜์”ฉ**๋งŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.")
        elif search.isdigit(): #์ž…๋ ฅ์— ์ˆซ์ž ์žˆ์œผ๋ฉด True -> ์•„๋ž˜ print ์‹คํ–‰
            print("์ˆซ์ž๋Š” ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ณผ์ผ๋ช…์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.")
        else:
            break

    if search in fruits:
        print(f"{search}์ด(๊ฐ€) ์žˆ์Šต๋‹ˆ๋‹ค.")
    else:
        print(f"{search}์ด(๊ฐ€) ์—†์Šต๋‹ˆ๋‹ค.")

 

import re

โ— import re
"์•„๋ž˜ ์ฝ”๋“œ์—์„œ ์ •๊ทœํ‘œํ˜„์‹ ์“ธ ๊ฑฐ์•ผ."
ํ•ด๋‹น ํ‘œํ˜„ ์—†์ด ์ •๊ทœํ‘œํ˜„์‹ ์‚ฌ์šฉ ๋ถˆ๊ฐ€.

โ— re.fullmatch(r"\d+", search) :
“search ์ „์ฒด๊ฐ€ ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ธ์ง€ ๊ฒ€์‚ฌํ•ด๋ผ”
- re : ์ •๊ทœํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ชจ๋“ˆ
- fullmatch : ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ „๋ถ€ ๊ฒ€์‚ฌ
- r"\d+" : ์ˆซ์ž๊ฐ€ 1๊ฐœ ์ด์ƒ ์—ฐ์†์œผ๋กœ ์žˆ๋Š” ํŒจํ„ด
    โ–ช๏ธŽ \d : ์ˆซ์ž 1๊ฐœ(0 ~ 9)
    โ–ช๏ธŽ  + : 1๊ฐœ ์ด์ƒ
    โ–ช๏ธŽ r"" : ๋ฐฑ์Šฌ๋ž˜์‹œ๋ฅผ  ํŠน์ˆ˜๋ฌธ์ž(ex. \n \t)๋กœ ์“ฐ์ง€ ๋ง๊ณ , ๊ทธ๋Œ€๋กœ ์“ฐ๊ธฐ ์œ„ํ•œ ํ‘œํ˜„ (๐Ÿ™†‍โ™€๏ธ ์•„ํ•˜! ์™„์ „ ์ดํ•ด)
import re # "๋‚˜ ์ •๊ทœํ‘œํ˜„์‹ ์“ด๋‹ค~"

fruits = ["apple", "banana", "cherry"]

while True:
    while True:
        search = input("์ฐพ๋Š” ๊ณผ์ผ์„ 1๊ฐœ๋งŒ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”: ")

        # 1. ์‰ผํ‘œ๋‚˜ ๊ณต๋ฐฑ ๋“ฑ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ ์ฒดํฌ
        if len(search.replace(",", " ").split()) != 1:
            print("๊ณผ์ผ **ํ•˜๋‚˜์”ฉ**๋งŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.")
        
        # 2. ์ •๊ทœํ‘œํ˜„์‹์œผ๋กœ ์ˆซ์ž๋งŒ ์ž…๋ ฅํ–ˆ๋Š”์ง€ ๊ฒ€์‚ฌ
        elif re.fullmatch(r"\d+", search):  # ์ „์ฒด๊ฐ€ ์ˆซ์ž์ธ ๊ฒฝ์šฐ๋งŒ
            print("์ˆซ์ž๋Š” ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ณผ์ผ๋ช…์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.")
        
        else:
            break

    # 3. ์ •์ƒ ์ž…๋ ฅ ์‹œ ๊ณผ์ผ ๋ฆฌ์ŠคํŠธ์—์„œ ๊ฒ€์ƒ‰
    if search in fruits:
        print(f"{search}์ด(๊ฐ€) ์žˆ์Šต๋‹ˆ๋‹ค.")
    else:
        print(f"{search}์ด(๊ฐ€) ์—†์Šต๋‹ˆ๋‹ค.")