Tính khoảng cách 2 điểm trong python

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]
Cập nhật lần cuối vào ngày 19 tháng 8 năm 2022 21:50:49 [UTC/GMT +8 giờ]

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[]

Chủ Đề