Форум сайта python.su
Функция вида:
def convert(sum, length, *list): while length>=0: for x in list: new = int(x) * 16 ** length sum = sum + new length = length - 1 return sum
sum = convert(sum=0, length=int(len(list))-1, *list)
Отредактировано Eline (Дек. 6, 2013 11:02:18)
Офлайн
В объявлении функции, length - простой параметр, а не по кейворду, это ты так сделал )
поэтому есть два варианта - либо в объявлении сделать параметр length = 0 (например, и это некрасиво)
либо вызов такой вот:
sum = convert(sum=0, len(list)-1, *list)
sum = convert(sum=0, *list)
Отредактировано Master_Sergius (Дек. 6, 2013 11:53:36)
Офлайн
Master_Sergius
Именованные аргументы должны идти после неименнованых. Неименнованый аргумент можно передать по имени
In [6]: def f(a,b): ...: return a,b ...: In [7]: f(1,2) Out[7]: (1, 2) In [8]: f(a=1,2) File "<ipython-input-8-dda526ab872e>", line 1 f(a=1,2) ^ SyntaxError: non-keyword arg after keyword arg In [9]: f(1,b=2) Out[9]: (1, 2)
Elineчтобы оно запустилось надо вызывать так
В чём заключается ошибка в коде?
sum = convert(0, int(len(list))-1, *list)
Офлайн
и имена sum и list лучше заменить, иначе это придётся делать потом, когда понадобится сумма или список
да и код из-за этого нечитамый: кажется, либо с функциями что-то делается, либо там int и len - тоже переменные
Отредактировано py.user.next (Дек. 9, 2013 00:22:59)
Офлайн