Возврат нескольких значений из функции

Помогите разобраться как вернуть несколько значений из функции через указатель. Нужно посчитать корни квадратного уравнения с помощью функции и сделать так, чтобы функция возвращала каждый корень (когда их два) по отдельности.
| Здесь вы можете заказать любую студенческую или школьную работу. |
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Возврат нескольких значений из функции
Здравствуйте, Подскажите пожалуйста, как можно передать из функции 2 результата, например, в.
Возврат нескольких значений из функции
У меня было задание в двух матрицах найти одинаковые элементы вывести их и их индексы. Сделать.
Возврат функцией нескольких значений
Привет.Как сделать так чтобы функция возвращала несколько значений с помощью классов.Знаю что плохо.

Возврат нескольких значений структурной переменной
Как добиться возврата значений типа sterling? Без возврата значения всё идеально, с возвратом.
![]()
![]()
35849 / 20105 / 4193
Регистрация: 12.02.2012
Сообщений: 33,290
Записей в блоге: 13
Самое простое — создать структуру и возвращать указатель на нее.
Добавлено через 25 минут
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
#include #include using namespace std; typedef struct roots { int num; double x1; double x2; } roots; roots *solver(double a, double b, double c) { double discr=b*b-4*a*c; roots *r = new roots; if (discr > 0) { r->num=2; r->x1=(-b+sqrt(discr))/(2.0*a); r->x2=(-b-sqrt(discr))/(2.0*a); } else if (discr 0) { r->num=0; } else { r->num=1; r->x1=-b/(2.0*a); } return r; } int main() { double a,b,c; cout <"a="; cin >> a; cout <"b="; cin >> b; cout <"c="; cin >> c; roots *s=solver(a,b,c); if (s->num==0) cout <"no roots"; else if (s->num==1) cout <"x=" ->x1; else cout <"x1=" ->x1 <" x2=" ->x2; delete s; return 0; }
Как вернуть несколько значений из функции в php?
В PHP нельзя вернуть несколько значений из функции, как это делается в некоторых других языках. return всегда возвращает только одно значение. Вы можете использовать массив для возврата нескольких значений из функции.
function myFunction() $value1 = 1; $value2 = 2; $value3 = 3; $value4 = 'four'; $value5 = [10, 11, 12]; return [ 'value1' => $value1, 'value2' => $value2, 'value3' => $value3, 'value4' => $value4, 'value5' => $value5, ]; > print_r(myFunction()); // => [ // => 'value1' => 1, // => 'value2' => 2, // => 'value3' => 3, // => 'value4' => 'four', // => 'value5' => [10, 11, 12], // => ];
Как вернуть сразу несколько значений из функции в Python 3
Сегодня мы делимся с вами переводом статьи, которую нашли на сайте medium.com. Автор, Vivek Coder, рассказывает о способах возврата значений из функции в Python и объясняет, как можно отличить друг от друга разные структуры данных.

