|
0 / 0 / 0
Регистрация: 27.12.2015
Сообщений: 37
|
||||||
Переменное число параметров05.09.2016, 19:46. Показов 11442. Ответов 10
Метки нет (Все метки)
Здравствуйте, начал изучать Python, как прошла неделя уже), скачал книгу "Укус питона", очень доходчивая книжка, но вот не до конца понял одну тему "Переменное число параметров", там довольно простой пример, но мне как человеку с интеллектом ниже среднего все же не до конца все ясно.
0
|
||||||
| 05.09.2016, 19:46 | |
|
Ответы с готовыми решениями:
10
Переменное число параметров
Переменное число аргументов в функции python |
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 06.09.2016, 00:08 | |
|
initial это аргумент со значением по умолчанию, в него будет передано первый переданный аргумент из списка всех аругментов, в numbers будут засунуты все не именованный аргументы, а в keywords все именованные (vegetables, fruits).
Что конкретно не понятно?
1
|
|
|
0 / 0 / 0
Регистрация: 27.12.2015
Сообщений: 37
|
|
| 06.09.2016, 18:42 [ТС] | |
|
То есть initial это "аргумент" к которому присвоили значение 5(значение) и потом это значение будет автоматически присвоено numbers и к keywords? Затем count присвоили initial. Затем идет массив, который делает что то непонятное. number пересчитывает до numbers? или что это за процесс? затем идет count = count + number, откуда number взялся? был же numbers. Дальше аналогично, затем идет return count, это мы "вернули"? Что мы вернули? Простите если не разборчиво.
0
|
|
|
77 / 76 / 57
Регистрация: 07.08.2016
Сообщений: 173
|
|
| 06.09.2016, 19:25 | |
|
initial - это счётчик. initial по умолчанию равно 5, если не присваивается другого при вызове функции. После первого аргумента (initial) может задаваться некоторое количество значений, которые записываются в множество numbers. Дальше можно задать несколько именованных значений, которые запишутся в словарь keywords.
В приведённом примере первый аргумент функции есть число, он меняет значение count с 5 на 10. Следующие три значения записываются в (1, 2, 3), и первый цикл, проходя по этому множество, прибавляет каждое его значение к count. Т.е. после 1-го цикла count = 16. Оставшиеся 2 аргумента записываются в словарь {'fruits': 100, 'vegetables': 50}. Второй цикл прибавляет значение каждого элемента его к счётчику. Т.е. эта функция вернёт значение 166.
0
|
|
|
0 / 0 / 0
Регистрация: 27.12.2015
Сообщений: 37
|
|||||||||||
| 06.09.2016, 19:45 [ТС] | |||||||||||
|
Тоесть
0
|
|||||||||||
|
77 / 76 / 57
Регистрация: 07.08.2016
Сообщений: 173
|
||||
| 06.09.2016, 20:21 | ||||
Каждый проход цикла итератору присваивается поочерёдно значение элемента итерируемого объекта. number будет равно (1, 2, 3). Т.е. в первом цикле number сначала будет присвоено значение 1, потом оно прибавится к count. Потом присваивается и прибавляется значение 2, потом 3. Во втором цикле итератор key проходит по значениям словаря keywords {'fruits': 100, 'vegetables': 50}. Нужно к count прибавить ключи, т.е. числа. Поэтому нужно извлечь ключ из словаря с помощью квадратных скобок. Не знаю, как объяснить ещё подробней.Почитайте получше о циклах.
0
|
||||
|
0 / 0 / 0
Регистрация: 27.12.2015
Сообщений: 37
|
||||||
| 07.09.2016, 19:07 [ТС] | ||||||
|
Давайте пробежимся по коду еще раз, если можно). Вот мы объявили функцию TOTAL, вот мы создали три агрумента, initial, *numbers, **keywords. Зачем то поставили знак "звездочка", затем создали переменную count, присвоили ей значение initial. Затем итерируем, слово то какое непонятное кое как разобрался с переводом на русский), то есть берем переменную и проводим ее, итерируем тоесть создаем массив, "number"- количество раз, цифры (1,2,3) по порядку. Затем переменную count = count + number, производим какую то операцию, тоесть взяли число 10 и стали прибавлять сначала 1, потом 2, потом 3. в общей сумме получили 16. Тогда вопрос, зачем мы это сделали если можно было бы просто взять и сплюсовать это все? Затем идет переменная key, мы берем данные от "vegetables" и "fruits" , а тоесть count=count + keywords[key], а именно то что мы получили с верху, цифру 16, мы ее взяли и приплюсовали к сумме обоих значений, vegetables" и "fruits". И дальше идет return, который возвращает такое колличество раз итерацию, сколько указанно в
0
|
||||||
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
||
| 07.09.2016, 19:14 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 27.12.2015
Сообщений: 37
|
|
| 07.09.2016, 19:24 [ТС] | |
|
а в этом примере не именованные переменные это 1, 2, 3 же? а именованные это vegetables=50, fruits=100?
0
|
|
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 07.09.2016, 19:26 | |
|
Да.
1
|
|
|
0 / 0 / 0
Регистрация: 20.03.2019
Сообщений: 1
|
|
| 20.03.2019, 21:36 | |
|
А зачем нам вообще нужен параметр initial? Ведь без него переменной count можно присвоить 0 и она будет работать как счётчик и программа будет работать также. Объясните пожалуйста какую функцию выполняет параметр initial. Спасибо заранее за ответ))
0
|
|
| 20.03.2019, 21:36 | |
|
Помогаю со студенческими работами здесь
11
QStringList в переменное число параметров
Переменное число параметров шаблона
Переменное число параметров в шаблонном классе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|