Python

Программирование на питоне .Нужно решить долго мучаюсь на этой задаче

2.
Сделаем так, чтобы можно было задавать вопросы не только Анфисе, но и самим друзьям, обращаясь к ним по имени. А друзья ответят, в каком они городе.
Добавим в запросы имена. Вопрос к Анфисе будет звучать так: Анфиса, где все мои друзья? Ответ на этот вопрос уже подготовлен, надо лишь немного изменить код.
А вопрос к кому-то из друзей будет таким: Коля, ты где?. Анфиса должна ответить: Коля в городе Красноярск.
Структура кода:
в первую очередь теперь будет вызываться функция process_query(query) (вы сейчас её напишете), она получает запрос и разделяет его на имя и вопрос (например, запрос Анфиса, где все мои друзья? должен быть разделён на Анфиса и где все мои друзья?);
если в запросе передано имя Анфиса — будет вызываться функция process_anfisa() с аргументом — вопросом (например — где все мои друзья?);
Объявите в коде функцию process_query(query), в ней с помощью метода split() разделите строку query две части: на имя и вопрос.
После этого напишите проверку, ветвление if:
если имя — «Анфиса», вызовите функцию process_anfisa(), при вызове передайте в неё аргументом вопрос, получившийся при разделении строки query. Верните результат выполнения этой функции.
если же имя — не «Анфиса», то функция пока не будет ничего делать, этот вариант обработаем в следующей задаче.
Отредактируйте список вызовов функции, размещённый в конце программы:
должна вызываться функция process_query(), вызовы должны выглядеть так:
print(process_query('Текст_запроса'))
все запросы должны начинаться с имени Анфиса:
Анфиса, сколько у меня друзей?
Анфиса, кто все мои друзья?
Анфиса, где все мои друзья?
Анфиса, кто виноват?
добавьте ещё один вызов, для проверки: print(process_query('Соня, ты где?')). На этот запрос Анфиса вернет None, но не сломается.
-------------------------------------------------------------------------------------------------------------------------
DATABASE = {
'Серёга': 'Омск',
'Соня': 'Москва',
'Миша': 'Москва',
'Дима': 'Челябинск',
'Алина': 'Красноярск',
'Егор': 'Пермь',
'Коля': 'Красноярск'
}

def format_friends_count(friends_count):
if friends_count == 1:
return '1 друг'
elif 2 <= friends_count <= 4:
return f'{friends_count} друга'
else:
return f'{friends_count} друзей'


def process_anfisa(query):
if query == 'сколько у меня друзей?':
count = len(DATABASE)
format_friends_count(count)
return f'У тебя {format_friends_count(count)}.'
elif query == 'кто все мои друзья?':
friends_string = ', '.join(DATABASE)
return f'Твои друзья: {friends_string}'
elif query == 'где все мои друзья?':
unique_cities = set(DATABASE.values())
cities_string = ', '.join(unique_cities)
return f'Твои друзья в городах: {cities_string}'
else:
return '<неизвестный запрос>'


print('Привет, я Анфиса!')
print(process_anfisa('сколько у меня друзей?'))
print(process_anfisa('кто все мои друзья?'))
print(process_anfisa('где все мои друзья?'))
print(process_anfisa('кто виноват?'))
Да емае, опять эта Анфиса..)

А в чем проблема? Написать return None?
После def process_anfisa(query):
вставь строку
if query.split(",")[0] != "Анфиса": return None
Ну и замени print так как тебе в задании сказано.
Просто ...дмитрий
Просто ...дмитрий
34 935
Лучший ответ
Леонид Власенко самому бесит
Леонид Власенко жалуется всё равно
Леонид Власенко вот код который сделан а вот ошибка :
Traceback (most recent call last):
File "main.py", line 34, in
print(process_query('Анфиса, сколько у меня друзей?'))

NameError: name 'process_query' is not defined
Просто ...дмитрий Ну тоесть так только с текстом новым
Алех Саблин def process_query(query):
elements = query.split(', ')
if elements[0] == 'Анфиса':
return process_anfisa(elements[1])
Лёнчик Васильев def process_query(query):
elements = query.split(', ')
if elements[0] == 'Анфиса':
return process_anfisa(elements[1])


print('Привет, я Анфиса!')
print(process_query('Анфиса, сколько у меня друзей?'))
print(process_query('Анфиса, кто все мои друзья?'))
print(process_query('Анфиса, где все мои друзья?'))
print(process_query('Анфиса, кто виноват?'))
print(process_query('Соня, ты где?'))
Сергей Чумаченко def process_query(query):

elements = query.split(', ')

if elements[0] == 'Анфиса':

return process_anfisa(elements[1])



print('Привет, я Анфиса!')

print(process_anfisa('сколько у меня друзей?'))

print(process_anfisa('кто все мои друзья?'))

print(process_anfisa('где все мои друзья?'))

