Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
19 / 5 / 1
Регистрация: 28.03.2015
Сообщений: 74

Тема: Функции, передача аргументов python

22.03.2019, 14:14. Показов 2395. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрые люди, может кто-нибудь помочь в разборе темы Функции, уделив при этом ну минут 20 максимум
Есть вопросы, которые я не допонимаю, столкнувшись с изучением темы Функции (создание функций,передача аргументов)

Буду рад, если кто-нибудь напишет в вк (удобнее связь)
id374834438

Нету друзей программистов, которые помогли бы мне, есть только этот славный форум, который всегда помогает мне и помогал.
А здесь задавать такие примитивные вопросы даже стыдно.
Я самоучка, и не хочу двигаться дальше, пока досконально не пойму отдельные темы, касающиеся программирования.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.03.2019, 14:14
Ответы с готовыми решениями:

Переменное число аргументов в функции python
Здравствуйте, скажите пожалуйста, можно ли данную функцию как - нибудь преобразовать в функцию с переменным количеством аргументов? ...

Запуск из VBS и обратная передача аргументов из Python в VBS
Запускаю Python скрипт из VBS скрипта с аргументами (не спрашивайте почему не напрямую а именно из VBS. так надо.) VBS запускает скрипт с...

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

8
 Аватар для Semen-Semenich
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
22.03.2019, 14:27
Цитата Сообщение от bozzly Посмотреть сообщение
А здесь задавать такие примитивные вопросы даже стыдно
задавайте. не все сразу рождаются программистами и мастерами. вам больше ответят и вы возможно поймете на примерах ответ на свой вопрос.
1
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
22.03.2019, 14:29
Цитата Сообщение от bozzly Посмотреть сообщение
А здесь задавать такие примитивные вопросы даже стыдно.
Ничего постыдного в этом нет.
Стыдно - это когда человек даже не пытается сам решить задание, а сразу же бежит на форум.
Можете прям в этой теме писать свои вопросы. Думаю, Вам ответят.

P.S. на большинство примитивных вопросов есть уже ответы в интернете.
1
19 / 5 / 1
Регистрация: 28.03.2015
Сообщений: 74
22.03.2019, 14:56  [ТС]
Я не понимаю, именно, как работать с функциями
Например я создал три функции, первая - принимает ввод от пользователя, вторая принимает данные, которые пользователь ввел, третья, которая будет принимать один аргумент и соответственно выводить на экран полученный результат
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def main():
    money = float(input('Количество денег: '))
    years = float(input('Количество лет: '))
    return money, years
 
def function(money, years):
    for _ in range(years):
        money *= 1.1
 
        if _ == years:
            return money
 
def rezult(money):
    print(money)
 
 
money, years = main()
function(money, years)
rezult(money)
в первой функции 'main()' - я не задал никаких входных данных, ибо скобка пустая
дальше принял ввод от пользователя и вернул получается значения в функцию 'main()' тобишь после возврата в эту функцию у меня вернулись значения, которые ввел пользователь, в эту скобку, правильно?

Дальше функция function(money, years)
Дальше я рассчитывал на то, что в эту функцию будут входить 2 аргумента, которые пользователь введет.

А в следующей функции rezult(money) я опять же планировал, что туда поступит один аргумент, который получила функция function(money), и уже вывести непосредственно это число

Дальше я назначил функции main() переменные money, years
Обратился к функции function() - и передал значения переменных money, years, которые ввел пользователь
И хотел обратиться к последней функции с одним аргументом (money)

Но и тут у меня возникла ошибка 'float' object cannot be interpreted as an integer

Не совсем понимаю, когда нужно и не нужно оставлять скобки пустыми, как обращаться к функции, чтобы она работала без ошибок, почему я не могу просто взять и написать при обращении к функциям вот такой код:
Python
1
2
3
main()
function(main())
rezult(function())
Ведь первая функция возвращает же значения (от пользователя) и соответственно хранится значение в этой функции
Вторая функция принимает эти значения и возвращает одно значение, которое опять же хранится в этой функции
И третья функция тоже принимает это значение и выводит на экран, я честно говоря немного запутался, но очень хотелось бы понять, что да как
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
22.03.2019, 15:29
range принимает только целое число, а вы years привели к вещественному.

