Câu hỏi:

12/07/2024 598

Mở rộng bài tập trong phần luyện tập như sau:

- Việc sắp xếp thứ tự phải ưu tiên tính theo tên trước, rồi đến họ, rồi đến đệm.

- Sắp xếp theo thứ tự của bảng chữ cái tiếng Việt.

    Chú ý: Bảng chữ cái tiếng Việt (bao gồm cả dấu thanh) được sắp xếp theo thứ tự sau: AÀÁẢÃẠĂẰẮẲẴẶÂẤẨẪẬBCDĐEÈÉẺẼẸÊỀẾỂỄỆGHIÌÍỈĨỊJKLMNOÒÓỎÕỌƠỚỞỠỢÔỒỐỔỖỘPQRSTUÙÚỦŨỤƯỪỨỬỮỰVXXYỲÝỶỸỴ.

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

import re

def Chuyendoi(s):

    s = re.sub(r'[àáạảãâầấậẩẫăằắặẳẵ]', 'a', s)

    s = re.sub(r'[ÀÁẠẢÃĂẰẮẶẲẴÂẦẤẬẨẪ]', 'A', s)

    s = re.sub(r'[èéẹẻẽêềếệểễ]', 'e', s)

    s = re.sub(r'[ÈÉẸẺẼÊỀẾỆỂỄ]', 'E', s)

    s = re.sub(r'[òóọỏõôồốộổỗơờớợởỡ]', 'o', s)

    s = re.sub(r'[ÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠ]', 'O', s)

    s = re.sub(r'[ìíịỉĩ]', 'i', s)

    s = re.sub(r'[ÌÍỊỈĨ]', 'I', s)

    s = re.sub(r'[ùúụủũưừứựửữ]', 'u', s)

    s = re.sub(r'[ƯỪỨỰỬỮÙÚỤỦŨ]', 'U', s)

    s = re.sub(r'[ỳýỵỷỹ]', 'y', s)

    s = re.sub(r'[ỲÝỴỶỸ]', 'Y', s)

    s = re.sub(r'[Đ]', 'D', s)

    s = re.sub(r'[đ]', 'd', s)

    return s

def Sosanhxau(name1, name2):

    name1=Chuyendoi(name1)

    name2=Chuyendoi(name2)

    name1 = name1.split()

    name2 = name2.split()

    i = 1

    while i <= len(name1) and i <= len(name2):

        if name1[len(name1)-i] > name2[len(name2)-i]:

            return True

        elif(name1[len(name1)-i]<name2[len(name2)-i]):

            return False

        else:

            i += 1

    return False

def Sapxep(A,n):

    for i in range(n):

        minimum = i

        for j in range(i + 1,n):               

            if Sosanhxau(A[j], A[minimum]) == False :

                minimum = j

        A[minimum], A[i] = A[i], A[minimum]

    return A

 

n=int(input("Nhập số lượng học sinh của lớp"))

A=[]

for i in range(0,n):

    s=input()

    A.append(s)

A=Sapxep(A,n)

print("Danh sách lớp theo tên đã sắp xếp là:")

print(A)

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Lời giải

Để giải quyết bài toán một cách triệt để và bằng phép tính thủ công sẽ khá khó khăn, trong Python cung cấp một số thư viện cũng như hàm có sẵn, giúp cho quá trình giải bài toán thuận tiện và dễ dàng hơn.

Tham khảo đoạn code sau:

from datetime import date

from datetime import timedelta

 

dateStandard = date(1990, 1, 1)

def calNumberDay(date1):

    return (date1 - dateStandard).days

def NumberToDate(number):

    return dateStandard + timedelta(days=number)

d=int(input("Nhap số ngày"))

a=input("Nhập thời gian").split(" ")

a[0]=int(a[0])

a[1]=int(a[1])

a[2]=int(a[2])

print(NumberToDate(number=32))

print(calNumberDay(date(a[2],a[1],a[0])))

Trong các phần mềm bảng tính điện tử, dữ liệu ngày tháng được coi là số ngày tính  (ảnh 1)

Lời giải

Chương trình:

def Sosanhxau(name1, name2):

    name1 = name1.split()

    name2 = name2.split()

    i = 1

    while i <= len(name1) and i <= len(name2):

        if name1[len(name1)-i] > name2[len(name2)-i]:

            return True

        elif(name1[len(name1)-i]<name2[len(name2)-i]):

            return False

        else:

            i += 1

    return False

def Sapxep(A,n):

    for i in range(n):

        minimum = i

        for j in range(i + 1,n):                

            if Sosanhxau(A[j], A[minimum]) == False :

                minimum = j

        A[minimum], A[i] = A[i], A[minimum]

    return A

 

n=int(input("Nhập số lượng học sinh của lớp"))

A=[]

for i in range(0,n):

    s=input()

    A.append(s)

A=Sapxep(A,n)

print("Danh sách lớp theo tên đã sắp xếp là:")

print(A)

Vietjack official store
Đăng ký gói thi VIP

VIP +1 - Luyện thi tất cả các đề có trên Website trong 1 tháng

  • Hơn 100K đề thi thử, đề minh hoạ, chính thức các năm
  • Với 2tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
  • Tải xuống đề thi [DOCX] với đầy đủ đáp án
  • Xem bài giảng đính kèm củng cố thêm kiến thức
  • Bao gồm tất cả các bậc từ Tiểu học đến Đại học
  • Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện

Mua ngay

VIP +3 - Luyện thi tất cả các đề có trên Website trong 3 tháng

  • Hơn 100K đề thi thử, đề minh hoạ, chính thức các năm
  • Với 2tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
  • Tải xuống đề thi [DOCX] với đầy đủ đáp án
  • Xem bài giảng đính kèm củng cố thêm kiến thức
  • Bao gồm tất cả các bậc từ Tiểu học đến Đại học
  • Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện

Mua ngay

VIP +6 - Luyện thi tất cả các đề có trên Website trong 6 tháng

  • Hơn 100K đề thi thử, đề minh hoạ, chính thức các năm
  • Với 2tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
  • Tải xuống đề thi [DOCX] với đầy đủ đáp án
  • Xem bài giảng đính kèm củng cố thêm kiến thức
  • Bao gồm tất cả các bậc từ Tiểu học đến Đại học
  • Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện

Mua ngay

VIP +12 - Luyện thi tất cả các đề có trên Website trong 12 tháng

  • Hơn 100K đề thi thử, đề minh hoạ, chính thức các năm
  • Với 2tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
  • Tải xuống đề thi [DOCX] với đầy đủ đáp án
  • Xem bài giảng đính kèm củng cố thêm kiến thức
  • Bao gồm tất cả các bậc từ Tiểu học đến Đại học
  • Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện

Mua ngay