print(process_anfisa('кто виноват?'))

print(process_query("Коля,ты где?"))
 def process_query(query): 
name, question = query.split(',')
name = name.strip()
question = question.strip()

if name == "Anfisa":
return process_anfisa(question)
else:
return None

def process_anfisa(question):
if question == "how many friends do I have?":
return "You have 5 friends."
elif question == "who are all my friends?":
return "Your friends are: Kolya, Sonya, Masha, Dima, and Petya."
elif question == "where are all my friends?":
return "Your friends are in different cities."
elif question == "who is to blame?":
return "I don't know who is to blame."
else:
return "Invalid question."

print(process_query("Anfisa, how many friends do I have?"))
print(process_query("Anfisa, who are all my friends?"))
print(process_query("Anfisa, where are all my friends?"))
print(process_query("Anfisa, who is to blame?"))

print(process_query("Sonya, where are you?")) # this will return None
Шyxpат I?pulatov
Шyxpат I?pulatov
1 192
DATABASE = {

'Серёга': 'Омск',

'Соня': 'Москва',

'Миша': 'Москва',

'Дима': 'Челябинск',

'Алина': 'Красноярск',

'Егор': 'Пермь',

'Коля': 'Красноярск'

}


# Новая функция, она возвращает правильное словосочетание, склоняя слово "друзья"

# в зависимости от того, какое число передано в аргументе friends_count

def format_friends_count(friends_count):

if friends_count == 1:

return '1 друг'

elif 2 <= friends_count <= 4:

return f'{friends_count} друга'

else:

return f'{friends_count} друзей'



def process_anfisa(query):

if query == 'сколько у меня друзей?':

count = len(DATABASE)

format_friends_count(count)

# Вызовите функцию format_friends_count() и передайте в неё count.

# Отредактируйте строку ниже: в ней должно использоваться выражение,

# которое вернёт функция format_friends_count()

return f'У тебя {format_friends_count(count)}.'

elif query == 'кто все мои друзья?':

friends_string = ', '.join(DATABASE)

return f'Твои друзья: {friends_string}'

elif query == 'где все мои друзья?':

unique_cities = set(DATABASE.values())

cities_string = ', '.join(unique_cities)

return f'Твои друзья в городах: {cities_string}'

else:

return '<неизвестный запрос>'


def process_query(query):

elements = query.split(', ')

if elements[0] == 'Анфиса':

return process_anfisa(elements[1])

else:

return






print('Привет, я Анфиса!')

print(process_query('Анфиса, сколько у меня друзей?'))

print(process_query('Анфиса, кто все мои друзья?'))

print(process_query('Анфиса, где все мои друзья?'))

print(process_query('Анфиса, кто виноват?'))

print(process_query('Соня, ты где?'))
HB
Hikmet Babaev
373
def process_anfisa(query):
....if query == 'сколько у меня друзей?':
........count = len(DATABASE)
........return f'У тебя {count} друзей.'
....elif query == 'кто все мои друзья?':
........friends_string = ', '.join(DATABASE)
........return f'Твои друзья: {friends_string}'
....elif query == 'где все мои друзья?':
........unique_cities = set(DATABASE.values())
........cities_string = ', '.join(unique_cities)
........return f'Твои друзья в городах: {cities_string}'
....else:
........return '<неизвестный запрос>'
........return 'None'

def process_query(query):
....if query.split(",")[0] != "Анфиса": return None

print('Привет, я Анфиса!')
print(process_anfisa('сколько у меня друзей?'))
print(process_anfisa('кто все мои друзья?'))
print(process_anfisa('где все мои друзья?'))
print(process_anfisa('кто виноват?'))
print(process_query('Соня, ты где?'))
format_friends_count(7)
DATABASE = {
'Серёга': 'Омск',
'Соня': 'Москва',
'Миша': 'Москва',
'Дима': 'Челябинск',
'Алина': 'Красноярск',
'Егор': 'Пермь',
'Коля': 'Красноярск'
}

# Новая функция, она возвращает правильное словосочетание, склоняя слово "друзья"
# в зависимости от того, какое число передано в аргументе friends_count
def format_friends_count(friends_count):
if friends_count == 1:
return '1 друг'
elif 2 <= friends_count <= 4:
return f'{friends_count} друга'
else:
return f'{friends_count} друзей'


def process_anfisa(query):
if query == 'сколько у меня друзей?':
count = len(DATABASE)
# Вызовите функцию format_friends_count() и передайте в неё count.
# Отредактируйте строку ниже: в ней должно использоваться выражение,
# которое вернёт функция format_friends_count()
return f'У тебя {format_friends_count(count)}.'



