#python
#python
Вопрос:
Я новичок в разработке на Python, и я видел код, который кажется мне слишком сложным. Фактический код
def somefunction():
return 5 3
Когда я вызвал функцию, она возвращает мне ответ как 8
…
Метод кода, который я видел в Интернете:
def somefunction():
return( somefunction(5 3))
Когда я вызвал эту функцию, она выдала мне ошибку типа TypeError: somename() takes 0 positional arguments but 1 was given
Я немного смущен вторым методом; можно ли это сделать так? В этом случае мы используем функцию во втором методе…
Комментарии:
1. Где вы это видели?
2. @Christian проверьте эту ссылку и перейдите в раздел python .. вы можете увидеть код .. но этот код работает нормально..
3. @user3783784 какая ссылка?
4. В чем именно здесь проблема? Вы хотите знать, могут ли функции вызывать себя (да, это называется рекурсией)? Вы хотите знать, почему это не работает (вы пытаетесь передать аргументы, когда функция не определяет параметров)? Вы действительно должны прочитать руководство .
5. @user3783784 почему вы задаете мне вопрос о чужом ответе? Вы даже не говорите мне, какую ошибку вы получаете. Вам действительно нужно ознакомиться с основами — перейдите по ссылке в моем предыдущем комментарии.
Ответ №1:
Во втором примере используется рекурсия. Проблема в том, что в функции:
def somefunction():
return somefunction(5 3)
мы делаем somefunction(5 3)
, что означает, что мы ожидаем, что somefunction
это принимает параметр (путем указания аргумента 5 3
), когда это не так. Следовательно, выдается ошибка.
Это можно исправить, дав определение параметра:
def somefunction(a): # a is a parameter
return somefunction(5 3)
Хотя, обратите внимание, что:
- Это все еще не очень хорошая функция (почему она принимает
a
и возвращает5 3
). - Это показывает бесконечную рекурсию.
Обновить
Согласно запросу OPs.
def add_three(number):
return number 3
Комментарии:
1. мне помогло ..:) .. большое спасибо
2. ..но когда я вызвал это как somefunction(1), это выдает мне ошибку
3. Я думаю, вам нужно хорошо освоить основы программирования на Python. Лучше вы можете пройти курс из: codecademy.com/tracks/python это вряд ли потребует от вас 1 недели из расчета 2 часа в день. Удачи.
4. @Gaurang .. можете ли вы сказать мне, как вызвать эту рекрутинговую функцию??
5. @user3783784 ну, конечно , это так, как говорит вам Гауранг в ответе. Подумайте об этом, это не сложно:
somefunction
вызовыsomefunction
, которые вызываютsomefunction
, которые вызывают… Что, по-вашему, должно было произойти ?!