C/C++ 또는 Java와 같은 언어를 사용하는 개발자는 조건문이라는 조건문이 있다는 것을 알고 있습니다. 스위치 케이스 . 이것 대소문자 일치 는 Python의 Switch Case입니다. 파이썬 3.10. 여기서는 먼저 매개변수를 전달한 다음 매개변수가 어떤 경우에 만족하는지 확인해야 합니다. 일치하는 항목을 찾으면 일부 코드를 실행하고 일치하는 항목이 전혀 없으면 기본 작업이 수행됩니다.
Python 일치 사례 문 구문
Python의 match case 문은 다음과 같이 초기화됩니다. 성냥 키워드 뒤에 일치할 매개변수가 옵니다. 그런 다음 다양한 경우가 다음을 사용하여 정의됩니다. 사례 매개변수와 일치하는 키워드 및 패턴입니다. 그만큼 _ 모든 사례가 매개변수 값과 일치하지 않을 때 실행되는 와일드카드 문자입니다.
match parameter: case pattern1: # code for pattern 1 case pattern2: # code for pattern 2 . . case patterN: # code for pattern N case _: # default code block>
내용의 테이블
스크립트를 실행하는 방법
- 단순 일치 사례 설명
- OR 연산자를 사용하여 Case 문 일치
- Python If 조건과 일치하는 Case 문
- 시퀀스 패턴과 대소문자 일치
- Python 사전과 대소문자 일치 문
- Python 클래스와 일치하는 Case 문
- Python 일치 사례 설명 FAQ
이제 Python에서 match case 문이 어떻게 작동하는지 알아보기 위해 몇 가지 예를 살펴보겠습니다.
단순 일치 사례 설명
간단한 Python match Case 문에서 정확한 값을 비교하여 Case 패턴 값과 일치시킵니다. 다양한 테스트 케이스와 케이스가 일치할 때만 실행되는 해당 코드가 있습니다. 그렇지 않으면 정의된 모든 사례가 일치하지 않을 때 실행되는 기본 사례가 있습니다.
예: 이 예에서는 사용자에게 1에서 3 사이의 값을 입력하고 간단한 match case 문을 사용하여 해당 숫자를 단어로 표시하도록 요청합니다.
파이썬 # simple match case statement def runMatch(): num = int(input('Enter a number between 1 and 3: ')) # match case match num: # pattern 1 case 1: print('One') # pattern 2 case 2: print('Two') # pattern 3 case 3: print('Three') # default pattern case _: print('Number not between 1 and 3') runMatch()> 산출:
Enter a number between 1 and 3: 5 Number not between 1 and 3>
OR 연산자를 사용하여 Case 문 일치
성냥갑 Python의 명령문은 패턴과 특정 키워드 또는 매개변수를 일치시키는 용도로만 사용됩니다. 그러나 동일한 출력을 초래하는 케이스가 두 개 이상인 경우 Python에서 match Case 문을 사용할 수도 있습니다. 이 경우 match Case 문에 OR 연산자라고도 하는 파이프 연산자를 사용할 수 있습니다.
예: 이 예에서는 사용자에게 1에서 6 사이의 값을 입력하도록 요청합니다. 그런 다음 OR 연산자와 일치하는 사례를 사용하여 쌍을 각각 1개의 사례로 묶어 해당 숫자를 단어로 표시합니다.
파이썬 # python match case with OR operator def runMatch(): num = int(input('Enter a number between 1 and 6: ')) # match case match num: # pattern 1 case 1 | 2: print('One or Two') # pattern 2 case 3 | 4: print('Three or Four') # pattern 3 case 5 | 6: print('Five or Six') # default pattern case _: print('Number not between 1 and 6') runMatch()> 산출:
Enter a number between 1 and 6: 4 Three or Four>
Python If 조건과 일치하는 Case 문
우리는 또한 Python If 조건 정확한 값을 일치시키는 대신 조건을 사용하는 경우 match case 문과 함께 사용합니다. 조건에 따라 값이 True이고 케이스 패턴과 일치하면 코드 블록이 실행됩니다.
예: 이 예에서는 match case 문과 함께 if 조건을 사용하여 사용자 ID에 숫자가 입력되었는지 양수, 음수 또는 0인지 확인합니다.
파이썬 # python match case with if condition def runMatch(): num = int(input('Enter a number: ')) # match case match num: # pattern 1 case num if num>0: print('Positive') # 패턴 2 케이스 num if num< 0: print('Negative') # default pattern case _: print('Zero') runMatch()> 산출:
Enter a number: -15 Negative>
시퀀스 패턴과 대소문자 일치
Python 일치 사례 문은 일반적으로 목록 및 문자열과 같은 시퀀스 패턴을 일치시키는 데 사용됩니다. 이는 매우 쉽고 패턴을 확인하기 위해 위치 인수를 사용할 수 있습니다.
예: 이 예에서는 Python 문자열을 사용하여 문자가 있는지 확인합니다. 끈 또는 성냥갑을 사용하지 않습니다. 우리는 문자열에서 확인하려는 문자의 인덱스와 함께 문자열을 대소문자 일치에 제공합니다. 그런 다음 해당 캐릭터가 무엇인지에 대한 일치 사례를 정의했습니다.
파이썬 # match case to check a character in a string def runMatch(): myStr = 'Hello World' # match case match (myStr[6]): case 'w': print('Case 1 matches') case 'W': print('Case 2 matches') case _: print('Character not in the string') runMatch()> 산출:
Case 2 matches>
예: 이 예에서는 파이썬 목록 패턴 매칭을 위해 목록의 나머지 부분과 일치시키기 위해 손실된 요소와 사용된 위치 인수의 첫 번째 요소를 일치시킵니다.
파이썬 # python match case with list def runMatch(mystr): # match case match mystr: # pattern 1 case ['a']: print('a') # pattern 2 case ['a', *b]: print(f'a and {b}') # pattern 3 case [*a, 'e'] | (*a, 'e'): print(f'{a} and e') # default pattern case _: print('No data') runMatch([]) runMatch(['a']) runMatch(['a', 'b']) runMatch(['b', 'c', 'd', 'e'])> 산출:
미니맥스 알고리즘
No data a a and ['b'] ['b', 'c', 'd'] and e>
Python 사전과 대소문자 일치 문
Python 일치 사례 문이 처리할 수 있음 사전 또한. 단일 키 또는 여러 키와 일치할 수 있습니다. 키와 값은 사전에 있어야 하며, 잘못된 값이 있거나 존재하지 않고 실제 사전과 값과 일치하지 않는 키가 있는 경우 해당 사례는 삭제됩니다.
예: 이 예에서는 Python에서 match case 문과 함께 사전을 사용하고 있습니다. 우리는 일치 사례에 대해 다른 데이터가 포함된 사전을 제공하고 있으며, 제공된 다른 사례와 사전 키를 일치시킵니다.
파이썬 # match case with python dictionaryu def runMatch(dictionary): # match case match dictionary: # pattern 1 case {'name': n, 'age': a}: print(f'Name:{n}, Age:{a}') # pattern 2 case {'name': n, 'salary': s}: print(f'Name:{n}, Salary:{s}') # default pattern case _ : print('Data does not exist') runMatch({'name': 'Jay', 'age': 24}) runMatch({'name': 'Ed', 'salary': 25000}) runMatch({'name': 'Al', 'age': 27}) runMatch({})> 산출:
Name:Jay, Age:24 Name:Ed, Salary:25000 Name:Al, Age:27 Data does not exist>
Python 클래스와 일치하는 Case 문
우리는 또한 사용할 수 있습니다 파이썬 수업 Python match case 문을 사용하여 대소문자를 일치시킵니다. 이렇게 하면 코드가 훨씬 깨끗하고 깔끔해지며, 더 중요한 것은 쉽게 읽을 수 있게 됩니다. Python 데이터 클래스 모듈을 사용합니다.
예: 이 예에서는 Person과 Programmer라는 두 개의 클래스를 만들었습니다. match 문을 본 후 가장 먼저 생각한 것은 match 문 내의 프로그래머와 사람이 해당 클래스의 인스턴스를 생성할 것이라는 것이었지만 실제로는 그렇지 않았습니다. 주어진 값을 가진 인스턴스를 확인합니다. 따라서 Programmer(Om, 언어 = Python, 프레임워크 = Django)의 경우 인스턴스를 생성하지 않지만 이름이 인스턴스인 전달된 개체가 Programmer 클래스의 실제 인스턴스인지 확인한 다음 이름이 Om인지 확인합니다. , Python 언어, 그리고 Django 프레임워크입니다. 이렇게 하면 모든 클래스의 인스턴스에서 값을 확인할 수 있습니다.
파이썬 # match case with python classes # import dataclass module from dataclasses import dataclass #Class 1 @dataclass class Person: name: str age: int salary: int # class 2 @dataclass class Programmer: name: str language: str framework: str def runMatch(instance): # match case match instance: # pattern 1 case Programmer('Om', language='Python', framework='Django'): print(f'Name: Om, Language:Python, Framework:Django') # pattern 2 case Programmer('Rishabh', 'C++'): print('Name:Rishabh, Language:C++') # pattern 3 case Person('Vishal', age=5, salary=100): print('Name:Vishal') # pattern 4 case Programmer(name, language, framework): print(f'Name:{name}, Language:{language}, Framework:{framework}') # pattern 5 case Person(): print('He is just a person !') # default case case _: print('This person is nothiing!') programmer1 = Programmer('Om', 'Python', 'Django') programmer2 = Programmer('Rishabh', 'C++', None) programmer3 = Programmer('Sankalp', 'Javascript', 'React') person1 = Person('Vishal', 5, 100) runMatch(programmer1) runMatch(programmer2) runMatch(person1) runMatch(programmer3)> 산출:
Name: Om, Language:Python, Framework:Django Name:Rishabh, Language:C++ Name:Vishal Name:Sankalp, Language:Javascript, Framework:React>
Python 일치 사례 설명 FAQ
Q: Python의 대소문자 일치 문이란 무엇입니까?
답변: 패턴 일치라고도 알려진 match-case 문은 Python 3.10에 도입된 기능입니다. 튜플, 목록, 클래스와 같은 데이터 구조에서 패턴 일치를 수행하는 간결하고 표현적인 방법을 제공합니다. 이를 통해 일련의 패턴에 대해 표현식 값을 일치시키고 일치된 패턴에 대해 해당 코드 블록을 실행할 수 있습니다.
Q: match Case 문은 if-elif-else 문과 어떻게 다릅니까?
A: match-case 문은 if-elif-else 문에 비해 더 강력하고 표현력이 풍부한 구조입니다. if-elif-else 문은 부울 표현식을 사용하는 반면, match-case 문은 데이터의 구조와 값을 기반으로 패턴을 일치시킬 수 있습니다. 대소문자 일치 문은 여러 조건을 처리하고 해당 조건에 따라 다양한 작업을 수행할 수 있는 보다 구조화되고 읽기 쉬운 방법을 제공합니다.
Q: 대소문자 일치 문을 사용하면 어떤 이점이 있나요?
A: 대소문자 일치 문은 다음과 같은 여러 가지 이점을 제공합니다.
- 간결성: 대소문자 일치 문을 사용하면 복잡한 분기 논리를 간결하고 읽기 쉬운 방식으로 표현할 수 있습니다.
- 가독성: 패턴 일치는 문제 도메인과 매우 유사하므로 코드를 더 읽기 쉽고 설명이 필요하게 만듭니다.
- 안전성: 대소문자 일치 문은 철저한 패턴 일치를 제공하여 가능한 모든 사례가 처리되도록 보장합니다.