Найти - Пользователи
Полная версия: Объясните пожалуйста
Начало » Python для новичков » Объясните пожалуйста
1
BooM_Python
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 # ????
PEHDOM
BooM_Python
зачем тут inital = 5
это первый аргумент функции,судя по названию, первоначальное знчение, по умолчанию оно равно 5, Обычно такую конструкцию использут для необязательных арументов, хотя в данном случае она бессмыслена чуть более чем полностью, потому что вы не сможете вызвать функцию не указав первый аругмент, но указав второй или третий..
BooM_Python
для чего он и почему его равняют count ?
судя по всему count это какоето общее количество, соотвевенно чтобы его посчитать нужно просумировать все значения начиная с начального
BooM_Python
for number in numbers: # о чем это строка?
в переменную number последовательно, каждую итерацию цикла, передают каждый элемент последовательности numbers
BooM_Python
count += number # count = number +number ??
count += extra_number # ????
 count += number # count = count +number
count += extra_number # count = count +extra_number



py.user.next
BooM_Python
не могу понять код
Напиши его сначала, чтобы он правильно на форуме выравнивался. Используй для этого теги кода. А потом уже спрашивай про строки этого правильно записанного кода.
Rafik
def total(initial=5,*numbers, extra_number):
Разве позиционный аргумент теперь, в новых версиях, можно указывать после звёздочки? В версии 3.4, вроде как, нельзя было или что-то путаю.
rami
Rafik
Разве позиционный аргумент теперь, в новых версиях, можно указывать после звёздочки? В версии 3.4, вроде как, нельзя было или что-то путаю.
extra_number — в данном случае не позиционный, а именованный параметр (только без значения по умолчанию)

 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
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB