Как передать массив в функцию python
Перейти к содержимому

Как передать массив в функцию python

  • автор:

Как передать массив в функцию в Python?

Массив — это объект, его можно передать в функцию как и любой другой объект (число, строку и т.д.) в качестве аргумента.

# можно передать напрямую print([1, 2, 3, 4]) # [1, 2, 3, 4] # можно после присваивания переменной fruits = ['apple', 'banana', 'orange'] print(fruits) # ['apple', 'banana', 'orange'] 

передача массива в функцию на питоне [закрыт]

Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.

Закрыт 4 года назад .

Как на питоне передать массив на выход в функцию? Делаю минимализацию по методу квайна, там очень полезно будет это использование.

Отслеживать
задан 5 окт 2019 в 5:35
Артём Подковыров Артём Подковыров
35 1 1 золотой знак 1 1 серебряный знак 5 5 бронзовых знаков
Так же, как аргумент любого другого типа.
5 окт 2019 в 5:59

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Под массивом вы скорее всего имеете в виду list? Не совсем понятно в чем проблема его передачи в функцию:

def my_function(some_list): #code pass my_function([1, 2, 3, 4, 5]) 

Или предварительно записав его в переменную

my_list = [1, 2, 3, 4, 5] my_function(my_list) 

Отслеживать
ответ дан 5 окт 2019 в 8:04
Константин Комиссаров Константин Комиссаров
2,526 15 15 серебряных знаков 34 34 бронзовых знака
invalid syntax же!
5 окт 2019 в 16:35
@andreymal где? почему?
5 окт 2019 в 16:37
Вы сами-то пробовали первый пример запустить?
5 окт 2019 в 16:38
@andreymal, а, все, тупанул, сейчас поправлю)
5 окт 2019 в 16:39

Да и второй пример тоже просто не работает, потому что локальная переменная my_list перекроет глобальную, и глобальный список будет недоступен внутри функции

5 окт 2019 в 16:40

  • python
  • массивы
  • функции
  • return
    Важное на Мете
Похожие

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как передать массив в функцию

Основы программирования 2.0

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

И, продолжая изучать программирование, вы неизбежно столкнётесь с необходимостью передавать в подпрограммы параметры, которые представляют собой сложные типы данных, такие как массивы.

И очень часто, пытаясь передать массив в процедуру или функцию, новички сталкиваются с очень неприятным для них случаем — они просто не могут это сделать. Потому что вот такая попытка:

function TestFunc(M : array[1..8] of Byte) : boolean;

окажется неудачной — программа не будет создана, а компилятор выдаст ошибку:

Ошибка при передаче массива

А дело в том, что передавать массивы в подпрограммы таким образом нельзя!

Как же быть? Не отказываться же от этого? Ведь передавать массивы в подпрограммы приходится довольно часто!

Но как это сделать?

Есть два способа:

  • Передать в функцию указатель на массив.
  • Создать новый тип данных.

Первый способ рассматривать не будем, потому что для новичка он может оказаться малопонятным. Если кому любопытно, то у меня есть книга, посвящённая указателям.

Рассмотрим второй способ. Он очень прост — надо создать пользовательский тип данных, и передавать в функцию уже параметр, имеющий этот тип. И таким образом передать массив в функцию в Паскале, Delphi, Lazarus (да и в большинстве других языков программирования) можно очень даже легко:

program test; type TMas = array[1..8] of Byte; //Создаём новый тип var GM : TMas; //Переменная нового типа //Теперь мы можем передать массив в функцию function TestFunc(M : TMas) : boolean; begin Result := TRUE; end; begin TestFunc(GM); ReadLn; end.

Передача массива в функцию

