19 / 5 / 1
Регистрация: 28.03.2015
Сообщений: 74

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

22.03.2019, 14:14. Показов 2421. Ответов 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
5228 / 3474 / 1174
Регистрация: 21.03.2016
Сообщений: 8,301
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru