niedziela, 16 marca 2014

Kurs Python'a - Operacje na typach liczbowych cz.6

Python posiada wiele wbudowanych  przydatnych operacji matematycznych, takich jak wartość bezwzględna, funkcje trygonometryczne itd.

1) Przypisanie / usunięcie wartości zmiennej:

var1=1
var2=2

Jeżeli chcemy usunąć wartość zmiennej, a tym samym zwolnić miejsce w pamięci robimy:

del var1, var2








2) Konwersja między typami:


Dane jednego typu możemy konwertować na inny:

int(x)- konwersja x do integera,
long(x) - konwersja x do long'a;
float(x)- konwersja x do float'a;
complex(x) - konwersja x do postaci zespolonej, gdzie część rzeczywista to x, urojona natomiast 0;
complex(x,y) - konwersja x do postaci zespolonej, gdzie część rzeczywista to x, urojona natomiast y









3) Wbudowane funkcje matematyczne:


3.1) Wartość bezwzględna:

#!/usr/bin/python

print "abs(-45) : ", abs(-45)
print "abs(100.12) : ", abs(100.12)
print "abs(119L) : ", abs(119L)

Wynik:

abs(-45) :  45
abs(100.12) :  100.12

abs(119L) :  119


3.2.1) Zaokrąglenie w górę:

!/usr/bin/python
import math   

print "math.ceil(-45.17) : ", math.ceil(-45.17)
print "math.ceil(100.12) : ", math.ceil(100.12)
print "math.ceil(100.72) : ", math.ceil(100.72)
print "math.ceil(119L) : ", math.ceil(119L)
print "math.ceil(math.pi) : ", math.ceil(math.pi)

Wynik:

math.ceil(-45.17) :  -45.0
math.ceil(100.12) :  101.0
math.ceil(100.72) :  101.0
math.ceil(119L) :  119.0

math.ceil(math.pi) : 4.0



3.2.2) Zaokrąglenie w dół:

#!/usr/bin/python
import math   # This will import math module

print "math.floor(-45.17) : ", math.floor(-45.17)
print "math.floor(100.12) : ", math.floor(100.12)
print "math.floor(100.72) : ", math.floor(100.72)
print "math.floor(119L) : ", math.floor(119L)
print "math.floor(math.pi) : ", math.floor(math.pi)

Wynik:

math.floor(-45.17) :  -46.0
math.floor(100.12) :  100.0
math.floor(100.72) :  100.0
math.floor(119L) :  119.0
math.floor(math.pi) :  3.0


3.3) CMP - można porównać z operatorami porównania dwóch wartość:

CMP sprawdza czy podane w nawiasie parametry są od siebie mniejsze, większe lub równe:

cmp(1,2) - daje -1, ponieważ wartość 1 jest mniejszy od 2;
cmp(2,1) - daje 1, ponieważ wartość 2 jest większa od 1;
cmp(2,2)- daje 0, ponieważ obydwie wartości są równe;


#!/usr/bin/python

print "(1,2): ", cmp(1,2)
print "(2,1): ", cmp(2,1)
print "(2,2): ", cmp(2,2)

Wynik:

(1,2):  -1
(2,1):  1

(2,2):  0


3.4) Fabs:

Fabs zwraca dokładną dodatnią wartość przekazaną w parametrze:

#!/usr/bin/python
import math   

print "math.fabs(-45.17) : ", math.fabs(-45.17)
print "math.fabs(100.12) : ", math.fabs(100.12)
print "math.fabs(100.72) : ", math.fabs(100.72)
print "math.fabs(119L) : ", math.fabs(119L)
print "math.fabs(math.pi) : ", math.fabs(math.pi)

Wynik:

math.fabs(-45.17) :  45.17
math.fabs(100.12) :  100.12
math.fabs(100.72) :  100.72
math.fabs(119L) :  119.0

math.fabs(math.pi) :  3.14159265359


3.5) Log:

#!/usr/bin/python
import math   

print "math.log(100.12) : ", math.log(100.12)
print "math.log(100.72) : ", math.log(100.72)
print "math.log(119L) : ", math.log(119L)
print "math.log(math.pi) : ", math.log(math.pi)

Wynik:

math.log(100.12) :  4.60636946656
math.log(100.72) :  4.61234438974
math.log(119L) :  4.77912349311
math.log(math.pi) :  1.14472988585


3.6) Log przy podstawie 10:

#!/usr/bin/python
import math   

print "math.log10(100.12) : ", math.log10(100.12)
print "math.log10(100.72) : ", math.log10(100.72)
print "math.log10(119L) : ", math.log10(119L)
print "math.log10(math.pi) : ", math.log10(math.pi)

Wynik:

math.log10(100.12) :  2.00052084094
math.log10(100.72) :  2.0031157171
math.log10(119L) :  2.07554696139
math.log10(math.pi) :  0.497149872694

3.7) Maksymalna wartości z 3 podanych parametrów:

#!/usr/bin/python

print "max(80, 100, 1000) : ", max(80, 100, 1000)
print "max(-20, 100, 400) : ", max(-20, 100, 400)
print "max(-80, -20, -10) : ", max(-80, -20, -10)
print "max(0, 100, -400) : ", max(0, 100, -400)

Wynik:

max(80, 100, 1000) :  1000
max(-20, 100, 400) :  400
max(-80, -20, -10) :  -10

max(0, 100, -400) :  100


3.7) Minimalna wartości z 3 podanych parametrów:

#!/usr/bin/python

print "min(80, 100, 1000) : ", min(80, 100, 1000)
print "min(-20, 100, 400) : ", min(-20, 100, 400)
print "min(-80, -20, -10) : ", min(-80, -20, -10)
print "min(0, 100, -400) : ", min(0, 100, -400)

Wynik:

min(80, 100, 1000) :  80
min(-20, 100, 400) :  -20
min(-80, -20, -10) :  -80

min(0, 100, -400) :  -400


3.8) Modf:

Rozdziela wartość parametru na część po przecinku oraz przed przecinkiem .

#!/usr/bin/python
import math   

print "math.modf(100.12) : ", math.modf(100.12)
print "math.modf(100.72) : ", math.modf(100.72)
print "math.modf(119L) : ", math.modf(119L)
print "math.modf(math.pi) : ", math.modf(math.pi)

Wynik:

math.modf(100.12) :  (0.12000000000000455, 100.0)
math.modf(100.72) :  (0.71999999999999886, 100.0)
math.modf(119L) :    (0.0, 119.0)
math.modf(math.pi) :  (0.14159265358979312, 3.0)

3.9) Potęga:

#!/usr/bin/python
import math   

print "math.pow(100, 2) : ", math.pow(100, 2)
print "math.pow(100, -2) : ", math.pow(100, -2)
print "math.pow(2, 4) : ", math.pow(2, 4)
print "math.pow(3, 0) : ", math.pow(3, 0)

Wynik:

math.pow(100, 2) :  10000.0
math.pow(100, -2) :  0.0001
math.pow(2, 4) :  16.0

math.pow(3, 0) :  1.0

3.10) Zaokrąglenie:

Pierwszym parametrem jest wartość, drugim liczba miejsc po przecinku z jaką ma być liczba zaokrąglona.

#!/usr/bin/python

print "round(80.23456, 2) : ", round(80.23456, 2)
print "round(100.000056, 3) : ", round(100.000056, 3)
print "round(-100.000056, 3) : ", round(-100.000056, 3)

Wyniki:

round(80.23456, 2) :  80.23
round(100.000056, 3) :  100.0

round(-100.000056, 3) :  -100.0


3.11) Pierwiastek kwadratowy:

#!/usr/bin/python
import math   

print "math.sqrt(100) : ", math.sqrt(100)
print "math.sqrt(7) : ", math.sqrt(7)
print "math.sqrt(math.pi) : ", math.sqrt(math.pi)

Wynik:

math.sqrt(100) :  10.0
math.sqrt(7) :  2.64575131106

math.sqrt(math.pi) :  1.77245385091







4) Random:


4.1) Choice:

Wybiera przypadkową wartość dla parametru, którym może być krotka, lista lub string:

#!/usr/bin/python
import random

print "choice([1, 2, 3, 5, 9]) : ", random.choice([1, 2, 3, 5, 9])
print "choice('A String') : ", random.choice('A String')

Wynik:

choice([1, 2, 3, 5, 9]) :  2

choice('A String') :  n


4.2) Randrange:

#!/usr/bin/python
import random

# Wybiera losowo wartość z przedziału 100-1000  z krokiem 2
print "randrange(100, 1000, 2) : ", random.randrange(100, 1000, 2)

# Wybiera losowo wartość z przedziału 100-1000  z krokiem 3
print "randrange(100, 1000, 3) : ", random.randrange(100, 1000, 3)

Wynik:

randrange(100, 1000, 2) :  976

randrange(100, 1000, 3) :  520


4.3) Czysty random:

Wybiera przypadkową wartość.

#!/usr/bin/python
import random

print "random() : ", random.random()
print "random() : ", random.random()

Wynik:

random() :  0.281954791393

random() :  0.309090465205


4.4) Seed:

#!/usr/bin/python
import random

random.seed( 10 )
print "Random number with seed 10 : ", random.random()


Wynik:


Random number with seed 10 :  0.57140259469


4.5) Shuffle:

#!/usr/bin/python
import random

list = [20, 16, 10, 5];
random.shuffle(list)
print "Reshuffled list : ",  list

random.shuffle(list)
print "Reshuffled list : ",  list


Wynik:

Reshuffled list :  [16, 5, 10, 20]

Reshuffled list :  [16, 5, 20, 10]








5) Funkcje trygonometryczne:


5.1) ACOS:

#!/usr/bin/python
import math