условие задачи: Объявить два целочисленных массива с разными размерами и написать функцию, которая заполняет их элементы значениями и показывает на экран. Функция должна принимать два параметра – массив и его размер.
вот код:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
def Fill_array(arr, brr, length): arr = [random.randint(0, 25) for _ in range(length)] brr = [random.randint(0, 25) for _ in range(length)] pass def Show_array(arr, brr, length): for i in range(length): print(arr[i], end='\t') for i in range(length): print(brr[i], end='\t') pass length = int(input("Укажите кол-во срок: ")) arr = [] brr = [] Fill_array(arr, brr, length) Show_array(arr, brr, length)

Делал как на с++ , но видимо тут так не работает. Помогите пожалуйста.
Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Передача массива в функцию используя указатель на функцию
У меня имеется готовая программа без передачи функции в функцию указателем, мне нужно передать.

Передача двухмерного массива из функцию в функцию
Допустим у меня есть функция, в которой "генерируется" массив. Но нужно его передать в другую.

Передача массива в функцию и возврат другого массива из неё
Чем мне нравится ВБ.НЕТ — так это очень грамотной, простой и удобной работой с массивами. Они.

Передача двухмерного массива в функцию и изменение элемента массива
Такая проблема! Нужно передать в функцию двухмерный массив и изменить на елемент который равен 0 и.

Эксперт Python

5415 / 3839 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1

Лучший ответ

Сообщение было отмечено Ivan _pupkin как решение

Решение

1 2 3 4 5 6 7 8 9 10
>>> arr = [] >>> brr = [] >>> def Fill_array(arr, brr, length): arr[:] = [random.randint(0, 25) for _ in range(length)] brr[:] = [random.randint(0, 25) for _ in range(length)] >>> Fill_array(arr, brr, 10) >>> arr [16, 18, 24, 15, 10, 17, 15, 12, 18, 5] >>>

ЦитатаСообщение от Ivan _pupkin Посмотреть сообщение

Делал как на с++

А зачем? На python, кстати, в названиях функций верхний регистр не используют.

P.P.S. И зачем использовать pass не по назначению?

1727 / 967 / 199
Регистрация: 22.02.2018
Сообщений: 2,694
Записей в блоге: 6
Garry Galler, А почему нет импорта модуля random. Здесь не полный код, а только фрагмент?

Эксперт Python

5415 / 3839 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1

ЦитатаСообщение от Viktorrus Посмотреть сообщение

только фрагмент

Фрагмент показывающий как присвоить списку значение по ссылке: a[:]=.
import random просто не скопировал сюда из IDLE.

Регистрация: 17.12.2018
Сообщений: 257

ЦитатаСообщение от Garry Galler Посмотреть сообщение

P.P.S. И зачем использовать pass не по назначению?
В видеоуроке говорилось, что если функция ничего не возвращает, то надо писать pass.

Эксперт Python

5415 / 3839 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1

Лучший ответ

Сообщение было отмечено Ivan _pupkin как решение

Решение

ЦитатаСообщение от Ivan _pupkin Посмотреть сообщение

что если функция ничего не возвращает, то надо писать pass.

Неверно. Функция всегда что-то возвращает. Если мы не указываем явного возврата — функция вернет объект None.
А ключевое слово pass используется как заполнитель тела функций (или операторов), которые вообще не содержат ни одной инструкции:

def dummy(): pass # пустая функция-заглушка

так как в Python запрещены пустые блоки.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Передача массива структур в функцию не указывая размера массива
Я читаю с командной строки файл в котором содержится массив структур. Есть библиотека с функцией в.

Передача массива в функцию, и получения массива из функции
Есть Unit1, который использует функцию из Unit2, имеющую следующий вид: function.

Передача массива в функцию
Как записать данные в массив, который в функции и после вызова функции получить эти данные. По.

Передача массива в функцию
Написал такой код. Прога выводит всё правильно как и должна: минимальный элемент массива, сумма.

Передача массива в функцию
Какие есть способы для передачи массивы в функцию. И как передать массив с указателем на него чтобы.

Передача массива в функцию
Помогите разобраться как правильно вписать простейший массив вфункцию #include<iostream>.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *