Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực thi chương trình nói trên
Dung dịch mẫu-2
Mã Python
n = float[input['Input a number: ']]
print['Number is Positive.' if n > 0 else 'It is Zero!' if n == 0 else 'Number is Negative.']
Đầu ra mẫu
Input a number: 0 It is Zero!
Trực quan hóa việc thực thi mã Python
Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực thi chương trình nói trên
Dung dịch mẫu-3
Mã Python
n = float[input["Input a number: "]]
if n >= 0:
if n == 0:
print["It is Zero!"]
else:
print["Number is Positive number."]
else:
print["Number is Negative number."]
Đầu ra mẫu
Input a number: -150 Number is Negative number.
Trực quan hóa việc thực thi mã Python
Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực thi chương trình nói trên
Trình chỉnh sửa mã Python
Có một cách khác để giải quyết giải pháp này?
Trước. Viết chương trình Python để tìm đường dẫn đến một tệp hoặc thư mục khi bạn gặp tên đường dẫn
Kế tiếp. Viết chương trình Python để lấy các số chia hết cho mười lăm từ danh sách bằng hàm ẩn danh
Mức độ khó của bài tập này là gì?
Dễ dàng trung bình khóKiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource
Theo dõi chúng tôi trên Facebook và Twitter để cập nhật thông tin mới nhất.
con trăn. Lời khuyên trong ngày
Báo cáo năng suất
Bạn có thể nghĩ về câu lệnh lợi nhuận trong cùng danh mục với câu lệnh trả về. Sự khác biệt là, trong khi câu lệnh return trả về một giá trị và hàm kết thúc, câu lệnh năng suất có thể trả về một chuỗi các giá trị, nó sắp xếp kết quả, do đó có tên
Nếu bạn quan tâm đến các thuật toán, đây là một minh họa hay về Trực quan hóa thuật toán sắp xếp bong bóng nơi bạn có thể thấy mức độ cần thiết và sử dụng năng suất
Số dấu phẩy động [còn được gọi là "số float", "nhân đôi" hoặc "số thực"] có thể được chỉ định bằng bất kỳ cú pháp nào sau đây
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>
chính thức
LNUM [0-9]+ DNUM [[0-9]*[\.]{LNUM}] | [{LNUM}[\.][0-9]*] EXPONENT_DNUM [+-]?[[{LNUM} | {DNUM}] [eE][+-]? {LNUM}]
Kích thước của float phụ thuộc vào nền tảng, mặc dù tối đa là ~1. 8e308 với độ chính xác khoảng 14 chữ số thập phân là một giá trị phổ biến [định dạng IEEE 64 bit]
Cảnh báo
Số dấu phẩy động có độ chính xác hạn chế. Mặc dù nó phụ thuộc vào hệ thống, PHP thường sử dụng định dạng chính xác kép IEEE 754, định dạng này sẽ gây ra lỗi tương đối tối đa do làm tròn theo thứ tự 1. 11e-16. Các phép toán số học phi cơ bản có thể gây ra lỗi lớn hơn và tất nhiên, việc lan truyền lỗi phải được xem xét khi một số phép toán được gộp lại
Ngoài ra, các số hữu tỷ có thể biểu diễn chính xác dưới dạng số dấu phẩy động trong cơ số 10, chẳng hạn như 0. 1 hoặc 0. 7, không có biểu diễn chính xác dưới dạng số dấu phẩy động trong cơ sở 2, được sử dụng nội bộ, bất kể kích thước của phần định trị. Do đó, chúng không thể được chuyển đổi thành các đối tác nhị phân bên trong của chúng mà không làm giảm độ chính xác. Điều này có thể dẫn đến kết quả khó hiểu. ví dụ: sàn[[0. 1+0. 7]*10] thường sẽ trả về 7 thay vì 8 như mong đợi, vì biểu diễn bên trong sẽ giống như 7. 9999999999999991118
Vì vậy, đừng bao giờ tin tưởng kết quả số thực cho chữ số cuối cùng và không so sánh trực tiếp các số có dấu phẩy động để lấy bình đẳng. Nếu cần độ chính xác cao hơn, các hàm toán học chính xác tùy ý và hàm gmp có sẵn
So sánh số float
Như đã lưu ý trong cảnh báo ở trên, việc kiểm tra các giá trị dấu phẩy động cho bằng nhau là một vấn đề, do cách chúng được biểu diễn bên trong. Tuy nhiên, có nhiều cách để so sánh các giá trị dấu phẩy động khắc phục những hạn chế này
Để kiểm tra sự bằng nhau của các giá trị dấu phẩy động, giới hạn trên của lỗi tương đối do làm tròn được sử dụng. Giá trị này được gọi là epsilon của máy hoặc làm tròn đơn vị và là sự khác biệt nhỏ nhất có thể chấp nhận được trong tính toán
$a và $b bằng 5 chữ số chính xác
$a = 1.23456789;
$b = 1.23456780;
$epsilon = 0.00001;
if[abs[$a-$b]
NaN
Một số phép toán số có thể dẫn đến một giá trị được biểu thị bằng hằng số NAN
. Kết quả này đại diện cho một giá trị không xác định hoặc không thể biểu diễn trong các phép tính dấu phẩy động. Bất kỳ so sánh lỏng lẻo hoặc chặt chẽ nào của giá trị này với bất kỳ giá trị nào khác, bao gồm cả chính nó, sẽ có kết quả là FALSE
Bởi vì NAN
đại diện cho bất kỳ số lượng giá trị khác nhau nào, nên không nên so sánh NAN
với các giá trị khác, kể cả chính nó và thay vào đó nên kiểm tra bằng cách sử dụng is_nan[]