Как добавить способ получения оценки и вернуть строку на основе оценки функции?

Спасибо за ответы. Этот код отлично подходит для этого.

def rate_score(selection):
 if selection < 1000:
 return "Nothing to be proud of!"

 elif selection >= 1000 and selection < 10000:
 return "Not bad."

 elif selection >= 10000:
 return "Nice!"

def main():
 print "Let rate your score."
 while True:
 selection = int(raw_input('Please enter your score: '))
 break
 print 'You entered [ %s ] as your score' % selection
 score = rate_score(selection)
 print score

main()

Однако мне также необходимо установить для параметра rate_score (selection) значение 0 в качестве значения по умолчанию и добавить вызов rate_score (выбор), в котором вы не передадите значение функции. Я пересмотрел этот код:

def rate_score(selection):
 if selection < 1000:
 return "Nothing to be proud of!"

 elif selection >= 1000 and selection < 10000:
 return "Not bad."

 elif selection >= 10000:
 return "Nice!"

 else:
 selection = 0

selection = int(raw_input("Enter your score. "))

score = rate_score(selection)
print score

Я, по крайней мере, настроил его так, чтобы параметр по умолчанию был равен 0? Если нет, то как мне следует изменить его как параметр по умолчанию для rate_score()? Кроме того, я не знаю, как сделать, чтобы не передавать значение value_score, если вы получаете сообщение об ошибке, если вы ничего не вводите из-за raw_input.

2 ответа

Поскольку Лассе В. Карлсен прокомментировал ваш вопрос, сначала вам нужно заменить print на return.

Возможно, вам нужно другое условие, если оценка - это чем гордиться, так? Здесь это, получая оценку в качестве входа от пользователя:

def rate_score(selection):
 if selection < 1000:
 return "Nothing to be proud of!"
 else:
 return "Now that something to be proud of!"

def main():
 print "# rate_score program #"
 while True:
 try:
 selection = int(raw_input('Please enter your score: '))
 except ValueError:
 print 'The value you entered does not appear to be a number !'
 continue
 print 'You entered [ %s ] as your score' % selection
 response = rate_score(selection) # Now the function rate_score returns the response
 print response # Now we can print the response rate_score() returned

main()

raw_input - встроенная функция в python, которая может использоваться для ввода данных от пользователя. Используя raw_input() и int(), мы также можем убедиться, что вход пользователя является числом. Это связано с тем, что int() выдает конкретную ошибку, если вы попытаетесь дать ей что-то, что не является числом. Ошибка, которую он выбрасывает, называется ValueError.

>>> int('notanumber')
ValueError: invalid literal for int() with base 10: 'notanumber'

Предвидя эту ошибку (ValueError), а затем перехватив ее с помощью инструкции except, мы можем сообщить пользователю, когда наша программа определила, что их ввод не оценивался как число. Обратите внимание, что для того, чтобы уловить ошибку с помощью оператора except, выражение, которое выдает ошибку, должно быть оценено с помощью инструкции try, следовательно:

try:
 # begin code which we know will throw the 'ValueError'
 selection = int(raw_input('Please enter your score: '))
except ValueError:
 # what to do if the 'ValueError' occurs?
 # tell the user that what they entered doesn't appear to be a number
 print 'The value you entered does not appear to be a number !'
 continue


верните строку" - это ключевое слово для return:

def rate_score(score):
 if score < 1000:
 return "Nothing to be proud of."

licensed under cc by-sa 3.0 with attribution.