Cách lấy một hàm toán học làm đầu vào trong Python

Mô-đun math là mô-đun chuẩn trong Python và luôn có sẵn. Để sử dụng các hàm toán học trong mô-đun này, bạn phải nhập mô-đun bằng cách sử dụng import math

Nó cấp quyền truy cập vào các chức năng thư viện C bên dưới. Ví dụ,

# Square root calculation

import math
math.sqrt(4)

Mô-đun này không hỗ trợ kiểu dữ liệu ________ 108 _______. Mô-đun cmath là đối tác phức tạp


Hàm trong Python Math Module

Đây là danh sách tất cả các chức năng và thuộc tính được xác định trong mô-đun math với một lời giải thích ngắn gọn về chức năng của chúng

Đầu vào được lưu tự động dưới dạng chuỗi. Do đó, trước khi thực hiện bất kỳ phép toán số học nào như cộng và chia, chúng ta cần chuyển đổi đầu vào thành số nguyên. Nhớ lại chuyển đổi kiểu ở mục 1. 3

Ở đây, chúng tôi muốn thêm 2 số do người dùng chọn. Chúng ta phải

1. Yêu cầu người dùng nhập số đầu tiên
2. Yêu cầu người dùng nhập số thứ hai
3. Nói với Python để thêm các số
4. Yêu cầu Python in kết quả

Chạy các mã bên dưới và so sánh sự khác biệt. Bạn có thể cho biết nó là gì?

Trước khi chuyển đổi kiểu, Python nối các đầu vào và nối chúng lại với nhau dưới dạng dữ liệu chuỗi. Sau khi chuyển đổi kiểu, Python nhận dạng đầu vào là số nguyên và cộng chúng lại với nhau dưới dạng số.  

Các chức năng này không thể được sử dụng với các số phức tạp; . Sự khác biệt giữa các hàm hỗ trợ số phức và các hàm không hỗ trợ được tạo ra vì hầu hết người dùng không muốn học toán nhiều như yêu cầu để hiểu số phức. Nhận một ngoại lệ thay vì một kết quả phức tạp cho phép phát hiện sớm hơn số phức không mong muốn được sử dụng làm tham số, để lập trình viên có thể xác định cách thức và lý do tại sao nó được tạo ra ngay từ đầu

Các chức năng sau đây được cung cấp bởi mô-đun này. Trừ khi có ghi chú rõ ràng khác, tất cả các giá trị trả về đều là số float

Lý thuyết số và hàm biểu diễn

toán học. trần(x)

Trả về trần của x, số nguyên nhỏ nhất lớn hơn hoặc bằng x. Nếu x không phải là số float, hãy ủy quyền cho , giá trị này sẽ trả về một giá trị

toán học. lược(n , k)

Trả về số cách chọn k mục từ n mục mà không lặp lại và không có thứ tự

Đánh giá thành n! / (k! * (n - k)!) khi

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
0 và đánh giá bằng 0 khi
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
1

Còn được gọi là hệ số nhị thức vì nó tương đương với hệ số của số hạng thứ k trong khai triển đa thức của

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
2

Tăng nếu một trong hai đối số không phải là số nguyên. Tăng nếu một trong hai đối số là tiêu cực

Mới trong phiên bản 3. 8

toán học. copysign(x , y)

Trả về một số float có độ lớn (giá trị tuyệt đối) của x nhưng dấu của y. Trên các nền tảng hỗ trợ số 0 có dấu,

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
5 trả về -1. 0

toán học. fabs(x)

Trả về giá trị tuyệt đối của x

toán học. giai thừa(n)

Trả về n giai thừa dưới dạng số nguyên. Tăng nếu n không tích phân hoặc âm

Không dùng nữa kể từ phiên bản 3. 9. Việc chấp nhận số float có giá trị nguyên (như

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
7) không được chấp nhận.

toán học. tầng(x)

Trả về sàn của x, số nguyên lớn nhất nhỏ hơn hoặc bằng x. Nếu x không phải là số float, hãy ủy quyền cho , giá trị này sẽ trả về một giá trị

toán học. fmod(x , y)

Trả lại

sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
0, như được xác định bởi thư viện nền tảng C. Lưu ý rằng biểu thức Python
sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
1 có thể không trả về kết quả tương tự. Mục đích của tiêu chuẩn C là
sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
0 chính xác (về mặt toán học; với độ chính xác vô hạn) bằng với
sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
3 đối với một số nguyên n sao cho kết quả có cùng dấu với x và độ lớn nhỏ hơn
sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
4. Thay vào đó,
sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
1 của Python trả về kết quả có dấu y và có thể không tính toán được chính xác đối với các đối số float. Ví dụ:
sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
6 là
sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
7, nhưng kết quả của hàm
sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
8 của Python là
sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
9, không thể biểu diễn chính xác dưới dạng số float và làm tròn đến giá trị đáng ngạc nhiên là
def phi(x):
    'Cumulative distribution function for the standard normal distribution'
    return (1.0 + erf(x / sqrt(2.0))) / 2.0
0. Vì lý do này, hàm thường được ưu tiên hơn khi làm việc với số float, trong khi
sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
1 của Python được ưu tiên hơn khi làm việc với số nguyên

toán học. frexp(x)

Trả về phần định trị và số mũ của x dưới dạng cặp

def phi(x):
    'Cumulative distribution function for the standard normal distribution'
    return (1.0 + erf(x / sqrt(2.0))) / 2.0
3. m là số float và e là số nguyên sao cho chính xác là
def phi(x):
    'Cumulative distribution function for the standard normal distribution'
    return (1.0 + erf(x / sqrt(2.0))) / 2.0
4. Nếu x bằng 0, trả về
def phi(x):
    'Cumulative distribution function for the standard normal distribution'
    return (1.0 + erf(x / sqrt(2.0))) / 2.0
5, nếu không thì
def phi(x):
    'Cumulative distribution function for the standard normal distribution'
    return (1.0 + erf(x / sqrt(2.0))) / 2.0
6. Điều này được sử dụng để "chọn ra" đại diện bên trong của một float theo cách di động

toán học. fsum(có thể lặp lại)

Trả về một tổng giá trị dấu phẩy động chính xác trong iterable. Tránh mất độ chính xác bằng cách theo dõi nhiều tổng từng phần trung gian

>>> sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
0.9999999999999999
>>> fsum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
1.0

Độ chính xác của thuật toán phụ thuộc vào đảm bảo số học IEEE-754 và trường hợp điển hình khi chế độ làm tròn là chẵn một nửa. Trên một số bản dựng không phải của Windows, thư viện C cơ bản sử dụng phép cộng độ chính xác mở rộng và đôi khi có thể làm tròn hai lần một tổng trung gian khiến nó bị tắt ở bit ít quan trọng nhất

Để thảo luận thêm và hai cách tiếp cận thay thế, hãy xem công thức nấu ăn ASPN để biết tổng kết dấu phẩy động chính xác

toán học. gcd(*số nguyên)

Trả về ước số chung lớn nhất của các đối số nguyên đã chỉ định. Nếu bất kỳ đối số nào khác không, thì giá trị trả về là số nguyên dương lớn nhất là ước của tất cả các đối số. Nếu tất cả các đối số bằng không, thì giá trị trả về là

def phi(x):
    'Cumulative distribution function for the standard normal distribution'
    return (1.0 + erf(x / sqrt(2.0))) / 2.0
7.
def phi(x):
    'Cumulative distribution function for the standard normal distribution'
    return (1.0 + erf(x / sqrt(2.0))) / 2.0
8 không có đối số trả về
def phi(x):
    'Cumulative distribution function for the standard normal distribution'
    return (1.0 + erf(x / sqrt(2.0))) / 2.0
7

Mới trong phiên bản 3. 5

Đã thay đổi trong phiên bản 3. 9. Đã thêm hỗ trợ cho số lượng đối số tùy ý. Trước đây, chỉ có hai đối số được hỗ trợ.

toán học. tiết lộ(a , b . 0, *, rel_tol=1e-09, abs_tol=0.0)

Trả về

>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
0 nếu giá trị a và b gần nhau và ngược lại là
>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
1

Việc hai giá trị có được coi là gần hay không được xác định theo dung sai tuyệt đối và tương đối đã cho

rel_tol là dung sai tương đối – đó là chênh lệch tối đa được phép giữa a và b, so với giá trị tuyệt đối lớn hơn của a hoặc b. Ví dụ: để đặt dung sai là 5%, hãy vượt qua

>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
2. Dung sai mặc định là
>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
3, đảm bảo rằng hai giá trị giống nhau trong khoảng 9 chữ số thập phân. rel_tol phải lớn hơn 0

