Inf
viết tắt của từ Infinity
trong toán học là một số vô cùng lớn, cụ thể ở đây là dương vô cùng $+ \infty$, tương tự chúng ta có số âm vô cùng $- \infty$, hai số này được định nghĩa trong Python dưới dạng kiểu dữ liệu float
.
print type(num) # = <type 'float'>
Ví dụ nếu bạn bình phương một số vô cùng lớn cụ thể, Python sẽ trả về kết quả là inf
ám chỉ kết quả của phép nhân là một con số rất rất lớn.
a = 1e1000
print a**a # = inf
Nan
viết tắt của từ Not a number
có thể hiểu là không phải là số.
Ví dụ nếu bạn lấy hai số vô cùng lớn chia nhau, về mặt thuần toán học bạn biết rằng kết quả sẽ bằng $1$ nhưng Python không hoạt động như vậy, hai số vô cùng lớn chỉ là biệt danh không phải là số cụ thể, Python sẽ trả về Nan
.
a = float('Inf')
b = float('Inf')
print a / b # = nan
Câu hỏi cuối cùng của bạn, Blah
không phải là kí hiệu của một số gì đặc biệt trong Python hết mà là do tự bạn đưa vào, nên Python không biết và trả về lỗi là điều tất nhiên.
Cứ theo tính chất của số dương vô cùng là số lớn nhất,
print num > 1000 # = True là điều hiển nhiên bởi số dương vô cùng sẽ lớn hơn 1000.
print a_num > 1000 # = False là chính xác bởi 1000 không thể lớn hơn số dương vô cùng.
Một số vốn dĩ đã vô cùng lớn, cộng thêm nữa cũng là một số vô cùng lớn đùng không nào.
print 10 + num # = inf
Một số được xác định "không phải là số" thì không thể so sánh nó với bất kỳ số nào được. Vì đã không phải là số rồi thì làm sao bạn có thể so sánh đúng không nào.
print num > a_num # = False bởi vì không thể so sánh.
print a_num > num # = False bởi vì không thể so sánh.
Cuối cùng, một số "không phải là số" cộng với bất cứ số nào thì kết quả "không phải là số" là điều hiển nhiên.
print num + a_num # = nan