4.2 Ejercicio 2

Del repositorio de ejercicios, mezcle las ramas exercise2/branchA y exercise2/branchB.

Conflicto

Listing 4.3:Ejercicio 2 - conflicto
1#!/usr/bin/python 
2 
3import sys 
4 
5colors = {"black": "black mirror", 
6          "white":  "white noise", 
7          "blue": "blue sky"} 
8 
9def getPhrase(color): 
10<<<<<<< HEAD 
11    phrase = colors[color.lower()] 
12======= 
13    if color not in colors: 
14        sys.stderr.write("Got no phrase for color %s\n" % color) 
15        sys.exit(1) 
16    phrase = colors[color] 
17>>>>>>> exercise2/branchB 
18    return phrase 
19 
20print(getPhrase(sys.argv[1]))

Resolution

La solución correcta debe ser algo así:

Listing 4.4:Ejercicio 2 - resolución
1#!/usr/bin/python 
2 
3import sys 
4 
5colors = {"black": "black mirror", 
6          "white":  "white noise", 
7          "blue": "blue sky"} 
8 
9def getPhrase(color): 
10    if color.lower() not in colors: 
11        sys.stderr.write("Got no phrase for color %s\n" % color) 
12        sys.exit(1) 
13    phrase = colors[color.lower()] 
14    return phrase 
15 
16print(getPhrase(sys.argv[1]))

Si no colocaron la llamada a lower() en la línea 10, está bien... por el momento. Explicaré la lógica para agregar la llamada más adelante. Pudieron haber hecho otras cosas como guardar el color para que quede en minúsculas antes de entrar al if de la línea 10 pero veremos las cosas que se podría/debería hacer a medida que avanzamos en otros tópicos. Puedo asegurarles algo, esto es solo un abrebocas de lo que es un conflicto.