Обхват на Python () Функция: Float, List, For Примери за цикъл

Съдържание:

Anonim

Какво е обхват на Python?

Обхватът на Python () е вградена функция, достъпна с Python от Python (3.x), и дава последователност от числа въз основа на дадения индекс за начало и спиране. В случай, че началният индекс не е даден, индексът се счита за 0 и ще увеличи стойността с 1 до индекса за спиране.

Например range (5) ще ви изведе стойности 0,1,2,3,4. Обхватът на Python () е много полезна команда и се използва най-вече, когато трябва да итерирате с помощта на цикъл for.

В този урок ще научите:

  • Какво е обхват на Python?
  • Синтаксис
  • Обхват на Python () Функция и история
  • Използване на диапазон ()
  • Използване на старт и стоп в обхвата ()
  • Използвайки старт, стоп и стъпка
  • Увеличаване на стойностите в диапазон с помощта на положителна стъпка.
  • Обратен диапазон: Намаляване на стойностите с помощта на отрицателна стъпка.
  • Използване на плаващи числа в диапазон на Python ()
  • Използване на for-loop с Python range ()
  • Използване на Python range () като списък
  • Използване на символи в диапазон на python ()
  • Как да получите достъп до елементите на диапазона
  • Пример: Вземете четни числа, като използвате диапазон ()
  • Обединяване на изходи с два диапазона ()
  • Използване на обхват () с NumPy

Синтаксис

range(start, stop, step)

Параметри

  • start: (по избор) Началният индекс е цяло число и ако не е даден, стойността по подразбиране е 0.
  • stop: Стоп индексът решава стойността, при която функцията за диапазон трябва да спре. Това е задължителен вход за функция за обхват. Последната стойност винаги ще бъде с 1 по-малка от стойността за спиране.
  • стъпка: (по избор). Стойността на стъпката е числото, с което следващото число е диапазон, трябва да се увеличи, по подразбиране е 1.

Върната стойност:

Връщаната стойност е поредица от числа от дадения индекс за начало до спиране.

Обхват на Python () Функция и история

Обхватът на Python () е въведен от python версия 3, преди функцията xrange () да бъде.

И двата диапазона и xrange () се използват за генериране на поредица от числа.

Следват разликите между обхвата и xrange ():

обхват () xrange ()
Диапазонът () дава поредицата от числа и връща списък с числа. Функцията xrange () дава обект на генератор, който трябва да бъде циклиран в цикъл for, за да получи стойностите.
Диапазонът () връща списък. xrange () връща обект на генератор.
Методът range () използва повече памет, тъй като върнатият списък трябва да се съхранява в сравнение с xrange (). Тъй като xrange () връща обект на генератор, той не дава стойности незабавно и трябва да се използва вътре в for-loop, за да получи стойностите.
Използването на памет е в по-голяма степен, следователно изпълнението на кода е бавно, когато се работи върху огромен набор от данни. Изпълнението на кода е по-бързо с помощта на xrange ().

Използване на диапазон ()

Този пример показва как да отпечатате стойностите от 0-9 с помощта на range ().

Стойността, използвана в диапазона, е 10, така че изходът е 0 1 2 3 4 5 6 7 8 9

Тъй като стартът не е даден, стартът се счита за 0, а последната стойност се дава до 9. Последната стойност винаги е с 1 по-малка от дадената стойност, т.е. stop-1.

for i in range(10):print(i, end =" ")

Изход:

0 1 2 3 4 5 6 7 8 9

Използване на старт и стоп в обхвата ()

В кода началната стойност е 3, а стоп стойността е 10. Тук началният индекс е 3, така че последователността от числа ще започне от 3 до стоп стойността. Последната стойност в последователността ще бъде с 1 по-малка от стойността за спиране 10-1 = 9.

for i in range(3, 10):print(i, end =" ")

Изход:

3 4 5 6 7 8 9

Използвайки старт, стоп и стъпка

Началната стойност е 3, така че поредицата от числа ще започне от 3. Стоп стойността е 10, така че поредицата от числа ще спре при (10-1), т.е. се увеличава с 2. Ако стойността на стъпката не е дадена, стойността за стъпка по подразбиране е 1.

for i in range(3, 10, 2):print(i, end =" ")

Изход:

3 5 7 9