Фото с сайта Unsplash. Автор: Vipul Jha
Python удобен в том числе тем, что позволяет одновременно возвращать из функции сразу несколько значений. Для этого нужно воспользоваться оператором return и вернуть структуру данных с несколькими значениями — например, список общего количества рабочих часов за каждую неделю.
def hours_to_write(happy_hours): week1 = happy_hours + 2 week2 = happy_hours + 4 week3 = happy_hours + 6 return [week1, week2, week3] print(hours_to_write(4)) # [6, 8, 10]
Структуры данных в Python используются для хранения коллекций данных, которые могут быть возвращены посредством оператора return . В этой статье мы рассмотрим способы возврата нескольких значений с помощью подобных структур (словарей, списков и кортежей), а также с помощью классов и классов данных (Python 3.7+).
Способ 1: возврат значений с помощью словарей
Словари содержат комбинации элементов, которые представляют собой пары «ключ — значение» ( key:value ), заключенные в фигурные скобки ( <> ).
Словари, на мой взгляд, это оптимальный вариант для работы, если вы знаете ключ для доступа к значениям. Далее представлен словарь, где ключом является имя человека, а соответствующим значением — возраст.
people=
А теперь перейдем к функции, которая возвращает словарь с парами «ключ — значение».
# A Python program to return multiple values using dictionary # This function returns a dictionary def people_age(): d = dict(); d['Jack'] = 30 d['Kim'] = 28 d['Bob'] = 27 return d d = people_age() print(d) #
Способ 2: возврат значений с помощью списков
Списки похожи на массивы, сформированные с использованием квадратных скобок, однако они могут содержать элементы разных типов. Списки также отличаются от кортежей, поскольку являются изменяемым типом данных. То есть любой список может меняться.
Списки — одна из наиболее универсальных структур данных в Python, потому что им не обязательно сохранять однородность (в них можно включать строки, числа и элементы). Иногда списки даже используют вместе со стеками или очередями.
# A Python program to return multiple values using list def test(): str1 = "Happy" str2 = "Coding" return [str1, str2]; list = test() print(list) # ['Happy', 'Coding']
Вот пример, где возвращается список с натуральными числами.
def natural_numbers(numbers = []): for i in range(1, 16): numbers.append(i) return numbers print(natural_numbers()) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
Способ 3: возврат значений с помощью кортежей
Кортежи — это упорядоченные неизменяемые объекты в Python, которые обычно используются для хранения коллекций неоднородных данных.
Кортежи напоминают списки, однако их нельзя изменить после того, как они были объявлены. А еще, как правило, кортежи быстрее в работе, чем списки. Кортеж можно создать, отделив элементы запятыми: x, y, z или (x, y, z) .
На этом примере кортеж используется для хранения данных о сотруднике (имя, опыт работы в годах и название компании).
Bob = ("Bob", 7, "Google")
А вот пример написания функции для возврата кортежа.
# A Python program to return multiple values using tuple # This function returns a tuple def fun(): str1 = "Happy" str2 = "Coding" return str1, str2; # we could also write (str1, str2) str1, str2= fun() print(str1) print(str2) # Happy Coding
Обратите внимание: мы опустили круглые скобки в операторе return , поскольку для возврата кортежа достаточно просто отделить каждый элемент запятой (как показано выше).
Не забывайте, что кортеж можно создать с помощью запятой вместо круглых скобок. Круглые скобки требуются только в тех случаях, когда используются пустые кортежи или вам нужно избежать синтаксической неточности.
Чтобы лучше разобраться в кортежах, обратитесь к официальной документации Python 3 (документация приведена на английском языке. — Прим. ред.).
Ниже показан пример функции, которая использует для возврата кортежа круглые скобки.
def student(name, class): return (name, class) print(student("Brayan", 10)) # ('Brayan', 10)
Повторюсь, кортежи легко перепутать со списками (в конце концов, и те, и другие представляют собой контейнер, состоящий из элементов). Однако нужно помнить о фундаментальном различии: кортежи изменить нельзя, а списки — можно.
Способ 4: возврат значений с помощью объектов
Тут все так же, как в C/C++ или в Java. Можно просто сформировать класс (в C он называется структурой) для сохранения нескольких признаков и возврата объекта класса.
# A Python program to return multiple values using class class Intro: def __init__(self): self.str1 = "hello" self.str2 = "world" # This function returns an object of Intro def message(): return Intro() x = message() print(x.str1) print(x.str2) # hello world
Способ 5: возврат значений с помощью классов данных (Python 3.7+)
Классы данных в Python 3.7+ как раз помогают вернуть класс с автоматически добавленными уникальными методами, модулем typing и другими полезными инструментами.
from dataclasses import dataclass @dataclass class Item_list: name: str perunit_cost: float quantity_available: int = 0 def total_cost(self) -> float: return self.perunit_cost * self.quantity_available book = Item_list("better programming.", 50, 2) x = book.total_cost() print(x) print(book) # 100 Item_list(name='better programming.', perunit_cost=50, quantity_available=2)
Чтобы лучше разобраться в классах данных, обратитесь к официальной документации Python 3 (документация приведена на английском языке. — Прим. ред.).
Вывод
Цель этой статьи — ознакомить вас со способами возврата нескольких значений из функции в Python. И, как вы видите, этих способов действительно много.
Учите матчасть и постоянно развивайте свои навыки программирования. Спасибо за внимание!
- python 3
- python
- программирование для начинающих
- программирование
- функции
- data science
- Блог компании Plarium
- Python
- Программирование
Функция, которая возвращает несколько значений


Функция F1, которая не принимает и не возвращает значений, но выводит на экран любое сообщение
На языке С/C++ написать программу в которой имеется функция F1, которая не принимает и не.

Функция, которая возвращает string
Всем привет. Есть пример самого элементарного многофайлового проекта, но он не хочет.

Функция, которая возвращает структуру
Не поддаётся компиляции. В чём дело? Как с этим работать? Не нашёл ответа и буду благодарен, если.
Функция которая возвращает класс
Есть функция считывания вектора с формы Вызов функции выглядит так .
![]()
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
Либо ссылки, либо указатели, либо описать структуру, представляющую весь набор желаемых значений и возвращать её экземпляр.
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
Нет, функция возвращает только одного значение, или вообще ничего.
Но можно сделать так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#include void func (int *x, int *y) { *x+=5; *y+=3; } int main (void) { int a=5; int b=10; std::cout "Before: a=" a "; b=" b; std::cout std::endl; func (&a, &b); std::cout "After: a=" a "; b=" b; std::cout std::endl; return 0; }