abs_tol là dung sai tuyệt đối tối thiểu – hữu ích khi so sánh gần bằng không. abs_tol ít nhất phải bằng 0

Nếu không có lỗi xảy ra, kết quả sẽ là.

>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
4

Các giá trị đặc biệt của IEEE 754 của

>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
5,
>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
6 và
>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
7 sẽ được xử lý theo các quy tắc của IEEE. Cụ thể,
>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
5 không được coi là gần với bất kỳ giá trị nào khác, kể cả
>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
5.
>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
6 và
>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
7 chỉ được coi là thân thiết với nhau

Mới trong phiên bản 3. 5

Xem thêm

PEP 485 – Hàm kiểm tra đẳng thức gần đúng

toán học. là hữu hạn(x)

Trả về

>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
0 nếu x không phải là vô cực cũng không phải là NaN và
>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
1 nếu ngược lại. (Lưu ý rằng math4 được coi là hữu hạn. )

Mới trong phiên bản 3. 2

toán học. isinf(x)

Trả về

>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
0 nếu x là vô cực dương hoặc âm, và ngược lại là
>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
1

toán học. isnan(x)

Trả về

>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
0 nếu x là NaN (không phải số) và
>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
1 nếu không

toán học. isqrt(n)

Trả về căn bậc hai số nguyên của số nguyên n không âm. Đây là sàn của căn bậc hai chính xác của n, hoặc tương đương với số nguyên lớn nhất a sao cho a² ≤ n

Đối với một số ứng dụng, sẽ thuận tiện hơn nếu có số nguyên a nhỏ nhất sao cho n ≤ a², hay nói cách khác là giá trị trần của căn bậc hai chính xác của n. Đối với tích cực và, điều này có thể được tính bằng cách sử dụng _____ 111 ​​____ 9

Mới trong phiên bản 3. 8

toán học. lcm(*số nguyên)

Trả về bội số chung nhỏ nhất của các đối số nguyên đã chỉ định. Nếu tất cả các đối số khác không, thì giá trị trả về là số nguyên dương nhỏ nhất là bội số của tất cả các đối số. Nếu bất kỳ đối số nào bằng 0, thì giá trị được trả về là

def phi(x):
    'Cumulative distribution function for the standard normal distribution'
    return (1.0 + erf(x / sqrt(2.0))) / 2.0
7. cmath1 không có đối số trả về cmath2

Mới trong phiên bản 3. 9

toán học. ldexp(x , i)

Trả lại cmath3. Đây thực chất là nghịch đảo của hàm

toán học. modf(x)

Trả về phần phân số và phần nguyên của x. Cả hai kết quả đều mang dấu của x và là số float

toán học. tiếp theo(x , y)

Trả về giá trị dấu phẩy động tiếp theo sau x về phía y

Nếu x bằng y, trả về y

ví dụ

  • cmath5 đi lên. hướng tới dương vô cực

  • cmath6 đi xuống. về phía âm vô cực

  • cmath7 tiến về số không

  • cmath8 đi xa từ con số không

Xem thêm

Mới trong phiên bản 3. 9

toán học. uốn(n , k=None)

Trả về số cách chọn k mục từ n mục mà không lặp lại và theo thứ tự

Đánh giá thành x.__ceil__0 khi

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
0 và đánh giá thành 0 khi
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
1

Nếu k không được chỉ định hoặc là Không, thì k mặc định là n và hàm trả về x.__ceil__3

Tăng nếu một trong hai đối số không phải là số nguyên. Tăng nếu một trong hai đối số là tiêu cực

Mới trong phiên bản 3. 8

toán học. sản phẩm(có thể lặp lại , *, start=1)

Tính tích của tất cả các phần tử trong lần lặp đầu vào. Giá trị bắt đầu mặc định cho sản phẩm là cmath2

Khi iterable trống, hãy trả về giá trị bắt đầu. Hàm này được dành riêng để sử dụng với các giá trị số và có thể từ chối các loại không phải là số

Mới trong phiên bản 3. 8

toán học. số dư(x , y)

Trả về phần còn lại kiểu IEEE 754 của x đối với y. Đối với x hữu hạn và y khác 0 hữu hạn, đây là sự khác biệt

sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
3, trong đó x.__ceil__8 là số nguyên gần nhất với giá trị chính xác của thương số x.__ceil__9. Nếu x.__ceil__9 nằm chính xác ở giữa hai số nguyên liên tiếp, thì số nguyên chẵn gần nhất được sử dụng cho x.__ceil__8. Phần còn lại Integral2 do đó luôn thỏa mãn Integral3

Các trường hợp đặc biệt tuân theo IEEE 754. đặc biệt, Integral4 là x cho mọi x hữu hạn và Integral5 và Integral6 tăng cho mọi x không phải NaN. Nếu kết quả của phép toán còn lại bằng 0, thì số 0 đó sẽ có cùng dấu với x

Trên các nền tảng sử dụng dấu phẩy động nhị phân IEEE 754, kết quả của thao tác này luôn có thể biểu diễn chính xác. không có lỗi làm tròn được giới thiệu

Mới trong phiên bản 3. 7

toán học. trunc(x)

Trả về x đã loại bỏ phần phân số, để lại phần nguyên. Điều này làm tròn về 0. Integral8 tương đương với x dương và tương đương với x âm. Nếu x không phải là số float, hãy ủy quyền cho , giá trị này sẽ trả về một giá trị

toán học. ulp(x)

Trả về giá trị của bit ít quan trọng nhất của float x

  • Nếu x là NaN (không phải số), trả về x

  • Nếu x là số âm, trả về n! / (k! * (n - k)!)3

  • Nếu x là một số dương vô cực, trả về x

  • Nếu x bằng 0, hãy trả về số float có thể biểu diễn không chuẩn hóa dương nhỏ nhất (nhỏ hơn số float chuẩn hóa dương tối thiểu, )

  • Nếu x bằng số float dương lớn nhất có thể biểu diễn, hãy trả về giá trị của bit có nghĩa nhỏ nhất của x, sao cho số float đầu tiên nhỏ hơn x là n! / (k! * (n - k)!)5

  • Mặt khác (x là một số hữu hạn dương), trả về giá trị của bit có nghĩa nhỏ nhất của x, sao cho số float đầu tiên lớn hơn x là n! / (k! * (n - k)!)6

ULP là viết tắt của Đơn vị ở vị trí cuối cùng

Xem thêm và

Mới trong phiên bản 3. 9

Lưu ý rằng và có mẫu cuộc gọi/trả lại khác với mẫu C tương đương của chúng. chúng lấy một đối số duy nhất và trả về một cặp giá trị, thay vì trả về giá trị trả về thứ hai của chúng thông qua một 'tham số đầu ra' (không có thứ như vậy trong Python)

Đối với các hàm , và, lưu ý rằng tất cả các số dấu phẩy động có độ lớn đủ lớn đều là số nguyên chính xác. Các float của Python thường mang độ chính xác không quá 53 bit (giống như loại kép của nền tảng C), trong trường hợp đó, bất kỳ float x nào có

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
04 nhất thiết không có bit phân số

Hàm lũy thừa và logarit

toán học. cbrt(x)

Trả về căn bậc ba của x

Mới trong phiên bản 3. 11

toán học. exp(x)

Trả về e lũy thừa x, trong đó e = 2. 718281… là cơ số của logarit tự nhiên. Điều này thường chính xác hơn

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
05 hoặc
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
06

toán học. exp2(x)

Trả về 2 lũy thừa x

Mới trong phiên bản 3. 11

toán học. expm1(x)

Trả về e lũy thừa x, trừ 1. Ở đây e là cơ số của logarit tự nhiên. Đối với số float x nhỏ, phép trừ trong

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
07 có thể dẫn đến mất độ chính xác đáng kể;

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05

Mới trong phiên bản 3. 2

toán học. log(x[ , base])

Với một đối số, trả về logarit tự nhiên của x (cơ số e)

Với hai đối số, hãy trả lại logarit của x cho cơ số đã cho, được tính là

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
09

toán học. log1p(x)

Trả về logarit tự nhiên của 1+x (cơ số e). Kết quả được tính theo cách chính xác cho x gần bằng không

toán học. log2(x)

Trả về logarit cơ số 2 của x. Điều này thường chính xác hơn

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
10

Mới trong phiên bản 3. 3

Xem thêm

trả về số bit cần thiết để biểu diễn một số nguyên ở dạng nhị phân, không bao gồm dấu và các số 0 ở đầu

