Как да имате набор от възможни стойности, присвоени под един израз, използвайки оператор за превключване на python

По принцип дефинирах функция, която да работи като команда за превключване в Python, така че когато се въведе число, програмата ще изведе текста, съответстващ на въведеното число. Кодът, който измислих, работи, ако имам едно число, присвоено на всеки ред текст, но не мога да разбера как да разреша диапазон от числа с начина, по който съм го настроил. Какви са възможните начини да направите така, че набор от числа да може да се използва на входа за израза. Нарочно оставих числата грешни като диапазон, за да може да се види как бих искал да работи. Оценявам всяка предложена помощ.

def switch_statement(i):
    switcher = {
        100-999: "That grade is a perfect score. Well done.",
        90-99: "That grade is well above average. Excellent work.",
        80-89: "That grade is above average. Nice job.",
        70-79: "That grade is average work.",
        60-69: "That grade is not good, you should seek help!",
        0-59: "That grade is not passing."
    }
    print(switcher.get(i, "Invalid input"))

switch_statement(int(input("Please enter your grade: ")))

person Jake Pierantozzi    schedule 29.01.2019    source източник
comment
Възможен дубликат на Range като речников ключ в Python   -  person Chris    schedule 29.01.2019
comment
Вярвам, че можете да намерите отговора там, където Крис каза.   -  person Eran Moshe    schedule 29.01.2019
comment
dict очаква една стойност като ключ. Препоръчаният отговор ще работи, но смятам, че не е това, което искате. Всички решения преминават през ключовете, за да намерят този, който съвпада, и мисля, че вашето намерение е да избегнете това, а също и да избегнете низ от if...elseif...elseif тестове. Ако искате да направите dict търсене, ще трябва първо да трансформирате стойността си по някакъв начин. Например, ако вземете i // 10 като ключ dict, тогава можете да направите търсене на 6, 7 и т.н. вместо 60..69, 70..79 и т.н. Използвайте defaultdict, за да се справите с отклоненията, които трансформацията не обработва (0..59, 11..99).   -  person BoarGules    schedule 29.01.2019