Не понятно что вы хотели сказать этой конструкцией:
Python
1
2
3
4
5
for _ in range(years):
        money *= 1.1
 
        if _ == years:
            return money
Но предположу, что вернуть значение после выполнения цикла, тогда:
Python
1
2
3
4
for _ in range(years):
        money *= 1.1
 
return money
Зачем делать отдельную функцию для print? Фактически ваша функция result есть
Python
1
2
def my_print(msg):
    print(msg)
Можно просто использовать print().
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
22.03.2019, 15:32
Лучший ответ Сообщение было отмечено bozzly как решение

Решение

Цитата Сообщение от bozzly Посмотреть сообщение
Не совсем понимаю, когда нужно и не нужно оставлять скобки пустыми, как обращаться к функции
Просто прочитайте.
http://pythonicway.com/python-functions
https://pythonworld.ru/tipy-da... entax.html
И далее в google: python аргументы функции
1
19 / 5 / 1
Регистрация: 28.03.2015
Сообщений: 74
22.03.2019, 15:39  [ТС]
Цитата Сообщение от ioprst Посмотреть сообщение

Зачем делать отдельную функцию для print? Фактически ваша функция result есть
Python
1
2
def my_print(msg):
    print(msg)
Можно просто использовать print().

Я сделал функцию для того, чтобы чуть отточить навыки создания функций, передачи аргументов
И понимаю, что можно обойтись вот такой записью
Python
1
2
money, years = main()
print(function(money, years))
просто сам факт того, что я не совсем понимаю как работают функции, как сохраняют значения и как лучше обращаться к функциям
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
22.03.2019, 15:49
Цитата Сообщение от bozzly Посмотреть сообщение
money, years = main()
print(function(money, years))
это правильное обращение в вашем случае

Python
1
2
3
4
5
for _ in range(years):
        money *= 1.1
 
        if _ == years:
            return money
Это условие у вас никогда не выполнится, т.к. range(n) выдает значения из диапазона [0, 1, ..., n-1].
1
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
22.03.2019, 17:09
Цитата Сообщение от bozzly Посмотреть сообщение
Но и тут у меня возникла ошибка 'float' object cannot be interpreted as an integer
это потому что у вас переменная years - float
Цитата Сообщение от bozzly Посмотреть сообщение
years = float(input('Количество лет: '))
а range работает с типом int
Цитата Сообщение от bozzly Посмотреть сообщение
for _ in range(years):
Тут 2 варианта, либо сразу в int превращать (при вводе ещё), либо в range (можно ещё во время передачи параметров в функцию, в принципе).

Цитата Сообщение от bozzly Посмотреть сообщение
Python
1
2
if _ == years: 
    return money
по поводу этого Вам уже ответили.

Добавлено через 2 минуты
Цитата Сообщение от bozzly Посмотреть сообщение
Но и тут у меня возникла ошибка 'float' object cannot be interpreted as an integer
и если взглянуть на полный трейсбек, то там должна быть указана строка, на которой возникла ошибка.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.03.2019, 17:09
Помогаю со студенческими работами здесь

Решение задач,тема множественные числа, Передача списка в аргумент функции
Напишите функцию choose_plural, которая принимает два аргумента: целое число (количество предметов) и строку содержащую три слова...

Передача аргументов функции
Здравствуйте! Есть файл-функция myfun.m: function F = myfun(s, a) for j = 1:5 F(j) = s(1) + s(2) - a(j); %...

Передача аргументов функции
Вот такие записи, что означают, что будет происходить: function myfucnct(array $elems) function myfucnct(string $elems) function...

Передача аргументов функции
Как передать функции переменную неизвестного типа?

Передача аргументов функции
Всем привет. Писал код не зная, правильно ли это. В общем застрял на составлении прототипов функции и функции мэин. И ещё, можно ли так как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru