switch-case en python, método de escritura de mayúsculas y minúsculas en python

Hola a todos, el editor está aquí para responder las siguientes preguntas, switch-case en python, cómo escribir case en python, ¡echemos un vistazo hoy!

método uno

La versión Python 3.10 ha actualizado la estructura de caso de cambio de manera similar a otros lenguajes, por lo que la mejor manera es actualizar directamente a python3.10 y usar la declaración de caso de coincidencia directamente:

lenguaje C:

switch (expression) {
    case constant-expression :
       statement(s);
       break; /* 可选的 */
    case constant-expression :
       statement(s);
       break; /* 可选的 */
    /* 您可以有任意数量的 case 语句 */
    default : /* 可选的 */
       statement(s);
}

Pitón:

flag = False
match (100, 200):
   case (100, 300):  # Mismatch: 200 != 300
       print('Case 1')
   case (100, 200) if flag:  # Successful match, but guard fails
       print('Case 2')
   case (100, y):  # Matches and binds y to 200
       print(f'Case 3, y: {y}')
   case _:  # Pattern not attempted
       print('Case 4, I match anything!')
#PEP 634: Structural Pattern Matching
match subject:
    case <pattern_1>:
        <action_1>
    case <pattern_2>:
        <action_2>
    case <pattern_3>:
        <action_3>
    case _:
        <action_wildcard>

Una introducción más detallada:
[Python] Las nuevas características de Python 3.10 coinciden con case Statement_python coinciden con case_AiFool's blog-CSDN blog

Método 2

Utilice funciones para lograr efectos similares a los casos de cambio:

def switch_case(value):
    switcher = {
        0: "zero",
        1: "one",
        2: "two",
    }
     
    return switcher.get(value, 'wrong value')

Implementado usando funciones anónimas:

def foo(var,x):
	return {
			'a': lambda x: x+1,
			'b': lambda x: x+2,
			'c': lambda x: x+3,	
	}[var](x)

Método tres

Clase de caja de interruptor personalizada:

# This class provides the functionality we want. You only need to look at
# this if you want to know how this works. It only needs to be defined
# once, no need to muck around with its internals.
class switch(object):
	def __init__(self, value):
    	self.value = value
    	self.fall = False

	def __iter__(self):
    	"""Return the match method once, then stop"""
    	yield self.match
    	raise StopIteration

    def match(self, *args):
        """Indicate whether or not to enter a case suite"""
        if self.fall or not args:
            return True
        elif self.value in args: # changed for v1.5, see below
            self.fall = True
            return True
        else:
            return False


# The following example is pretty much the exact use-case of a dictionary,
# but is included for its simplicity. Note that you can include statements
# in each suite.
v = 'ten'
for case in switch(v):
    if case('one'):
        print 1
        break
    if case('two'):
        print 2
        break
    if case('ten'):
        print 10
        break
    if case('eleven'):
        print 11
        break
    if case(): # default, could also just omit condition or 'if True'
        print "something else!"
        # No need to break here, it'll stop anyway

# break is used here to look as much like the real thing as possible, but
# elif is generally just as good and more concise.

# Empty suites are considered syntax errors, so intentional fall-throughs
# should contain 'pass'
c = 'z'
for case in switch(c):
    if case('a'): pass # only necessary if the rest of the suite is empty
    if case('b'): pass
    # ...
    if case('y'): pass
    if case('z'):
        print "c is lowercase!"
        break
    if case('A'): pass
    # ...
    if case('Z'):
        print "c is uppercase!"
        break
    if case(): # default
        print "I dunno what c was!"

# As suggested by Pierre Quentel, you can even expand upon the
# functionality of the classic 'case' statement by matching multiple
# cases in a single shot. This greatly benefits operations such as the
# uppercase/lowercase example above:
import string
c = 'A'
for case in switch(c):
    if case(*string.lowercase): # note the * for unpacking as arguments
        print "c is lowercase!"
        break
    if case(*string.uppercase):
        print "c is uppercase!"
        break
    if case('!', '?', '.'): # normal argument passing style also applies
        print "c is a sentence terminator!"
        break
    if case(): # default
        print "I dunno what c was!"

# Since Pierre's suggestion is backward-compatible with the original recipe,
# I have made the necessary modification to allow for the above usage.

Referencia: https://www.cnblogs.com/gerrydeng/p/7191927.html

Supongo que te gusta

Origin blog.csdn.net/chatgpt001/article/details/132955854
Recomendado
Clasificación