Daily Challenge #247 - Get Planet Name By ID

thepracticaldev profile image dev.to staff ・1 min read

The function is not returning the correct values. Can you figure out why?

def get_planet_name(id):
    # This doesn't work; Fix it!
    switch id:
        case 1: name = "Mercury"
        case 2: name = "Venus"
        case 3: name = "Earth"
        case 4: name = "Mars"
        case 5: name = "Jupiter"
        case 6: name = "Saturn"
        case 7: name = "Uranus"  
        case 8: name = "Neptune"
    return name


get_planet_name(3) # should return 'Earth'



Good luck!

This challenge comes from jhoffner on CodeWars. Thank you to CodeWars, who has licensed redistribution of this challenge under the 2-Clause BSD License!

Want to propose a challenge idea for a future post? Email yo+challenge@dev.to with your suggestions!

Posted on by:

thepracticaldev profile

dev.to staff


The hardworking team behind dev.to ❤️


markdown guide

Because the interpreter is not helpful.

Try Elm, the compiler is nice.

type Planet
    = Mercury
    | Venus
    | Earth
    | Mars
    | Jupiter
    | Saturn
    | Uranus
    | Neptune

getPlanetName : Planet -> String
getPlanetName planet =
    case planet of
        Mercury -> "Mercury"
        Venus   -> "Venus"
        Earth   -> "Earth"
        Mars    -> "Mars"
        Jupiter -> "Jupiter"
        Saturn  -> "Saturn"
        Uranus  -> "Uranus"
        Neptune -> "Neptune"

Note: Does not respond to the challenge at all


It will always give "Neptune" as answer because there is no break statement.


Fallthrough switches are second only to null values as far as bad programming language ideas go.


I don't know Python but as a JavaScript developer I also thought about lack of break statements in this code.