loading...

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!
    name=""
    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

Example

get_planet_name(3) # should return 'Earth'

Tests

get_planet_name(3)
get_planet_name(8)
get_planet_name(1)
get_planet_name(5)

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

@thepracticaldev

The hardworking team behind dev.to ❤️

Discussion

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.