Để kiểm tra xem giá trị nổi có phải là số toàn bộ không, hãy sử dụng phương thức
>>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
2:>>> [1.0].is_integer[]
True
>>> [1.555].is_integer[]
False
Phương pháp đã được thêm vào loại
>>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
3 trong Python 2.6.Có tính đến rằng trong Python 2,
>>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
4 là >>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
5 [phân chia sàn cho các toán hạng số nguyên!], Và số học điểm nổi đó có thể không chính xác [A >>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
3 là một xấp xỉ sử dụng phân số nhị phân, không phải là số thực chính xác]. Nhưng điều chỉnh vòng lặp của bạn một chút mà điều này mang lại:>>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
Điều đó có nghĩa là bất cứ điều gì trên 3 khối, [bao gồm 10648] đã bị bỏ lỡ do sự thiếu chính xác đã nói ở trên:
>>> [4**3] ** [1.0/3]
3.9999999999999996
>>> 10648 ** [1.0/3]
21.999999999999996
Thay vào đó, bạn phải kiểm tra các số gần với toàn bộ số hoặc không sử dụng
>>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
7 để tìm số của bạn. Giống như làm tròn gốc khối lập phương của >>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
8:close to the whole number instead, or not use >>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
7 to find your number. Like rounding down the cube root of >>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
8:>>> int[12000 ** [1.0/3]]
22
>>> 22 ** 3
10648
Nếu bạn đang sử dụng Python 3.5 hoặc mới hơn, bạn có thể sử dụng hàm
>>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
9 để xem giá trị điểm nổi có nằm trong biên độ có thể định cấu hình không:>>> from math import isclose
>>> isclose[[4**3] ** [1.0/3], 4]
True
>>> isclose[10648 ** [1.0/3], 22]
True
Đối với các phiên bản cũ hơn, việc triển khai ngây thơ của chức năng đó [bỏ qua việc kiểm tra lỗi và bỏ qua Infinity và Nan] như đã đề cập trong PEP485:
def isclose[a, b, rel_tol=1e-9, abs_tol=0.0]:
return abs[a - b] >> [4**3] ** [1.0/3]
3.9999999999999996
>>> 10648 ** [1.0/3]
21.999999999999996
0 hoặc >>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
3: >>> [4**3] ** [1.0/3]
3.9999999999999996
>>> 10648 ** [1.0/3]
21.999999999999996
2>>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
3 có phải là số nguyên không: >>> [4**3] ** [1.0/3]
3.9999999999999996
>>> 10648 ** [1.0/3]
21.999999999999996
4Xem bài viết sau đây để biết làm thế nào để có được các phần phân số và số nguyên.
- Nhận các phần phân số và số nguyên với toán học.modf [] trong Python
Xem bài viết sau đây để kiểm tra xem một chuỗi là một số.
- Kiểm tra xem một chuỗi là số, chữ cái, chữ và số hay ASCII
Kiểm tra xem đối tượng là >>> [4**3] ** [1.0/3]
3.9999999999999996
>>> 10648 ** [1.0/3]
21.999999999999996
0 hoặc >>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
3: >>> [4**3] ** [1.0/3]
3.9999999999999996
>>> 10648 ** [1.0/3]
21.999999999999996
2
>>> [4**3] ** [1.0/3]
3.9999999999999996
>>> 10648 ** [1.0/3]
21.999999999999996
>>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
>>> [4**3] ** [1.0/3]
3.9999999999999996
>>> 10648 ** [1.0/3]
21.999999999999996
Kiểm tra xem
>>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
3 có phải là số nguyên không: >>> [4**3] ** [1.0/3]
3.9999999999999996
>>> 10648 ** [1.0/3]
21.999999999999996
4i = 100
f = 1.23
print[type[i]]
print[type[f]]
#
#
Kiểm tra xem chuỗi số có phải là số nguyên không
- Xem bài viết sau đây để biết làm thế nào để có được các phần phân số và số nguyên.
print[isinstance[i, int]]
# True
print[isinstance[i, float]]
# False
print[isinstance[f, int]]
# False
print[isinstance[f, float]]
# True
Nhận các phần phân số và số nguyên với toán học.modf [] trong Python
f_i = 100.0
print[type[f_i]]
#
print[isinstance[f_i, int]]
# False
print[isinstance[f_i, float]]
# True
Kiểm tra xem >>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
3 có phải là số nguyên không: >>> [4**3] ** [1.0/3]
3.9999999999999996
>>> 10648 ** [1.0/3]
21.999999999999996
4
>>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
>>> [4**3] ** [1.0/3]
3.9999999999999996
>>> 10648 ** [1.0/3]
21.999999999999996
Kiểm tra xem chuỗi số có phải là số nguyên không
- Xem bài viết sau đây để biết làm thế nào để có được các phần phân số và số nguyên.
f = 1.23
print[f.is_integer[]]
# False
f_i = 100.0
print[f_i.is_integer[]]
# True
Nhận các phần phân số và số nguyên với toán học.modf [] trong Python
>>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
0Kiểm tra xem chuỗi số có phải là số nguyên không
Xem bài viết sau đây để biết làm thế nào để có được các phần phân số và số nguyên.
Nhận các phần phân số và số nguyên với toán học.modf [] trong Python
>>> for n in range[12000, -1, -1]:
... if [n ** [1.0/3]].is_integer[]:
... print n
...
27
8
1
0
1Xem bài viết sau đây để kiểm tra xem một chuỗi là một số.
- Kiểm tra xem một chuỗi là số, chữ cái, chữ và số hay ASCII
- Bạn có thể nhận được loại đối tượng với chức năng tích hợp
8.>>> [4**3] ** [1.0/3] 3.9999999999999996 >>> 10648 ** [1.0/3] 21.999999999999996