Помощь по Python. Нужно создать функцию, которая принимает параметр.

levitasha

Новичок
Пользователь
Ноя 15, 2024
2
0
1
Всем привет, читаю учебник по Python и выполняю задания. Столкнулся с проблемой, которую не могу решить уже час.
Нужно создать функцию computegrade, которая принимает оценку как параметр и возвращает символьный балл как строку. Подробнее на скрине.

Так же приложу код программы, которую я сделал до этого, и в которой нужно произвести это действие.

Прошу сильно не ругать, изучаю пайтон 3 день.

Python:
score = input('Enter score:\n')

try:
    score_float = float(score)
    if score_float <= 1.0 and score_float > 0.9:
        print('Your score: A')
    elif score_float >= 0.8 and score_float < 0.9:
        print('Your score: B')
    elif score_float >= 0.7 and score_float < 0.8:
        print('Your score: C')
    elif score_float >= 0.6 and score_float < 0.7:
        print('Your score: D')
    elif score_float < 0.6 and score_float > 0.0:
        print('Your score: F')
    elif score_float <= 0.0 or score_float > 1.0:
        print('Bad score')
except ValueError:
    print('Bad score')
 

Вложения

  • Снимок экрана 2024-11-15 135828.png
    Снимок экрана 2024-11-15 135828.png
    90,4 КБ · Просмотры: 7
  • 2.png
    2.png
    45 КБ · Просмотры: 5

PYDEV

Пользователь
Пользователь
Авг 31, 2023
72
18
8
Python:
def computegrade(score: float) -> str:
    if 1.0 >= score > 0.9:
        return "A"
    elif 0.9 >= score > 0.8:
        return "B"
    elif 0.8 >= score > 0.7:
        return "C"
    else:
        return "Bad score"

score = float(input("Write your score: "))
print(computegrade(score))
 
  • Мне нравится
Реакции: Alecsandr и 4olshoy_blen

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 663
474
83
просто оберните в функцию блок try/except, замените print на return, и вызовите ее в конце

Python:
score = input('Enter score:\n')

def computegrade(score):
    try:
        score_float = float(score)
        if score_float <= 1.0 and score_float > 0.9:
            return('Your score: A')
        elif score_float >= 0.8 and score_float < 0.9:
            return('Your score: B')
        elif score_float >= 0.7 and score_float < 0.8:
            return('Your score: C')
        elif score_float >= 0.6 and score_float < 0.7:
            return('Your score: D')
        elif score_float < 0.6 and score_float > 0.0:
            return('Your score: F')
        elif score_float <= 0.0 or score_float > 1.0:
            return('Bad score')
    except ValueError:
        return('Bad score')

print(computegrade(score))
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 663
474
83
Python:
def computegrade(score: float) -> str:
    if 1.0 >= score > 0.9:
        return "A"
    elif 0.9 >= score > 0.8:
        return "B"
    elif 0.8 >= score > 0.7:
        return "C"
    else:
        return "Bad score"

score = float(input("Write your score: "))
print(computegrade(score))
а ваш код падает при вводе буквы
 

PYDEV

Пользователь
Пользователь
Авг 31, 2023
72
18
8
а ваш код падает при вводе буквы
это место помощи, а не "я всё сделаю за вас". пусть человек сам допишет код, задача более опытных - дать направление.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 663
474
83
это место помощи, а не "я всё сделаю за вас". пусть человек сам допишет код, задача более опытных - дать направление.
понятно
 
  • Мне нравится
Реакции: PYDEV

levitasha

Новичок
Пользователь
Ноя 15, 2024
2
0
1
Python:
def computegrade(score: float) -> str:
    if 1.0 >= score > 0.9:
        return "A"
    elif 0.9 >= score > 0.8:
        return "B"
    elif 0.8 >= score > 0.7:
        return "C"
    else:
        return "Bad score"

score = float(input("Write your score: "))
print(computegrade(score))
просто оберните в функцию блок try/except, замените print на return, и вызовите ее в конце

Python:
score = input('Enter score:\n')

def computegrade(score):
    try:
        score_float = float(score)
        if score_float <= 1.0 and score_float > 0.9:
            return('Your score: A')
        elif score_float >= 0.8 and score_float < 0.9:
            return('Your score: B')
        elif score_float >= 0.7 and score_float < 0.8:
            return('Your score: C')
        elif score_float >= 0.6 and score_float < 0.7:
            return('Your score: D')
        elif score_float < 0.6 and score_float > 0.0:
            return('Your score: F')
        elif score_float <= 0.0 or score_float > 1.0:
            return('Bad score')
    except ValueError:
        return('Bad score')

print(computegrade(score))
Благодарю, господа. Оба варианта рабочие. Изначально я и хотел обернуть блок try/except в функцию computegrade(). Просто запутали вводные данные из задачи, а именно то, что программа должна делать приём и возврат. Подумал, что не может быть всё так просто.
Возврат, я так понимаю, это будет - return. Хотя можно же использовать просто функцию print..?
 

PYDEV

Пользователь
Пользователь
Авг 31, 2023
72
18
8
Хотя можно же использовать просто функцию print..?
Использовать конечно можно, но лучше функции дать выполнять свою задачу и возвращать лишь значение
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 663
474
83
Благодарю, господа. Оба варианта рабочие. Изначально я и хотел обернуть блок try/except в функцию computegrade(). Просто запутали вводные данные из задачи, а именно то, что программа должна делать приём и возврат. Подумал, что не может быть всё так просто.
Возврат, я так понимаю, это будет - return. Хотя можно же использовать просто функцию print..?
возврат - это именно return
 

Форум IT Специалистов