toán học. log10(x)

Trả về logarit cơ số 10 của x. Điều này thường chính xác hơn

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
12

toán học. pow(x , y)

Return

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
13 nâng lên lũy thừa
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
14. Các trường hợp ngoại lệ tuân theo tiêu chuẩn IEEE 754 càng nhiều càng tốt. Cụ thể,
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
15 và
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
16 luôn trả về
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
17, ngay cả khi
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
13 là số 0 hoặc NaN. Nếu cả
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
13 và
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
14 đều hữu hạn,
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
13 âm và
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
14 không phải là số nguyên thì
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
23 không xác định và tăng

Không giống như toán tử

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
25 tích hợp sẵn, chuyển đổi cả hai đối số của nó thành kiểu. Sử dụng
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
25 hoặc hàm tích hợp để tính toán các lũy thừa số nguyên chính xác

Đã thay đổi trong phiên bản 3. 11. Các trường hợp đặc biệt

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
30 và
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
31 đã được đổi thành return
>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True
6 thay vì nâng lên , để thống nhất với IEEE 754.

toán học. sqrt(x)

Trả về căn bậc hai của x

Hàm lượng giác

toán học. acos(x)

Trả về cung cosin của x, tính bằng radian. Kết quả là giữa

def phi(x):
    'Cumulative distribution function for the standard normal distribution'
    return (1.0 + erf(x / sqrt(2.0))) / 2.0
7 và
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
35

toán học. asin(x)

Trả về cung sin của x, tính bằng radian. Kết quả là giữa

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
36 và
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
37

toán học. atan(x)

Trả về cung tiếp tuyến của x, tính bằng radian. Kết quả là giữa

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
36 và
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
37

toán học. atan2(y , x)

Trả về

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
40, tính bằng radian. Kết quả là giữa
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
41 và
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
35. Vectơ trong mặt phẳng từ gốc tọa độ đến điểm
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
43 tạo với trục X dương một góc. Vấn đề là nó đã biết dấu của cả hai đầu vào, vì vậy nó có thể tính toán góc phần tư chính xác cho góc. Ví dụ:
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
45 và
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
46 đều là
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
47, nhưng
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
48 là
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
49

toán học. cos(x)

Trả về cosin của x radian

toán học. dist(p , q)

Trả về khoảng cách Euclide giữa hai điểm p và q, mỗi điểm được cho dưới dạng một chuỗi tọa độ (hoặc có thể lặp lại). Hai điểm phải có cùng chiều

Gần tương đương với

sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))

Mới trong phiên bản 3. 8

toán học. hypot(*tọa độ)

Trả về định mức Euclide,

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
50. Đây là độ dài của vectơ từ gốc tọa độ đến điểm được cho bởi tọa độ

Đối với một điểm hai chiều

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
43, điều này tương đương với việc tính toán cạnh huyền của một tam giác vuông bằng cách sử dụng định lý Pythagore,
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
52

Đã thay đổi trong phiên bản 3. 8. Đã thêm hỗ trợ cho điểm n chiều. Trước đây, chỉ hỗ trợ trường hợp hai chiều.

Đã thay đổi trong phiên bản 3. 10. Cải thiện độ chính xác của thuật toán để lỗi tối đa dưới 1 ulp (đơn vị ở vị trí cuối cùng). Điển hình hơn, kết quả hầu như luôn được làm tròn chính xác trong vòng 1/2 ulp.

toán học. tội lỗi(x)

Trả về sin của x radian

toán học. tan(x)

Trả về tang của x radian

chuyển đổi góc

toán học. độ(x)

Chuyển đổi góc x từ radian sang độ

toán học. radian(x)

Chuyển đổi góc x từ độ sang radian

hàm hypebol

Các hàm hyperbol tương tự như các hàm lượng giác dựa trên các hyperbol thay vì các đường tròn

toán học. acosh(x)

Trả về cosin hyperbol nghịch đảo của x

toán học. asinh(x)

Trả về sin hyperbol nghịch đảo của x

toán học. atanh(x)

Trả về tang hyperbol nghịch đảo của x

toán học. cosh(x)

Trả về cosin hyperbol của x

toán học. sinh(x)

Trả về sin hyperbol của x

toán học. tánh(x)

Trả về tang hyperbol của x

Chức năng đặc biệt

toán học. erf(x)

Trả về hàm lỗi tại x