print "acos(0.64) : ",  math.acos(0.64)
print "acos(0) : ",  math.acos(0)
print "acos(-1) : ",  math.acos(-1)
print "acos(1) : ",  math.acos(1)

Wynik:

acos(0.64) :  0.876298061168
acos(0) :  1.57079632679
acos(-1) :  3.14159265359

acos(1) :  0.0


5.2) ASIN:

#!/usr/bin/python
import math

print "asin(0.64) : ",  math.asin(0.64)
print "asin(0) : ",  math.asin(0)
print "asin(-1) : ",  math.asin(-1)
print "asin(1) : ",  math.asin(1)

Wynik:

asin(0.64) :  0.694498265627
asin(0) :  0.0
asin(-1) :  -1.57079632679

asin(1) :  1.57079632679


5.3) ATAN:

#!/usr/bin/python
import math

print "atan(0.64) : ",  math.atan(0.64)
print "atan(0) : ",  math.atan(0)
print "atan(10) : ",  math.atan(10)
print "atan(-1) : ",  math.atan(-1)
print "atan(1) : ",  math.atan(1)

Wynik:

atan(0.64) :  0.569313191101
atan(0) :  0.0
atan(10) :  1.4711276743
atan(-1) :  -0.785398163397

atan(1) :  0.785398163397

5.4) ATAN2(y,x):

#!/usr/bin/python
import math

print "atan2(-0.50,-0.50) : ",  math.atan2(-0.50,-0.50)
print "atan2(0.50,0.50) : ",  math.atan2(0.50,0.50)
print "atan2(5,5) : ",  math.atan2(5,5)
print "atan2(-10,10) : ",  math.atan2(-10,10)
print "atan2(10,20) : ",  math.atan2(10,20)

Wynik:

atan2(-0.50,-0.50) :  -2.35619449019
atan2(0.50,0.50) :  0.785398163397
atan2(5,5) :  0.785398163397
atan2(-10,10) :  -0.785398163397

atan2(10,20) :  0.463647609001

5.5) COS:

#!/usr/bin/python
import math

print "cos(3) : ",  math.cos(3)
print "cos(-3) : ",  math.cos(-3)
print "cos(0) : ",  math.cos(0)
print "cos(math.pi) : ",  math.cos(math.pi)
print "cos(2*math.pi) : ",  math.cos(2*math.pi)

Wynik:

cos(3) :  -0.9899924966
cos(-3) :  -0.9899924966
cos(0) :  1.0
cos(math.pi) :  -1.0

cos(2*math.pi) :  1.0


5.6) HYPOT- wzór Euklidesa sqrt(x*x + y*y):

#!/usr/bin/python
import math

print "hypot(3, 2) : ",  math.hypot(3, 2)
print "hypot(-3, 3) : ",  math.hypot(-3, 3)
print "hypot(0, 2) : ",  math.hypot(0, 2)

Wynik:

hypot(3, 2) :  3.60555127546
hypot(-3, 3) :  4.24264068712
hypot(0, 2) :  2.0

5.7) SIN:

#!/usr/bin/python
import math

print "sin(3) : ",  math.sin(3)
print "sin(-3) : ",  math.sin(-3)
print "sin(0) : ",  math.sin(0)
print "sin(math.pi) : ",  math.sin(math.pi)
print "sin(math.pi/2) : ",  math.sin(math.pi/2)

Wynik:

sin(3) :  0.14112000806
sin(-3) :  -0.14112000806
sin(0) :  0.0
sin(math.pi) :  1.22460635382e-16

sin(math.pi/2) :  1

5.8) TAN:

#!/usr/bin/python
import math

print "tan(3) : ",  math.tan(3)
print "tan(-3) : ",  math.tan(-3)
print "tan(0) : ",  math.tan(0)
print "tan(math.pi) : ",  math.tan(math.pi)
print "tan(math.pi/2) : ",  math.tan(math.pi/2)
print "tan(math.pi/4) : ",  math.tan(math.pi/4)

Wynik:

tan(3) :  -0.142546543074
tan(-3) :  0.142546543074
tan(0) :  0.0
tan(math.pi) :  -1.22460635382e-16
tan(math.pi/2) :  1.63317787284e+16

tan(math.pi/4) :  1.0

5.9) RADIANS:

#!/usr/bin/python
import math

print "radians(3) : ",  math.radians(3)
print "radians(-3) : ",  math.radians(-3)
print "radians(0) : ",  math.radians(0)
print "radians(math.pi) : ",  math.radians(math.pi)
print "radians(math.pi/2) : ",  math.radians(math.pi/2)
print "radians(math.pi/4) : ",  math.radians(math.pi/4)

Wynik:

radians(3) :  0.0523598775598
radians(-3) :  -0.0523598775598
radians(0) :  0.0
radians(math.pi) :  0.0548311355616
radians(math.pi/2) :  0.0274155677808

radians(math.pi/4) :  0.0137077838904








6) Pozostałe:


Dostępne są również pi oraz e.

Brak komentarzy:

Prześlij komentarz