Python

Почему взяты переменные x,y, но операция производиться в a,b?

print ('Введите 1-е число')
x=int (input())
print ('Введите 2-е число')
y=int (input())
def sum (a,b):
return a+b
print (sum (x,y))
есть пара понятий (которые я всегда путаю): параметры функции и аргументы функции.

например: "определим функцию summ, которая будет принимать два аргумента, a и b, и возвращать их сумму". в питоне это выглядит примерно так:
 def summ(a, b) :
return a+b
в этот момент питон ещё не знает, как именно будет использоваться функция, поэтому a и b - это просто заготовки для реальных чисел, которые ей будут переданы в нужный момент.

имея же такую заготовку, мы можем её использовать в программе:
 # что-то вводим
print ('Введите 1-е число')
x=int (input())
print ('Введите 2-е число')
y=int (input())

# вызываем ранее определенную функцию summ, передавая ей параметры
# x в качестве первого аргумента и у в качестве второго аргумента
print (summ (x,y))

насколько мне известно, питон, в отличие от того же паскаля, не умеет требовать строгого соответствия типов. то есть, сработает и такой вариант:
 print(summ("hello", "world")) 
но в последних версиях питона появилась возможность хотя бы на уровне подсветки синтаксиса в продвинутых редакторах устраивать проверку типов. для этого добавляются хинты:
 def summ(a :int, b :int) -> int : 
return a+b

если всё же требуется жесткая проверка, её можно устроить прямо в коде:
 def summ(a :int, b :int) -> int :  
assert isinstance(a, int)
assert isinstance(b, int)
return a+b
АГ
Артём Г
70 120
Лучший ответ
потому что a и b - локальные переменные внутри функции sum
Achi Meladze
Achi Meladze
54 419
def - это объявление ф-ции потом её имя и аргумент
В твоей проге ты должен работать с x,y, никаких аb иначе теряется смысл ввода твоих данных.
А это просто пример:

def sum(a = 2, b = 2): # объявление ф-ции с аргументами
sum = a + b
print(sum)
return sum #выход из ф-ции
Виталий Коган
Виталий Коган
26 198