Недавно я начал изучать Python для исследований, я пришел из JS, веб-разработки Frontend UI / UX, так что вы можете себе представить, что все это совершенно новая для меня концепция.
I Я просто вхожу в мир данных и кортежей. В мире данных очень важна концепция, что JS не имеет поддержки syntacti c для кортежей, однако у него есть map
и set
и управление доступом. данные с const
и let
, что, на мой взгляд, поддержка кортежей обогатит JS опыт программирования.
Мне очень удобно работать с терминалом и печатать все из командной строки, я не нравится вообще Интерактивный режим или Jupyter, я думаю, что теряю контроль.
Но сегодня я столкнулся с newb ie проблемой
Давайте начнем с этой основы c пример, и я думаю, что это то, что обычно должно печататься, когда нам нужен список кортежей:
## I will create a list of tuples
coordinates = [(1,2),(3,4),(5,6)]
for (x,y) in coordinates :
print(x,y)
## The Result:
1 2
3 4
5 6
Теперь давайте попробуем пример " function ", и здесь мой вопрос: проблема у нее Дело в том, что return
дает нам только один кортеж и тип кортежа отсутствует в списке:
import random
def AllX() :
low = 10
high = 90
mini = 20
maxi = 50
coordinates = [(random.randint(low, high), random.randint(mini, maxi)) for k in range(10)]
coordinates += [(1,2),(3,4),(5,6)]
for (x,y) in coordinates :
# run = x,y
return (x,y)
print(AllX())
## The Result:
(79, 45)
Если я использую print
вместо return
Я получу следующий результат:
## The Result:
76 28
11 49
60 23
78 33
49 44
77 46
56 45
31 25
17 23
53 22
None
Но это будет не то, что мы действительно ожидали, нам нужен список и потому (как случайный пример), если мы Если вы хотите использовать эту функцию в других ситуациях, нам нужно было вернуть список.
И еще одна вещь, которая ставит меня под вопрос мое понимание логики c перечисления кортежей или даже циклов, заключается в том, что если мы используем та же функция, но давайте попробуем l oop ту же функцию с return
:
generator = AllX()
for item in generator :
print(item)
Результат вернет только 2 числа, принадлежащих случайному кортежу:
## The Result:
27
33
надеюсь, кто-то может дать мне некоторое руководство или объяснение того, почему / как это происходит в return
и почему, если мы хотим повторить ту же функцию, результат будет таким