Python се бори да разбере разликата между return и print

Работя върху създаването на функция, която връща last_name, последвано от запетая, интервал, first_name друг интервал и накрая last_name.

Кодът по-долу ми дава правилния отговор:

def introduction(first_name, last_name):
  return last_name + ", " + first_name + " " + last_name

print(introduction("James", "Bond"))
Bond, James Bond

Ако обаче използвам печат, получавам следното:

def introduction(first_name, last_name):
  print(last_name + ", " + first_name + " " + last_name)

print(introduction("James", "Bond"))

Bond, James Bond
None
Angelou, Maya Angelou
None

Откъде идва none при използване на print вместо return? Огледах се и не мога да кажа кой да използвам.


person jimbohalpert    schedule 26.04.2020    source източник
comment
Има ли stackoverflow.com/questions/32312248/return-vs-print-list помощ? Какво ще кажете за stackoverflow. com/questions/15300550/ ?   -  person Karl Knechtel    schedule 27.04.2020


Отговори (1)


Нищо не е това, което се връща от функцията "print". Тоест print изпраща нещо към stdout и след това връща None. Можете да проверите това, като изрично върнете стойността и проверите:

x = print('something')
print(x)

Вашият въвеждащ оператор връща None, следователно вашият оператор

Print(introduction('James','Bond'))

Първо изпълнява въвеждането(,), което само по себе си има оператор за печат, който отпечатва името, но след това връща None, от което се отпечатва горният печат.

person Bobby Ocean    schedule 26.04.2020