Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 25, 2015 16:19:45

titov_
Зарегистрирован: 2015-08-02
Сообщения: 31
Репутация: +  0  -
Профиль   Адрес электронной почты  

Параметры функции

Есть пример из уроков - https://www.youtube.com/watch?v=B1kQH8CDpXU

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import math
def sqeq( a, b, c ) :
    D = b*b - 4*a*c
    if D < 0 :
        return [ ]
    else :
        x1 = ( -b + math.sqrt( D ) ) / ( 2 * a )
        x2 = ( -b - math.sqrt( D ) ) / ( 2 * a )
        return [ x1, x2 ]
    
a2 = input( u"a: " )
a1 = input( u"b: " )
a0 = input( u"c: " )    
X = sqeq( a2, a1, a0 )
print X

Из урока непонятно, зачем назначаются дополнительные переменные a2, a1, a0? Как в функции происходит замена имён параметров?

Отредактировано titov_ (Дек. 25, 2015 16:21:19)

Офлайн

#2 Дек. 25, 2015 16:51:34

neri
Зарегистрирован: 2015-04-22
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Параметры функции

a, b и c - указывают что в функцию должны быть переданы три переменные и что с ними надо сделать в теле функции.
а2, а1, а0 - конкретные значения переданные в функцию для вычисления.

Офлайн

#3 Дек. 25, 2015 17:24:58

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Параметры функции

titov_
Из урока непонятно, зачем назначаются дополнительные переменные a2, a1, a0?
Они не дополнительные, они как раз основные. Переменные-аргументы функции живут только в области видимости функции. Как раз они временные.



Отредактировано FishHook (Дек. 25, 2015 17:25:12)

Офлайн

#4 Дек. 25, 2015 17:51:27

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

Параметры функции

titov_
Есть пример из уроков
Учись у тех, кто знает. Там просто хрень двухчасовая.

titov_
Как в функции происходит замена имён параметров?
Вообще, есть формальные аргументы функции и фактические аргументы функции. Есть определение функции и есть вызов функции.

Пример:
def f(x):
    return x * 2
 
f(3)
Здесь первые две строки - это определение функции. То есть функция создаётся и становится видна в программе, но не работает.
Последняя строка - это вызов функции. То есть ищется функция среди видимых и её тело запускается на выполнение.

В первой строке x - это формальный аргумент функции. Почему формальный, потому что он присутствует лишь для доступа к значению, передаваемому извне.
В последней строке 3 - это фактический аргумент. Почему фактический, потому что именно с этим значением будет работать функция, получая к нему доступ через формальный аргумент.

Вызов функции ставит в соответствие формальные аргументы фактическим. В данном случае вызов функции f ставит в соответствие фактический аргумент 3 формальному аргументу x.

То есть функция f может пролазить во внешний по отношению к ней мир через это окно под названием x и видеть там тройку, потому что x и тройка сцеплены вызовом.



Отредактировано py.user.next (Дек. 25, 2015 17:52:59)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version