Hàm này có thể được sử dụng để tính toán các hàm thống kê truyền thống như

def phi(x):
    'Cumulative distribution function for the standard normal distribution'
    return (1.0 + erf(x / sqrt(2.0))) / 2.0

Mới trong phiên bản 3. 2

toán học. erfc(x)

Trả về hàm lỗi bổ sung tại x. Hàm lỗi bổ sung được định nghĩa là

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
54. Nó được sử dụng cho các giá trị lớn của x trong đó phép trừ từ một sẽ gây ra sự mất ý nghĩa

Mới trong phiên bản 3. 2

toán học. gamma(x)

Trả về hàm Gamma tại x

Mới trong phiên bản 3. 2

toán học. lgamma(x)

Trả về logarit tự nhiên của giá trị tuyệt đối của hàm Gamma tại x

Mới trong phiên bản 3. 2

hằng số

toán học. pi

Hằng số toán học π = 3. 141592…, theo độ chính xác có sẵn

toán học. e

Hằng số toán học e = 2. 718281…, với độ chính xác có sẵn

toán học. tau

Hằng số toán học τ = 6. 283185…, theo độ chính xác có sẵn. Tau là một hằng số hình tròn bằng 2π, tỷ số giữa chu vi hình tròn và bán kính của nó. Để tìm hiểu thêm về Tau, hãy xem video của Vi Hart Pi is (vẫn) Sai, và bắt đầu kỷ niệm ngày Tau bằng cách ăn gấp đôi chiếc bánh

Mới trong phiên bản 3. 6

toán học. inf

Một dấu phẩy động vô cực dương. (Đối với vô cực âm, sử dụng

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
55. ) Tương đương với đầu ra của
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
56

Mới trong phiên bản 3. 5

toán học. nan

Giá trị dấu chấm động “không phải là số” (NaN). Tương đương với đầu ra của

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
57. Do các yêu cầu của tiêu chuẩn IEEE-754,
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
58 và
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
57 không được coi là bằng với bất kỳ giá trị số nào khác, kể cả chính chúng. Để kiểm tra xem một số có phải là NaN hay không, hãy sử dụng hàm để kiểm tra NaN thay vì
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
61 hoặc
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
62. Thí dụ

>>> import math
>>> math.nan == math.nan
False
>>> float('nan') == float('nan')
False
>>> math.isnan(math.nan)
True
>>> math.isnan(float('nan'))
True

Đã thay đổi trong phiên bản 3. 11. Hiện tại nó luôn có sẵn.

Mới trong phiên bản 3. 5

Chi tiết triển khai CPython. Mô-đun bao gồm hầu hết các trình bao bọc mỏng xung quanh các hàm thư viện toán học C của nền tảng. Hành vi trong các trường hợp đặc biệt tuân theo Phụ lục F của tiêu chuẩn C99 khi thích hợp. Việc triển khai hiện tại sẽ tăng đối với các hoạt động không hợp lệ như

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
65 hoặc
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
66 (trong đó C99 Phụ lục F khuyến nghị báo hiệu hoạt động không hợp lệ hoặc chia cho 0) và đối với các kết quả bị tràn (ví dụ:
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05
68). Một NaN sẽ không được trả về từ bất kỳ hàm nào ở trên trừ khi một hoặc nhiều đối số đầu vào là NaN;

Lưu ý rằng Python không cố gắng phân biệt NaN báo hiệu với NaN yên tĩnh và hành vi báo hiệu NaN vẫn chưa được chỉ định. Hành vi điển hình là coi tất cả các NaN như thể chúng im lặng

Bạn có thể sử dụng một hàm trong Python đầu vào không?

Trong Python, chúng tôi sử dụng hàm input() để lấy đầu vào từ người dùng . Bất cứ điều gì bạn nhập làm đầu vào, hàm nhập sẽ chuyển đổi nó thành một chuỗi. Nếu bạn nhập một giá trị số nguyên thì hàm input() vẫn chuyển đổi nó thành một chuỗi.

Đầu vào cho một hàm toán học là gì?

Nói một cách đơn giản, đầu vào là những gì đi vào chức năng và đầu ra là những gì đi ra khỏi chức năng. Đầu vào đi vào và đầu ra đi ra. Trong hàm y = x + 5 y = x + 5 , x là biến đầu vào và y là biến đầu ra.