Досега видяхме как функцията range () дава увеличената стойност за дадената стоп стойност. Нека сега опитаме пример, за да получим декрементираната стойност в дадения диапазон.

Увеличаване на стойностите в диапазон с помощта на положителна стъпка.

Стъпката на параметъра в диапазона () може да се използва за увеличаване / намаляване на стойностите. По подразбиране това е положителна стойност 1. Така че винаги ще дава увеличени стойности.

Стойността на стъпката трябва да бъде положителна, в случай че искате да увеличите стойностите като изход.

for i in range(1, 30, 5):print(i, end =" ")

Изход:

1 6 11 16 21 26

Обратен диапазон: Намаляване на стойностите с помощта на отрицателна стъпка.

Стъпката на параметъра с отрицателна стойност в диапазона () може да се използва за получаване на намалени стойности. В примера по-долу стойността на стъпката е отрицателна, така че изходът ще бъде намален от дадената стойност на диапазона.

for i in range(15, 5, -1):print(i, end =" ")

Изход:

15 14 13 12 11 10 9 8 7 6

Началната стойност е 15, стойността за спиране е 5, а стойността на стъпката е отрицателно число, т.е. -1. С горните входове функция range () ще намали стойността от 15 нататък, докато достигне стоп стойността, но тук разликата е последната стойност ще бъде stop + 1.

Използване на плаващи числа в диапазон на Python ()

Нека сега работим върху диапазона (), като използваме числа с плаваща запетая.

Пример:

for i in range(10.5):print(i, end =" ")

В горния пример използвахме стоп стойност като 10.5.

Резултатът е:

Traceback (most recent call last):File "python_range.py", line 1, in for i in range(10.5):TypeError: 'float' object cannot be interpreted as an integer

Python дава грешка, тъй като функцията range () не поддържа числа с плаваща запетая за начало, спиране и стъпка.

Използване на for-loop с Python range ()

В този пример ще използваме масив от числа и нека видим как да използваме итерацията на масива вътре в for-loop с помощта на range ()

Пример:

arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']for i in range(len(arr_list)):print(arr_list[i], end =" ")

Изход:

MysqlMongodb PostgreSQL Firebase

В горния пример използвахме len (arr_list) като стоп стойност. Цикълът for ще се повтори до стойността на стоп, т.е. дължината на масива и това ще бъде 4, тъй като имаме четири елемента в arr_list. Началната стойност ще бъде 0 и стъпката ще бъде 1. Така че стойностите ще започват от 0 и ще спират на 3, т.е. дължина на масива -1, което означава 4 -1 = 3.

Използване на Python range () като списък

В този пример ще видите как да използваме изхода от диапазона като списък.

Пример:

print(list(range(10)))

Изход:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Можете да видите, че изходът е формат на списък. Не беше необходимо да циклираме диапазона () и използвайки метода list (), можем директно да преобразуваме изхода от диапазон в формат на списъка.

Използване на символи в диапазон на python ()

Досега използвахме цели числа в python range (). Също така видяхме, че числата с плаваща запетая не се поддържат в обхвата на python. Нека се опитаме да видим резултата какво се случва, когато използваме символи.

Пример:

for c in range ('z'):print(c, end =" ")

Изход:

Traceback (most recent call last):File "python_range.py", line 1, in for c in range ('z'):TypeError: 'str' object cannot be interpreted as an integer

Изхвърля грешка, като казва, че низ не може да се тълкува като цяло число.

За да получите списъка с азбуките, можете да персонализирате кода и да получите желаните резултати, показани по-долу:

Пример:

def get_alphabets(startletter, stopletter, step):for c in range(ord(startletter.lower()), ord(stopletter.lower()), step):yield chr(c)print(list(get_alphabets("a", "h", 1)))

Изход:

['a', 'b', 'c', 'd', 'e', 'f', 'g']

Как да получите достъп до елементите на диапазона

Можете да използвате for-loop, за да получите стойностите от диапазона или да използвате индекса за достъп до елементите от range ().

Използване на for-loop

Пример:

for i in range(6):print(i)

Изход:

012345

Използване на индекс

Индексът се използва с обхват, за да се получи стойността, налична на тази позиция. Ако стойността на диапазона е 5, за да получите началната стойност, можете да използвате диапазон (5) [0] и следващия диапазон от стойности (5) [1] и т.н.

