Найти - Пользователи
Полная версия: Нужна помощь в решении.
Начало » Центр помощи » Нужна помощь в решении.
1
GP
Помогите пожалуйста начинающему
Задача:
Определите метод hello, который возвращает “Hello, Name!- на заданное имя, или говорит Привет, Мир! если имя не задано (или передано как пустая строка).
Предположим, что имя является строкой, и он проверяет наличие пользовательских опечаток, чтобы вернуть имя с первой заглавной буквы (Xxxx).

Примеры:
Привет ”Джон“ = > ” Привет, Джон!“
привет ”алиса“ = > ” Привет, Алиса!“
Привет = > ” Привет, Мир!“# имя не дано
Привет ”= > “ Привет, Мир!”# имя является пустой строкой

Моё решение:
   
def hello (name, x = "Hello, ", y = "!"):
    return x + name.title() + y  
    if name == (""):
        return "Hello, World!"
не пойму как сделать третье подзадание где при пустом аргументе name выводится “Hello, World!”.

FishHook
GP
Ваш код не имеет смысла, потому что после строки
 return x + name.title() + y  
ничего больше никогда не выполнится
 def hello (name, x = "Hello, ", y = "!"):
    if name == (""):
        return "Hello, World!"
    return x + name.title() + y  
GP
FishHook
GPВаш код не имеет смысла, потому что после строки
Большое спасибо.
сам протупил) написал вне тела функции
GP
FishHook
def hello (name, x = “Hello, ”, y = “!”):
if name == (“”):
return “Hello, World!”
return x + name.title() + y

хотя сейчас выдаёт вот это:

TypeError: hello() missing 1 required positional argument: ‘name’
TypeError: hello () отсутствует 1 обязательный позиционный аргумент: ‘name’
py.user.next
GP
Помогите пожалуйста начинающему
Задание сформулировано неточно, какая-то каша.

Ты должен знать точно, что подаётся в функцию. А тут пишут сначала “подаётся имя”, а в примерах приводят “подаётся ”Привет “имя”“”. Сначала разберись, что именно подаётся.

Скорее всего, примеры использования функции сформированы неправильно.
Не надо ничего усложнять в коде, если задание глупо составлено.
  
>>> def hello(name=None):
...     if name is not None and name != '': # условия пишем ясно, не сокращаем до if name:
...         return 'Hello, ' + name.title() + '!'
...     else:
...         return 'Hello, World!' # ветви пишем ясно, не отделяем оператор от if'а
... 
>>> hello()
'Hello, World!'
>>> hello('')
'Hello, World!'
>>> hello('john')
'Hello, John!'
>>>

Ещё лучше
  
>>> def hello(name=None):
...     if name is not None and name != '':
...         correct_name = name.title()
...         return 'Hello, ' + correct_name + '!'
...     else:
...         return 'Hello, World!'
... 
>>> hello()
'Hello, World!'
>>> hello('')
'Hello, World!'
>>> hello('john')
'Hello, John!'
>>>
Всё пишем ясно, никаких загадок и шарад читателю, расчитывая на то, какой он умный, не оставляем. Если задано какое-то условие жёстко, читатель должен о нём быстро прочитать за секунду, а не догадаться за n минут и потом ещё думать “а ставилось это условие в задаче или оно автоматом идёт просто?”.

Также корректировка имени выделена в отдельный оператор, чтобы этот отдельный оператор можно было легко вывести на сторону в новую функцию корректировки имени, которая может проводить более глубокую корректировку и принимать для этой корректировки множество параметров. Таким образом, выделяя этот этап заранее, делаем код легко расширяемым, без необходимости его предварительного разделения для добавления более полной функциональности.
GP
py.user.next
Большое спасибо за помощь, в освоении этой не лёгкой но очень увлекательной науки!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB