По принцип дефинирах функция, която да работи като команда за превключване в 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: ")))
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