Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 23, 2019 17:24:26

BooM_Python
Зарегистрирован: 2019-06-23
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Объясните пожалуйста

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 # ????

Офлайн

#2 Июнь 23, 2019 19:18:58

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Объясните пожалуйста

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





==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июнь 23, 2019 19:19:29)

Офлайн

#3 Июнь 24, 2019 02:46:27

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10024
Репутация: +  857  -
Профиль   Отправить e-mail  

Объясните пожалуйста

BooM_Python
не могу понять код
Напиши его сначала, чтобы он правильно на форуме выравнивался. Используй для этого теги кода. А потом уже спрашивай про строки этого правильно записанного кода.



Офлайн

#4 Июнь 24, 2019 08:15:51

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Объясните пожалуйста

def total(initial=5,*numbers, extra_number):
Разве позиционный аргумент теперь, в новых версиях, можно указывать после звёздочки? В версии 3.4, вроде как, нельзя было или что-то путаю.

Отредактировано Rafik (Июнь 24, 2019 08:17:13)

Офлайн

#5 Июнь 24, 2019 09:26:20

rami
Зарегистрирован: 2018-01-08
Сообщения: 281
Репутация: +  72  -
Профиль   Отправить e-mail  

Объясните пожалуйста

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

Отредактировано rami (Июнь 24, 2019 09:27:11)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version