Category: Python

  • 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 1
    # 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.

  • Tài liệu lập trình Python Excel

    Chúng tôi xin giới thiệu tài liệu lập trình Python Excel. Tài liệu này đúng nghĩa là 1 cuốn nhật ký trong quá trình tự học của group Python Excel của tụi mình. Nó là ý tưởng, được ghi chép lại cách 1 cách cụ thể và chi tiết các vấn đề đã học, những gút mắc và hướng giải quyết trong quá trình tiếp cận với 1 ngôn ngữ lập trình hiện đại.
    Do đó, nếu bạn chỉ biết cơ bản về Excel (các bạn là dân văn phòng, công sở, sinh viên, học sinh, …ở các lĩnh vực khác), thì bạn cũng có thể đọc và thực hành từng bước theo tài liệu này. Đoạn, phần nào bạn chưa hiểu có thể tham gia thảo luận cùng với group tại đây: https://facebook.com/groups/1015080755701155
    Cuối cùng, vì nó không phải là sản phẩm thương mại, lại là những người ngoại đạo về lập trình, nên từ ngữ trong tài liệu mang tính chất nông dân học vụ. Các bạn đọc tham gia góp ý tích cực để mình chỉnh sửa ngày một hoàn thiện hơn. Bấy nhiêu đó cũng là niềm động viên quý báu nhất mà mình mong nhận được từ các bạn.
    Chân thành gởi lời cảm ơn đến:

    • Tất cả bạn đọc.
    • Các bạn tham gia trong Group cùng những lời động viên tinh thần, góp ý tích cực trong suốt quá trình chỉnh sửa và hoàn thiện.
    • Nhà biên tập: Nguyễn Thế Anh (nguyên Phó Tổng biên tập của Tạp chí Kinh tế xây dựng).
  • Kiểu từ điển dictionary trong python

    Kiểu từ điển dictionary trong python

    Kiểu từ điển dictionary trong python

    Kiểu dữ liệu Dictionary trong Python (kiểu từ điển) là một tập hợp các cặp key – value (khóa – giá trị) không có thứ tự, có thể thay đổi và lập chỉ mục (truy cập phần tử theo chỉ mục).

    Kiểu dictionary trong python, kiểu từ điển trong Python

    1. Khai báo dictionary

    Dictionary trong Python được khai báo với cặp dấu ngoặc nhọn {} bao ngoài giống như với Set. Bên trong các phần tử theo cặp (khóa key và giá trị value) được phân tách bởi dấu phẩy (,) phân tách giữa khóa và giá trị của từng phần tử bởi dấu hai chấm (:). Cú pháp chung như sau:

    name = {key_1: value_1, key_2: value_2, ..., key_n: value_n}

    • Nếu như các phần tử trong danh sách list được truy xuất thông qua vị trí index thì phần tử trong từ điển được truy xuất qua khóa (key).
    • Khóa key phải là một kiểu dữ liệu không thay đổi (immutable). Nó có thể là một chuỗi string, số… nhưng nó phải là duy nhất trong từ điển.
    • Giá trị value có thể là chuỗi, số hoặc các dữ liệu có cấu trúc như list, tuple, set hoặc thậm chí là dictionary.

    Ví dụ sau tạo một từ điển dictCar gồm có 3 phần tử:

    dictCar = {
        "brand": "Honda",
        "model": "Honda Civic",
        "year": 1972
    }
    print(dictCar)

    Kết quả:

    {'brand': 'Honda', 'model': 'Honda Civic', 'year': 1972}

    Chúng ta cũng có thể sử dụng hàm có sẵn dict() để khai báo một từ điển dictionary.

    friend_ages = dict({"Rolf": 24, "Adam": 30, "Anne": 27})

    hoặc

    friend_ages = dict([("Rolf", 24), ("Adam", 30), ("Anne", 27)])

    2. Truy xuất giá trị của từ điển

    Một từ điển dictionary có thể truy xuất giá trị từng phần tử thông qua các khóa key theo cú pháp:

    name[key]

    Ví dụ, trong từ điển friend_ages ở trên, chúng ta có thể truy xuất thông tin (giá trị) của key Binh bằng câu lệnh friend_ages['Binh']

    friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    print(friend_ages['Binh']) #kết quả 30

    Ngoài ra bạn cũng có thể sử dụng hàm get() để truy cập item của Dictionary trong Python:

    friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    print(friend_ages.get('Binh')) #kết quả 30

    3. Thay đổi giá trị của dictionary trong Python

    Dictionary trong Python có thể thay đổi thêm bớt các phần tử, thay đổi giá trị của các phần tử hiện có. Để thay đổi giá trị của phần tử trong dictionary thì ta cũng là tương tự như đối với list là truy cập đến phần tử cần truy cập và thay đổi giá trị của nó.

    Ví dụ, chúng ta thay đổi tuổi của Binh thành 50 bằng câu lệnh gán như sau:

    friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    friend_ages['Binh'] = 50
    print(friend_ages['Binh'])#kết quả 50

    4. Duyệt qua các phần tử của dict

    Bạn có thể duyệt qua một Dictionary bằng cách sử dụng vòng lặp for. Khi duyệt một Dictionary bằng vòng lặp for, giá trị trả về là các khóa key

    friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    for x in friend_ages:
      print(x)

    Kết quả trả về:

    An
    Binh
    Cuc
    Dat
    Hoa

    Lúc này, bạn có thể dùng hàm get() để lấy giá trị tương ứng của khóa hoặc dùng cách truy cập đến phần tử của dict như phần 2 ở trên:

    friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    for x in friend_ages:
      print(friend_ages[x])

    Kết quả trả về:

    24
    30
    27
    30
    18

    Bạn cũng có thể sử dụng hàm items() để lấy về một danh sách tất cả các cặp (key-value) của một Dictionary. Sử dụng hàm keys() hoặc hàm values() để lấy về danh sách tất cả các key hoặc các value của một từ điển.

    friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    
    print(friend_ages.items()) #kết quả dict_items([('An', 24), ('Binh', 30), ('Cuc', 27), ('Dat', 30), ('Hoa', 18)])
    print(friend_ages.keys()) #kết quả dict_keys(['An', 'Binh', 'Cuc', 'Dat', 'Hoa'])
    print(friend_ages.values()) #kết quả dict_values([24, 30, 27, 30, 18])

    5. Một số phương thức trong Dictionary của Python

    5.1. Kiểm tra nếu key tồn tại

    Để xác định xem một khóa key được chỉ định có tồn tại trong từ điển hay không, sử dụng từ khóa in:

    friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    
    print('Binh' in friend_ages) #kết quả True
    print('Mai' in friend_ages) #kết quả False

    Hoặc sử dụng hàm dict.has-key(key) . Hàm này trả về True nếu key có mặt trong Dictionary, nếu không thì trả về False. Tuy nhiên hàm này đã bị xóa kể từ phiên bản Python 3.x.

    5.2. Độ dài của một Dictionary trong Python

    Để xác định có bao nhiêu item (cặp khóa-giá trị) trong Dictionary, hãy sử dụng hàm len()

    friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    print(len(friend_ages)) #kết quả 5

    5.3. Thêm phần tử vào Dictionary

    Thêm một item vào Dictionary được thực hiện bằng cách sử dụng khóa mới và gán giá trị cho nó:

    friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    friend_ages['Lan'] = 19
    print(friend_ages) #{'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18, 'Lan': 19}

    5.4. Xóa phần tử trong dictionary

    Có nhiều phương pháp để loại bỏ các item của một Dictionary.

    Cách thứ nhất, để xóa một phần tử trong dictionary thì chúng ta sử dụng lệnh del và chọn phần tử cần xóa. Ví dụ:

    friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    del friend_ages['Binh']
    print(friend_ages) #kết quả {'An': 24, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}

    Cách thứ hai, xóa item của Dictionary bằng hàm pop('key')

    friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    friend_ages.pop('Binh')
    print(friend_ages) #kết quả {'An': 24, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}

    Cách thứ 3, xóa item của Dictionary bằng hàm popitem(). Hàm popitem() xóa item cuối cùng của từ điển (trong các phiên bản trước 3.7, một phần tử ngẫu nhiên được xóa).

    friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    friend_ages.popitem()
    print(friend_ages) #kết quả {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30}

    Nếu bạn muốn xóa tất cả các phần tử bên trong dictionary thì bạn sử dụng phương thức clear theo cú pháp:

    name.clear()

    Trong đó, name là tên của dictionary mà bạn muốn xóa hết phần tử.

    friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    friend_ages.clear()
    print(friend_ages) #kết quả {}

    5.5. Sao chép một từ điển

    Bạn không thể sao chép từ điển chỉ bằng cách gán dict2 = dict1, bởi vì khi đó dict2 sẽ chỉ là một tham chiếu đến dict1 và những thay đổi được thực hiện dict1 cũng sẽ tự động được thực hiện dict2.

    Có nhiều cách để tạo một bản sao, một trong các cách đó là sử dụng hàm copy() được xây dựng sẵn trong Dictionary.

    friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    mate_ages = friend_ages.copy()
    friend_ages.pop('Binh')
    print(friend_ages) #kết quả {'An': 24, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    print(mate_ages) #kết quả {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}

    Cách tiếp theo là chúng ta sử dụng hàm dict() để tạo một từ điển mới từ các phần tử của từ điển đã có.

    friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    mate_ages = dict(friend_ages)
    friend_ages.pop('Binh')
    print(friend_ages) #kết quả {'An': 24, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
    print(mate_ages) #kết quả {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}

    6. Dictionary lồng nhau trong Python

    Một Dictionary cũng có thể chứa nhiều Dictionary, điều này được gọi là từ điển lồng nhau.

    myCars = {
      'car1' : {
      'brand': 'Honda',
      'year' : 2009
      },
      'car2' : {
      'brand': 'Yamaha',
      'year' : 2019
      },
      'car3' : {
      'brand': 'Honda',
      'year' : 2021
      }
    }
    
    print(myCars)

    Kết quả trả về:

    {'car1': {'brand': 'Honda', 'year': 2021}, 'car2': {'brand': 'Yamaha', 'year': 2019}}

  • Hàm ẩn danh trong Python

    Hàm ẩn danh trong Python

    Hàm ẩn danh trong Python

    Hàm ẩn danh trong Python là gì? Cách khai báo hàm lambda trong Python. Ví dụ về hàm lambda trong Python sử dụng với hàm filter và hàm map() trong Python.

    Hàm ẩn danh trong Python là gì?

    • Hàm ẩn danh trong Python (còn gọi là hàm nặc danh –  anonymous function) là một hàm được định nghĩa mà không có tên và câu lệnh return.
    • Các hàm bình thường sử dụng từ khóa def để định nghĩa thì các hàm ẩn danh được định nghĩa bằng từ khóa lambda. Vì vậy các hàm ẩn danh còn được gọi là các Lambda Function.
    • Các hàm ẩn danh lambda  có thể khai báo, định nghĩa ở bất kỳ đâu và không có khả năng tái sử dụng. Lambda chỉ tồn tại trong phạm vi của biến mà nó được định nghĩa, vì vậy nếu như biến đó vượt ra ngoài phạm vi thì hàm này cũng không còn tác dụng nữa.
    • Hàm nặc danh lambda thường được dùng để gán vào biến, hay được gán vào hàm, class như một tham số.

    Cách khai báo hàm lambda trong Python

    Cú pháp của Lambda Function trong python

    lambda arguments_list: expression
    • lambda là keyword bắt buộc
    • arguments_list là các tham số truyền vào lambda
    • expression là các biểu thức xử lý lambda

    Các hàm lambda có thể có bất kỳ số đối số nào nhưng chỉ có một biểu thức expression. Các lambda function có thể được sử dụng ở bất cứ chỗ nào yêu cầu các đối tượng hàm. Hàm lambda không có câu lệnh return mà chính giá trị của biểu thức expression được sử dụng làm kết quả trả về  của hàm.

    Cú pháp khai báo Hàm ẩn danh trong Python là gì

    Ví dụ về hàm lambda trong Python

    Ví dụ sau khai báo một lambda function để tính tổng của 2 biến:

    add = lambda a, b: a + b
    
    # sử dụng hàm lambda bằng cách sử dụng biến add
    add(3, 4) #kết quả 7
    

    Kiểm tra xem hàm lambda ở trên có kiểu dữ liệu là gì:

    add = lambda a, b: a + b
    
    type(add) # kết quả function

    Hàm sau dùng để nhân đôi giá trị của tham số

    double = lambda x: x * 2
    print(double(5)) #kết quả 10

    Function này sẽ không có tên. Nó trả về một object được định danh là double. Giờ thì chúng ta có thể gọi nó như một hàm bình thường. Ví dụ:

    double = lambda x: x * 2

    Nó sẽ tương tự như các khai báo function như sau:

    def double(x):
        return x * 2

    Khi nào nên sử dụng hàm nặc danh lambda?

    Chúng ta thường sử dụng lambda function khi mà cần một hàm không tên trong một khoảng thời gian ngắn. Ví dụ như sử dụng lambda function làm đối số cho một hàm bậc cao hơn (một hàm mà có thể nhận các hàm khác làm đối số) chẳng hạn hàm filter() hàm map()

    Hàm filter trong Python

    Hàm filter() trong Python lọc ra các phần tử theo điều kiện của hàm func từ list, dict… Hàm này sẽ chỉ trả về những giá trị mà điều kiện trong func chấp nhận (có nghĩa là True). Cú pháp của hàm filter() như thế nào, nó có những tham số gì và cách sử dụng ra sao? Mời bạn đọc theo dõi.

    Cú pháp hàm filter() trong Python

    filter(func, iterable)

    Hàm filter() có 2 tham số:

    • func: là hàm điều kiện để kiểm tra các phần tử trong interable có thỏa mãn điều kiện đó hay không. Kết quả của hàm func này là đúng True hoặc sai False.
    • interable: là các iterable cần lọc, có thể là set, list, tuple hoặc container.

    Đây là một ví dụ sử dụng hàm filter() để chỉ lọc ra các số chẵn từ một danh sách.

    my_list = [1, 5, 4, 6, 8, 11, 3, 12, 17, 21]
    
    new_list = list(filter(lambda x: (x%2 == 0) , my_list))
    
    print(new_list) #kết quả:  [4, 6, 8, 12]

    Xem thêm Kiểu dữ liệu list danh sách trong Python

    Hàm map() trong Python

    Hàm map() tích hợp sẵn trong Python có tác dụng duyệt tất cả các phần tử của một iterable (list, tuple, dictionary…) qua một hàm cho trước và trả về một list kết quả sau khi thực thi.

    Cú pháp hàm map() trong Python

    map(function, iterable, ...)

    • function: Hàm thực thi cho từng phần tử trong iterable.
    • iterable: Một list, tuple, dictionary… muốn duyệt.

    Bạn có thể truyền nhiều iterable cho hàm map().

    Hàm map() duyệt tất cả các phần tử của iterable qua function và trả về một list kết quả sau khi thực thi.

    Giá trị trả về từ map() được gọi là map object. Kết quả này có thể được truyền vào các hàm list() (để tạo list trong Python), hay set() (để tạo một set các phần tử mới)…

    Ví dụ sau tạo một danh sách mới bằng cách nhân đôi các phần tử của danh sách ban đầu:

    my_list = [1, 5, 4, 6, 8, 11, 3, 12]
    
    new_list = list(map(lambda x: x * 2 , my_list))
    
    print(new_list) #Kết quả: [2, 10, 8, 12, 16, 22, 6, 24]
  • Dữ liệu có cấu trúc trong Python

    Dữ liệu có cấu trúc trong Python

    Dữ liệu có cấu trúc trong Python

    Python có 4 kiểu dữ liệu có cấu trúc chính đó là: List, Set, Dictionary, Tuple. Cụ thể hơn thì như sau:

    • Kiểu danh sách List: Đây là kiểu dữ liệu danh sách, nó cho phép bạn lưu trữ tất cả các loại kiểu dữ liệu khác.
    • Kiểu tập hợp Set: Đây là kiểu dữ liệu danh sách, không cho phép dữ liệu trùng lặp trong Set (nó sẽ tự thực hiện Remove Duplicate).
    • Kiểu từ điển Dictionary: Kiểu dữ liệu key-value (bạn hình dung nó giống map trong Dart vậy).
    • Tuple: Đây là kiểu dữ liệu theo từng cặp (2, 3, 4,… phần tử).

    Ngoài ra còn kiểu cấu trúc dữ liệu liệu do người dùng định nghĩa dựa trên các kiểu cấu trúc dữ liệu cơ bản đó là: Stack, Queue, Tree, HashMap…

    Các kiểu cấu trúc dữ liệu chính trong Python

  • Python làm được những gì?

    Python làm được những gì?

    Python làm được những gì?

    Python là gì?

    Python là một ngôn ngữ lập trình cực kỳ phổ biến với các lập trình viên. Viết phần mềm tự động bằng Python cực kỳ đơn giản và thú vị.

    Xem thêm: 15 Cuốn sách học Python miễn phí

    Python làm được những gì?

    Thực ra thì bây giờ các ngôn ngữ lập trình như Java, JavaScript… cũng đã làm được rất nhiều thứ rồi chứ không riêng gì Python.

    Python làm được những gì?

    Nhưng rốt cục Python làm được những gì, và mạnh ở những điểm nào mà nó lại trở nên hót hòn họt như vậy? Vâng, thì bên dưới đây là một số ứng dụng của Python dành cho bạn nào đang tìm hiểu:

    1. Làm trang Web với Framework của Python

    • Một số Framework như Flask, DJango, FastAPI…. giúp xây dựng các ứng dụng Web, Web APIs nhanh và dễ dàng.
    • Flask cung cấp cho người dùng các thành phần cốt lõi thường được sử dụng nhất của khung ứng dụng web như URL routing, request & response object, template…
    • Django được thiết kế để giúp các nhà phát triển đưa các ứng dụng từ ý tưởng đến hoàn thành càng nhanh càng tốt, nó có đầy đủ các thư viện/module cần thiết.

    2. Phát triển ứng dụng Desktop GUI

    • Chúng ta có thể xây dựng các ứng dụng Desktop với Pythong bằng cách sử dụng PyQt5, Tkinter, Kivy…
    • Nếu nói về tốc độ thì Python sẽ chậm hơn so với các ngôn ngữ biên dịch như Java và C++. Python sẽ không phải lựa chọn tốt nhất nếu bạn đang bị giới hạn về nguồn lực, yêu cầu hiệu quả cao. Tuy nhiên, bên cạnh đó Python lại là một ngôn ngữ lập trình tuyệt vời để tạo ra những nguyên mẫu – bản chạy thử.

    3. Ứng dụng trong khoa học và tính toán

    • Ngoài việc lập trình ứng dụng web, tạo nguyên mẫu phần mềm, Python còn được ứng dụng trong khoa học và tính toán. Python sở hữu thư viện cho khoa học, tính toán số liệu như NumPy, SciPy. Chúng được sử dụng cho mục đích chung chung trong việc tính toán. Bên cạnh đó, trong thư viên của mình, Python còn có EarthPy cho khoa học trái đất, AstroPy ch
    • Trí tuệ nhân tạo & Máy học (AI & ML): Đây có lẽ là một trong những ứng dụng khiến cho Python trở nên rất “hot” như vậy. Do có nhiều thư viện hỗ trợ nên Python có thể nói là một ngôn ngữ lập trình rất mạnh mẽ trong ngành Trí tuệ nhân tạo và Máy học.

    3. Software Testing/Web Automation

    • Automation Testing đang ngày càng trở nên phổ biến hơn. Python có thư viện Selenium đang được sử dụng rất nhiều trong lĩnh vực Automation Testing và lấy dữ liệu trên các trang web.
    • Viết tool để tự động hóa công việc. Bạn yêu thích công nghệ chắc chắn biết những tool thú vị ở trong Google chorme Extension chứ? Hoặc vô vàn tool hữu ích bạn có thể download trên bất kỳ trang web nào. Nếu như trước kia, những tool này cần phải viết bằng các ngôn ngữ khó như Java, PHP … thì hiện nay, với Python tốc độ sản xuất tool có thể tăng lên gấp 10 lần.
    • Xây dựng những con bot để trả lời tự động cho các website…
    • Trích xuất dữ liệu từ trang web (web scrapping – cào dữ liệu)

    4. Xử lý hình ảnh, video

    Công nghệ xử lý ảnh hiện nay đang ngày càng phát triển với sự hỗ trợ của nhiều thư viện khác nhau. Tiêu biểu nhất phải kể đến các thư viện như OpenCV, và thư viện này cũng hỗ trợ Python rất mạnh.

    5. Lĩnh vực IoT – Internet Vạn Vật

    Python khá mạnh đủ để ứng dụng trong các nền tảng nhúng. Đối với những ứng dụng đòi hỏi khả năng phải truy xuất dữ liệu lớn thì Python là một ứng cử viên rất phù hợp và tiềm năng. Nhờ được sử dụng trên các trang web như Pinterest và Instagram. Vì vậy mà nó đang ngày một phổ biến và thông dụng hơn

    6. Phát triển game với Pygame

    7. Phát triển ứng dụng điện thoại với các framework như Kivy

    Python làm được những gì? 2

    Và đó chính là những ưu điểm nổi bật của ngôn ngữ lập trình Python, ngoài ra còn nhiều ứng dụng nhỏ nhỏ khác nữa. Đặc biệt là trong lĩnh vực AI/ML thì Python có lẽ là số một, bởi số lượng thư viện hỗ trợ lớn, rất phù hợp.

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

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

    Để hiểu rõ về ngôn ngữ lập trình Python, bạn đọc có thể tham khảo các bài tập sau:

    1. 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.
    2. Kí hiệu nào dùng để xác định các khối lệnh (khối lệnh của hàm, vòng lặp,…) trong Python?
      A. Dấu ngoặc nhọn { }
      B. Dấu ngoặc vuông [ ]
      C. Thụt lề
      D. Dầu ngoặc đơn ( )
    3. 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.
    4. Đâ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ư ! @ # %
    5. 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. print()
    6. 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.
    7. Ý 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.
    8. Đoạn code nào sau đây sử dụng tính năng kế thừa của Python?
      A. class Foo: Pass
      B. class Foo(object): pass class Hoo(object) pass
      C. class Foo: pass class Hoo(Foo): pass
      D. Không có đáp án chính xác.
    9. 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)
    10. 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.
    11. Đoạn code nào tự động đóng tệp khi có ngoại lệ xảy ra?
      A. with open(“test.txt”, encoding = ‘utf-8’) as f:
      B. 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
    12. 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.
    13. Đ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
    14. 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
    15. 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.
    16. Đâ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
    17. Đâ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.
    18. 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()
    19. Hàm pow(x,y,z) được diễn giải là:
      A. (x**y)**z
      B. (x**y) / z
      C. (x**y) % z
      D. (x**y)*z
    20. Đâ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
    21. 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)
    22. divmod(10.5,5)
      divmod(2.4,1.2)
      Output của hàm biểu diễn dưới đây là gì?
      A. (2.00, 0.50)
      B. (2, 0.5)
      C. (2.0, 0.5)
      D. (2, 0.5)
    23. Khẳng định sau đây đúng hay sai?
      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().
      A. Đúng
      B. Sai
    24. 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()
    25. 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()
    26. 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))
    27. 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()
    28. Hàm nào sau đây không gây ra lỗi?
      A. ord()
      B. ord(‘ ‘)
      C. ord(“)
      D. ord(“”)
    29. Chọn đáp án đúng: 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.
    30. Từ khóa nào được sử dụng để bắt đầu hàm?
      A. Fun
      B. Define
      C. Def
      D. Function
    31. 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.
    32. Kí hiệu nào dùng để xác định các khối lệnh (khối lệnh của hàm, vòng lặp,…) trong Python?
      A. Dấu ngoặc nhọn { }
      B. Dấu ngoặc vuông [ ]
      C. Thụt lề
      D. Dầu ngoặc đơn ( )
    33. 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.
    34. Đâ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ư !, @, #, $, %,…
    35. n trong đoạn sau là kiểu dữ liệu nào?
      n = ‘5’
      A. integer
      B. string
      C. tuple
      D. operator
    36. Output của lệnh sau là: print(1, 2, 3, 4, sep=’*’)
      A. 1 2 3 4
      B. 1234
      C. 1*2*3*4
      D. 24
    37. 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. <>
    38. 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]
    39. 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.
    40. Output của lệnh là: print(3 >= 3)
      A. 3 >= 3
      B. True
      C. False
      D. None
    41. 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.
    42. Đâ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
    43. 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.
    44. Đâ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
    45. Ý 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.
    46. Đâ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
    47. Đoạn code nào sau đây sử dụng tính năng kế thừa của Python?
      A. class Foo: Pass
      B. class Foo(object): pass class Hoo(object) pass
      C. class Foo: pass class Hoo(Foo): pass
      D. Không có đáp án chính xác.
    48. 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)
    49. 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.
    50. 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
    51. 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.
    52. Đ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.
    53. Đ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
    54. 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.
    55. Đ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.
    56. 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.
    57. Đ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
    58. Đâ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
    59. Đ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
    60. 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
    61. 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
    62. 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
    63. 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.
    64. 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.
    65. 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.
    66. Đố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
    67. Output của lệnh dưới đây là: print “Hello World”[::-1]
      A. dlroW olleH
      B. Hello Worl
      C. d
      D. Error
    68. 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
    69. Đâ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
    70. Đâu là giá trị của colors[2]?
      colors = [‘red’, ‘orange’, ‘yellow’, ‘green’, ‘blue’, ‘indigo’, ‘violet’]
      A. orange
      B. indigo
      C. blue
      D. yellow
    71. Đâ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.
    72. Đâ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.
    73. 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
    74. 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]
    75. Chạy code sau trong Python, kết quả là: num = ‘5’*’5′
      A. 333
      B. 27
      C. 9
      D. TypeError: can’t multiply sequence by non-int of type ‘str’
    76. 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)
    77. Đ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
    78. Đâ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
    79. 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
    80. 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.
    81. 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
    82. 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
    83. 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
    84. 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
      VDO.AI
      Play Video
      Play
      Unmute
      Current Time 0:00
      /
      Duration 0:00
      Loaded: 0%
      0:00
      Stream Type LIVE
      Seek to live, currently behind liveLIVE
      Remaining Time -0:00
      1x
      Playback Rate
      Chapters
      O CHAPTERS
      Descriptions
      o descriptions off, selected
      Subtitles
      o subtitles settings, opens subtitles settings dialog
      o subtitles off, selected
      Audio Track
      Picture-in-PictureFullscreen
      This is a modal window.
      Beginning of dialog window. Escape will cancel and close the window.
      TextColor Transparency BackgroundColor Transparency WindowColor Transparency
      Font Size Text Edge Style Font Family
      Reset restore all settings to the default valuesDone
      Close Modal Dialog
      End of dialog window.
      Advertisement
    85. 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
    86. 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()
    87. 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
    88. Hàm pow(x,y,z) được diễn giải là: A. (x**y)**z
      B. (x**y) / z
      C. (x**y) % z
      D. (x**y)*z
    89. Kết quả của hàm sau là gì?
      all([2,4,0,6])
      A. Error
      B. True
      C. False
      D. 0
    90. 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
    91. Output của hàm sau là gì?
      any([2>8, 4>2, 1>2])
      A. Error
      B. True
      C. False
      D. 4>2
    92. 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
    93. 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
    94. Output của hàm sau là: all(3,0,4.2)
      A. True
      B. False
      C. Error
      D. 0
    95. 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
    96. 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
    97. Kết quả của hàm sau là gì?
      complex(1+2j)
      A. Error
      B. 1
      C. 2j
      D. 1+2j
    98. Đâ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
    99. 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)
    100. 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)
    101. 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
    102. 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)]
    103. 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
    104. 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
    105. 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()
    106. 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()
    107. 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))
    108. Output của hàm sau là gì? Lưu ý: số lượng khoảng trắng trước số đó là 5.
      float(‘ -12345\n’)
      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)
    109. 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
    110. 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
    111. 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()
    112. Kết quả của biểu thức sau là gì?
      hex(15)
      A. f
      B. 0xF
      C. 0Xf
      D. 0xf
    113. Hàm nào sau đây không gây ra lỗi?
      A. ord()
      B. ord(‘ ‘)
      C. ord(“)
      D. ord(“”)
    114. 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
    115. 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
    116. Chọn đáp án đúng: 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.
    117. Từ khóa nào được sử dụng để bắt đầu hàm?
      A. Fun
      B. Define
      C. Def
      D. Function
    118. 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
    119. 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
    120. 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
    121. 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
    122. 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
    123. 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
    124. 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
    125. Chọn đáp án đúng: 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.
    126. Đâ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.
    127. 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
    128. 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
    129. Đâ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
    130. 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.
  • Sử dụng Python giải bài tập tổ hợp xác suất

    Sử dụng Python giải bài tập tổ hợp xác suất

    Sau khi đã giải được 20 Bài tập Python cơ bản có lời giải, mời bạn tiếp tục thử sức các bài tập Python chỉ sử dụng vòng lặp và các kiểu dữ liệu cơ bản như kiểu danh sách list, kiểu xâu str.

    Bài 1. [Đại học Thái Nguyên 2000] Từ các chữ số 1; 2; 3 có thể lập được bao nhiêu số tự nhiên gồm 5 chữ số có mặt đủ 3 chữ số nói trên?

    Đáp số: 150 số.

    Hướng dẫn. Đầu tiên sử dụng 5 vòng lặp để tạo một danh sách tất cả các số tự nhiên gồm 5 chữ số được tạo thành từ các chữ số 1, 2, 3. Sau đó duyệt qua tất cả các phần tử của danh sách này và dùng hàm membership in để kiểm tra xem phần tử đó có mặt cả ba chữ số 1, 2, 3 hay không. Nếu có thì tăng biến đếm count, và in phần tử đó ra nếu muốn.

    numbers = ['1', '2', '3']
    results = []
    
    for a in numbers:
      for b in numbers:
        for c in numbers:
          for d in numbers:
            for e in numbers:
              # results.append([a,b,c,d,e])
              results.append(a+b+c+d+e)
    
    count = 1
    
    for temp in results:
      # print(temp)
      if ('1' in temp) and ('2' in temp) and ('3' in temp):
        print(str(count) +': '+temp)
        count +=1

    Bài 2. Có bao nhiêu số tự nhiên gồm 5 chữ số và chia hết cho 7.

    Đáp số: 12857 số.

    Hướng dẫn. Sử dụng một biến đếm count. Duyệt tất cả các số tự nhiên có 5 chữ số (từ 10000 đến 99999) và kiểm tra xem số đó có chia hết cho 7 hay không. Nếu có thì tăng biến đếm. Có thể in ra số đó nếu muốn.

    count = 0
    for i in range(10000, 99999 + 1):	
      if (i % 7 == 0):
        count += 1
        print(str(count) + ': ' + str(i))

    Bài 3. Một em bé có thể mang họ cha là Nguyễn, hoặc họ mẹ là Lê; tên đệm có thể là Văn, Hữu hoặc Đình; tên có thể là Nhân, Nghĩa, Trí hoặc Dũng. Hỏi có bao nhiêu cách đặt tên cho bé?

    Đáp số. Có 24 cách đặt tên.

    bien_dem = 1
    ho = ['Nguyễn', 'Lê']
    dem = ['Văn', 'Hữu', 'Đình']
    ten = ['Nhân', 'Nghĩa', 'Trí', 'Dũng']
    for h in ho:
      for d in dem:
        for t in ten:
          print(str(bien_dem) + ': ' + h + ' ' + d + ' ' + t)
          bien_dem += 1

    Bài 4. [Đại học An Ninh 1997] Từ các chữ số từ 0 đến 6 có thể lập được bao nhiêu số tự nhiên chẵn gồm 3 chữ số khác nhau?

    Nếu sử dụng kiểu dữ liệu tập hợp set, chúng ta có thể in trực tiếp ra các số thỏa mãn yêu cầu:

    numbers_even = {'0', '2', '4', '6'}
    numbers_odd = {'1', '3', '5'}
    numbers = numbers_even | numbers_odd
    
    results = []
    count = 0
    
    for c in numbers_even:
      for a in (numbers - {'0'}):
        if (a != c):
          for b in numbers:
            if ( b!=a and b!= c):
              count += 1
              print(str(count) + ': ' +a+b+c)
    

    Cách khác, chúng ta không sử dụng kiểu dữ liệu tập hợp thì sẽ in ra rất cả các số tự nhiên chẵn sau đó loại đi các số mà có chữ số giống nhau:

    count = 0
    results =[]
    
    for a in range(1,7):
      for b in range(0,7):
        for c in {0,2,4,6}:
          results.append(str(a)+str(b)+str(c))
    
    temp = []
    for x in results:
      if not((x[0] == x[1]) or (x[0]==x[2]) or (x[1]==x[2])):
        temp.append(x)
    print(len(temp))
    print(temp)

    Bài 5. Từ các chữ số 0,1,2,3,4,5,6 có thể lập được bao nhiêu số tự nhiên gồm 3 chữ số khác nhau và phải có mặt chữ số 5?

    Đáp số: 80 số.

    count = 0
    results =[]
    
    for a in range(1,7):
      for b in range(0,7):
        for c in range(0,7):
          results.append(str(a)+str(b)+str(c))
    
    temp = []
    for x in results:
      if not((x[0] == x[1]) or (x[0]==x[2]) or (x[1]==x[2])) and ('5' in x):
        temp.append(x)
    print(len(temp))
    print(temp)