elif query == 'кто все мои друзья?':
friends_string = ', '.join(DATABASE)
return f'Твои друзья: {friends_string}'
elif query == 'где все мои друзья?':
unique_cities = set(DATABASE.values())
cities_string = ', '.join(unique_cities)
return f'Твои друзья в городах: {cities_string}'
else:
return '<неизвестный запрос>'
def process_query(query):
# Допишите код тела функции
elements = query.split(', ')
if elements[0] == 'Анфиса':
return process_anfisa(elements[1])
else:
return None




print('Привет, я Анфиса!')
print(process_query('Анфиса, сколько у меня друзей?'))
print(process_query('Анфиса, кто все мои друзья?'))
print(process_query('Анфиса, где все мои друзья?'))
print(process_query('Анфиса, кто виноват?'))
print(process_query('Соня, ты где?'))
format_friends_count(7)
DATABASE = {

'Серёга': 'Омск',

'Соня': 'Москва',

'Миша': 'Москва',

'Дима': 'Челябинск',

'Алина': 'Красноярск',

'Егор': 'Пермь',

'Коля': 'Красноярск'

}


# Новая функция, она возвращает правильное словосочетание, склоняя слово "друзья"

# в зависимости от того, какое число передано в аргументе friends_count

def format_friends_count(friends_count):

if friends_count == 1:

return '1 друг'

elif 2 <= friends_count <= 4:

return f'{friends_count} друга'

else:

return f'{friends_count} друзей'



def process_anfisa(query):

if query == 'сколько у меня друзей?':

count = len(DATABASE)

# Вызовите функцию format_friends_count() и передайте в неё count.

# Отредактируйте строку ниже: в ней должно использоваться выражение,

# которое вернёт функция format_friends_count()

return f'У тебя {count} друзей.'

elif query == 'кто все мои друзья?':

friends_string = ', '.join(DATABASE)

return f'Твои друзья: {friends_string}'

elif query == 'где все мои друзья?':

unique_cities = set(DATABASE.values())

cities_string = ', '.join(unique_cities)

return f'Твои друзья в городах: {cities_string}'

else:

return '<неизвестный запрос>'

return 'None'



def process_query(query):

if query.split(",")[0] != "Анфиса": return None

print('Привет, я Анфиса!')

print(process_anfisa('сколько у меня друзей?'))

print(process_anfisa('кто все мои друзья?'))

print(process_anfisa('где все мои друзья?'))

print(process_anfisa('кто виноват?'))

print(process_query('Соня, ты где?'))

format_friends_count(7)
Миша Усик не плучается, жалуется на: print(process_query('Соня, ты где?'))
NameError: name 'process_query' is not defined
DATABASE = {
'Серёга': 'Омск',
'Соня': 'Москва',
'Миша': 'Москва',
'Дима': 'Челябинск',
'Алина': 'Красноярск',
'Егор': 'Пермь',
'Коля': 'Красноярск'
}
def format_friends_count(friends_count):
if friends_count == 1:
return '1 друг'
elif 2 <= friends_count <= 4:
return f'{friends_count} друга'
else:
return f'{friends_count} друзей'

def process_query(query):
elements = query.split(', ')
if elements[0] == 'Анфиса':
return process_anfisa(elements[1])
return 'None'

def process_anfisa(query):
if query == 'сколько у меня друзей?':
count = len(DATABASE)
format_friends_count(count)
return f'У тебя {format_friends_count(count)}.'
elif query == 'кто все мои друзья?':
friends_string = ', '.join(DATABASE)
return f'Твои друзья: {friends_string}'
elif query == 'где все мои друзья?':
unique_cities = set(DATABASE.values())
cities_string = ', '.join(unique_cities)
return f'Твои друзья в городах: {cities_string}'
else:
return '<неизвестный запрос>'
print('Привет, я Анфиса!')
print(process_query('Анфиса, сколько у меня друзей?'))
print(process_query('Анфиса, кто все мои друзья?'))
print(process_query('Анфиса, где все мои друзья?'))
print(process_query('Анфиса, кто виноват?'))
print(process_query('Соня, ты где?'))
так как решил?
def process_anfisa(query):
if query == 'Сколько у меня друзей?':
count = len(DATABASE)
return 'У тебя ' + str(count) + ' друзей.'
elif query == ('Кто все мои друзья?'):
friends_string = ''
for friend in DATABASE:
friends_string += friend + ' '
return 'Твои друзья: ' + friends_string
elif query == ('Где все мои друзья?'):
return 'Я поняла, это вопрос про города!'

else:
return '<неизвестный запрос>'

print(process_anfisa('Где все мои друзья?'))
print('Привет, я Анфиса!')
print(process_anfisa('Сколько у меня друзей?'))
print(process_anfisa('Кто все мои друзья?'))

process_anfisa( 'Где все мои друзья?')


я так решил,знаю,проще всего,но а какая разница
def check_query(query):
# Допишите код тела функции
elements = (query.split(','))
if elements[0] == 'Анфиса':
return 'запрос к Анфисе'
else:
return 'запрос к кому-то ещё'