Форум сайта python.su
0
def total(initial=5,*numbers, extra_number):
count = initial
for number in numbers:
count += number
count += extra_number
print(count)
total(10, 1, 2, 3, extra_number=50)
total(10, 1, 2, 3)
не могу понять код , 1) зачем тут inital = 5 ? для чего он и почему его равняют count ?
2 ) и объясните пожалуйста
for number in numbers: # о чем это строка?
count += number # count = number +number ??
count += extra_number # ????
Офлайн
294
BooM_Pythonэто первый аргумент функции,судя по названию, первоначальное знчение, по умолчанию оно равно 5, Обычно такую конструкцию использут для необязательных арументов, хотя в данном случае она бессмыслена чуть более чем полностью, потому что вы не сможете вызвать функцию не указав первый аругмент, но указав второй или третий..
зачем тут inital = 5
BooM_Pythonсудя по всему count это какоето общее количество, соотвевенно чтобы его посчитать нужно просумировать все значения начиная с начального
для чего он и почему его равняют count ?
BooM_Pythonв переменную number последовательно, каждую итерацию цикла, передают каждый элемент последовательности numbers
for number in numbers: # о чем это строка?
BooM_Python
count += number # count = number +number ??
count += extra_number # ????
count += number # count = count +number count += extra_number # count = count +extra_number
[code python][/code]
Отредактировано PEHDOM (Июнь 23, 2019 19:19:29)
Офлайн
857
BooM_PythonНапиши его сначала, чтобы он правильно на форуме выравнивался. Используй для этого теги кода. А потом уже спрашивай про строки этого правильно записанного кода.
не могу понять код
Офлайн
27
def total(initial=5,*numbers, extra_number):Разве позиционный аргумент теперь, в новых версиях, можно указывать после звёздочки? В версии 3.4, вроде как, нельзя было или что-то путаю.
Отредактировано Rafik (Июнь 24, 2019 08:17:13)
Офлайн
72
Rafikextra_number — в данном случае не позиционный, а именованный параметр (только без значения по умолчанию)
Разве позиционный аргумент теперь, в новых версиях, можно указывать после звёздочки? В версии 3.4, вроде как, нельзя было или что-то путаю.
def total(initial=5, *numbers, extra_number): """initial=5 — первый позиционный параметр со значением по умолчанию 5 *numbers — забирает все остальные позиционные параметры extra_number — именованный параметр, должен передаваться при вызове или иметь значение по умолчанию: def total(initial=5, *numbers, extra_number='значение по умолчанию'): """ print('extra_number=', extra_number) total(10, 1, 2, 3, extra_number=50) # extra_number — именованный параметр, остальные позиционные total(10, 1, 2, 3) #здесь все параметры позиционные, будет ругаться на отсутствие extra_number
Отредактировано rami (Июнь 24, 2019 09:27:11)
Офлайн