Пример:

startvalue = range(5)[0]print("The first element in range is = ", startvalue)secondvalue = range(5)[1]print("The second element in range is = ", secondvalue)lastvalue = range(5)[-1]print("The first element in range is = ", lastvalue)

Изход:

startvalue = range(5)[0]print("The first element in range is = ", startvalue)secondvalue = range(5)[1]print("The second element in range is = ", secondvalue)lastvalue = range(5)[-1]print("The first element in range is = ", lastvalue)

Използване на списък ()

Този метод ще отпечата всички елементи от диапазона (). Използвайки list (), той ще върне елементите от range () във формат на списък.

Пример:

print(list(range(10)))

Изход:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Той дава изходен списък за дадения диапазон.

Пример: Вземете четни числа, като използвате диапазон ()

Използването на range () ще получи списъка с четни числа в диапазона, даден като вход. Параметрите за range () са, start е 2, stop е 20 и step е 2, така че стойностите ще бъдат увеличени с 2 и ще дадат четни числа до stop-2.

Пример:

for i in range(2, 20, 2):print(i, end =" ")

Изход:

2 4 6 8 10 12 14 16 18

Обединяване на изходи с два диапазона ()

В този пример ще се свържат 2 функции range () с помощта на функцията на веригата модули itertools ().

Пример:

from itertools import chainprint("Merging two range into one")frange =chain(range(10), range(10, 20, 1))for i in frange:print(i, end=" ")

Изход:

Merging two range into one0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Използване на обхват () с NumPy

Модулът NumPy има функция arange (), която работи и дава подобен изход като range (). Подреждането () приема същите параметри като диапазона ().

Синтаксис:

arange(start, stop, step)

За да работите с NumPy, следвайте стъпките, дадени по-долу.

Стъпка 1 : Импортиране на модул NumPy

import numpy

В случай на изпълнение, това дава грешка, като казва, че модулът numpy не е намерен, трябва да инсталирате модула, както е показано в стъпка 2.

Стъпка 2 : Инсталирайте NumPy

pip install numpy

Стъпка 3 : Работен пример за arange () с помощта на NumPy

import numpy as npfor i in np.arange(10):print(i, end =" ")

Изход:

0 1 2 3 4 5 6 7 8 9

Числа с плаваща запетая с помощта на NumPy arange ()

Не е възможно да се получи последователност с плаваща запетая с помощта на range (), но е възможно с помощта на NumPy arange ().

Пример:

Диапазонът, който искаме е от 0,5 до 1,5. Стойността ще се увеличи с 0,2.

import numpy as npfor i in np.arange(0.5, 1.5, 0.2):print(i, end =" ")

Изход:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

Резултатът, който получаваме, е малко странен, някои от числата с плувка са показани с 16 знака след десетичната запетая. Това се случва поради сложността на съхраняването на десетични плаващи числа в двоичен формат. Можете също така да закръглите стойностите, ако е необходимо и да ги ограничите до десетичните знаци, от които се нуждаете.

Резюме:

  • Обхватът на Python () е вградена функция, достъпна с Python от Python (3.x), и дава последователност от числа въз основа на дадения индекс за начало и спиране. В случай, че началният индекс не е даден, индексът се счита за 0 и ще увеличи стойността до индекса за спиране.
  • Обхватът на Python () е въведен от python версия 3, преди функцията xrange () да бъде.
  • Диапазонът () дава поредицата от числа и връща списък с числа. Функцията xrange () дава обект на генератор, който трябва да бъде циклиран в цикъл for, за да получи стойностите.
  • Стъпката на параметъра в диапазона () може да се използва за увеличаване / намаляване на стойностите. По подразбиране това е положителна стойност 1. Така че винаги ще дава увеличени стойности.
  • Python дава грешка за числа с плаваща запетая, тъй като функцията range () поддържа само цели числа.
  • Стойностите от range () могат да бъдат достъпни с помощта на for-loop, използвайки index и list ()
  • Модулът NumPy има функция arange (), която работи и дава подобен изход като range (). Arange () приема същите параметри като range ().
  • Възможно е да се получи последователност с плаваща запетая NumPy arange (), която не се поддържа с помощта на range ().