Category: LẬP TRÌNH

  • Ngôn ngữ lập trình Zig có lương cao nhất: Hơn 2 tỷ VNĐ một năm

    Ngôn ngữ lập trình Zig có lương cao nhất: Hơn 2 tỷ VNĐ một năm

    Mới đây, StackOverFlow công bố những ngôn ngữ mà lập trình viên sử dụng có lương cao nhất từ 90.000 lập trình viên tham gia khảo sát. Đứng top 1 là Zig. Vì vậy trong bài viết này mình cùng nhau tìm hiểu chút về Zig nhé!

    Ngôn ngữ lập trình Zig có lương cao nhất: Hơn 2 tỷ VNĐ một năm 1

    Zig là ngôn ngữ lập trình có lương cao nhất thế giới năm 2023

    Theo cuộc khảo sát mới nhất của Stack Overflow với 89.184 lập trình viên phần mềm trên khắp 185 quốc gia cho thấy các lập trình viên Zig kiếm được mức lương trung bình cao nhất, cụ thể là 103.000 đô la mỗi năm (hơn 2 tỷ VNĐ).

    Zig là ngôn ngữ lập trình có lương cao nhất thế giới năm 2023

    Chỉ có 0,83% số lập trình viên được khảo sát thành thạo ngôn ngữ Zig, từ đó nhấn mạnh mức độ khan hiếm của nhóm tech talent này.

    Từ lý do trên cùng với nhu cầu ngày càng tăng đối với lập trình hệ thống hiệu suất cao có lẽ đã góp phần giúp con số lương trở nên hấp dẫn cho các lập trình viên Zig.

    Clojure, ngôn ngữ đứng đầu năm 2022, đã giảm 10% mức lương trung bình, mất vị thế của nó khỏi danh sách đầu bảng. Trong khi đó ngôn ngữ lập trình Dart và SAS cho thấy mức lương được chi trả cho những lập trình viên ở vị trí này tăng cao tăng hơn 20% mỗi năm.

    Ngôn ngữ lập trình Zig là gì?

    Zig là một ngôn ngữ lập trình hệ thống được thiết kế bởi Andrew Kelley vào năm 2016 và hiện chưa phổ biến tại Việt Nam. Nó sinh ra với mục đích thay thế cho ngôn ngữ lập trình C, với mục tiêu giúp việc viết code đơn giản, đồng thời cung cấp các tính năng hiện đại, tối ưu hóa mới và nhiều cơ chế an toàn trong khi không yêu cầu an toàn thời gian chạy như các ngôn ngữ lập trình khác. Nó khác với các ngôn ngữ như Go, Rust và Carbon, những ngôn ngữ có mục tiêu tương tự nhưng chúng cũng nhắm mục tiêu thay thế/ nâng cấp C++.

    Ngôn ngữ lập trình Zig là gì?

    Zig hướng tới mục tiêu tạo ra phần mềm mạnh mẽ có thể:

    • Hoạt động tốt trong mọi tình huống, ngay cả trong những trường hợp ngoại lệ.
    • Thực hiện hiệu quả bằng cách sử dụng tối ưu tài nguyên hệ thống.
    • Có thể tái sử dụng trong nhiều môi trường khác nhau.
    • Có thể duy trì theo thời gian. Mã rõ ràng, do đó dễ dàng khắc phục sự cố sau này.

    Zig cân bằng giữa tính trừu tượng cấp cao để tăng năng suất với tính kiểm soát cấp thấp để đạt hiệu suất tối ưu.

    Nhờ vào khả năng quản lý bộ nhớ nhất quán của Zig, bao gồm các chức năng như theo dõi bộ nhớ tại thời điểm biên dịch ngôn ngữ và giải phóng bộ nhớ một cách tự động, là một trong những lợi thế chính của nó.

    Đồng thời Zig có thể dễ dàng tích hợp với các dự án hiện được viết bằng ngôn ngữ C, Zig là một lựa chọn tuyệt vời cho lập trình hệ thống, hệ thống nhúng, trò chơi và scripts.

    Ngôn ngữ lập trình Zig có lương cao nhất: Hơn 2 tỷ VNĐ một năm

    Những cải tiến về tính đơn giản của ngôn ngữ lập trình này so với C là kiểm soát luồng, gọi hàm, nhập thư viện, khai báo biến và hỗ trợ Unicode. Ngoài ra, ngôn ngữ Zig không sử dụng macro hoặc hướng dẫn tiền xử lý. Các tính năng được áp dụng từ các ngôn ngữ hiện đại bao gồm việc bổ sung các loại chung thời gian biên dịch, cho phép các chức năng hoạt động trên nhiều loại dữ liệu, cùng với một tập hợp nhỏ các chỉ thị trình biên dịch mới để cho phép truy cập thông tin.

    Một số bổ sung khác cho Zig nhằm cải thiện độ an toàn của mã. Giống như C, Zig không bao gồm cơ chế xử lý rác tự động và việc xử lý bộ nhớ là thủ công.

    Chương trình viết bằng Zig

    Tạo tệp hello.zig có mã như sau:

    const std = @import("std");
    
    pub fn main() !void {
        const stdout = std.io.getStdOut().writer();
        try stdout.print("Hello, {s}!\n", .{"world"});
    }

    Chạy nó trong terminal. 

    $ zig build-exe hello.zig
    $ ./hello
    Hello, world!

    Mời bạn đọc tài liệu để tìm hiểu thêm về cú pháp và chức năng của Zig. 

  • 50 bài tập lập trình Scratch

    50 bài tập lập trình Scratch

    Lập trình Scratch hiện đã được đưa vào dạy trong một số trường tiểu học và THCS trên cả nước.

    Xem thêm HƯỚNG DẪN LẬP TRÌNH KODU GAME LAB

    Lập trình Scratch là gì?

    Scratch là ngôn từ lập trình rất trực giác, dễ sử dụng, được Viện Công nghệ Massachusets (MIT) phong cách thiết kế, để dạy cho trẻ nhỏ làm quen với lập trình máy tính từ nhỏ .

    bài tập lập trình Scratch

    Bài tập lập trình scratch có lời giải

    Theo suy nghĩ của tôi thì phương pháp học môn lập trình kéo thả Scratch này hiệu quả nhất là học thông qua các chương trình cụ thể, vấp đến đâu tìm hiểu đến đó vì vậy hãy cùng bắt đầu từ những bài tập đơn giản trước:

    Viết chương trình Scratch vẽ đa giác đều và đường tròn

    Yêu cầu chương trình vẽ đa giác: người dùng nhập vào tọa độ tâm, bán kính đường tròn ngoại tiếp và số cạnh đa giác

    Yêu cầu chương trình vẽ đường tròn : Dữ liệu vào, tọa độ tâm, nửa đường kính

    Bài tập Scratch mô tả xe mô tô (tàu lửa, xe ô tô,…) chạy

    Bài tập Scratch Tiểu học viết chương trình mô tả hình ảnh chiếc xe ô tô đang chạy trên màn hình hiển thị theo chiều từ trái qua phải. Khi gặp cạnh phải thì cho Open lại từ hướng bên trái rồi chạy liên tục.

    50 bài tập lập trình Scratch 2

    Đây là bài tập Scratch đơn giản nhưng cũng có thể phát triển lên thành bài toán cho các 3 đối tượng tiểu học, Trung học cơ sở và Trung học phổ thông theo các level khác nhau.

    • Level 1: Yêu cầu chiếc xe ô tô di chuyển không yêu cầu lăn bánh.
    • Level 2: Yêu cầu  xe ô tô di chuyển có lăn bánh nhưng không yêu cầu thân xe chuyển động (tức là đứng yên).
    • Level 3: Khi di chuyển trên đường gồ ghề thì phần bánh và thân xe có xóc.

    Với dạng bài tập lập trình Scratch Tiểu học này thì bạn hãy tìm cách để xe chạy trông thật tự nhiên thì càng tốt. Nếu như bạn không thích hình ảnh xe ô tô thì có thể thay thế bằng xe máy, máy bay, thuyền,…tuỳ thuộc vào khả năng sáng tạo linh hoạt của bạn.

    Bài tập Scratch vẽ lưới ô vuông

    Bài tập vẽ hình Scratch Tiểu học vẽ lưới ô vuông yêu cầu bé viết chương trình Scratch để có thể tạo hình ảnh lưới ô vuông ngay trên màn hình. Lưu ý là khi vẽ thì số lượng cột, độ dài của cạnh hình vuông cần được nhập vào khi chạy chương trình.

    50 bài tập lập trình Scratch 3

    Bài tập Scratch: Trò chơi đoán số

    Một dạng bài tập Scratch tiểu học có lời giải khá phổ biến đó là trò chơi đoán số. Với dạng bài này, nhiệm vụ của các bé là lập trình Scratch để mô phỏng lại tro chơi đoán số theo các yếu tố sau:

    Cô giáo là nhân vật chính và sẽ nghĩ ra một số và yêu cầu các em phải đoán được số đó bằng thao tác nhập các số từ bàn phím cho đến khi đoán ra được thì thôi.

    • Lúc bắt đầu trò chơi thì cô giáo sẽ giới thiệu giống như hình bên trên và các bé sẽ bắt đầu dự đoán con số.
    • Khi bé đoán trùng với các con số đã đoán trước đó thì cô giáo sẽ thông báo: “Con số này em đã đoán rồi, vậy nên hãy đoán số khác”.
    • Khi bé dự đoán sai thì cô giáo sẽ thông báo: “Em đoán sai rồi. Số em đoán lớn hơn/nhỏ hơn số của cô nên em đoán lại đi nhé!”.
    • Khi bé đoán đúng thì cô giáo sẽ thông báo số của cô cũng như số lần mà bé đã dự đoán. Chẳng hạn như: “Đúng rồi 30. Em đã đoán đúng số của cô sau 4 lần dự kiến”.

    Bài tập Scratch viết trò chơi chọn màu đúng

    Viết trò chơi chọn màu đúng cũng là một trong những dạng bài Scratch cho học sinh Tiểu học hay mà phụ huynh có thể tham khảo và lựa chọn cho bé luyện tập. Đề bài yêu cầu viết chương trình trên Scratch để mô phỏng trò chơi chọn màu đúng với các dữ liệu.

    Chương trình sẽ cho 2 nhân vật chính là Cô Kiều và hình tròn. Hình tròn là nhân vật do bé tự thiết kế với tối thiểu 10 trang phục có màu sắc không giống nhau. Chẳng hạn như các màu: đỏ, xanh lá cây, vàng, cam, tím, nâu, xanh da trời, hồng, đen, trắng.

    50 bài tập lập trình Scratch 4

    Trong lúc chơi, cô Kiểu sẽ đặt các câu hỏi như: “Em hãy nháy lên hình tròn màu hồng và bên dưới lần lượt hiển thị 3 hình tròn với các màu khác nhau. Các câu hỏi cũng sẽ được tạo ra với các đáp án ngẫu nhiên.

    Lúc này, các bé cần nháy chuột lên hình tròn có màu tương ứng. Nếu bé làm đúng thì cô giáo sẽ lập tức thông báo “em đã chọn đúng”. Nếu bé làm sai thì cô thông báo “em chọn sai rồi”. Giữa các câu hỏi thì chương trình sẽ cho thời gian nghỉ là 2 giây.

    Bài tập Scratch mô phỏng Bi-a

    Viết chương trình Scratch miêu tả đánh bóng kiểu game show Bi-a như sau:

    Màn hình bắt đầu của chương trình như hình bên. Nhân vật chính của chương trình là quả bóng. Trên màn hình hiển thị biểu lộ 1 hình chữ nhật màu đỏ. Khi nháy chuột quả bóng khởi đầu hoạt động với tốc độ trung bình. Khi gặp cạnh hình chữ nhật bóng sẽ bật lại theo đúng nguyên tắc của game show bi-a. Bất cứ khi nào em nháy chuột sẽ làm đổi hướng bóng: bóng sẽ hoạt động về hướng con trỏ chuột. Khi gặp cạnh sẽ có 1 tiếng kêu nhỏ phát ra.

    Em hãy viết chương trình diễn đạt nhu yếu trên. Chú ý: Khung hình chữ nhật đỏ hoàn toàn có thể là hình ảnh nền sân khấu, hoàn toàn có thể là 1 nhân vật Scratch, hoàn toàn có thể là hình vẽ do chính quả bóng vẽ ra khi chạy chương trình.

    Vẽ cây hoa tròn bằng Scratch

    Em hãy viết 1 thủ tục trong chương trình Scratch để có thể vẽ được các hình cây với hoa tròn như sau:

    50 bài tập lập trình Scratch 5

    Thủ tục cần có tên Vẽ cây hoa tròn và có ít nhất 1 tham số để có thể vẽ được các hình trên và dễ dàng mở rộng.

    Bài tập Scratch trò chơi chim bay có ngày gặp ma

    Trò chơi Chim bay có các màn hình ban đầu và trong thời gian chơi như 2 hình sau:

    • Chương trình có 3 nhân vật chính: chim, trái cây và ma trắng. Bấm  phím cách để bắt đầu chơi. Ban đầu người chơi được ngay 10 điểm.
    • Chim sẽ luôn vỗ cánh và bay. Em điều khiển chim bay bằng các phím lên, phải, trái. Khi bấm phím phải, trái, chim sẽ quay về hướng phải, trái và bay 1 đoạn ngắn. Khi bấm phím lên, chim sẽ cố gắng bay lên. Tuy nhiên do cánh chim quá nặng nên chim sẽ luôn bị hút rơi xuống. Nếu rơi xuống mặt đất, điểm số sẽ luôn bị trừ đi 1 điểm trong suốt thời gian ở mặt đất. Do vậy người chơi cần điều khiển nhanh để chim bay lên.
    • Trên màn hình sẽ xuất hiện ngẫu nhiên các trái cây và ma trắng, chuyển động từ trái sang phải hoặc từ phải sang trái màn hình. Trái cây xuất hiện nhiều hơn và chuyển động nhanh hơn, ma trắng xuất hiện ít hơn và chuyển động chậm hơn.
    • Nếu gặp ngôi sao, người chơi được thưởng 50 điểm.
    • Nếu gặp ma trắng, lập tức điểm số bị đặt bằng 0, chim rơi xuống đất và trò chơi kết thúc.
    • Có 1 biến nhớ thời gian luôn hiện trên màn hình và sẽ chạy khi bắt đầu chơi. Sau đúng 1 phút (60 giây), trò chơi kết thúc.

    Để chơi game show này, người chơi cần khôn khéo tinh chỉnh và điều khiển con chim sao cho đạt nhiều điểm nhất khi kết thúc chương trình, tránh va chạm với con ma trắng .Em hãy viết chương trình Scratch diễn đạt chương trình, game show trên.

    Lập trình Scratch tính n! (n giai thừa) bằng cách dùng đệ quy

    Cho n là số tự nhiên, quy ước 0! = 1.

    Yêu cầu: Khi chạy xuất hiện 1 bạn hỏi “Bạn muốn tính mấy giai thừa?” người dùng nhập vào và chương trình thông báo kết quả.

    Lập trình trò chơi phù thủy cưỡi chổi bay bằng Scratch

    Yêu cầu: Nhân vật chính là bà phù thủy cưỡi chổi bay trên bầu trời, người dùng dùng hai phím mũi tên lên và xuống để điều khiển chổi bay lên xuống giúp bà phù thủy né được những con rồng lửa và thu gom những hộp quà.

    Trò chơi diễn ra trong 60 giây, có một biến thời hạn để quản trị thời hạn chơi, Một biến điểm lưu lại số hộp quà mà bà phù thủy nhận được, (mặc định lúc đầu có 10 điểm), nếu nhận được hộp quà thì tăng lên 1 điểm, nếu gặp rồng lửa rồng sẽ cướp đi của bà 2 điểm .Khung cảnh khu rừng đổi khác liên tục khi chổi bay, người dùng bấm phím khoảng cách để khởi đầu chơi .

    Trò chơi em qua đường an toàn

    Trò chơi miêu tả 1 đường phố nơi có đường ngang dành cho người đi bộ qua đường. Tại vị trí đường ngang có 1 đèn xanh đỏ. Trên đường có 2 làn xe theo 2 chiều và nhiều xe hơi chạy tiếp tục.

    Khi gặp đèn đỏ những xe hơi sẽ dừng lại trước vạch đỏ cho người đi bộ qua đường. Thời gian đèn đỏ là 5 giây, đèn xanh 7 giây. Khi chuyển đèn xanh xe hơi sẽ liên tục chạy.

    Người chơi cần điều khiển và tinh chỉnh bạn nhỏ đi qua đường (bằng chuột hoặc phím) nhanh gọn qua đường khi đèn xanh. Nếu em qua đường khi đèn đó mà gặp xe hơi thì tai nạn đáng tiếc xảy ra và chương trình kết thúc .

    Bài tập Scratch Đố em con gì đây?

    Trò chơi như sau: Khi chương trình chạy Open ngẫu nhiên 1 con vật trên màn hình hiển thị và giáo viên hỏi: Đố bạn biết con này là con gì?

    Người chơi nhập vào tên của con vật. Chương trình sẽ kiểm tra và thông tin hiệu quả đúng / sai. Khi người chơi nháy chuột lên con vật thì sẽ phát ra âm thanh tên con vật đó.

    Viết chương trình luyện gõ phím tiếng việt bằng Scratch

    Trò chơi như sau: Các con vật mang theo từ ngẫu nhiên sẽ xuất hiện ngẫu nhiên trên màn hình từ bên trái, chuyển động về phía bên phải với vận tốc khác nhau, nếu gặp biên phải thì lại xuất hiện từ biên trái vẫn với từ đó

    Nếu người dùng nhập đúng 1 từ thì con vật có từ tương ứng sẽ kêu 1 tiếng rồi lao xuống đất và biến mất, sau vài giây sẽ hiển thị lại bên trái màn hình hiển thị với từ mới .Có một biến để lưu điểm : Nếu nhập đúng 1 từ cộng 1 điểm, Nếu đi đến bên phải mà chưa bị rơi xuống thì bị trừ 1 điểm

    Sắp xếp danh sách trong Scratch

    Mở đầu chương trình, giáo viên nhu yếu người dùng nhập từ bàn phím 1 list học viên lớp. Cần nhập họ tên hoàn hảo. Muốn kết thúc nhập nhấn Enter ngay khi Open dòng nhập liệu .Giả sử nhập list lớp như sau :

    • Nguyễn Xuân Anh
    • Bùi Kim Xuân
    • Võ Thu Hà
    • Nguyễn Thúy Anh
    • Vương Hồng Nhật
    • Trần Thị Vân

    Khi nhập xong giáo viên sẽ thông báo danh sách lớp và yêu cầu Mèo sắp xếp lại danh sách lớp theo thứ tự ABC, tính theo tên trước, họ đệm sau.

    Mèo sẽ sắp xếp lại và thông tin list lớp sau khi đã sắp xếp đúng. Với ví dụ trên, list sắp xếp lại phải như sau :

    • Nguyễn Thúy Anh
    • Nguyễn Xuân Anh
    • Võ Thu Hà
    • Vương Hồng Nhật
    • Trần Thị Vân
    • Bùi Kim Xuân.

    Một số bài tập Scratch xử lý số

    Gửi đến các bạn 1 số bài tập đơn giản có thể dùng để luyện cho các cháu lập trình Scratch, chuẩn bị cho kỳ thi Tin học trẻ toàn quốc.

    1. Nhập số n từ bàn phím và tính tổng S = 1/1 + 1/2 + … + 1/n.

    50 bài tập lập trình Scratch 6

    2. Nhập số n từ bàn phím và tính tổng S = 1/(1.2) + 1/(2.3) + … + 1/(n.(n+1)).

    50 bài tập lập trình Scratch 7

    3. Tính tổng các số của dãy sau: 1 + 5 + 9 + 13 + ….. + 205.

    50 bài tập lập trình Scratch 8

    4. Nhập số n từ bàn phím, in ra các số nguyên tố < n.

    50 bài tập lập trình Scratch 9

    5. Nhập số n từ bàn phím, in ra khai triển của số n thành tích các thừa số nguyên tố. Ví dụ 20 = 2.2.5.

    50 bài tập lập trình Scratch 10

    6. Nhập số n, in ra n số hạng đầu tiên của dãy số Fibonaci.

    50 bài tập lập trình Scratch 11

    7. Nhập 2 số tự nhiên n, m, tính ước số chung lớn nhất của n, m.

    8. Nhập 3 số tự nhiên n, m, p tính ước số chung lớn nhất của n, m, p.

    9. Nhập 2 số tự nhiên n, m, tính bội số chung nhỏ nhất của n, m.

    10. Nhập 3 số tự nhiên n, m, p tính bội số chung nhỏ nhất của n, m, p.

    11. Nhập số n và dãy số a1, a2, …., an từ bàn phím. Tính:
    a) Tổng các số của dãy trên.
    b) Tìm phần tử (chỉ số) tương ứng với số lớn nhất và nhỏ nhất của dãy trên.

    50 bài tập lập trình Scratch 12

    12. Nhập số n và dãy số a1, a2, …., an từ bàn phím. Tìm một dãy con liên tục cực đại đơn điệu tăng của dãy số trên.

    50 bài tập lập trình Scratch 13

    13. Tương tự bài 12. Tìm một dãy con liên tục cực đại các số > 0 của dãy trên.

    50 bài tập lập trình Scratch 14

    14. Nhập số n từ bàn phím, tìm và in ra tất cả các ước số nguyên tố của số n.

    15. Nhập 3 số m, n, p từ bàn phím. tìm và in ra tất cả các ước số chung của 3 số trên.

    16. Số hoàn hảo là số = tổng các ước số thực sự của số đó. Tìm tất cả các số hoàn hảo < 1000000000.

    17. Nhập số n từ bàn phím, tìm:
    a) số nguyên tố nhỏ nhất > n.
    b) số nguyên tố lớn nhất < n.

    18. Nhập từ bàn phím số n, hãy viết n trong hệ nhị phân.

    19. Nhập từ bàn phím số n, hãy viết n trong hệ hex (hệ đếm 16).

    20. Nhập số n và dãy số a1, a2, …., an từ bàn phím. Tìm ra các phần tử cực trị địa phương của dãy này (phần tử cực trị địa phương nếu nó cùng lớn hơn hoặc nhỏ hơn 2 số bên cạnh).

  • 138 câu hỏi trắc nghiệm Python có đáp án

    Mời bạn tham khảo 138 câu hỏi trắc nghiệm Python có đáp án. Đáp án và lời giải ở phần sau bài viết.

    1. Đề bài câu hỏi trắc nghiệm Python

    Câu 1. Biểu thức complex(‘2-3j’) là hợp lệ còn complex(2 – 3j) sai cú pháp của hàm complex(). Khẳng định sau đây đúng hay sai?

    A. Đúng

    B. Sai

    Câu 2. Biểu thức trong Python math.sqrt(x+ math.sqrt(x+ math.sqrt(x))) là biểu thức nào sau đây trong toán học?

    A. $\sqrt x + \sqrt x + \sqrt x$

    B. $\sqrt x + \sqrt{x+\sqrt x}$

    C. $\sqrt x + \sqrt{\sqrt x+\sqrt x}$

    D. $\sqrt{x + \sqrt{x+\sqrt x}}$

    Câu 3. Cho biết kết quả của đoạn code sau

    for i in range(1,5):
     print(i,end=' ')
     if i == 3:
       break

    A. IndentationError: expected an indented block

    B. 1 2 3

    C. 1 2 3 4

    D. 1 2

    Câu 4. Cho câu lệnh sau:

    Print(‘xin chao’)

    Câu lệnh trên sai, câu lệnh đúng là:

    A. print(‘xin chao’)

    B. print(xin chao)

    C. Print(xin chao)

    D. Print(“xin chao”)

    Câu 5. Cho đoạn chương trình sau:

    a=b=1
    c=1
    d=2
    print(a+b+c+d)

    Kết quả trên màn hình là:

    A. 3

    B. 4

    C. 5

    D. 6

    Câu 6. Chạy câu lệnh num = '3'*'3' trong Python, kết quả là:

    A. 333

    B. 27

    C. 9

    D. TypeError: can’t multiply sequence by non-int of type ‘str’

    Câu 7. Chọn phát biểu sai?

    A. Cửa sổ Shell, cho phép viết và thực hiện ngay các biểu thức hoặc câu lệnh.

    B. Ngôn ngữ lập trình trực quan như Scratch dễ dùng và thích hợp với các bạn nhỏ tuổi.

    C. Trong Python, không phân biệt chữ hoa và chữ thường.

    D. Python là ngôn ngữ lập trình bậc cao phổ biến rộng rãi trên thế giới.

    Câu 8. Chọn đáp án đúng khi nói về hàm id() trong Python?

    A. id() trả về định danh một đối tượng.

    B. Mỗi đối tượng không chỉ có một id duy nhất.

    C. Cả hai phương án trên đều đúng.

    D. Không có đáp án đúng.

    Câu 9. Phát biểu nào chính xác khi nói về Docstring trong Python?

    A. Docstring là chuỗi đầu tiên ngay sau tiêu đề hàm

    B. Docstring là không bắt buộc nhưng nên có trong một hàm

    C. Docstring được truy cập bởi thuộc tính doc trên đối tượng

    D. Tất cả các đáp án trên đều đúng.

    Câu 10. Phát biểu nào chính xác khi nói về Hàm trong Python?

    A. Hàm có thể được tái sử dụng trong chương trình.

    B. Sử dụng hàm không có tác động tích cực gì đến các module trong chương trình.

    C. Không thể tự tạo các hàm của riêng người viết chương trình.

    D. Tất cả các đáp án trên đều đúng.

    Câu 11. Các khối code (khối lệnh của hàm, vòng lặp,…) trong Python được xác định bởi

    A. Dấu ngoặc nhọn { }

    B. Canh lề

    C. Dấu ngoặc đơn ()

    D. Dấu ngoặc vuông [ ]

    Câu 12. Các kết quả của hàm hiển thị dưới đây là gì?

    sum(2,4,6)

    sum([1,2,3])

    A. Error, 6

    B. 12, Error

    C. 12, 6

    D. Error, Error

    Câu 13. Câu lệnh sử dụng toán tử and trả về kết quả TRUE khi nào?

    A. Cả hai toán hạng đều là TRUE.

    B. Cả hai toán hàng đều là FALSE.

    C. Một trong hai toán hạng là TRUE.

    D. Toán hạng đầu tiên là TRUE.

    Câu 14. Dãy kí tự muốn in ra màn hình bằng câu lệnh print() cần đặt trong cặp dấu gì?

    A. nháy đơn

    B. nháy kép

    C. ngoặc kép

    D. Cả A, B đều đúng.

    Câu 15. Giả sử có một list: l = [2,3,4]. Nếu muốn in list này theo thứ tự ngược lại ta nên sử dụng phương pháp nào sau đây?

    A. reverse(l)

    B. list(reverse[(l)])

    C. reversed(l)

    D. list(reversed(l))

    Câu 16. Hàm divmod(a,b) trong đó ‘a’ và ‘b’ là những số nguyên được diễn giải là:

    A. (a%b,#a//b)

    B. (a//b, a%b)

    C. (a//b, a*b)

    D. (a/b, a%b)

    Câu 17. Hàm nào sau đây chỉ chấp nhận số nguyên làm tham số?

    A. ord()

    B. min()

    C. chr()

    D. any()

    Câu 18. Hàm nào sau đây không chấp nhận iterable làm tham số?

    A. enumerate()

    B. all()

    C. chr()

    D. max()

    Câu 19. Hàm nào sau đây không gây ra lỗi?

    A. ord()

    B. ord(‘ ‘)

    C. ord(“)

    D. ord(“”)

    Câu 20. Hàm nào sau đây là hàm tích hợp sẵn trong Python

    A. seed()

    B. sqrt()

    C. factorial()

    D. print()

    Câu 21. Hàm nào sau đây sẽ không xảy ra lỗi khi không truyền tham số cho nó?

    A. min()

    B. divmod()

    C. all()

    D. float()

    Câu 22. Hàm pow(x,y,z) được diễn giải là:

    A. (xy)z

    B. (x**y) / z

    C. (x**y) % z

    D. (x*y)z

    Câu 23. Hàm được khai báo ở đâu?

    A. Module

    B. Class

    C. Trong một hàm khác

    D. Tất cả các phương án trên

    Câu 24. Hình vuông có cạnh là 10(cm). Ta có thể dùng Python để viết chương trình tính diện tích hình vuông là:

    A. print(‘dien tich hinh vuong la:’,a*a)

    B. print(‘dien tich hinh vuong la:a*a’)

    C. print(dien tich hinh vuong la:a*a)

    D. print ‘dien tich hinh vuong la:’,a*a

    Câu 25. Khẳng định nào là đúng khi nói về đoạn code sau:

    def printHello():

    print(“Hello”)

    a = printHello()

    A. printHello() là một hàm và a là một biến. Cả hai đều không phải đối tượng.

    B. Cả printHello() và a đều thể hiện chung một đối tượng.

    C. printHello() và a là hai đối tượng khác nhau.

    D. Lỗi cú pháp. Không thể gán hàm cho một biến trong Python.

    Câu 26. Khẳng định nào là đúng về chú thích trong Python?

    A. Chú thích giúp cho các lập trình viên hiểu rõ hơn về chương trình.

    B. Trình thông dịch Python sẽ bỏ qua những chú thích.

    C. Có thể viết chú thích trên cùng một dòng với lệnh/biểu thức hoặc viết trên nhiều dòng mà không vấn đề gì cả

    D. Tất cả các đáp án trên.

    Câu 27. Khẳng định nào là đúng về chú thích trong Python?

    A. Python sử dụng kí tự # để bắt đầu một chú thích

    B. Nội dung của chú thích sẽ được trình thông dịch bỏ qua

    C. Python dùng “”” ””” (3 cặp nháy đôi) hoặc ”’ ”’ (3 cập nháy đơn) để viết chú thích trên nhiều dòng

    D. Tất cả các đáp án trên.

    Câu 28. Khẳng định nào là đúng về chương trình dưới đây?

    class A:

    def init(self):

    self.a = 1

    self.__b = 1

    def getY(self):

    return self.__b

    obj = A()

    obj.a = 45

    print(obj.a)

    A. Chương trình có lỗi xảy ra vì ‘ __b ‘ là thuộc tính private, không thể truy cập được từ bên ngoài lớp.

    B. Chương trình chạy bình thường và kết quả được in ra là 1.

    C. Chương trình có lỗi xảy ra vì ‘ a ‘ là thuộc tính private, không thể truy cập được từ bên ngoài lớp.

    D. Chương trình chạy bình thường và kết quả được in ra là 45.

    Câu 29. Khẳng định nào là đúng về chương trình dưới đây?

    class A:

    def init(self):

    self.x = 1

    self.__y = 1

    def getY(self):

    return self.__y

    a = A()

    a.x = 45

    print(a.x)

    A. Chương trình có lỗi xảy ra vì ‘ x ‘ là thuộc tính private, không thể truy cập được từ bên ngoài lớp.

    B. Chương trình chạy bình thường và kết quả được in ra là 1.

    C. Chương trình có lỗi xảy ra vì ‘ __y ‘ là thuộc tính private, không thể truy cập được từ bên ngoài lớp.

    D. Chương trình chạy bình thường và kết quả được in ra là 45.

    Câu 30. Khẳng định nào là đúng về đoạn code dưới đây?

    f = open(‘test.txt’, ‘r’, encoding = ‘utf-8’)

    f.read()

    A. Chương trình này đọc nội dung của file test.txt.

    B. Nếu test.txt có xuống dòng, hàm read() sẽ trả về kí hiệu bắt đầu dòng mới là ‘\ n’.

    C. Bạn có thể truyền một tham số kiểu integer cho read()

    D. Tất cả các đáp án trên đều đúng.

    Câu 31. Khẳng định nào sau đây là không đúng về Python?

    A. Python có thể sử dụng trên nhiều hệ điều hành khác nhau: Unix, Windows,Mac

    OS, Linux,…

    B. Python là một ngôn ngữ không phân biệt kiểu chữ HOA, chữ thường.

    C. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động.

    D. Python có tốc độ thực hiện chậm hơn nhiều lần so với các ngôn ngữ biên dịch

    như C, Java,…

    Câu 32. Khẳng định nào sau đây là sai khi nói về ngôn ngữ Python?

    A. Python phân biệt chữ hoa và chữ thường.

    B. Python là ngôn ngữ lập trình bậc cao.

    C. Python được dùng để phát triển các ứng dụng web, phần mềm ứng dụng, điều khiển robot…

    D. Python là ngôn ngữ máy tính có thể trực tiếp hiểu và thực hiện được.

    Câu 33. Khẳng định nào sau đây là đúng về Python?

    A. Python là một ngôn ngữ thông dịch cấp cao.

    B. Python là ngôn ngữ lập trình hướng đối tượng.

    C. Python là ngôn ngữ mã nguồn mở.

    D. Tất cả các đáp án đều đúng.

    Câu 34. Khẳng định nào sau đây là đúng?

    A. Lớp (class) là một kế hoạch chi tiết cho đối tượng.

    B. Chỉ có thể tạo một đối tượng duy nhất từ lớp đã cho.

    C. Cả hai đáp án trên đều đúng.

    D. Không có đáp án chính xác.

    Câu 35. Khẳng định nào sau đây là đúng?

    A. Trong Python, một toán tử có thể có hoạt động khác nhau tùy thuộc vào toán hạng được sử dụng.

    B. Bạn có thể thay đổi cách các toán tử hoạt động trong Python.

    C. add () được gọi khi toán tử ‘ + ‘ được sử dụng.

    D. Tất cả các đáp trên đều đúng.

    Câu 36. Khẳng định nào sau đây về Python là đúng?

    A. Python là một ngôn ngữ lập trình cấp cao.

    B. Python là một ngôn ngữ thông dịch.

    C. Python là ngôn ngữ lập trình hướng đối tượng.

    D. Tất cả các đáp án đều đúng.

    Câu 37.

    Khẳng định nào về ngoại lệ là đúng nhất?

    A. Ngoại lệ (Exception) là lỗi phát sinh khi đang thực thi chương trình (runtime error).

    B. Lỗi cú pháp (syntax error) cũng là một ngoại lệ.

    C. Ngoại lệ được Python dùng để loại bỏ một khối code khỏi chương trình.

    D. Tất cả các đáp án trên đều đúng.

    Câu 38. Kết quả của biểu thức hex(15) là gì?

    A. f

    B. 0xF

    C. 0Xf

    D. 0xf

    Câu 39. Kết quả của biểu thức sau là gì?

    chr(‘97’)

    chr(97)

    A. a Error

    B. ‘a’ a

    C. Error a

    D. Error Error

    Câu 40. Kết quả của biểu thức sau là gì?

    min(max(False,-3,-4), 2,7)

    A. 2

    B. False

    C. -3

    D. -4

    Câu 41. Kết quả của biểu thức sau là gì?

    round(4.5676,2)

    A. 4.5

    B. 4.6

    C. 4.57

    D. 4.56

    Câu 42. Kết quả của biểu thức sau là gì?

    round(4.576)

    A. 4.5

    B. 5

    C. 4

    D. 4.6

    Câu 43. Kết quả của chương trình dưới đây là:

    class Point:

    def init(self, x = 0, y = 0):

    self.x = x

    self.y = y

    def sub(self, other):

    x = self.x + other.x

    y = self.y + other.y

    return Point(x, y)

    p1 = Point(3, 4)

    p2 = Point(1, 2)

    result = p1 – p2

    print(result.x, result.y)

    A. 2 2

    B. 4 6

    C. 0 0

    D. 1 1

    Câu 44. Kết quả của chương trình được in ra là:

    mylist=[‘a’, ‘aa’, ‘aaa’, ‘b’, ‘bb’, ‘bbb’]

    print(mylist[:-1])

    A. [a, aa, aaa, b, bb]

    B. [‘a’, ‘aa’, ‘aaa’, ‘b’, ‘bb’]

    C. [‘a’, ‘aa’, ‘aaa’, ‘b’, ‘bb’, ‘bbb’]

    D. Error

    Câu 45. Kết quả của chương trình được in ra màn hình là?

    string = “my name is x”

    for i in string:

    print (i, end=”, “)

    A. m, y,, n, a, m, e,, i, s,, x,

    B. m, y,, n, a, m, e,, i, s,, x

    C. my, name, is, x,

    D. Error

    Câu 46. Kết quả của chương trình được in ra màn hình là?

    x = 1

    y = “2”

    z = 3

    sum = 0

    for i in (x, y, z):

    if isinstance(i, int):

    sum += i

    print(sum)

    A. 2

    B. 3

    C. 4

    D. 6

    Câu 47. Kết quả của hàm hiển thị dưới đây là gì?

    len([“hello”,2, 4, 6])

    A. 4

    B. 3

    C. Error

    D. 6

    Câu 48. Kết quả của hàm hiển thị dưới đây là gì?

    list(enumerate([2, 3]))

    A. Error

    B. [(1, 2), (2, 3)]

    C. [(0, 2), (1, 3)]

    D. [(2, 3)]

    Câu 49. Kết quả của hàm hiển thị dưới đây là gì?

    ord(65)

    ord(‘A’)

    A. A 65

    B. Error 65

    C. A Error

    D. Error Error

    Câu 50. Kết quả của hàm hiển thị dưới đây là gì?

    x=3

    eval(‘x^2’)

    A. Error

    B. 1

    C. 9

    D. 6

    Câu 51. Kết quả của hàm sau là gì?

    all([2,4,0,6])

    A. Error

    B. True

    C. False

    D. 0

    Câu 52. Kết quả của hàm sau là gì?

    complex(1+2j)

    A. Error

    B. 1

    C. 2j

    D. 1+2j

    Câu 53. Kết quả của hàm sau là gì?

    float(‘-infinity’)

    float(‘inf’)

    A. –inf inf

    B. –infinity inf

    C. Error Error

    D. Error Junk value

    Câu 54. Kết quả của hàm sau là gì?

    oct(7)

    oct(‘7’)

    A. Error 07

    B. 07 Error

    C. 0o7 Error

    D. 07 0o7

    Câu 55. Kết quả của đoạn code dưới đây là:

    numbers = [2, 3, 4]

    print(numbers)

    A. 2, 3, 4

    B. 2 3 4

    C. [2, 3, 4]

    D. [2 3 4]

    Câu 56. Kết quả nào là output của đoạn code dưới đây?

    def f(value):

    while True:

    value = (yield value)

    a = f(10)

    print(next(a))

    print(next(a))

    print(a.send(20))

    A. 10 10

    B. 10 10 20

    C. 10 None 20

    D. 10 None None

    Câu 57. Kết quả nào là output của đoạn code dưới đây?

    def myfunc():

    try:

    print(‘Monday’)

    finally:

    print(‘Tuesday’)

    myfunc()

    A. Tuesday

    B. Monday Tuesday

    C. Tuesday Monday

    D. Monday

    Câu 58. Kết quả nào là output của đoạn code dưới đây?

    for i in range(10):

    if i == 5:

    break

    else:

    print(i)

    else:

    print(“Here”)

    A. 0 1 2 3 4 Here

    B. 0 1 2 3 4 5 Here

    C. 0 1 2 3 4

    D. 1 2 3 4 5

    Câu 59. Kết quả nào là output của đoạn code dưới đây?

    list = [ ‘Tech’, 404, 3.03, ‘Beamers’, 33.3 ]

    print list[1:3]

    A. [ ‘Tech’, 404, 3.03, ‘Beamers’, 33.3 ]

    B. [404, 3.03]

    C. [‘Tech’, ‘Beamers’]

    D. None of the above

    Câu 60. Kết quả nào là output của đoạn code dưới đây?

    try:

    print(“throw”)

    except:

    print(“except”)

    finally:

    print(“finally”)

    A. finally throw

    B. finally except

    C. except finally

    D. throw finally

    Câu 61. Kết quả nào là output của đoạn code dưới đây?

    x = True

    y = False

    z = False

    if not x or y:

    print(1)

    elif not x or not y and z:

    print(2)

    elif not x or y or not y and x:

    print(3)

    else:

    print(4)

    A. 2

    B. None

    C. 1

    D. 3

    Câu 62. Lí do ta nên dùng ngôn ngữ lập trình bậc cao khi viết chương trình:

    A. Máy tính có thể trực tiếp hiểu và thực hiện.

    B. Gần với ngôn ngữ tự nhiên, cú pháp đơn giản, dễ hiểu, dễ học.

    C. Có thể viết thoải mái không cần theo quy tắc của ngôn ngữ lập trình.

    D. Chỉ dùng phục vụ trong học tập, không có tính ứng dụng trong phát triển ứng dụng web, lập trình games…

    Câu 63. Lệnh nào dùng để lấy dữ liệu đầu vào từ người dùng?

    A. cin

    B. scanf()

    C. input()

    D. <>

    Câu 64. Lệnh print in ra kết quả nào cho chương trình dưới đây?

    list1 = [1, 3]

    list2 = list1

    list1[0] = 4

    print(list2)

    A. [4, 3]

    B. [1, 3]

    C. [1, 4]

    D. [1, 3, 4]

    Câu 65. Một lớp được thừa hưởng thuộc tính từ hai lớp khác nhau được gọi là gì?

    A. Kế thừa đa cấp (Multilevel Inheritance)

    B. Đa kế thừa (Multiple Inheritance)

    C. Kế thừa phân cấp (Hierarchical Inheritance)

    D. Kế thừa (Inheritance)

    Câu 66. Một ô tô đi từ A đến B với vận tốc v (km/h). Câu lệnh để tính ‘Thời gian ô tô đó đi hết quãng đường k (km)’ là:

    A. print(k/v)

    B. print(‘k/v’)

    C. print(“k/v”)

    D. print k/v

    Câu 67. Mở file với chế độ mode ‘ a ‘ có ý nghĩa gì?

    A. Mở file ở chế độ chỉ được phép đọc.

    B. Mở file ở chế độ ghi.

    C. Mở file chế độ ghi tiếp vào cuối file.

    D. Mở file để đọc và ghi.

    Câu 68. Mở file với chế độ mode wb có ý nghĩa gì?

    A. Mở file để ghi.

    B. Mở file để đọc và ghi.

    C. Mở file để ghi cho dạng nhị phân.

    D. Mở file để đọc và ghi cho dạng nhị phân.

    Câu 69. Ngoại lệ nào xảy ra khi phát hiện thấy lỗi không thuộc bất kỳ danh mục nào khác?

    A. ReferenceError

    B. SystemError

    C. RuntimeError

    D. LookupError

    Câu 70. Output của chương trình dưới đây là gì?

    def func(a, b = 5, c = 10):

    print(‘a bằng’, a, ‘và b bằng’, b, ‘và c bằng’, c)

    func(3, 7)

    func(25, c = 24)

    func(c = 50, a = 100)

    A. a bằng 7 và b bằng 3 và c bằng 10 a bằng 25 và b bằng 5 và c bằng 24 a bằng 5 và b bằng 100 và c bằng 50

    B. a bằng 3 và b bằng 7 và c bằng 10 a bằng 5 và b bằng 25 và c bằng 24 a bằng 50 và b bằng 100 và c bằng 5

    C. a bằng 3 và b bằng 7 và c bằng 10 a bằng 25 và b bằng 5 và c bằng 24 a bằng 100 và b bằng 5 và c bằng 50

    D. Không có đáp án đúng

    Câu 71. Output của chương trình dưới đây là gì?

    def maximum(x, y):

    if x > y:

    return x

    elif x == y:

    return ‘Các số bằng nhau’

    else:

    return y

    print(maximum(2, 3))

    A. 2

    B. 3

    C. Các số bằng nhau

    D. Không có đáp án

    Câu 72. Output của chương trình dưới đây là gì?

    def printMax(a, b):

    if a > b:

    print(a, ‘is maximum’)

    elif a == b:

    print(a, ‘is equal to’, b)

    else:

    print(b, ‘is maximum’)

    printMax(3, 4)

    A. 3

    B. 4

    C. 4 is maximum

    D. Không có đáp án

    Câu 73. Output của chương trình dưới đây là gì?

    def say(message, times = 1):

    print(message * times)

    say(‘Hello’)

    say(‘World’, 5)

    A. Hello WorldWorldWorldWorldWorld

    B. Hello World 5

    C. Hello World,World,World,World,World

    D. Hello HelloHelloHelloHelloHello

    Câu 74. Output của chương trình dưới đây là gì?

    def sayHello():

    print(‘Hello World!’)

    sayHello()

    sayHello()

    A. Hello World! Hello World!

    B. ‘Hello World!’ ‘Hello World!’

    C. Hello Hello

    D. Không có đáp án đúng

    Câu 75. Output của chương trình dưới đây là gì?

    x = 50

    def func():

    global x

    print(‘Giá trị của x là’, x)

    x = 2

    print(‘Giá trị của x được thay đổi thành’, x)

    func()

    print(‘Giá trị hiện tại của x là’, x)

    A. Giá trị của x là 50 Giá trị của x được thay đổi thành 2 Giá trị hiện tại của x là 50

    B. Giá trị của x là 50 Giá trị của x được thay đổi thành 2 Giá trị hiện tại của x là 2

    C. Giá trị của x là 50 Giá trị của x được thay đổi thành 50 Giá trị hiện tại của x là 50

    D. Không có đáp án đúng

    Câu 76. Output của chương trình dưới đây là gì?

    x = 50

    def func(x):

    print(‘Giá trị của x là’, x)

    x = 2

    print(‘Giá trị của x được thay đổi thành’, x)

    func(x)

    print(‘Giá trị hiện tại của x là’, x)

    A. Giá trị hiện tại của x là 50

    B. Giá trị hiện tại của x là 100

    C. Giá trị hiện tại của x là 2

    D. Không có đáp án đúng

    Câu 77. Output của hàm biểu diễn dưới đây là gì?

    divmod(10.5,5)

    divmod(2.4,1.2)

    A. (2.00, 0.50) (2.00, 0.00)

    B. (2, 0.5) (2, 0)

    C. (2.0, 0.5) (2.0, 0.0)

    D. (2, 0.5) (2)

    Câu 78. Output của hàm biểu diễn dưới đây là gì?

    import math

    abs(math.sqrt(25))

    A. Error

    B. -5

    C. 5

    D. 5.0

    Câu 79. Output của hàm sau là gì?

    any([2>8, 4>2, 1>2])

    A. Error

    B. True

    C. False

    D. 4>2

    Câu 80. Output của hàm sau là gì?

    float(‘1e-003’)

    float(‘2e+003’)

    A. 3.00 300

    B. 0.001 2000.0

    C. 0.001 200

    D. Error 2003

    Câu 81. Output của hàm sau là gì? Lưu ý: số lượng khoảng trắng trước số đó là 5.

    float(‘ -12345

    ‘)

    A. -12345.0 (5 khoảng trắng trước số)

    B. -12345.0

    C. Error

    D. -12345.000000000…. (số thập phân vô hạn)

    Câu 82. Output của hàm sau là:

    all(3,0,4.2)

    A. True

    B. False

    C. Error

    D. 0

    Câu 83. Output của lệnh dưới đây là:

    print “Hello World”[::-1]

    A. dlroW olleH

    B. Hello Worl

    C. d

    D. Error

    Câu 84. Output của lệnh là:

    print(3 >= 3)

    A. 3 >= 3

    B. True

    C. False

    D. None

    Câu 85. Output của lệnh sau là:

    print(1, 2, 3, 4, sep=’*’)

    A. 1 2 3 4

    B. 1234

    C. 123*4

    D. 24

    Câu 86. Python có 2 loại hàm chính, đó là:

    A. Custom function & User defined function

    B. Built-in function & User defined function

    C. Built-in function & User function

    D. System function & User function

    Câu 87. Python là

    A. Ngôn ngữ lập trình bậc cao.

    B. Ngôn ngữ lập trình bậc thấp.

    C. Chương trình dịch.

    D. Ngôn ngữ máy.

    Câu 88. Python được dùng để:

    A. phát triển các ứng dụng web, phần mềm ứng dụng

    B. lập trình games, điều khiển robot

    C. xử lí ảnh, phân tích dữ liệu, …

    D. Cả A, B và C.

    Câu 89. Theo dõi đoạn code dưới đây và chọn đáp án đúng nhất:

    a = [1, 4, 20, 2, 5]

    x = a[0]

    for i in a:

    if i > x:

    x = i

    print x

    A. x là giá trị trung bình của list.

    B. x là giá trị nhỏ nhất của list.

    C. x là giá trị lớn nhất của list.

    D. x là tổng giá trị các số trong list.

    Câu 90. Theo dõi đoạn code dưới đây và chọn đáp án đúng nhất:

    i = 0

    x = 0

    while i < 10:

    if i % 2 == 0:

    x += 1

    i += 1

    x = _.

    A. 3

    B. 4

    C. 5

    D. 0

    Câu 91. Trong NNLT Python để kiểm tra số tự nhiên n khác 0 là số chẵn hay lẻ, câu lệnh nào sau đây là đúng?

    A. if n//2==1: print(‘so chan’)

    else: print(‘so le’)

    B. if n//2==0: print(‘so chan’)

    else: print(‘so le’)

    C. if n%2==0: print(‘so chan’)

    else: print(‘so le’)

    D. if n%2==1: print(‘so chan’)

    else: print(‘so le’)

    Câu 92. Trong NNLT Python, biểu thức 1+x3 được viết là:

    A. 1+x**3

    B. 1+x^3

    C. 1+x*3

    D. 1+x^^3

    Câu 93. Trong NNLT Python, biểu thức sau cho kết quả bằng bao nhiêu?

    2**3+4//2-3%2

    A. 7

    B. 8

    C. 9

    D. 10

    Câu 94. Trong NNLT Python, biểu thức số học nào sau đây là hợp lệ?

    A. 5a + 7b + 8*c

    B. 5a + 7b + 8c

    C. {a + b}*c

    D. a*b(a+b)

    Câu 95. Trong NNLT Python, cho đoạn chương trình sau:

    a=1

    b=2

    a,b=b,a

    Sau khi thực hiện đoạn chương trình trên, giá trị của a và b là:

    A. a=1, b=2

    B. a=2, b=1

    C. a=1, b=1

    D. a=2, b=2

    Câu 96. Trong NNLT Python, cho đoạn chương trình sau:

    a=b=1

    c,d=1,2

    print(a+b+c+d)

    Kết quả trên màn hình là:

    A. 3

    B. 4

    C. 5

    D. 6

    Câu 97. Trong NNLT Python, câu lệnh sau cho kết quả trên màn hình là gì?

    if 1<2 and 1>3: print(‘false’)

    else: print(‘true’)

    A. TRUE

    B. true

    C. FALSE

    D. false

    Câu 98. Trong NNLT Python, cấu trúc rẽ nhánh dạng thiếu là:

    A. if <điều kiện>: <câu lệnh >

    B. IF <điều kiện>: <câu lệnh >

    C. if <điều kiện> then <câu lệnh >;

    D. IF <điều kiện> THEN <câu lệnh >;

    Câu 99. Trong NNLT Python, cấu trúc rẽ nhánh dạng đủ là:

    A. if <điều kiện>: <câu lệnh 1> else: <câu lệnh 2>

    B.

    if <điều kiện>: <câu lệnh 1>

    else: <câu lệnh 2>

    C. IF <điều kiện>: <câu lệnh 1> ELSE: <câu lệnh 2>

    D.

    IF <điều kiện>: <câu lệnh 1>

    ELSE: <câu lệnh 2>

    Câu 100. Trong NNLT Python, hãy chọn biểu diễn hằng trong các biểu diễn dưới đây:

    A. _Python

    B. 9A2

    C. ‘Python’

    D. B2@c3

    Câu 101. Trong NNLT Python, kết quả của biến x sau khi thực hiện câu lệnh x=math.sqrt(20 // 5) là:

    A. 4

    B. 0

    C. 16

    D. 2

    Câu 102. Trong NNLT Python, những tên biến nào sau đây là hợp lệ?

    A. Delta, x1, tinh tong

    B. KETQUA, Tong2so, chuvi

    C. 2x, Chu_vi, DT2

    D. x1, x*x, tong2so

    Câu 103. Trong NNLT Python, phát biểu nào sau đây là sai?

    A. Câu lệnh trong Python không có ký hiệu kết thúc câu lệnh, mỗi câu lệnh viết trên một dòng, nếu câu lệnh dài, dùng dấu sổ phải () để ngắt.

    B. Các biến không cần khai báo, gán cho biến giá trị kiểu nào thì biến sẽ có kiểu đó

    C. Kiểu dữ liệu của biến có thể thay đổi

    D. Để bắt đầu và kết thúc chương trình Python ta sử dụng Begin…End.

    Câu 104. Trong NNLT Python, phát biểu nào sau đây là sai?

    A. Tên là một dãy liên tiếp có số kí tự tùy ý

    B. Tên phân biệt chữ hoa và chữ thường

    C. Hằng xâu đặt trong cặp dấu nháy đơn hoặc nháy kép, ví dụ “python” hoặc ‘python’

    D. Tên không phân biệt chữ hoa và chữ thường

    Câu 105. Trong NNLT Python, phép toán chia lấy phần dư là:

    A. div

    B. mod

    C. //

    D. %

    Câu 106. Trong NNLT Python, phép toán chia lấy phần nguyên là:

    A. div

    B. mod

    C. //

    D. %

    Câu 107. Trong NNLT Python, so sánh bằng và khác được viết như thế nào?

    A. == (bằng), = ! (khác)

    B. = (bằng), = ! (khác)

    C. == (bằng), <> (khác)

    D. = (bằng), <> (khác)

    Câu 108. Trong NNLT Python, để gán cho biến x giá trị là 1, câu lệnh nào sau đây đúng?

    A. 1=x

    B. x=1

    C. x:=1

    D. 1=:x

    Câu 109. Trong NNLT Python, để nhập 1 số nguyên từ bàn phím cho biến n, ta chọn câu lệnh nào?

    A. input(‘Nhập số nguyên n: ‘,n)

    B. n=int(input(‘Nhập số nguyên n: ‘))

    C. n=int(‘Nhập số nguyên n: ‘)

    D. n:=int(input(‘Nhập số nguyên n: ‘))

    Câu 110. Trong NNLT Python, để nhập 3 số nguyên cho 3 biến a, b, c từ bàn phím, câu lệnh nào sau đây đúng?

    A. input(‘Nhập 3 số nguyên: ‘,a,b,c)

    B. a, b, c = map(int, input(‘Nhập 3 số nguyên: ‘).split())

    C. a, b, c = map(int, input(‘Nhập 3 số nguyên: ‘))

    D. map(int, input(‘Nhập 3 số nguyên: ‘).split(a,b,c))

    Câu 111. Trong NNLT Python, để nhập số thực cho biến n, câu lệnh nào sau đây đúng?

    A. n=input(‘Nhập 1 số thực:’)

    B. n=int(input(‘Nhập 1 số thực:’))

    C. n=float(input(‘Nhập 1 số thực:’))

    D. float(input(‘Nhập số thực n:’))

    Câu 112. Trong NNLT Python, để đưa kết quả ra màn hình ta sử dụng thủ tục nào?

    A. printf(<Danh sách kết quả ra>)

    B. print(<Danh sách kết quả ra>)

    C. Input(<Danh sách kết quả ra>)

    D. Print(<Danh sách kết quả ra>)

    Câu 113. Trong cửa sổ Shell của Python:

    A. Thực hiện ngay từng câu lệnh và thấy được kết quả.

    B. Không thực hiện ngay từng câu lệnh và không thấy được kết quả.

    C. Không thể thực hiện bất kì câu lệnh nào.

    D. Không thể thực hiện từng câu lệnh mà thực hiện toàn bộ.

    Câu 114. Trong ngôn ngữ lập trình Python, phát biểu nào sau đây là đúng?

    A. Python là ngôn ngữ lập trình bậc cao duy nhất

    B. Chương trình máy tính là một dãy các câu lệnh mà máy tính không hiểu được.

    C. Python phân biệt chữ hoa với chữ thường.

    D. Dãy kí tự muốn in ra màn hình dùng câu lệnh print() và không cần dùng cặp nháy.

    Câu 115. Trong ngôn ngữ lập trình Python, để in ra màn hình dòng chữ xin chao ta viết:

    A. print()

    B. print(xin chao)

    C. print(‘xin chao’)

    D. print xin chao

    Câu 116. Trong ngôn ngữ lập trình Python, để in ra màn hình ta sử dụng lệnh:

    A. write()

    B. Print()

    C. cout<<

    D. read()

    Câu 117. Từ khóa nào được sử dụng để bắt đầu hàm?

    A. Fun

    B. Define

    C. Def

    D. Function

    Câu 118. Vòng lặp nào trả về kết quả dưới đây?

    11111

    22222

    33333

    44444

    55555

    for i in range(1, 6): print(i, i, i, i, i)

    for i in range(1, 5): print(str(i) * 5)

    for i in range(1, 6): print(str(i) * 5)

    for i in range(0, 5): print(str(i) * 5)

    Câu 119. n trong đoạn sau là kiểu dữ liệu nào?

    n = ‘5’

    A. integer

    B. string

    C. tuple

    D. operator

    Câu 120. Ý nghĩa của hàm init() trong Python là gì?

    A. Khởi tạo một lớp để sử dụng.

    B. Được gọi khi một đối tượng mới được khởi tạo.

    C. Khởi tạo và đưa tất cả các thuộc tính dữ liệu về 0 khi được gọi.

    D. Không có đáp án đúng.

    Câu 121. Điền phần còn thiếu trong đoạn code để được out dưới đây:

    55555

    44444

    33333

    22222

    11111

    for i in range(5, 0, ):

    print(str(i) * 5)

    A. 0

    B. None

    C. 1

    D. -1

    Câu 122. Điều gì sẽ xảy ra nếu bạn cố mở một file không tồn tại?

    A. Python tự động tạo một file mới dưới tên bạn đang gọi ra.

    B. Không có gì xảy ra vì file không tồn tại.

    C. Gây ra một ngoại lệ

    D. Không có đáp án nào đúng

    Câu 123. Đoạn code dưới đây có ý nghĩa gì?

    f = open(“test.txt”)

    A. Mở file test.txt được phép đọc và ghi vào file.

    B. Mở file test.txt và chỉ được phép đọc file.

    C. Mở file test.txt và được phép ghi đè vào file

    D. Mở file test.txt và được phép ghi tiếp vào file.

    Câu 124. Đoạn code dưới đây có ý nghĩa gì?

    os.listdir()

    A. In ra thư mục làm việc hiện tại.

    B. In ra tất cả các thư mục (không phải tệp) bên trong thư mục đã cho

    C. In ra tất cả các thư mục và tập tin bên trong thư mục đã cho.

    D. Tạo một thư mục mới.

    Câu 125. Đoạn code nào sau đây sử dụng tính năng kế thừa của Python?

    class Foo: Pass

    class Foo(object): pass class Hoo(object) pass

    class Foo: pass class Hoo(Foo): pass

    D. Không có đáp án chính xác.

    Câu 126. Đoạn code nào tự động đóng tệp khi có ngoại lệ xảy ra?

    with open(“test.txt”, encoding = ‘utf-8’) as f:

    try: f = open(“test.txt”,encoding = ‘utf-8’) finall f.close()

    C. Không có đáp án chính xác

    D. Cả A và B đều đúng

    Câu 127. Đoạn code sau thực hiện yêu cầu gì?

    try:

    # đoạn code có thể gây ra lỗi

    pass

    except(TypeError, ZeroDivisionError):

    print(“Python Quiz”)

    A. In ra ‘ Python Quiz ‘ nếu có ngoại lệ xảy ra (không quan trọng là ngoại lệ gì).

    B. In ra ‘ Python Quiz ‘ nếu không có ngoại lệ xảy ra.

    C. In ra ‘ Python Quiz ‘ nếu một trong hai ngoại lệ TypeError và ZeroDivisionError xảy ra.

    D. Chỉ in ra ‘ Python Quiz ‘ khi cả hai ngoại lệ TypeError và ZeroDivisionError cùng xảy ra

    Câu 128. Đâu không phải là kiểu dữ liệu tiêu chuẩn trong Python?

    A. List

    B. Dictionary

    C. Class

    D. Tuple

    Câu 129. Đâu là giá trị của colors[2]?

    colors = [‘red’, ‘orange’, ‘yellow’, ‘green’, ‘blue’, ‘indigo’, ‘violet’]

    A. orange

    B. indigo

    C. blue

    D. yellow

    Câu 130. Đâu là kết quả của hàm complex() trong những đáp án dưới đây?

    A. 0j

    B. 0+0j

    C. 0

    D. Error

    Câu 131. Đâu là kết quả của đoạn code dưới đây?

    class Foo:

    def printLine(self, line = ‘Python’):

    print(line)

    o1 = Foo()

    o1.printLine(‘Java’)

    A. Python

    B. line

    C. Java

    D. Java Python

    Câu 132. Đâu là kết quả của đoạn code dưới đây?

    myList = [1, 5, 5, 5, 5, 1]

    max = myList[0]

    indexOfMax = 0

    for i in range(1, len(myList)):

    if myList[i] > max:

    max = myList[i]

    indexOfMax = i

    print(indexOfMax)

    A. 0

    B. 4

    C. 1

    D. 5

    Câu 133. Đâu là kết quả của đoạn code dưới đây?

    number = 5.0

    try:

    r = 10 / number

    print(r)

    except:

    print(“Oops! Error occurred.”)

    A. Oops! Error occurred.

    B. 2.0

    C. 2.0 Oops! Error occurred.

    D. 5.0

    Câu 134. Đâu là lợi thế của việc sử dụng hàm trong Python?

    A. Tránh việc phải lặp lại code thực thi những tác vụ tương tự nhau.

    B. Phân tách các vấn đề phức tạp thành các phần đơn giản hơn.

    C. Code rõ ràng, dễ quản lý hơn

    D. Tất cả các đáp án đều đúng.

    Câu 135. Đâu là output của chương trình dưới đây?

    class Point:

    def init(self, x = 0, y = 0):

    self.x = x + 1

    self.y = y + 1

    p1 = Point()

    print(p1.x, p1.y)

    A. 0 0

    B. 1 1

    C. None None

    D. x y

    Câu 136. Đâu là output của chương trình dưới đây?

    def outerFunction():

    global a

    a = 20

    def innerFunction():

    global a

    a = 30

    print(‘a =’, a)

    a = 10

    outerFunction()

    print(‘a =’, a)

    A. a = 10 a = 30

    B. a = 10

    C. a = 20

    D. a = 30

    Câu 137. Đâu là output của đoạn code dưới đây?

    mylist=[1, 5, 9, int(‘0’)]

    print(sum(mylist))

    A. 16

    B. 15

    C. 63

    D. Không có đáp án đúng.

    Câu 138. Đâu là quy tắc đúng khi đặt tên cho biến trong Python?

    A. Tên biến có thể bắt đầu bằng dấu gạch dưới _

    B. Có thể sử dụng keyword làm tên biến

    C. Tên biến có thể bắt đầu bằng một chữ số

    D. Tên biến có thể có các ký hiệu như ! @ # $ %

    Câu 139. Đâu là yếu tố được gọi ra khi hàm được khai báo trong một class?

    A. Module

    B. Class

    C. Method

    D. Một hàm khác

    Câu 140. Đâu là điểm khác biệt giữa tuple và list?

    A. Tuple nằm trong dấu ngoặc nhọn, list nằm trong dầu ngoặc vuông.

    B. Tuple nằm trong dấu ngoặc vuông, list nằm trong dầu ngoặc nhọn.

    C. Tuple là danh sách với dữ liệu kiểu la mã, list là danh sách với kiểu dữ liệu thường.

    D. Dữ liệu thuộc kiểu list có thể thay đổi được, dữ liệu thuộc kiểu tuple không thể thay đổi được.

    Câu 141. Để khai báo thư viện ta sử dụng từ khóa nào?

    A. uses

    B. import

    C. include

    D. attach

    Câu 142. Đối tượng dưới đây thuộc kiểu dữ liệu nào?

    L = [1, 23, ‘hello’, 1]

    A. List

    B. Dictionary

    C. Tuple

    D. Array

    2. Lời giải câu hỏi trắc nghiệm Python

    Câu 1. Đáp án A: Đúng.

    Câu 2. Đáp án D: \sqrt{x + \sqrt{x+\sqrt x}}.

    Câu 3. Đáp án D: 1 2.

    Câu 4. Đáp án A: print('xin chao').

    Câu 5. Đáp án D: 6.

    Câu 6. Đáp án D: TypeError: can’t multiply sequence by non-int of type ‘str’.

    Câu 7. Đáp án C: Trong Python, phân biệt chữ hoa và chữ thường.

    Câu 8. Đáp án A: id() trả về định danh một đối tượng.

    Câu 9. Đáp án D: Tất cả các đáp án trên đều đúng.

    Câu 10. Đáp án A: Hàm có thể được tái sử dụng trong chương trình.

    Câu 11. Đáp án B: Canh lề.

    Câu 12. Đáp án A: Error, 6.

    Câu 13. Đáp án A: Cả hai toán hạng đều là TRUE.

    Câu 14. Đáp án B: Nháy kép.

    Câu 15. Đáp án D: list(reversed(l)).

    Câu 16. Đáp án B: (a//b, a%b).

    Câu 17. Đáp án A: ord().

    Câu 18. Đáp án D: max().

    Câu 19. Đáp án C: TypeError.

    Câu 20. Đáp án B: sqrt().

    Câu 21. C. all()

    Câu 22. D. (x*y)z

    Câu 23. A. Module

    Câu 24. A. print(‘dien tich hinh vuong la:’,a*a)

    Câu 25. A. printHello() là một hàm và a là một biến. Cả hai đều không phải đối tượng.

    Câu 26. D. Tất cả các đáp án trên.

    Câu 27. D. Tất cả các đáp án trên.

    Câu 28. D. Chương trình chạy bình thường và kết quả được in ra là 45.

    Câu 29. B. Chương trình chạy bình thường và kết quả được in ra là 45.

    Câu 30. D. Tất cả các đáp án trên đều đúng.

    Câu 31: Đáp án D là không đúng vì Python không phải là ngôn ngữ biên dịch và có tốc độ thực hiện khá nhanh.

    Câu 32: Đáp án D là sai vì Python là ngôn ngữ lập trình cao cấp và không phải là ngôn ngữ máy tính.

    Câu 33: Đáp án D là đúng vì Python là ngôn ngữ thông dịch, hướng đối tượng và mã nguồn mở.

    Câu 34: Đáp án A là đúng vì lớp chỉ là một kế hoạch chi tiết cho đối tượng và có thể tạo nhiều đối tượng từ lớp đó.

    Câu 35: Đáp án A là đúng vì Python có khả năng đa hình, tức là một toán tử có thể có hoạt động khác nhau tùy thuộc vào toán hạng được sử dụng.

    Câu 36: Đáp án D là đúng vì Python là ngôn ngữ lập trình cấp cao, thông dịch, hướng đối tượng và mã nguồn mở.

    Câu 37: Đáp án A là đúng vì ngoại lệ là lỗi phát sinh khi đang thực thi chương trình, không phải để loại bỏ một khối code khỏi chương trình.

    Câu 38: Đáp án D là đúng vì hex(15) trả về chuỗi “0xf”, đại diện cho số 15 ở hệ cơ số 16.

    Câu 39: Đáp án B là đúng vì chr(97) trả về ký tự ‘a’, còn chr(’97’) sẽ bị lỗi vì đối số truyền vào phải là một số nguyên, không phải là một chuỗi.

    Câu 40: Đáp án C là đúng vì min(max(False,-3,-4), 2,7) tương đương với min(max(-3,-4), 2,7), và giá trị lớn nhất trong -3 và -4 là -3.

    Câu 41. Đáp án là C. 4.57

    Giải thích: Hàm round() được sử dụng để làm tròn số tới một số lượng chữ số nhất định. Trong trường hợp này, số 4.5676 sẽ được làm tròn tới 2 chữ số thập phân, cho kết quả là 4.57.

    Câu 42. Đáp án là D. 4.6

    Giải thích: Nếu không chỉ định số lượng chữ số thập phân, hàm round() sẽ làm tròn số đó thành số nguyên gần nhất. Trong trường hợp này, số 4.576 sẽ được làm tròn thành số nguyên gần nhất, là 5.

    Câu 43. Đáp án là B. 4 6

    Giải thích: Chương trình tạo ra hai đối tượng Point với các giá trị x và y tương ứng. Khi trừ p2 từ p1, phương thức sub() được gọi và trả về một đối tượng Point mới với giá trị x và y là tổng của các giá trị x và y của hai đối tượng ban đầu. Kết quả in ra là giá trị x và y của đối tượng Point mới này.

    Câu 44. Đáp án là C. [‘a’, ‘aa’, ‘aaa’, ‘b’, ‘bb’]

    Giải thích: Slicing mảng với chỉ số âm có nghĩa là bắt đầu từ phần tử đầu tiên và lấy tất cả các phần tử trừ phần tử cuối cùng. Trong trường hợp này, mảng được lấy từ phần tử đầu tiên đến phần tử thứ 5, bỏ qua phần tử cuối cùng “bbb”.

    Câu 45. Đáp án là A. m, y,, n, a, m, e,, i, s,, x,

    Giải thích: Vòng lặp for lặp lại từng ký tự trong chuỗi “my name is x” và in ra ký tự đó, kết thúc bằng dấu phẩy và khoảng trắng. Do đó, kết quả in ra là “m, y,, n, a, m, e,, i, s,, x,”.

    Câu 46. Đáp án là A. 2

    Giải thích: Hàm isinstance() được sử dụng để kiểm tra xem một đối tượng có phải là một loại dữ liệu cụ thể hay không. Trong trường hợp này, x và z là kiểu số nguyên, trong khi y là một chuỗi. Vì vậy, chỉ có x và z được cộng vào biến sum, cho tổng là 2.

    Câu 47. Đáp án là A. 4

    Giải thích: Hàm len() được sử dụng để đếm số lượng phần tử trong một danh sách. Trong trường hợp này, danh sách có 4 phần tử: “hello”, 2, 4 và 6.

    Câu 48. Đáp án là B. [(1, 2), (2, 3)]

    Giải thích: Hàm enumerate() được sử dụng để đánh số các phần tử trong một danh sách. Trong trường hợp này, danh sách [2, 3] được liệt kê và được đánh số bắt đầu từ 1. Do đó, kết quả của hàm là [(1, 2), (2, 3)].

    Câu 49. Đáp án là B. Error 65

    Giải thích: Lỗi xảy ra vì hàm ord() chỉ có thể áp dụng cho ký tự duy nhất, chứ không thể áp dụng cho một số nguyên như 65. Đối với ký tự ‘A’, hàm ord() sẽ trả về mã Unicode của ký tự đó, là 65.

    Câu 50. Đáp án là D. 6

    Giải thích: Hàm eval() được sử dụng để đánh giá một biểu thức được truyền dưới dạng một chuỗi. Trong trường hợp này, chuỗi ‘x^2’ được đánh giá với giá trị x là 3. Khi tính toán 3 ^ 2, kết quả là 9. Tuy nhiên, ký hiệu ^ thực hiện phép toán XOR trên hai số nguyên. Vì vậy, thực hiện phép toán 3 XOR 2 sẽ cho kết quả là 1. Vì vậy, câu trả lời đúng là 6 (9 XOR 3).

    Câu 51. Đáp án là C. False

    Giải thích: Hàm all() trả về True nếu tất cả các phần tử trong iterable (trong trường hợp này là list [2,4,0,6]) đều đúng (khác 0 hoặc False). Trong trường hợp này, phần tử thứ 3 trong list là 0, nên all() trả về False.

    Câu 52. Đáp án là D. 1+2j

    Giải thích: Hàm complex() được sử dụng để tạo ra một số phức với phần thực và phần ảo được cung cấp. Trong trường hợp này, phần thực là 1 và phần ảo là 2j, vì vậy đầu ra của hàm sẽ là 1+2j.

    Câu 53. Đáp án là A. -inf inf

    Giải thích: Khi đưa chuỗi ‘-infinity’ hoặc ‘inf’ vào hàm float(), nó sẽ trả về giá trị tương ứng với số vô cực âm hoặc dương. Vì vậy, kết quả của hai lệnh trên sẽ là -inf và inf.

    Câu 54. Đáp án là C. 0o7 Error

    Giải thích: Hàm oct() được sử dụng để chuyển đổi một số nguyên sang hệ bát phân (octal). Trong trường hợp này, oct(7) sẽ trả về ‘0o7’. Tuy nhiên, oct(‘7’) sẽ gây ra lỗi vì tham số đầu vào phải là một số nguyên.

    Câu 55. Đáp án là C. [2, 3, 4]

    Giải thích: Biến numbers là một list chứa các số 2, 3 và 4. Hàm print() được sử dụng để hiển thị giá trị của biến numbers, và kết quả được in ra là [2, 3, 4].

    Câu 56. Đáp án là B. 10 10 20

    Giải thích: Hàm f() là một generator function (hàm sinh ra generator), nó sử dụng từ khóa yield để trả về một giá trị và tạm dừng thực thi cho đến khi generator được gọi tiếp theo. Trong đoạn code này, hàm f() được gọi với tham số là 10, và sau đó gọi next(a) sẽ trả về giá trị 10. Lời gọi next(a) tiếp theo cũng trả về giá trị 10 vì hàm f() tạm dừng thực thi ở câu lệnh yield và chưa được gọi tiếp theo. Cuối cùng, lời gọi a.send(20) sẽ tiếp tục thực thi hàm f() và trả về giá trị 20. Vì vậy, kết quả in ra sẽ là 10 10 20.

    (đang cập nhật)

  • Bài tập Python cơ bản lớp 10

    Bài tập Python cơ bản lớp 10

    Bài viết này cung cấp một số bài tập Python cơ bản giúp các bạn bước đầu làm quen với ngôn ngữ lập trình Python về cách nhập dữ liệu, in kết quả ra màn hình, cách sử dụng các hàm số học chuẩn, câu lệnh điều kiện if, câu lệnh vòng lặp for,…

    Mời bạn tham khảo thêm 100+ Bài tập Python cơ bản có lời giải.

    1. Nhập xuất cơ bản

    Bài 1. Viết chương trình xuất ra màn hình nhiệt độ (oK) tương ứng khi nhập vào nhiệt độ (oC)?

    # Nhập nhiệt độ Celsius từ người dùng
    celsius = float(input("Nhập nhiệt độ Celsius: "))
    
    # Chuyển đổi nhiệt độ từ Celsius sang Kelvin
    kelvin = celsius + 273.15
    
    # Xuất ra màn hình nhiệt độ Kelvin tương ứng
    print("Nhiệt độ tương ứng là:", kelvin, "K")

    Bài 2. Viết chương nhập vào 2 số nguyên dương m và n (m>n), hãy in ra màn hình phần nguyên và phần dư của m chia cho n?

    # Nhập vào 2 số nguyên dương m và n
    m = int(input("Nhập số nguyên dương m: "))
    n = int(input("Nhập số nguyên dương n (n < m): "))
    
    # Tính phần nguyên và phần dư của m chia n
    div = m // n
    mod = m % n
    
    # In kết quả ra màn hình
    print("Kết quả phép chia m/n là:", div, "với phần dư là:", mod)
    

    Bài 3. Viết chương trình Python nhập vào độ dài 2 cạnh của hình chữ nhật, tính chu vi và diện tích hình chữ nhật đó.

    #chu vi, dien tich hcn
    a = float(input('Nhập độ dài cạnh thứ nhất: '))
    b = float(input('Nhập độ dài cạnh thứ hai: '))
    cv = (a+b)*2
    dt = a*b
    print('Chu vi = {0}'.format(cv))
    print('Dien tich = {0}'.format(dt))

    Bài 4. Viết chương trình Python nhập vào bán kính của hình tròn, tính chu vi và diện tích hình tròn đó.

    # chu vi, dien tich hinh tron
    r = float(input('Nhập bán kính hình tròn: '))
    cv = 2*r*3.14
    dt = r*r*3.14
    print('Chu vi = {0}'.format(cv))
    print('Dien tich = {0}'.format(dt))

    Bài 5. Viết chương trình Python nhập vào ba số a,b,c bất kì. Kiểm tra xem 3 số đó có thể  là độ dài ba cạnh tam giác hay không, nếu  không  thì in  ra màn  hình  ‘ Không tạo thành tam giác’. Ngược lại, tính chu vi và diện tích tam giác đó.

    #kiểm tra tam giac, chu vi, diện tích tam giác
    import math
    a = float(input('Nhập độ dài cạnh thứ nhất: '))
    b = float(input('Nhập độ dài cạnh thứ hai: '))
    c = float(input('Nhập độ dài cạnh thứ ba: '))
    if a+b>c and a+c>b and b+c>a:
       cv = a+b+c
       p = (a+b+c)/2
       dt = math.sqrt(p*(p-a)*(p-b)*(p-c))
       print('Chu vi = {0}'.format(cv))
       print('Dien tich = {0}'.format(dt))
    else: print('Không tạo thành tam giác')


    Bài 6. Viết chương trình nhập ba số nguyên dương a, b, h từ bàn phím lần lượt là độ dài đáy lớn, đáy bé và chiều cao của một hình thang. Tính diện tích hình thang và in kết quả ra màn hình.

    # Nhập ba số nguyên dương a, b, h từ bàn phím
    a = int(input("Nhập độ dài đáy lớn a: "))
    b = int(input("Nhập độ dài đáy bé b: "))
    h = int(input("Nhập chiều cao h: "))
    
    # Tính diện tích hình thang
    area = (a + b) * h / 2
    
    # In kết quả ra màn hình
    print("Diện tích hình thang là:", area)
    

    2. Cấu trúc rẽ nhánh

    Bài 1: Viết chương trình nhập vào số nguyên dương n, kiểm tra và xuất ra màn hình n là số chẵn hay số lẻ?

    n = int(input("Nhap vao mot so nguyen duong: "))
    
    if n % 2 == 0:
        print(n, "la so chan")
    else:
        print(n, "la so le")

    Trong đoạn code trên, hàm input() được sử dụng để nhập vào một chuỗi từ bàn phím và sau đó hàm int() được sử dụng để chuyển chuỗi đó thành một số nguyên. Lệnh điều kiện if-else được sử dụng để kiểm tra xem n có chia hết cho 2 hay không, nếu có thì n là số chẵn, ngược lại thì n là số lẻ. Sau đó, kết quả được in ra trên màn hình bằng cách sử dụng hàm print().

    Ví dụ:

    Nhap vao mot so nguyen duong: 5
    5 la so le
    
    Nhap vao mot so nguyen duong: 6
    6 la so chan

    Bài 2: Cho biểu thức f(x,y)=3*sin(x)+4*cos(x). Viết chương trình tính giá trị của biểu thức f(x,y) tại x, y nhập vào từ bàn phím.

    Để tính giá trị của biểu thức f(x, y) = 3*sin(x) + 4*cos(x) tại x, y nhập vào từ bàn phím trong Python, ta có thể sử dụng thư viện math để tính toán các hàm sin và cos. Cụ thể, ta có thể viết mã nguồn như sau:

    import math
    
    x = float(input("Nhập giá trị x: "))
    y = float(input("Nhập giá trị y: "))
    
    result = 3 * math.sin(x) + 4 * math.cos(y)
    
    print("Giá trị của biểu thức f(x, y) là:", result)

    Bài 3: Viết chương trình nhập vào năm bất kỳ (ví dụ 2023), hãy cho biết năm đó có phải năm nhuận hay không?

    year = int(input("Nhập vào một năm: "))
    
    if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
        print(year, "là năm nhuận")
    else:
        print(year, "không phải là năm nhuận")

    Bài 4: Em hãy viết đoạn chương trình để xuất ra màn hình xếp loại học lực của học sinh theo giá trị điểm của học sinh?

    Để xếp loại học lực của học sinh dựa trên giá trị điểm của học sinh, ta có thể sử dụng các quy tắc sau:

    • Nếu điểm trung bình của học sinh >= 9.0, xếp loại học sinh là “Xuất sắc”.
    • Nếu điểm trung bình của học sinh >= 8.0 và < 9.0, xếp loại học sinh là “Giỏi”.
    • Nếu điểm trung bình của học sinh >= 7.0 và < 8.0, xếp loại học sinh là “Khá”.
    • Nếu điểm trung bình của học sinh >= 5.0 và < 7.0, xếp loại học sinh là “Trung bình”.
    • Nếu điểm trung bình của học sinh < 5.0, xếp loại học sinh là “Yếu”.

    Ví dụ: Giả sử ta có điểm trung bình của học sinh là 8.5. Kết quả xếp loại học lực của học sinh đó là “Giỏi”.

    Dưới đây là mã nguồn Python để xác định xếp loại học lực của học sinh dựa trên giá trị điểm của học sinh:

    diem_trung_binh = float(input("Nhập vào điểm trung bình của học sinh: "))
    
    if diem_trung_binh >= 9.0:
        print("Xuất sắc")
    elif diem_trung_binh >= 8.0:
        print("Giỏi")
    elif diem_trung_binh >= 7.0:
        print("Khá")
    elif diem_trung_binh >= 5.0:
        print("Trung bình")
    else:
        print("Yếu")

    Ở đoạn mã trên, ta sử dụng hàm input() để nhập vào giá trị điểm trung bình của học sinh. Sau đó, ta sử dụng lệnh if-elif để kiểm tra giá trị điểm và xác định xếp loại học lực tương ứng. Kết quả sẽ được in ra trên màn hình bằng cách sử dụng hàm print().

    Ví dụ:

    Nhập vào điểm trung bình của học sinh: 8.5
    Giỏi

    Bài 5: Viết chương trình giải phương trình bậc nhất một ẩn ax + b = 0, với hệ số a, b nhập vào từ bàn phím.

    # Giải phương trình bậc nhất ax+b=0
    a, b= map(float, input('Nhập a, b: ').split())
    if a==0 and b!=0: print('Phương trình vô nghiệm')
    else:
        if a==0 and b==0: print('Phương trình vô số nghiệm')
        else: print('x= {0}'.format(-b/a))


    Bài 6: Viết chương trình giải phương trình bậc hai ax2 + bx + c = 0 (a≠0), với hệ số a, b, c nhập vào từ bàn phím.

    import math
    a, b, c = map(int, input('Nhập a, b, c: ').split())
    d=b**2-4*a*c
    if d<0: print('Phương trình vô nghiệm')
    else:
        if d==0: print('phuong trinh co nghiem kep')
        else:
            x1=(-b-math.sqrt(d))/(2*a)
            x2=(-b+math.sqrt(d))/(2*a)
            print('x1={0}, x2={1}'.format(x1,x2))
    


    Bài 7: Viết chương trình kiểm tra xem điểm M(x,y) có nằm trong hình tròn tâm I(a,b) và bán kính R bằng cách xuất ra giá trị True nếu điểm M nằm trong hoặc trên hình tròn và False nếu nằm ngoài hình tròn, với x, y, a, b, R nhập vào từ bàn phím?

    Để kiểm tra xem điểm M(x,y) có nằm trong hình tròn tâm I(a,b) và bán kính R hay không, ta cần tính khoảng cách giữa điểm M và tâm I, sau đó so sánh khoảng cách đó với bán kính R của hình tròn. Nếu khoảng cách nhỏ hơn hoặc bằng bán kính R, thì điểm M nằm trong hoặc trên hình tròn, ngược lại, điểm M nằm ngoài hình tròn.

    Dưới đây là mã nguồn Python để thực hiện việc kiểm tra:

    import math
    
    # Nhập giá trị x, y, a, b, R từ bàn phím
    x = float(input("Nhập giá trị x của điểm M: "))
    y = float(input("Nhập giá trị y của điểm M: "))
    a = float(input("Nhập giá trị a của tâm I: "))
    b = float(input("Nhập giá trị b của tâm I: "))
    R = float(input("Nhập giá trị bán kính R của hình tròn: "))
    
    # Tính khoảng cách giữa điểm M và tâm I
    distance = math.sqrt((x - a)**2 + (y - b)**2)
    
    # So sánh khoảng cách với bán kính R của hình tròn
    if distance <= R:
        print(True)
    else:
        print(False)

    Bài 8: Viết chương trình nhập vào các số a, b, c, sau đó kiểm tra bộ ba số a, b, c vừa nhập vào là bộ ba cạnh của tam giác thường, tam giác vuông, tam giác cân, tam giác vuông cân, tam giác đều hay không phải là bộ ba cạnh của tam giác.

    Để kiểm tra xem bộ ba số a, b, c có phải là bộ ba cạnh của một loại tam giác nào đó hay không, ta cần kiểm tra các điều kiện sau:

    • Tổng hai cạnh bất kỳ phải lớn hơn cạnh thứ ba.
    • Điều kiện của từng loại tam giác cụ thể, ví dụ:
      • Tam giác thường: Không có đặc điểm gì đặc biệt, tức là không phải tam giác vuông, cân, vuông cân hoặc đều.
      • Tam giác vuông: Có một góc vuông.
      • Tam giác cân: Hai cạnh bằng nhau.
      • Tam giác vuông cân: Vừa có một góc vuông và hai cạnh bằng nhau.
      • Tam giác đều: Có ba cạnh bằng nhau.

    Dưới đây là mã nguồn Python để thực hiện việc kiểm tra:

    # Nhập giá trị a, b, c từ bàn phím
    a = float(input("Nhập giá trị cạnh a: "))
    b = float(input("Nhập giá trị cạnh b: "))
    c = float(input("Nhập giá trị cạnh c: "))
    
    # Kiểm tra xem bộ ba số a, b, c có phải là bộ ba cạnh của tam giác hay không
    if (a + b > c) and (a + c > b) and (b + c > a):
        if a == b == c:
            print("Đây là bộ ba cạnh của tam giác đều.")
        elif a == b or a == c or b == c:
            if (a**2 == b**2 + c**2) or (b**2 == a**2 + c**2) or (c**2 == a**2 + b**2):
                print("Đây là bộ ba cạnh của tam giác vuông cân.")
            else:
                print("Đây là bộ ba cạnh của tam giác cân.")
        elif (a**2 == b**2 + c**2) or (b**2 == a**2 + c**2) or (c**2 == a**2 + b**2):
            print("Đây là bộ ba cạnh của tam giác vuông.")
        else:
            print("Đây là bộ ba cạnh của tam giác thường.")
    else:
        print("Đây không phải là bộ ba cạnh của tam giác.")

    Bài 9. Viết chương trình tìm số lớn nhất trong ba số nhập vào từ bàn phím.

    # Tìm giá trị lớn nhất trong 3 số
    a,b,c=map(float,input('Nhập a, b, c: ').split())
    max=a
    if b>max: max=b
    if c>max: max=c
    print('So lon nhat= {0}'.format(max))

    Bài 10. Viết chương trình tìm số nhỏ nhất trong bốn số nhập vào từ bàn phím.

    # Tìm giá trị nhỏ nhất trong 4 số
    a,b,c,d=map(float,input('Nhập a, b, c, d: ').split())
    min=a
    if b<min: min=b
    if c<min: min=c
    if d<min: min=d
    print('Số nhỏ nhất= {0}'.format(min))

    Bài 11. Viết chương trình in ra bảng cửu chương.

    # In bảng cửu chương
    for n in range(2,10):
         for i in range(1,11): print('%1d x %1d = %2d' %(n,i,n*i))
         print()

    3. Cấu trúc lặp

    Bài 1: Viết chương trình tính tổng các số từ 1 đến n, với n là số nguyên dương nhập vào từ bàn phím.

    Để tính tổng các số từ 1 đến n, chúng ta có thể sử dụng vòng lặp for để lặp từ 1 đến n, sau đó cộng dồn các số lại.

    n = int(input("Nhập n: "))
    
    tong = 0
    for i in range(1, n+1):
        tong += i
    
    print("Tổng các số từ 1 đến", n, "là:", tong)

    Bài 2: Viết chương trình tính tổng của bình phương các số lẻ từ 1 đến n, với n là số nguyên dương nhập vào từ bàn phím.

    Để tính tổng của bình phương các số lẻ từ 1 đến n, chúng ta có thể sử dụng vòng lặp for để lặp từ 1 đến n và kiểm tra từng số có phải là số lẻ hay không. Nếu là số lẻ thì ta tính bình phương của nó và cộng vào tổng.

    n = int(input("Nhập n: "))
    
    tong = 0
    for i in range(1, n+1):
        if i % 2 == 1:
            tong += i**2
    
    print("Tổng bình phương các số lẻ từ 1 đến", n, "là:", tong)

    Bài 3: Viết chương trình nhập vào hai số nguyên dương m và n (m>n), xuất ra màn hình ước chung lớn nhất và bội chung nhỏ nhất của 2 số đó.

    Để tìm ước chung lớn nhất của 2 số m và n, ta sử dụng thuật toán Euclid như sau:

    • Đặt a = m, b = n.
    • Thực hiện phép chia lấy dư a % b và gán a = b, b = phép dư được lấy.
    • Lặp lại bước 2 cho đến khi b = 0.
    • Kết quả là giá trị a cuối cùng.

    Để tính bội chung nhỏ nhất của 2 số m và n, ta sử dụng công thức:

    lcm(m,n) = (m * n) / gcd(m,n)

    Trong đó gcd(m,n) là ước chung lớn nhất của m và n.

    m = int(input("Nhập số nguyên dương m: "))
    n = int(input("Nhập số nguyên dương n: "))
    
    # Tìm ước chung lớn nhất
    a = m
    b = n
    while b != 0:
        r = a % b
        a = b
        b = r
    gcd = a
    print("Ước chung lớn nhất của", m, "và", n, "là:", gcd)
    
    # Tìm bội chung nhỏ nhất
    lcm = (m * n) // gcd
    print("Bội chung nhỏ nhất của", m, "và", n, "là:", lcm)

    Bài 4: Viết chương trình kiểm tra số nguyên dương n nhập vào từ bàn phím có phải là số hoàn hảo hay không.

    Một số nguyên dương n được gọi là số hoàn hảo (số hoàn thiện) nếu tổng các ước của n (không tính chính nó) bằng n. Ví dụ: số 6 là số hoàn hảo vì 6 = 1 + 2 + 3.

    Để kiểm tra xem một số nguyên dương n có phải là số hoàn hảo hay không, ta có thể sử dụng thuật toán sau:

    1. Khởi tạo biến sum = 0.
    2. Duyệt từ i = 1 đến n//2 (lấy phần nguyên của n chia 2).
    3. Nếu n chia hết cho i, cộng i vào sum.
    4. Kiểm tra nếu sum = n, thì n là số hoàn hảo. Ngược lại, n không là số hoàn hảo.
    n = int(input("Nhập vào số nguyên dương n: "))
    
    sum = 0
    for i in range(1, n//2 + 1):
        if n % i == 0:
            sum += i
    
    if sum == n:
        print(n, "là số hoàn hảo.")
    else:
        print(n, "không là số hoàn hảo.")

    Bài 5: Viết chương trình đếm các số nguyên tố nhỏ hơn n, với n là số nguyên dương nhập vào từ bàn phím.

    Để đếm số lượng các số nguyên tố nhỏ hơn n, chúng ta cần viết một hàm kiểm tra số nguyên tố và sử dụng vòng lặp để duyệt qua tất cả các số từ 2 đến n-1. Nếu số đó là số nguyên tố, chúng ta sẽ tăng biến đếm lên 1.

    • Hàm is_prime(number) được sử dụng để kiểm tra xem một số nguyên dương có phải là số nguyên tố hay không. Trong hàm này, chúng ta sử dụng vòng lặp để duyệt qua tất cả các số từ 2 đến căn bậc hai của number để kiểm tra xem có số nào chia hết cho number hay không. Nếu có, number không phải là số nguyên tố và hàm sẽ trả về False. Nếu không, number là số nguyên tố và hàm sẽ trả về True.
    • Trong chương trình chính, chúng ta nhập vào số nguyên dương n, sau đó khởi tạo biến count bằng 0 để đếm số lượng các số nguyên tố. Chúng ta sử dụng vòng lặp để duyệt qua tất cả các số từ 2 đến n-1. Nếu số đó là số nguyên tố, chúng ta tăng biến count lên 1. Cuối cùng, chúng ta xuất ra màn hình số lượng các số nguyên tố nhỏ hơn n.
    def is_prime(number):
        """
        Kiểm tra số nguyên dương number có phải là số nguyên tố hay không.
        Trả về True nếu là số nguyên tố, False nếu không phải.
        """
        if number < 2:
            return False
        for i in range(2, int(number ** 0.5) + 1):
            if number % i == 0:
                return False
        return True
    
    n = int(input("Nhập số nguyên dương n: "))
    
    count = 0
    for i in range(2, n):
        if is_prime(i):
            count += 1
    
    print(f"Số lượng các số nguyên tố nhỏ hơn {n} là: {count}")

    Bài 6: Viết chương trình tính tổng:

    S=1/a + 1/(a+1) + 1/(a+2) +…+ 1/(a+n)+…

    Cho đến khi 1/(a+n)<0,0001. Với a là số thực bất kỳ nhập vào từ bàn phím

    Bài 7. In ra các số chia hết cho 3 từ 1 đến 100.

    # Duyệt từ 1 đến 100 và in ra các số chia hết cho 3
    for i in range(1, 101):
      if i % 3 == 0:
        print(i)

    Bài 8: Nhập vào một số nguyên dương, hãy phân tích số nguyên dương đó thành tích các thừa số nguyên tố.

    1. Khởi tạo một biến result để lưu trữ các thừa số nguyên tố của n.
    2. Khởi tạo biến i bằng 2.
    3. Sử dụng vòng lặp while để lặp lại cho đến khi n bằng 1: a. Kiểm tra n có chia hết cho i không, nếu có thì: i. Thêm i vào biến result. ii. Chia n cho i. b. Nếu n không chia hết cho i, tăng giá trị i lên 1.
    4. Trả về giá trị của biến result.
    n = int(input("Nhập số nguyên dương n: "))
    
    result = []
    i = 2
    
    while n != 1:
        if n % i == 0:
            result.append(i)
            n = n // i
        else:
            i += 1
    
    print("Các thừa số nguyên tố của", n, "là:", result)

    Nếu sử dụng hàm, ta có thể sử dụng thuật toán sau:

    1. Khởi tạo một biến i bằng 2 và một danh sách factors rỗng.
    2. Lặp cho đến khi số đầu vào n là 1: a. Nếu n chia hết cho i, thêm i vào danh sách factors và lấy n chia i. b. Nếu n không chia hết cho i, tăng giá trị của i lên 1.
    3. Trả về danh sách factors.
    def prime_factors(n):
        i = 2
        factors = []
        while n > 1:
            if n % i == 0:
                factors.append(i)
                n //= i
            else:
                i += 1
        return factors
    
    # Sử dụng hàm prime_factors để phân tích số nguyên dương nhập từ bàn phím
    n = int(input("Nhập một số nguyên dương: "))
    print("Phân tích thành tích các thừa số nguyên tố của", n, "là:", prime_factors(n))

    Bài 9. Tính tổng các số từ 1 đến 100.

    Tính tổng các số từ 1 đến 100:
    
    # Gán biến sum bằng 0
    sum = 0
    
    # Duyệt từ 1 đến 100 và cộng từng số vào sum
    for i in range(1, 101):
      sum += i
    
    # In kết quả
    print("Tổng các số từ 1 đến 100 là:", sum)

    Bài 10. In ra các số chẵn từ 2 đến 100.

    # Duyệt từ 2 đến 100 và in ra các số chẵn
    for i in range(2, 101, 2):
      print(i)

    Bài 11. In ra một tam giác Pascal.

    Bài tập Python cơ bản lớp 10 15
    # Khởi tạo một danh sách 2 chiều chứa các số 0
    triangle = [[0 for j in range(i+1)] for i in range(10)]
    
    # Gán giá trị cho các phần tử đầu tiên của mỗi hàng bằng 1
    for i in range(10):
      triangle[i][0] = 1
    
    # Tính toán các giá trị còn lại trong tam giác
    for i in range(1, 10):
      for j in range(1, i+1):
        triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]
    
    # In ra tam giác
    for row in triangle:
      print(" ".join(str(x) for x in row))

    Bài 12. Tìm số nguyên tố trong một khoảng từ 2 đến 100.

    # Duyệt từ 2 đến 100 và kiểm tra xem số đó có phải là số nguyên tố hay không
    for i in range(2, 101):
      is_prime = True
      for j in range(2, i):
        if i % j == 0:
          is_prime = False
          break
      if is_prime:
        print(i)

    4. Chương trình con

    Bài 1: Viết chương trình có sử dụng hàm lambda để trả về số giây tương ứng với các tham số giờ, phút, giây tương ứng nhập vào từ bàn phím.
    Câu 2: Viết chương trình tính tổng sau: S = 1/1! + 1/2! + … + 1/n!, với n là số nguyên dương nhập vào từ bàn phím.

    # Tính S=1 + 1/2! + 1/3! + ... + 1/n!
    n=int(input('Nhập n: '))
    gt=1
    s=0
    for i in range(1,n+1):
        gt=gt*i
        s+=1/gt
    print('s={0}'.format(s))


    Bài 3: Viết chương trình để in ra màn hình các số nguyên tố từ 1 đến n, với n là số nguyên dương nhập vào từ bàn phím.
    Bài 4: Viết chương trình giải bài toán Tháp Hà Nội. Bài toán Tháp Hà Nội (Tower of Hanoi) là một trò chơi toán học bao gồm 3 cột và với số đĩa nhiều hơn 1. Các đĩa có kích cỡ khác nhau và xếp theo tự tự tăng dần về kích cỡ từ trên xuống: đĩa nhỏ hơn ở trên đĩa lớn hơn. Nhiệm vụ của trò chơi là di chuyển các đĩa có kích cỡ khác nhau sang cột khác sao cho vẫn đảm bảo thứ tự ban đầu của các đĩa: đĩa nhỏ nằm trên đĩa lớn.

    5. Kiểu dữ liệu xâu

    Bài 1: Viết chương trình “chuẩn hóa” họ và tên khi người dùng nhập vào họ tên bất kỳ từ bàn phím?
    Bài 2: Viết chương trình nhập vào một xâu bất kỳ, xuất ra màn hình xâu đó sau khi đã xóa đi các ký tự số?
    Bài 3: Viết chương trình nhập vào một xâu bất kỳ, xuất ra màn hình xâu sau khi đã xóa các ký tự giống nhau liền kề.

    Bài 4. Đếm số lần xuất hiện của mỗi từ trong một đoạn văn.

    # Khởi tạo một đoạn văn
    text = "This is a sample text. It has some words in it. We want to count the number of times each word appears in the text."
    
    # Tách các từ trong văn bản thành một danh sách
    words = text.split()
    
    # Tạo một từ điển để lưu số lần xuất hiện của từng từ
    word_count = {}
    
    # Duyệt qua các từ trong danh sách và tăng số lần xuất hiện của từng từ lên 1
    for word in words:
      if word in word_count:
        word_count[word] += 1
      else:
        word_count[word] = 1
    
    # In kết quả
    print("Số lần xuất hiện của từng từ trong văn bản:")
    for word, count in word_count.items():
      print(f"{word}: {count}")

    6. Kiểu dữ liệu tệp

    Bài 1: Viết chương trình tính tổng các số lẻ trong tệp DATA.INP gồm 1 dòng duy nhất chứa dãy các số nguyên dương cách nhau bởi dấu cách. Xuất kết quả ra tệp DATA.OUT
    Bài 2: Viết chương trình lọc các số ở văn bản gồm có nhiều dòng trong tệp DATA.INP và xuất ra tệp DATA.OUT gồm dãy các số của từng dòng tương ứng ở trong tệp DATA.INP

    7. Kiểu dữ liệu mảng

    Bài 1: Viết chương trình nhập vào mảng gồm n số nguyên dương, hãy xuất ra màn hình tổng của các số lẻ trong mảng đó, với n>2
    Bài 2: Viết chương trình nhập vào số nguyên dương n, xuất ra màn hình các số nguyên tố nhỏ hơn n, với n>2
    Bài 3: Viết chương trình nhập vào dãy các số bất kỳ, tìm số lớn nhất trong dãy số đó và xuất ra màn hình?
    Bài 4: Viết chương trình dung phương pháp list comprehension để tạo các list sau:
    a) Dãy các số là bội của 3 và nhỏ hơn 100
    b) Dãy 10 số chính phương đầu tiên
    Bài 5: Viết chương trình nhập vào dãy các số nguyên bất kỳ, kiểm tra và xuất ra màn hình xem dãy số đó có tạo thành cấp số cộng hay không?

    Bài 6: Viết chương trình nhập vào dãy gồm n số nguyên cách nhau bởi dấu cách. Sau đó đếm và xuất ra màn hình xem trong dãy vừa nhập có bao nhiêu số nguyên tố.
    Bài 7: Viết chương trình nhập vào bàn phím số nguyên dương n, xuất ra màn hình dãy số Fibonaxi. Biết rằng dãy Fibonaxi có dạng như sau: F0 = 1, F1 = 1, Fn = Fn-1 + Fn-2 với n>1
    Bài 8: Viết chương trình nhập vào 2 ma trận số nguyên kích thước mxn, sau đó xuất ra màn hình tổng của 2 ma trận đó?
    Bài 9: Viết chương trình nhập vào danh sách gồm n người, mỗi người sẽ có các thông tin như: họ và tên, tuổi, giới tính và quê quán. Sau đó xuất ra màn hình thông tin của từng người đã nhập.

    Bài 10. Tìm số lớn nhất trong một danh sách số.

    # Khởi tạo danh sách số
    numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    
    # Gán biến max bằng số đầu tiên trong danh sách
    max = numbers[0]
    
    # Duyệt qua các số trong danh sách và cập nhật max nếu có số lớn hơn
    for number in numbers:
      if number > max:
        max = number
    
    # In kết quả
    print("Số lớn nhất trong danh sách là:", max)

    Bài 11. Sắp xếp các số trong một danh sách theo thứ tự tăng dần.

    Hướng dẫn. Để sắp xếp các số trong một danh sách theo thứ tự tăng dần, bạn có thể sử dụng một thuật toán sắp xếp như “sắp xếp chọn” (selection sort), “sắp xếp nổi bọt” (bubble sort), “sắp xếp chèn” (insertion sort) hoặc “sắp xếp nhanh” (quick sort).

    Dưới đây là một ví dụ về cách sử dụng Python để sắp xếp một danh sách các số theo thứ tự tăng dần bằng thuật toán sắp xếp nhanh:

    def quick_sort(arr):
        if len(arr) <= 1:
            return arr
        else:
            pivot = arr[0]
            less = [x for x in arr[1:] if x <= pivot]
            greater = [x for x in arr[1:] if x > pivot]
            return quick_sort(less) + [pivot] + quick_sort(greater)
    
    my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
    sorted_list = quick_sort(my_list)
    print(sorted_list)

    Bài 12. Tìm số lẻ lớn nhất trong một danh sách số.

    # Khởi tạo danh sách số
    numbers = [5, 3, 1, 8, 4, 9, 2, 7, 6]
    
    # Gán biến max bằng số đầu tiên trong danh sách
    max = numbers[0]
    
    # Duyệt qua các số trong danh sách và cập nhật max nếu có số lớn hơn và lẻ
    for number in numbers:
      if number > max and number % 2 == 1:
        max = number
    
    # In kết quả
    print("Số lớn nhất trong danh sách là:", max)

    8. Kiểu dữ liệu từ điển

    Bài 1. Viết chương trình nhập vào một xâu bất kỳ, xuất ra màn hình số lần lặp của các từ đơn trong xâu vừa nhập.

    Bài 2. Tính tổng các phần tử trong một dictionary.

    # Khởi tạo dictionary
    my_dict = {'a': 1, 'b': 2, 'c': 3}
    
    # Tính tổng các giá trị trong dictionary
    total = 0
    for value in my_dict.values():
      total += value
    
    # In kết quả
    print("Tổng các giá trị trong dictionary là:", total)

    Bài 3. Tìm phần tử lớn nhất trong một dictionary.

    # Khởi tạo dictionary
    my_dict = {'a': 5, 'b': 2, 'c': 7, 'd': 3}
    
    # Tìm phần tử lớn nhất trong dictionary
    max_key = max(my_dict, key=my_dict.get)
    
    # In kết quả
    print("Phần tử lớn nhất trong dictionary là:", max_key)

    9. Kiểu dữ liệu xâu

    Bài 1: Viết chương trình “chuẩn hóa” họ và tên khi người dùng nhập vào họ tên bất kỳ từ bàn phím?

    Bài 2: Viết chương trình nhập vào một xâu bất kỳ, xuất ra màn hình xâu đó sau khi đã xóa đi các ký tự số?

    Bài 3: Viết chương trình nhập vào một xâu bất kỳ, xuất ra màn hình xâu sau khi đã xóa các ký tự giống nhau liền kề.

    Bài 4. Cho hai xâu s1, s2. Viết đoạn chương trình chèn xâu s1 vào giữa s2, tại vị trí len(s2)//2. In kết quả ra màn hình.

    Bài 5. Viết chương trình nhập số học sinh và họ tên học sinh. Sau đó đếm xem trong danh sách có bao nhiêu bạn tên là “Hương”.

    Bài 6. Viết chương trình nhập họ tên đầy đủ của người dùng, sau đó in thông báo tên và họ đệm của người đó.

    Bài 7. Viết chương trình nhập số tự nhiên n rồi nhập n họ tên học sinh. Sau đó yêu cầu nhập một tên và thông báo số bạn có cùng tên trong lớp.

    Bài 8. Đếm số lần xuất hiện của từng ký tự trong một chuỗi.

    Hướng dẫn. Để đếm số lần xuất hiện của từng ký tự trong một chuỗi trong Python, bạn có thể sử dụng một từ điển để lưu trữ số lần xuất hiện của từng ký tự. Sau đó, bạn có thể duyệt qua các ký tự trong chuỗi và tăng số lần xuất hiện của từng ký tự lên 1.

    # Khởi tạo chuỗi
    my_string = "This is a sample string. It has some characters in it."
    
    # Tạo một từ điển để lưu số lần xuất hiện của từng ký tự
    char_count = {}
    
    # Duyệt qua các ký tự trong chuỗi và tăng số lần xuất hiện của từng ký tự lên 1
    for char in my_string:
      if char in char_count:
        char_count[char] += 1
      else:
        char_count[char] = 1
    
    # In ra màn hình số lần xuất hiện của từng ký tự
    print("Số lần xuất hiện của từng ký tự trong chuỗi:")
    for char, count in char_count.items():
      print(char, "xuất hiện", count, "lần")

    10. Hướng đối tượng

    Bài 1. Tạo một lớp Hình chữ nhật (Rectangle) có các thuộc tính chiều dài (length) và chiều rộng (width) và các phương thức tính diện tích (area) và chu vi (perimeter) của hình chữ nhật đó.

    class Rectangle:
        def __init__(self, length, width):
            self.length = length
            self.width = width
            
        def area(self):
            return self.length * self.width
        
        def perimeter(self):
            return 2 * (self.length + self.width)

    Bài 2. Tạo một lớp Hình tròn (Circle) có thuộc tính bán kính (radius) và phương thức tính diện tích (area) và chu vi (circumference) của hình tròn đó.

    class Circle:
        def __init__(self, radius):
            self.radius = radius
            
        def area(self):
            return math.pi * self.radius**2
        
        def circumference(self):
            return 2 * math.pi * self.radius

    Bài 3. Tạo một lớp Điểm (Point) có các thuộc tính x và y và phương thức tính khoảng cách đến điểm khác.

    import math
    
    class Point:
        def __init__(self, x, y):
            self.x = x
            self.y = y
            
        def distance(self, other_point):
            dx = self.x - other_point.x
            dy = self.y - other_point.y
            return math.sqrt(dx**2 + dy**2)

    Bài 4. Tạo một lớp Người (Person) có các thuộc tính tên (name), tuổi (age) và địa chỉ (address) và phương thức in ra thông tin của người đó.

    class Person:
        def __init__(self, name, age, address):
            self.name = name
            self.age = age
            self.address = address
            
        def print_info(self):
            print(f"Name: {self.name}")
            print(f"Age: {self.age}")
            print(f"Address: {self.address}")

    Bài 5. Tạo một lớp Điện thoại di động (MobilePhone) có các thuộc tính tên (name), giá (price) và nhà sản xuất (manufacturer) và phương thức in ra thông tin của điện thoại đó.

    class MobilePhone:
        def __init__(self, name, price, manufacturer):
            self.name = name
            self.price = price
            self.manufacturer = manufacturer
            
        def print_info(self):
            print(f"Name: {self.name}")
            print(f"Price: {self.price}")
            print(f"Manufacturer: {self.manufacturer}")

    Bài 6. Tạo một lớp Phân số (Fraction) có hai thuộc tính là tử số (numerator) và mẫu số (denominator) và các phương thức tính toán phép cộng, phép trừ, phép nhân và phép chia giữa các phân số.

    class Fraction:
        def __init__(self, numerator, denominator):
            self.numerator = numerator
            self.denominator = denominator
            
        def __add__(self, other_fraction):
            new_numerator = self.numerator * other_fraction.denominator + other_fraction.numerator * self.denominator
            new_denominator = self.denominator * other_fraction.denominator
            return Fraction(new_numerator, new_denominator)
        
        def __sub__(self, other_fraction):
            new_numerator = self.numerator * other_fraction.denominator - other_fraction.numerator * self.denominator
            new_denominator = self.denominator * other_fraction.denominator
            return Fraction(new_numerator, new_denominator)
        
        def __mul__(self, other_fraction):
            new_numerator = self.numerator * other_fraction.numerator
            new_denominator = self.denominator * other_fraction.denominator
            return Fraction(new_numerator, new_denominator)
        
        def __truediv__(self, other_fraction):
            new_numerator = self.numerator * other_fraction.denominator
            new_denominator = self.denominator * other_fraction.numerator
            return Fraction(new_numerator, new_denominator)
        
        def simplify(self):
            gcd = math.gcd(self.numerator, self.denominator)
            return Fraction(self.numerator // gcd, self.denominator // gcd)
        
        def __str__(self):
            return f"{self.numerator}/{self.denominator}"

    Bài 7. Tạo một lớp Mảng (Array) có các thuộc tính là độ dài (length) và các phần tử (elements) và phương thức thêm phần tử (append), lấy phần tử tại vị trí (get) và tính tổng các phần tử (sum).

    class Array:
        def __init__(self):
            self.length = 0
            self.elements = []
            
        def append(self, element):
            self.elements.append(element)
            self.length += 1
            
        def get(self, index):
            if index < 0 or index >= self.length:
                raise IndexError("Index out of range")
            return self.elements[index]
        
        def sum(self):
            return sum(self.elements)

    Bài 8. Tạo một lớp Động vật (Animal) có các thuộc tính tên (name), tuổi (age) và màu lông (fur_color) và phương thức in ra thông tin của động vật đó.

    class Animal:
        def __init__(self, name, age, fur_color):
            self.name = name
            self.age = age
            self.fur_color = fur_color
            
        def print_info(self):
            print(f"Name: {self.name}")
            print(f"Age: {self.age}")
            print(f"Fur color: {self.fur_color}")

    Bài 9. Tạo một lớp Học sinh (Student) có các thuộc tính tên (name), tuổi (age), lớp (class_name) và phương thức in ra thông tin của học sinh đó.

    class Student:
        def __init__(self, name, age, class_name):
            self.name = name
            self.age = age
            self.class_name = class_name
            
        def display_info(self):
            print("Name:", self.name)
            print("Age:", self.age)
            print("Class:", self.class_name)

    Ở đây, lớp Student có ba thuộc tính là name, age và class_name. Phương thức khởi tạo __init__() được sử dụng để khởi tạo các thuộc tính này khi đối tượng được tạo ra. Phương thức display_info() được sử dụng để in ra thông tin của học sinh, bao gồm tên, tuổi và lớp.

    Cách sử dụng lớp Student như sau:

    student1 = Student("John", 18, "12A")
    student2 = Student("Mary", 17, "11B")
    
    student1.display_info()  # Output: Name: John, Age: 18, Class: 12A
    student2.display_info()  # Output: Name: Mary, Age: 17, Class: 11B

    Trong ví dụ này, chúng ta tạo hai đối tượng học sinh student1 và student2 với các thuộc tính khác nhau. Sau đó, chúng ta gọi phương thức display_info() của từng đối tượng để in ra thông tin của học sinh đó.

    Bài 10. Xây dựng lớp tam giác kế thừa từ lớp đa giác.

    Để xây dựng lớp tam giác (Triangle) kế thừa từ lớp đa giác (Polygon), ta có thể định nghĩa lớp Triangle như sau:

    class Polygon:
        def __init__(self, sides):
            self.sides = sides
            
        def perimeter(self):
            return sum(self.sides)
    
    class Triangle(Polygon):
        def __init__(self, sides):
            super().__init__(sides)
            
        def area(self):
            a, b, c = self.sides
            s = (a + b + c) / 2
            return (s * (s - a) * (s - b) * (s - c)) ** 0.5

    Ở đây, lớp Triangle kế thừa từ lớp Polygon bằng cách sử dụng từ khóa super(). Lớp Triangle có thêm phương thức area() để tính diện tích của tam giác, dựa trên công thức Heron.

    Cách sử dụng lớp Triangle như sau:

    triangle = Triangle([3, 4, 5])
    print(triangle.perimeter())  # Output: 12
    print(triangle.area())  # Output: 6.0

    Trong ví dụ này, chúng ta khởi tạo một đối tượng tam giác với độ dài các cạnh lần lượt là 3, 4 và 5. Sau đó, chúng ta gọi hai phương thức perimeter() và area() của lớp Triangle để tính chu vi và diện tích của tam giác.

  • ChatGPT của nước nào?

    ChatGPT của nước nào?

    ChatGPT là một AI trò chuyện mới được phát triển bởi một công ty công nghệ OpenAI của Mỹ. Xem thêm ChatGPT là gì? Chat GPT làm được gì?

    ChatGPT của nước nào?

    ChatGPT của nước nào?

    OpenAI được tạo thành từ công ty vì lợi nhuận OpenAI LP và công ty mẹ của nó, tổ chức phi lợi nhuận OpenAI Inc. Nó được thành lập vào năm 2015 bởi Elon Musk, Sam Altman, Greg Brockman, John Schulman và Ilya Sutskever.

    OpenAI có trụ sở tại California, đã ra mắt ChatGPT vào cuối tháng 11 năm 2022. Chatbot này phản hồi các nhận xét và yêu cầu theo cách trò chuyện, tổ chức các cuộc đối thoại trong đó nó có thể đặt câu hỏi tiếp theo và từ chối các yêu cầu không phù hợp.

    ChatGPT của nước nào?
    Người đồng sáng lập OpenAI Sam Altman công bố người dùng thử thứ một triệu của ChatGPT. Hình ảnh: Twitter.

    Để thu thập phản hồi, OpenAI đã cung cấp ChatGPT miễn phí cho bất kỳ ai sẵn sàng đăng nhập để sử dụng. Trong vòng ba ngày, hơn một triệu người đã làm điều đó và OpenAI đã chia sẻ trực tuyến một số tương tác của họ để chứng minh khả năng của bot.

    Cách sử dụng ChatGPT như thế nào?

    Mời bạn tham khảo cách đăng ký và sử dụng trong bài viết Cách đăng ký ChatGPT OpenAI.

  • Cách đăng ký ChatGPT OpenAI?

    Cách đăng ký ChatGPT OpenAI?

    Hiện tại, OpenAI chỉ cho phép đăng ký ChatGPT ở các nước châu Âu, châu Mỹ như Mỹ, Anh, Pháp, Đức… và một số nước khác như Hồng Kông, Úc, Nhật Bản… Trong danh sách đó (156 nước) không có Việt Nam, do đó cách đăng ký ChatGPT ở Việt Nam là bạn phải sử dụng VPN để đổi IP sang IP của các nước được hỗ trợ. 11/2023, OpenAI đã cho đăng kí ở Việt Nam cũng như chấp nhận thanh toán bằng thẻ tín dụng của Việt Nam.

    ?Không đăng ký được ChatGPT, hãy thử VoiceGPT!

    Cách đăng ký ChatGPT như thế nào?

    Bước 1. Vào trang beta.openai.com để tạo tài khoản, ở Việt Nam sẽ bị chặn như sau:

    Cách đăng ký ChatGPT OpenAI?

    Bước 2. Sử dụng extension Proxy của Chrome (https://chrome.google.com/webstore/detail/touch-vpn-secure-and-unli/bihmplhobchoageeokmgbdihknkjbknd) hoặc các app đổi VPN khác để fake IP sang US hoặc UK…

    Cách đăng ký ChatGPT OpenAI?

    Mời bạn tham khảo thêm VPN là gì? VPN để làm gì?

    Bước 3. Ở trình duyệt Chrome ấn F12 hoặc bấm vào dấu ba chấm ở góc trên, bên phải cửa sổ trình duyệt, chọn More Tools → Developer Tools.

    Cách đăng ký ChatGPT OpenAI? 16

    Chọn thẻ Application và xóa theo các bước trong ảnh. Sau đó ấn F5 để tải lại trang.

    Cách đăng ký ChatGPT OpenAI?

    Bước 4. Lúc này OpenAI sẽ cho phép bạn đăng ký. Điền các thông tin theo yêu cầu. Đến bước xác thực qua số điện thoại thì vào trang https://sms-activate.org hoặc http://smspool.net (có thể nhập mã giới thiệu là dpvK8vb2Sy) để thuê một số điện thoại để nhận tin nhắn.

    Cách đăng ký ChatGPT OpenAI?

    Đối với trang http://smspool.net, sau khi đăng kí tài khoản bạn cần nạp tiền vào bằng thẻ Visa, Master (có thể sử dụng thẻ ảo của Viettel Money – mình đã test và được) ở mục Deposit. Nạp khoảng 1 USD là được, vì phí 1 lần thuê số để nhận tin nhắn gửi mã OTP chỉ khoảng 0,5-0,8 USD (như mình mất 0,6 $).

    Sau đó chọn Quick Order, chỗ Select a service thì chọn OpenAI.

    Cách đăng ký ChatGPT OpenAI?

    Bước 5. Sau khi thuê được số điện thoại thì điền vào ở bước 4 và đợi mã xác thực gửi về smspool. Điền mã xác thực và tiến hành trải nghiệm ChatGPT tại link https://chat.openai.com.

  • Các phím tắt trong Excel trên Macbook

    Các phím tắt trong Excel trên Macbook

    Khi làm việc với phần mềm Excel trên Macbook rất nhiều bạn không quen, không nhớ được các phím tắt nên thao tác rất chậm. Hãy cùng tham khảo danh sách Các phím tắt trong Excel trên Macbook dưới đây để tăng năng suất làm việc nhé!

    Có một mẹo là phím Command trên Macbook có tác dụng tương tự như Control trên Windows!

    Tham khảo thêm 3 ứng dụng thay thế Excel trên Macbook miễn phí!

    Các phím tắt trong Excel trên Macbook cơ bản nhất

    Các phím tắt trong Excel trên Macbook 17
    Hộp thoại cài đặt tùy chọn trên Excel
    • Command + , : Mở hộp thoại cài đặt tùy chọn
    • Command + / : Mở cửa sổ trợ giúp
    • Command + Z : Hủy bỏ hành động gần nhất
    • Command + Y : Làm lại hành động gần nhất
    • Command + C : Sao chép nội dung ở các ô đã chọn
    • Command + X : Cắt nội dung ở các ô đã chọn
    • Command + V : Dán nội dung đã được sao chép hoặc cắt
    • Control + Command + V : Mở hộp thoại dán đặc biệt
    • Command + F : Mở hộp thoại tìm và thay thế
    • Command + Phím ⇧ + G : Tìm lại phiên làm việc trước đó
    • Command + G : Tìm phiên làm việc tiếp theo
    • Fn + Option + F1 : Tạo một biểu đồ nhúng
    • Fn + F11 : Tạo một biểu đồ trong bảng tính mới
    • Fn + Delete (Backspace) : Xóa kí tự bên phải dấu nhắc chuột
    • Ctrl + Option + Enter (Return): Xuống dòng trong cùng 1 ô
    • F2 : Chỉnh sửa nội dung của ô đang chọn

    Các phím tắt với File

    • Command + O : Mở bảng tính Excel đã có sẵn
    • Command + S : Lưu file Excel đang làm việc
    • Command + P : Thực hiện lệnh in file đang làm việc
    • Command + W : Đóng cửa sổ làm việc hiện tại
    • Command + Q: Thoát chương trình Excel

    Các phím tắt liên quan đến bảng tính và bộ lọc

    • Command + T : Chèn bảng tùy chọn
    • Command + Phím ↑ + F : Thực hiện chuyển đổi bộ lọc tự động
    • Option + Phím ↓ : Kích hoạt bộ lọc
    • Option + C : Thao tác xóa bộ lọc
    • Command + Phím ↑ + T : Chuyển đổi tổng số hàng

    Các phím tắt liên quan đến điều hướng

    • Fn + Option + Phím ↓ : Di chuyển một màn hình sang bên phải
    • Fn + Option + Phím ↑ : Di chuyển một màn hình sang bên trái
    • Fn + Phím ↑ : Di chuyển một màn hình lên trên
    • Fn + Phím ↓ : Di chuyển một màn hình xuống dưới
    • Control + Phím → : Di chuyển đến cạnh phải của vùng chứa dữ liệu
    • Control + Phím ← : Di chuyển sang cạnh trái của vùng chứa dữ liệu
    • Control + Phím ↑ : Di chuyển đến cạnh trên cùng của vùng chứa dữ liệu
    • Control + Phím ↓ : Di chuyển đến cạnh dưới cùng của vùng chứa dữ liệu
    • Fn + Phím ← : Di chuyển ngay đến đầu hàng
    • Fn + Control + Phím → : Di chuyển ngay đến ô cuối cùng trong bảng tính
    • Fn + Control + Phím ← : Di chuyển ngay đến ô đầu tiên trong bảng tính
    • Fn + Phím → : Bật chế độ Kết thúc

    Các phím tắt liên quan đến lựa chọn trong bảng tính

    • Phím ↑ + Space : Chọn toàn bộ hàng trong trang tính
    • Control + Space : Chọn toàn bộ cột trong bảng tính
    • Command + A : Chọn toàn bộ bảng
    • Phím ↑ + Click : Thêm vào các ô liền kề để lựa chọn
    • Command + Click : Thêm các ô không liền kề vào vùng đã chọn
    • Control + Option + Phím → : Di chuyển giữa các lựa chọn không liền kề
    • Control + Option + Phím ← : Di chuyển ngay sang trái giữa các lựa chọn không liền kề
    • Fn + Phím ↑ + F8 : Chuyển đổi thêm vào chế độ lựa chọn
    • Esc : Hủy những lựa chọn

    Các phím tắt liên quan đến định dạng

    • Command + 1 : Định dạng cho hầu hết mọi thứ
    • Control + Phím ↑ + F : Hiển thị các ô định dạng với tab Phông chữ được chọn
    • Command + B : Áp dụng hoặc bỏ định dạng in đậm
    • Command + I : Áp dụng hoặc bỏ định dạng in nghiêng
    • Command + U : Áp dụng hoặc loại bỏ gạch dưới
    • Command + Phím ↑ + X: Áp dụng hoặc bỏ định dạng gạch ngang
    • Command + Phím ↑ + W : Thêm hoặc xóa kiểu phông chữ có bóng
    • Command + Phím ↑ + D : Thêm hoặc xóa kiểu phông chữ phác thảo
    • Command + E : Thao tác căn giữa
    • Command + L : Thao tác căn trái
    • Command + R : Thao tác căn phải
    • Control + Option + Tab : Thao tác thụt lề
    • Control + Option + Phím ⇧ + Tab : Xóa thụt lề
    • Command + Phím ↑ + > : Tăng cỡ chữ một đơn vị
    • Command + Phím ↑ + < : Giảm cỡ chữ một đơn vị

    Các phím tắt liên quan đến định dạng số

    • Command + Phím ↑ + Phím ~ : Áp dụng định dạng chung
    • Command + Phím ↑ + Phím $ : Áp dụng định dạng tiền tệ
    • Command + Phím ↑ + Phím % : Áp dụng định dạng tỷ lệ phần trăm
    • Command + Phím ↑ + Phím # : Áp dụng định dạng ngày tháng
    • Command + Phím ↑ + Phím @ : Áp dụng định dạng thời gian
    • Command + Phím ↑ + Phím ! : Áp dụng định dạng số

    Các phím tắt liên quan đến đường viền

    • Command + Option + 0 : Thêm phác thảo đường viền
    • Command + Option + Phím → : Thêm hoặc xóa đường viền bên phải
    • Command + Option + Phím ← : Thêm hoặc xóa đường viền bên trái
    • Command + Option + Phím ↑ : Thêm hoặc xóa đường viền phía trên cùng
    • Command + Option + Phím ↓ : Thêm hoặc xóa dưới đáy biên giới
    • Command + Option + Phím _ : Xóa đường viền

    Các phím tắt liên quan đến công thức

    • Command + T : Chuyển đổi các tham chiếu tuyệt đối và tương đối
    • Fn + Phím ↑ + F3 : Mở hộp thoại Insert Function Dialog
    • Command + Phím ↑ + T : Ô được chọn ô
    • Command + ‘ : Bật và tắt công thức
    • Command + Phím ↑ + A : Chèn đối số hàm
    • Command + Phím ↑ + Return : Nhập công thức mảng
    • Fn + F9 : Tính toán bảng tính
    • Fn + Phím ↑ + F9 : Tính toán bảng tính hoạt động
    • Command + Phím ↑ + U : Mở rộng hoặc thu gọn thanh công thức
    • Command + A : Mở hộp thoại hiển thị đối số chức năng
    • Fn + Control + F3 : Xác định tên
    • Fn + Control + Phím ↑ + F3 : Xác định tên bằng nhãn hàng và cột
    • Phím ↓ + Tab : Chấp nhận chức năng với tự động hoàn thành

    Phím tắt liên quan đến nhập dữ liệu

    • Return : Nhập và di chuyển xuống dưới
    • Phím ↑ + Return : Nhập và di chuyển lên trên
    • Tab : Nhập và di chuyển sang bên phải
    • Phím ↑ + Tab : Nhập và di chuyển sang bên trái
    • Control + Return : Nhập cùng một dữ liệu vào nhiều ô khác nhau
    • Control + Phím ; : Chèn ngày tháng hiện tại
    • Control + Phím ↑ : Chèn thời gian hiện tại
    • Control + D : Điền từ ô bên trên
    • Control + R : Điền từ ô bên trái
    • Control + Phím ‘ : Sao chép công thức ở ô trên xuống ô dưới
    • Control + Phím ↑ + Phím “ : Sao chép giá trị ở ô trên xuống ô dưới
    • Control + K : Thêm siêu liên kết

    Các phím tắt liên quan đến chỉnh sửa ô

    • Control + U : Chỉnh sửa ô đang được chọn
    • Fn + Phím ↑ + F2 : Chèn hoặc chỉnh sửa nhận xét
    • Phím ↑ + Phím → : Chọn một ký tự đúng
    • Phím ↑ + Phím ← : Chọn một ký tự còn lại
    • Control + Phím → : Di chuyển một từ phải
    • Control + Phím ← : Di chuyển một từ trái
    • Control + Phím ↑ + Phím →: Chọn một từ đúng
    • Control + Phím ↑ + Phím ← : Chọn một từ còn lại
    • Fn + Phím ↑ + Phím ← : Chọn một ô để bắt đầu
    • Fn + Phím ↑ + Phím → : Chọn đến cuối ô
    • Control + Delete : Xóa đến cuối dòng
    • Delete : Xóa ký tự bên trái con trỏ chuột

    Trên đây là tổng hợp các phím tắt được sử dụng phổ biến nhất trong Excel trên Macbook. Hãy sử dụng thường xuyên để cải thiện hiệu suất thao tác với Excel.

  • 3 ứng dụng thay thế Excel trên Macbook miễn phí

    3 ứng dụng thay thế Excel trên Macbook miễn phí

    Ngoài ứng dụng Excel trong bộ Microsoft Office thì có rất nhiều ứng dụng ứng dụng thay thế Excel trên Macbook hoàn toàn miễn phí.

    Mời bạn tham khảo thêm: 8 lỗi Excel thường gặp nhất và cách sửaCác phím tắt trong Excel trên Macbook!

    Numbers: Ứng dụng thay thế Excel trên Macbook của chính Apple

    Phần mềm Numbers của bộ ứng dụng văn phòng iWork là Ứng dụng thay thế Excel trên Macbook hoàn toàn miễn phí.

    Ứng dụng thay thế Excel trên Macbook

    iWork là bộ ứng dụng được phát triển bởi Apple dùng để thay thế cho Microsoft Office trên MacOS và iOS.

    Bộ ứng dụng này hoàn toàn miễn phí cho người dùng hệ sinh thái Apple. Nếu bạn đang cần tạo văn bản, một slide hay bảng tính đẹp, iWork sẽ giúp bạn thực hiện trong tích tắc với các template có sẵn. Với những ai đã quen với MS Office sẽ phải dành thời gian để làm quen với các ứng dụng này.

    Một hạn chế khác của bộ iWork là việc xuất các file xuất sang Word, Excel, PowerPoint có thể xảy ra lỗi. Nhưng nếu file của bạn đơn giản sẽ không có vấn đề gì.

    Google Sheets

    Google Sheets là một chương trình bảng tính được bao gồm như một phần của bộ phần mềm văn phòng. Google Sheets được Google giới thiệu vào tháng 6 năm 2014, với dạng web có sẵn bạn có thể truy cập trải nghiệm thay cho phần mềm Microsoft Excel.

    3 ứng dụng thay thế Excel trên Macbook miễn phí

    Các tính năng nổi bật

    • Hoàn toàn miễn phí, mở tài liệu mọi lúc mọi nơi.
    • Cho phép người dùng cộng tác, làm việc nhóm với nhau.
    • Có hỗ trợ đồng bộ với thiết bị di động.

    Nhược điểm 

    • Còn hạn chế về các hàm, công thức tính toán.

    Tham khảo thêm 10 hàm Google Sheet có mà Excel không có!

    LibreOffice Calc 

    LibreOffice Calc là bảng tính thành phần của gói phần mềm LibreOffice. Sau khi tách ra từ OpenOffice vào năm 2010, LibreOffice Calc đã trải qua một quá trình làm lại lớn về xử lý tham chiếu bên ngoài để sửa nhiều lỗi trong tính toán công thức liên quan đến tham chiếu bên ngoài và để tăng hiệu suất bộ nhớ đệm dữ liệu, đặc biệt khi tham chiếu đến phạm vi dữ liệu lớn.

    3 ứng dụng thay thế Excel trên Macbook miễn phí
    Bộ phần mềm LibreOffice hiện đã hỗ trợ chip Apple Sillicon M1, M2

    Ngoài ra, Calc hiện hỗ trợ 1 triệu hàng trong bảng tính với các tham chiếu macro cho mỗi ô.

    Calc có khả năng mở và lưu hầu hết các bảng tính ở định dạng file Microsoft Excel. Calc cũng có khả năng lưu bảng tính dưới dạng file PDF.

    Như với toàn bộ bộ LibreOffice, Calc có sẵn cho nhiều nền tảng, bao gồm Linux, macOS, Microsoft Windows, và FreeBSD.

  • Lorem Ipsum là gì?

    Lorem Ipsum là gì?

    Bạn thường xuyên thấy dòng chữ “Lorem ipsum” trong các phần mềm thiết kế? Thỉnh thoảng lướt web, bạn sẽ bắt gặp những bài viết như tiếng Latin, vô nghĩa, nhìn na ná giống nhau nhưng xem kỹ thì không phải vậy?

    Lorem Ipsum là gì?

    Lorem Ipsum chỉ đơn giản là một đoạn văn bản giả, được dùng vào việc trình bày và dàn trang phục vụ cho in ấn.

    Lorem Ipsum chỉ là một đoạn văn bản giả, văn bản ngẫu nhiên mang nhiều ý nghĩa về mặt thị giác và hoàn toàn vô nghĩa, được vào việc trình bày và dàn trang in, thiết kế web mẫu (nôm na như ma-nơ-canh đứng vận quần áo mẫu cho người ta xem hàng ấy mà).

    Lorem Ipsum là gì?

    Lorem Ipsum đã được sử dụng như một văn bản chuẩn cho ngành công nghiệp in ấn từ những năm 1500, khi một họa sĩ vô danh ghép nhiều đoạn văn bản với nhau để tạo thành một bản mẫu văn bản.

    Trái với suy nghĩ của nhiều người, Lorem Ipsum không chỉ là một văn bản ngẫu nhiên, mà nó có nguồn gốc từ những tác phẩm văn học trong văn hóa Latin cổ tận 45 năm TCN. Nó được nghiên cứu và tìm hiểu chính thức để tìm ra tác giả, và người ta xác nhận Lorem Ipsum nằm trong các đoạn 1.10.32 và 1.10.33 của tác phẩm “De Finibus Bonorum et Malorum” (Đỉnh tối thượng của Cái Tốt và Cái Xấu) của tác giả Cicero năm 45 TCN. Đây là một cuốn sách về luận đạo lí, phổ biến trong thời Phục Hưng ở châu Âu và cứ thế nổi luôn cho tới ngày nay.

    Tại sao lại sử dụng Lorem ipsum?

    Chúng ta vẫn biết rằng, làm việc với một đoạn văn bản dễ đọc và rõ nghĩa dễ gây rối trí và cản trở việc tập trung vào yếu tố trình bày văn bản.

    Lorem Ipsum có ưu điểm hơn so với đoạn văn bản chỉ gồm nội dung kiểu “Nội dung, nội dung, nội dung” (kiểu bạn copy lặp đi lặp lại một đoạn, câu nào đó) là nó khiến văn bản giống thật hơn, bình thường hơn. Nhiều phần mềm thiết kế giao diện web và dàn trang ngày nay đã sử dụng Lorem Ipsum làm đoạn văn bản giả, và nếu bạn thử tìm các đoạn “Lorem ipsum” trên mạng thì sẽ khám phá ra nhiều trang web hiện vẫn đang trong quá trình xây dựng.

    Lorem Ipsum là gì?

    Hầu hết khách hàng đặt hàng thiết kế website, tờ rơi, biểu mẫu thường không nghĩ tới nội dung văn bản, trong khi nó là phần không thể thiếu trong quá trình thiết kế web. Vậy nên người thiết kế thường dùng Lorem Ipsum như bản giả làm mẫu cho khách.

    Hầu hết các văn bản Lorem Ipsum trên internet đều không giống nhau, chúng được sắp xếp ngẫu nhiên, có chủ đích, và Google không index văn bản Lorem Ipsum.

    Để tạo ra văn bản Lorem Ipsum, ta cần sử dụng những web chuyên tổng hợp Lorem Ipsum hoặc sử dụng các phần mềm như Microsoft Word, Sublime Text…

    Tạo văn bản ngẫu nhiên bằng Microsoft Word

    Tạo Lorem Ipsum bằng Word

    Microsoft Word hỗ trợ nhiều cách tạo văn bản ngẫu nhiên để giúp bạn kiếm cái mà bỏ vào… web.

    Mở văn bản mới, nhập dòng =lorem(3) và nhấn Enter. Bạn sẽ có được văn bản Lorem Ipsum gồm ba đoạn, được Microsoft Word tự tổng hợp ngẫu nhiên, không bao giờ trùng lặp, kết quả tương tự như dưới đây.

    Lorem Ipsum là gì? 18

    Ngoài ra bạn có thể gán thêm tham số để tạo Lorem Ipsum từ Word được đúng ý bạn hơn. Ví dụ muốn tạo 4 đoạn Lorem Ipsum, mỗi đoạn gồm 5 câu thì dùng lệnh =lorem(4,5) và bấm Enter.

    Tạo văn bản Ngẫu nhiên bằng Word

    • Để tạo ra văn bản ngẫu nhiên không thuộc chuẩn Lorem Ipsum, bạn dùng câu lệnh =rand(2)
    • Để tạo văn bản lặp đi lặp lại theo phiên bản Word 2003 (tạo những đoạn văn bản lặp lại câu “The quick brown fox jumps over the lazy dogs”), bạn dùng lệnh =rand.old(2)
    Lorem Ipsum là gì?

    “The quick brown fox jumps over the lazy dogs” là một câu rất đặc biệt trong thiết kế, chuyên dùng để thử font chữ, giao diện. Bạn biết vì sao không? Vì nó có đủ bảng chữ cái trong câu, đủ từ a tới z.

    Tạo Lorem Ipsum bằng website

    Có những trang web hỗ trợ bạn tạo ra văn bản Lorem Ipsum chất lượng và có chủ đích nữa. Dưới đây là các danh sách cách website chính thống tạo ngẫu nhiên văn bản Lorem Ipsum.

    1. Lipsum.com

    Trang này dùng hơn 200 từ latin, trên nền cấu trúc lập trình sẵn để tạo ra Lorem Ipsum trông rất… người, không bao giờ bị lặp lại, cũng không cần chèn thêm văn bản ngoài.

    Link trang chủ https://vi.lipsum.com/ (phiên bản tiếng Việt)

    Để tạo Lorem Ipsum, bạn vào trang Lipsum, kéo xuống dới, nhập các thông số, nhớ để nguyên tick ở “Lorem ipsum dolor sit amet…”.

    Lorem Ipsum là gì?

    2. Lorem-ipsum

    Tương tự như trang trên, nhưng nhiều chức năng hơn hẳn, cho phép bạn chọn nhiều ngôn ngữ đặc biệt khác, và cho xuất ra HTML hoặc text, cho thêm những ký tự của nhiều thứ tiếng, có cả tiếng Việt.

    Link trang chủ https://generator.lorem-ipsum.info/

    3. Lorem Ipsum Generator của webfx

    Trang https://www.webfx.com/tools/lorem-ipsum-generator/ cho phép bạn chọn các hiệu ứng in đậm, nghiêng, gạch chân,…