Tiếp nối với bài viết “Hiển thị danh sách các ngày trong tuần, tháng“ trước đó thì hôm nay tôi sẽ tiếp tục với chủ đề ngày tháng trong Python với cách tính khoảng cách giữa 2 ngày bất kỳ.
1, Làm thế nào tính được khoảng cách giữa 2 ngày bất kỳ ?
Đoạn code đơn giản dưới đây là câu trả lời
from datetime import date d0 = date[2014, 5, 31] d1 = date[2014, 4, 20] delta = abs[d0 - d1] print delta.days
Demo: //ideone.com/364sO0
Đoạn code trên sẽ giúp các bạn tính toán được có bao nhiêu ngày từ ngày 20/4/2014 đến 31/5/2014. Và câu trả lời là 41 ngày. Thật đơn giản phải không các bạn ?
2, Tính khoảng cách giữa 2 ngày dưới dạng String
Với đoạn code trên nếu bạn để ý thì sẽ thấy tôi đã tính khoảng cách giữa hai đối tượng Date, nếu chúng ta có 2 ngày với định dạng chuỗi String thì làm thế nào ? Vậy thì bạn hãy thử với đoạn code sau
from datetime import datetime date_format = "%d/%m/%Y" d0 = datetime.strptime['21/4/2014', date_format] d1 = datetime.strptime['15/5/2014', date_format] delta = abs[d0 - d1] print delta.days
Demo: //ideone.com/YIuneS
3, Hiển thị thông tin chi tiết khoảng cách giữa 2 ngày
Nếu tôi muốn tính xem từ thời điểm 2014/5/10 12:14:15 đến 2014/4/15 23:12:45 cụ thể là bao nhiêu ngày, giờ, phút, giây thì tôi sẽ sử dụng đoạn code này
Đây là Hypot như là một phần của đoạn trích để tính độ dài của đường dẫn được xác định bởi danh sách các bộ dữ liệu [x, y]:
from math import hypot
pts = [
[10,10],
[10,11],
[20,11],
[20,10],
[10,10],
]
# Py2 syntax - no longer allowed in Py3
# ptdiff = lambda [p1,p2]: [p1[0]-p2[0], p1[1]-p2[1]]
ptdiff = lambda p1, p2: [p1[0]-p2[0], p1[1]-p2[1]]
diffs = [ptdiff[p1, p2] for p1, p2 in zip [pts, pts[1:]]]
path = sum[hypot[*d] for d in diffs]
print[path]
Python Basic: Tập thể dục-40 với giải pháp
Viết một chương trình Python để tính khoảng cách giữa các điểm [x1, y1] và [x2, y2].
Trình bày bằng hình ảnh:
Piyush là một nhà khoa học dữ liệu đam mê sử dụng dữ liệu để hiểu mọi thứ tốt hơn và đưa ra quyết định sáng suốt. Trong quá khứ, anh ta làm việc như một nhà khoa học dữ liệu cho ZS và có bằng kỹ sư từ IIT Roorkee. Sở thích của anh ấy bao gồm xem cricket, đọc sách và làm việc trên các dự án phụ.
Xem tất cả các bài viết
Làm thế nào để bạn tìm thấy khoảng cách giữa hai điểm trong Python?
Phương thức toán học [] trả về khoảng cách Euclide giữa hai điểm [p và q], trong đó p và q là tọa độ của điểm đó.Lưu ý: Hai điểm [P và Q] phải có cùng kích thước.
Viết chương trình tính khoảng cách 2 điểm trong hệ tọa độ Descartes Oxy
Đề bài: Nhập vào tọa độ 2 điểm A[xA; yA] và B[xB; yB]. Tính khoảng cách AB.
Yêu cầu kiến thức:
- Xác định đúng kiểu dữ liệu
- Khai báo và sử dụng biến
- Nhập và hiện thị giá trị của các biến
- Vận dụng công thức tính khoảng cách giữa 2 điểm trong hệ tọa độ Descartes Oxy
Code tham khảo dưới được lưu với phần mở rộng là “.cpp”:
// Ho ten: Hoang Van Tuan
// Website: timoday.edu.vn
// De bai:
/* Bai 1: Tinh khoang cach giua 2 diem trong he toa do Oxy*/
#include
#include
#include
using namespace std;
//===chuong trinh chinh===
int main[]
{
// Khai bao bien
float xA, yA, xB, yB, d;
// Nhap toa do cho cac bien
coutxA;
coutyA;
coutxB;
coutyB;
// Tinh khoang cach giua 2 diem
d = sqrt[[xB - xA]*[xB - xA] + [yB - yA]*[yB - yA]];
// Hien thi ket qua
printf["Khoang cach giua 2 diem A va B la: %0.2f", d];
cout b, hàm gọi đệ quy tới uscln[a-b, b] bởi vì [a-b] và a đều đồng dư theo modun b nên ước chung UCLN[a-b, b] = UCLN[a, b]. Với trường hợp b>a, ta thực hiện tương tự.1.38. Nhập mảng, lưu vào file, đọc từ file rồi sắp xếp lại.
# Nhap mang phan tu tu ban phim
n = int input[ ["Nhap so phan tu n = "]] a = []
for i in range[n]:
a.append[int input[ ["a[{}] = ".format[i]]]]
# Luu vao file
f = open["float.dat", "w"] f.write[str[n]+"\n"] for i in range[n]:
f.write[str[a[i]]+"\n"] f.close[]
# Doc noi dung tu file
f = open["float.dat", "r"] n = int[f.readline[]] for i in range[n]:
a[i] = int [f.readline[]] f.close[]
# Sap xep mang
for i in range[n- ]:1
for j in range[i+1, n]: if a[i] > a[j]: tmp = a[i] a[i] = a[j] a[j] = tmp
# Luu vao file
f = open["float_sx.dat", "w"] f.write[str[n]+"\n"]
for i in range[n]:
f.write[str[a[i]]+"\n"] f.close[]
Ta cần nhập vào một mảng, lưu mảng đó vào file. Sau đó lại đọc dữ liệu từ file vào mảng, sắp xếp lại nó và lưu vào một file khác.
Để đọc file, ta cần khai báo con trỏ file f = open[, ] với chế độ mở “w” để ghi và “r” để đọc.
Ở chế độ ghi, hàm f.write[] để ghi nội dung vào file. Mỗi dòng trong file ta sẽ ghi một giá trị.
Ở chế độ đọc, hàm f.readline[] để đọc nội dung của dòng trong file. Sau lệnh, con trỏ file trỏ đến dòng kế tiếp.
Sau khi đọc dữ liệu từ file vào mảng, ta sắp xếp mảng theo thứ tự tăng dần, sau đó lại ghi vào một file khác tương tự như trên.
1.39. So sánh nội dung 2 file
path1 = input["Nhap duong dan file 1: "] path2 = input["Nhap duong dan file 2: "] f1 = open[path1, "rb"]
f2 = open[path2, "rb"]
# Lay kich thuoc file
f1.seek[0, 2] size1 = f1.tell[] f2.seek[0, 2] size2 = f2.tell[] if size1 != size2:
# 2 file co kich co khac nhau thi khac nhau print["Hai file co noi dung khac nhau."] f1.close[]
f2.close[] else:
# di chuyen con tro file ve dau f1.seek[0, 0]
f2.seek[ , ]0 0 flag = 1
while [f1.tell[]