Category: LẬP TRÌNH

  • NFT là gì?

    NFT là gì?

    NFT là gì?

    NFT xuất hiện từ năm 2012 nhưng chỉ thật sự được biết đến vào năm 2017 qua game nuôi mèo ảo Crypto Kitties. NFT vận hành chủ yếu dựa trên Blockchain, khi nền tảng này được hoàn thiện, NFT cũng trở nên phát triển và được nhiều người biết đến.
    Hiện nay, nhiều người sẵn sàng chi hàng triệu USD để sưu tầm những tác phẩm nghệ thuật, tranh ảnh, video hay những món đồ game dưới dạng NTF. Điều này đã trở thành một cơn sốt mới đối với các nhà đầu tư tiền điện tử crypto nói riêng và một số lĩnh vực khác nói chung. Vậy NFT là gì và cơn sốt NFT hình thành như thế nào?

    NFT là gì?

    NFT (Non-fungible Token) nghĩa là token không thể thay thế. Nói cách khác, NFT là đơn vị dữ liệu mã hóa, đại diện cho một tài sản điện tử (tài sản mật mã) độc nhất được lưu trữ trên Blockchain.

    Những vật phẩm này có thể là kỹ thuật số hoặc vật lý và đại diện cho những thứ như giày thể thao, nghệ thuật, vé máy bay, bằng đại học, bất động sản thương mại hoặc các vật phẩm trong trò chơi cho một trò chơi trực tuyến như như coin, vật phẩm game,… và chúng sẽ không thể nào hoán đổi cho bất kỳ tài sản điện tử khác.

    NFT là gì? 1
    NBA Top Shot (230 triệu USD). Hệ thống thẻ giao dịch dựa trên nền tảng blockchain gồm những pha highlight của giải Bóng rổ Nhà nghề Mỹ (NBA) đã đạt tổng doanh thu 230 triệu USD. Chiếc thẻ của cầu thủ LeBron James đang là vật phẩm đắt nhất của NBA Top Shot khi được bán với giá 208.000 USD. Ảnh: NBA Top Shot.

    Nguồn gốc của NFT

    • NFT chủ yếu vận hành trên nền tảng Blockchain. Ý tưởng sử dụng nền tảng Blockchain để xác định quyền sở hữu tài sản đã được tạo ra bởi Yoni Assia từ năm 2012 với tên gọi Colored Coins . Ý tưởng này có nhiều nét tương đồng với NFT hiện tại. Tuy nhiên, vào thời điểm đó, Colored Coins đã không thành công.
    • Cùng với sự phát triển của công nghệ, nền tảng Blockchain ngày càng hoàn thiện. Năm 2017, NFT đã được người dùng biết đến nhiều hơn nhờ vào game nuôi mèo ảo trên mạng Ethereum. Game cho phép người chơi nuôi và giao dịch mèo ảo bằng đồng Ether.

    Tại sao NFT lại tạo thành cơn sốt?

    Cơn sốt NFT cũng bắt đầu hình thành nhờ vào chính 3 tính chất đặc biệt sau của NFT:

    • Tính độc nhất: mỗi NFT đều có tính chất riêng và hoàn toàn khác biệt so với những NFT khác. Do tính duy nhất của chúng, các NFT là không thể thay thế, có nghĩa là chúng không thể hoán đổi cho nhau. Điều này trái ngược với các tài sản có thể thay thế – chẳng hạn như tờ một đô la, một miếng vàng hoặc bitcoin – mỗi tài sản có thể được hoán đổi cho nhau bằng các vật phẩm tương tự. Các NFT dựa trên tài chính phi tập trung (DeFi), trong đó tài sản và người chơi thị trường hoạt động trên cơ sở cá nhân và phi tập trung. DeFi loại bỏ sự tham gia của các bên trung gian.
    • Tính khan hiếm: mỗi NFT chỉ đại diện cho tài sản điện tử duy nhất và không thể thay thế bằng bất cứ hình thức nào, điều này đã tạo nên giá trị cho các NFT. Ví dụ: món đồ càng khan hiếm thì giá trị sẽ càng cao so với món đồ buôn bán đại trà.
    • Không thể tách rời (phân chia): mỗi NFT không thể chia tách dưới bất kỳ hình thức nào. Ví dụ: 10 Altcoin ERH có thể chia nhỏ thành 10 phần để giao dịch nhưng NFT thì không.
    • NFT có thể xác minh và nhận dạng: Những tác phẩm nghệ thuật lưu trữ dưới dạng NFT luôn là bản gốc và có thể xác minh quyền sở hữu cũng như tác giả thông qua dữ liệu trên Blockchain. Đặc tính này rất được ưa chuộng để nhận diện kỹ thuật số các sản phẩm nghệ thuật hay các bộ sưu tập đồ cổ
    • Tính minh bạch: Bởi vì sổ cái phân phối công khai là phi tập trung và bất biến, nơi hồ sơ phát hành, chuyển nhượng và hoạt động mã thông báo có thể được xác minh công khai, người mua có thể tin tưởng và xác minh tính xác thực của một NFT cụ thể.

    Sức hấp dẫn của NFT nằm ở khả năng đại diện kỹ thuật số của chúng đối với các tài sản vật lý kết hợp với việc sử dụng nhận dạng duy nhất cũng như chuỗi khối chống giả mạo của các hợp đồng thông minh. Nhờ blockchain, các token không thể bị sao chép, xóa bỏ hoặc phá hủy.
    Blockchain cũng cho phép các NFT được theo dõi trở lại chủ sở hữu thực của chúng và loại bỏ nhu cầu xác minh của bên thứ ba. Blockchain bảo vệ quyền sở hữu của NFT, cung cấp cho chủ sở hữu độc quyền thực hiện các giao dịch và chuyển mã thông báo. Ngay cả nhà phát hành NFT cũng không thể sao chép hoặc chuyển giao nó mà không có sự cho phép của chủ sở hữu.

    Giống như các Token tiêu chuẩn khác trên nền tảng Blockchain, NFT cũng sở hữu tính đảm bảo quyền sở hữu tài sản, tính an toàn và dễ dàng chuyển nhượng. Nói cách khác, dựa vào Công Nghệ Blockchain, mọi loại tài sản đều có thể được đại diện và mua, bán dưới dạng NFT độc nhất trên sàn giao dịch điện tử. Và chính vì vậy mà hàng triệu người sẵn sàng chi tiền để mua token NFT để đại diện cho tài sản của mình và từ đó đã tạo nên cơn sốt NFT.

    Ứng dụng của NFT

    Nhờ 3 tính chất đặc biệt bên trên mà NFT đã được ứng dụng vào đa dạng lĩnh vực. Nhưng nổi bật nhất vẫn là 3 lĩnh vực gồm nghệ thuật số (NFT Art), vật phẩm game (Game NFT) và tiền điện tử (Đồng NFT). Và dưới đây sẽ giúp bạn hiểu rõ hơn về từng lĩnh vực NFT này!.

    Game NFT là gì?

    Đối với game truyền thống, nhà phát hành cung cấp các vật phẩm trong game. Và để sở hữu các vật phẩm này, bạn có thể cần nạp tiền vào game để mua chúng. Nhưng quyền sở hữu các vật phẩm này thực tế vẫn thuộc về nhà phát hành. Do đó, các vật phẩm trong game truyền thống của bạn vẫn có khả năng bị mất nếu máy chủ bị đóng hoặc tài khoản bị hack,…

    game nft là gì
    Quyền sở hữu vật phẩm game trong NFT sẽ không thể thay đổi bởi bất kỳ ai

    Nhưng với các game blockchain sử dụng NFT thì khác, vật phẩm game được gắn với token và tất nhiên quyền sở hữu vật phẩm thuộc về chủ sở hữu token. Nhờ đó, bạn dễ dàng trao đổi nó cho bất cứ ai sở hữu coin trên blockchain. Và vật phẩm game sẽ được lưu trữ vĩnh viễn trên blockchain, ngay cả khi game blockchain đã đóng. Đồng thời, không một ai có thể thay đổi được quyền sở hữu với vật phẩm của bạn.

    Ví dụ: Theo Coindesk, một game thủ thu về 80,000 USD tiền thật khi rao bán hàng loạt lô đất trong Decentraland (một loại game blockchain hỗ trợ bởi Ethereum) thông qua NFT.

    Đồng NFT là gì?

    NFT là gì? 2

    Chính nhờ vào tính ứng dụng đa dạng lĩnh vực mà NFT cũng cho ra mắt coin NFTs Token. Cùng với cơn sốt NFT thì các đồng coin NFTs Token trong tương lai cũng sẽ hứa hẹn là một cơ hội đầu tư tiềm năng.

    TOP 3 đồng coin NFT phổ biến nhất hiện nay bao gồm:

    • THETA. Theta Network là mạng lưới chuyên phân phối các video được xây dựng trên nền tảng blockchain. Đồng coin Theta cho phép người dùng xem các nội dung video để tìm kiếm phần thưởng mã thông báo khi chuyển tiếp video đến những người dùng khác.
    • Chiliz – CHZ. Chiliz là đơn vị tiên phong sử dụng công nghệ blockchain vào ngành Công Nghiệp thể thao. Đội ngũ phát triển Chiliz đã xây dựng và phát triển một hệ thống có tên là Socios.com. Giúp cho người dùng vừa có thể sở hữu coin vừa có quyền bỏ phiếu bình chọn cho các bộ môn thể thao hay câu lạc bộ mà mình yêu thích.
    • Decentraland – MANA. Decentraland là nền tảng game NFT thực tế ảo chạy trên nền tảng blockchain, được hỗ trợ bởi Ethereum. Trong thế giới ảo này, bạn có thể dùng Mana token mua bất kỳ mảnh đất nào mà sau này bạn có thể đi qua để tiến hành xây dựng, khai thác và kiếm tiền trên đó.
    NFT là gì? 3
    Decentraland – dự án đất ảo NFT mang đến cơ hội đầu tư tiềm năng cho game thủ

    NFT Art là gì?

    NFT Art là một dạng NFT trong lĩnh vực nghệ thuật, được tạo ra bởi các nghệ sĩ. Đối với lĩnh vực nghệ thuật, những nhà sưu tầm hay đầu tư sẵn sàng bỏ ra số tiền lớn để xác định nguồn gốc cũng như tính xác thực của một bức tranh hay một tác phẩm nghệ thuật.

    Trong thời đại kỹ thuật số, người ta có thể dễ dàng sao chép bất cứ tác phẩm nào. Tuy nhiên, NFT sẽ cung cấp quyền sở hữu, chứng nhận duy nhất và vĩnh viễn cho tác giả. Có thể hiểu đơn giản, NFT Art có thể bị sao chép bởi nhiều người, nhưng chỉ có một bản gốc duy nhất tồn tại và được xác nhận.

    Các nghệ sĩ trong lĩnh vực nghệ thuật gồm âm nhạc, hội họa, điện ảnh,… luôn phải đối mặt với vấn đề liên quan đến bảo vệ bản quyền. Với ứng dụng NFT, bạn có thể mua tác phẩm nghệ thuật bất kỳ và chuyển thành tệp số gắn với token, Sau đó, tải lên và lưu trữ trên nền tảng Blockchain để chứng minh quyền sở hữu của mình với tác phẩm nghệ thuật này.

    Ví dụ: Bức tranh Everyday: The First 5,000 Days của họa sĩ Beeple được bán với giá hơn 69 triệu USD thông qua giao dịch NFT. Bạn có thể tham khảo thêm 10 tác phẩm nghệ thuật NFT đắt nhất.

    NFT là gì? 4
    Everyday: The First 5,000 Days của họa sĩ Beeple
  • 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ì? 5

    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.
  • Flutter là gì?

    Flutter là gì?

    Flutter là gì?

    Để trả lời câu hỏi Flutter là gì, những đặc điểm cơ bản của Flutter, chúng tôi xin được trích đăng một phần đồ án tốt nghiệp của bạn Đỗ Thế Hiệp, sinh viên trường ĐH QUẢN LÝ và CÔNG NGHỆ HẢI PHÒNG.

    Flutter là gì?

    Flutter là một bộ SDK đa nền tảng có thể hoạt động trên iOS và Android do Google phát triển được sử dụng để tạo ra các ứng dụng dành cho di động (native app).

    Flutter gồm 2 thành phần quan trọng:

    • Một SDK (Software Development Kit): Một bộ sưu tập các công cụ sẽ giúp bạn phát triển các ứng dụng của mình.
    • Một Framework (UI Library based on widgets): Một tập hợp các thành phần giao diện người dùng (UI) có thể tái sử dụng (button, text inputs, slider, v.v.) giúp bạn có thể cá nhân hóa tùy theo nhu cầu của riêng mình.

    Nói chung, tạo một ứng dụng di động là một công việc rất phức tạp và đầy thử thách. Có rất nhiều framework có sẵn, cung cấp các tính năng tuyệt vời để phát triển các ứng dụng di động. Để phát triển các ứng dụng dành cho thiết bị di động, Android cung cấp một framework gốc dựa trên ngôn ngữ Java và Kotlin, trong khi iOS cung cấp một framework dựa trên ngôn ngữ Objective-C/Swift.

    Vì vậy, chúng ta cần hai ngôn ngữ và framework khác nhau để phát triển ứng dụng cho cả hai hệ điều hành. Ngày nay, để khắc phục sự phức tạp này, có một số framework đã được giới thiệu hỗ trợ cả hệ điều hành cùng với các ứng dụng dành cho máy tính để bàn. Những loại framework này được gọi là công cụ phát triển đa nền tảng [1] .

    Framework phát triển đa nền tảng có khả năng viết một code và có thể triển khai trên nhiều nền tảng khác nhau (Android, iOS và Máy tính để bàn). Nó tiết kiệm rất nhiều thời gian và nỗ lực phát triển của các nhà phát triển.

    Có một số công cụ có sẵn để phát triển đa nền tảng, bao gồm các công cụ dựa trên web. Mỗi framework này có mức độ thành công khác nhau trong ngành công nghiệp di động. Gần đây, một framework công tác mới đã được giới thiệu trong họ phát triển đa nền tảng có tên là Flutter được phát triển từ Google.

    Flutter là một bộ công cụ giao diện người dùng để tạo các ứng dụng nhanh, đẹp, được biên dịch nguyên bản cho thiết bị di động, web và máy tính để bàn với một ngôn ngữ lập trình và cơ sở code duy nhất. Nó là miễn phí và code nguồn mở. Ban đầu nó được phát triển từ Google và bây giờ được quản lý theo tiêu chuẩn ECMA. Ứng dụng Flutter sử dụng ngôn ngữ lập trình Dart để tạo ứng dụng.

    Flutter chủ yếu được tối ưu hóa cho các ứng dụng di động 2D có thể chạy trên cả nền tảng Android và iOS. Chúng ta cũng có thể sử dụng nó để xây dựng các ứng dụng đầy đủ tính năng, bao gồm máy ảnh, bộ nhớ, vị trí địa lý, mạng, SDK của bên thứ ba, v.v.

    Điều làm Flutter trở lên khác biệt?

    Flutter khác với các framework khác vì nó không sử dụng WebView cũng như các widget OEM (Original Equipment Manufacturer) đi kèm với thiết bị. Thay vào đó, nó sử dụng công cụ kết xuất hiệu suất cao của riêng mình để vẽ các widget. Nó cũng triển khai hầu hết các hệ thống của nó như hoạt ảnh, cử chỉ và widget bằng ngôn ngữ lập trình Dart cho phép các nhà phát triển đọc, thay đổi, thay thế hoặc loại bỏ mọi thứ một cách dễ dàng. Nó cung cấp khả năng kiểm soát tuyệt vời cho các nhà phát triển đối với hệ thống.

    Các tính năng của Flutter

    Flutter cung cấp các phương pháp dễ dàng và đơn giản để bắt đầu xây dựng các ứng dụng dành cho thiết bị di động và máy tính để bàn đẹp mắt với một bộ thiết kế material design và widget phong phú. Ở đây, chúng ta sẽ thảo luận về các tính năng chính của nó để phát triển framework di động.

     

    Các tính năng của Flutter
    Các tính năng của Flutter

    • Code nguồn mở(Open-Source:): Flutter là một framework code nguồn mở và miễn phí để phát triển các ứng dụng di động.
    • Đa nền tảng(Cross-platform): Tính năng này cho phép Flutter viết code một lần, duy trì và có thể chạy trên các nền tảng khác nhau. Nó tiết kiệm thời gian, công sức và tiền bạc của các nhà phát triển.
    • Tải lại nóng (Hot Reload): Bất cứ khi nào nhà phát triển thực hiện thay đổi trong code, thì những thay đổi này có thể được nhìn thấy ngay lập tức với Tải lại nóng. Nó có nghĩa là những thay đổi hiển thị ngay lập tức trong chính ứng dụng. Đây là một tính năng rất tiện dụng, cho phép nhà phát triển sửa các lỗi ngay lập tức.
    • Các tính năng và SDK gốc có thể truy cập (Accessible Native Features and SDKs): Tính năng này cho phép quá trình phát triển ứng dụng dễ dàng và thú vị thông qua code gốc của Flutter, tích hợp bên thứ ba và các API nền tảng. Do đó, chúng tôi có thể dễ dàng truy cập SDK trên cả hai nền tảng.
    • Code tối thiểu (Minimal code): Ứng dụng Flutter được phát triển bởi ngôn ngữ lập trình Dart, sử dụng biên dịch JIT và AOT để cải thiện thời gian khởi động tổng thể, hoạt động và tăng tốc hiệu suất. JIT nâng cao hệ thống phát triển và làm mới giao diện người dùng mà không cần nỗ lực thêm vào việc xây dựng hệ thống mới.
    • Widget: framework công tác Flutter cung cấp các widget có khả năng phát triển các thiết kế cụ thể có thể tùy chỉnh. Quan trọng nhất, Flutter có hai bộ widget: Material Design và các widget Cupertino giúp mang lại trải nghiệm không có trục trặc trên tất cả các nền tảng.

    Kiến trúc của Flutter

    Kiến trúc Flutter

    Trong phần này, chúng ta sẽ thảo luận về kiến trúc của Flutter framework. Kiến trúc Flutter chủ yếu bao gồm bốn thành phần.

    • Động cơ Flutter (Flutter Engine)
    • Thư viện nền tảng (Foundation Library)
    • Vật dụng (Widgets)
    • Thiết kế các widget cụ thể (Design Specific Widgets)

    Flutter Engine

    Nó là một cổng để giúp chạy các ứng dụng di động chất lượng cao và cơ bản dựa trên ngôn ngữ C ++. Nó triển khai các thư viện lõi Flutter bao gồm animation và đồ họa, tệp và mạng I / O, kiến trúc plugin, hỗ trợ trợ năng và thời gian chạy dart để phát triển, biên dịch và chạy các ứng dụng Flutter. Phải sử dụng thư viện đồ họa mã nguồn mở của Google, Skia, để hiển thị đồ họa cấp thấp.

    Thư viện nền tảng (Foundation Library)

    Nó chứa tất cả các gói cần thiết cho các khối build cơ bản để viết một ứng dụng Flutter. Các thư viện này được viết bằng ngôn ngữ Dart.

    Vật dụng (widget)

    Trong Flutter, mọi thứ đều là một widget, đó là khái niệm cốt lõi của framework. Widget trong Flutter về cơ bản là một thành phần giao diện người dùng ảnh hưởng và kiểm soát chế độ xem và giao diện của ứng dụng. Nó đại diện cho một mô tả bất biến về một phần của giao diện người dùng và bao gồm đồ họa, văn bản, hình dạng và animation được tạo bằng các widget. Các widget tương tự như các thành phần React.

    Trong Flutter, ứng dụng tự nó là một widget chứa nhiều widget con. Điều đó có nghĩa rằng ứng dụng là tiện ích con cấp cao nhất và giao diện người dùng của nó được xây dựng bằng cách sử dụng một hoặc nhiều tiện ích con, bao gồm các tiện ích con phụ. Tính năng này giúp bạn tạo một giao diện người dùng phức tạp rất dễ dàng.

    Kiến trúc Flutter
    Kiến trúc Flutter

    Trong ví dụ trên, chúng ta có thể thấy rằng tất cả các thành phần đều là các widget có chứa các widget con. Do đó, ứng dụng Flutter tự nó là một widget.

    Thiết kế các widget cụ thể

    Framework Flutter có hai bộ widget phù hợp với các ngôn ngữ thiết kế cụ thể. Đây là Material Design cho ứng dụng Android và Cupertino Style cho ứng dụng IOS.

  • Xu Hướng Tìm Kiếm Năm 2021

    Xu Hướng Tìm Kiếm Năm 2021

    Xu Hướng Tìm Kiếm Năm 2021

    Mới đây, Google, trang tìm kiếm mạnh mẽ nhất thế giới, đã công bố các Xu Hướng Tìm Kiếm Năm 2021 bằng tiếng Việt. Theo báo cáo đó, có khá nhiều từ khóa thú vị được cư dân mạng tìm kiếm nhiều như “trà xanh là gì” hay “Trùng roi di chuyển như thế nào?”. Bên cạnh đó, thì chủ đề nổi bật nhất vẫn là COVID và học trực tuyến. Bên cạnh các chủ đề truyền thống về thể thao như Lịch thi đấu Euro, La Liga…

    Xu Hướng Tìm Kiếm Năm 2021

    Top 10 Xu hướng Tìm kiếm Năm 2021 Nổi bật Nhất

    1. Lịch thi đấu Euro
    2. Olm
    3. VTV6
    4. Azota
    5. Google Meet
    6. Snaptik
    7. K12online
    8. Vioedu
    9. Play together
    10. Trò chơi con mực

    Nếu đi vào các chủ đề cụ thể, chúng ta cũng có danh sách các từ khóa tìm kiếm nhiều nhất năm 2021 của người Việt Nam như sau:

    Top 10 Xu hướng Tìm kiếm chủ đề COVID-19

    1. Phòng chống COVID
    2. Khai báo y tế
    3. COVID hôm nay
    4. Chỉ thị 16
    5. Sổ sức khỏe điện tử
    6. Vaccine vero cell
    7. Cổng thông tin tiêm chủng
    8. Astrazeneca
    9. Triệu chứng COVID
    10. suckhoe.dancuquocgia.vn

    Top 10 Xu hướng Tìm kiếm chủ đề Thể Thao

    1. Euro 2021
    2. Lịch thi đấu bóng đá hôm nay
    3. Bảng xếp hạng ngoại hạng Anh
    4. Ket qua bong da
    5. Trực tiếp bóng đá hôm nay
    6. Lịch thi đấu bóng đá Việt Nam
    7. Livescore
    8. Vòng loại World Cup 2022
    9. Copa America 2021
    10. La Liga

    Top 10 Xu hướng Tìm kiếm chủ đề học trực tuyến

    1. Olm
    2. Azota
    3. K12online
    4. Vioedu
    5. Lms.vnedu
    6. Quizizz
    7. Shub classroom
    8. Lophoc.hcm.edu.vn thcs
    9. Lớp học kết nối
    10. Trạng nguyên tiếng Việt

    Top 10 Xu hướng Tìm kiếm chủ đề giải trí trực tuyến

    1. Play together
    2. 15minutes4me
    3. Picrew
    4. Tic tac toe
    5. Prettyscale
    6. Z or r twice
    7. Twibbonize
    8. Poki
    9. Genshin impact
    10. Among us

    Các nhân vật được tìm kiếm nhiều nhất năm 2021

    1. Ngô Diệc Phàm
    2. Trịnh Sảng
    3. Triệu Vy
    4. Hải Tú
    5. Nguyễn Phương Hằng
    6. Thiều Bảo Trâm
    7. Phạm Minh Chính
    8. Hoài Linh
    9. Nathan Lee
    10. Kim Jong Kook

    Top 10 Phim được Tìm kiếm nhiều nhất năm 2021

    1. Trò Chơi Con Mực
    2. True Beauty
    3. Khi Em Mỉm Cười Rất Đẹp
    4. Hạ Tiên Sinh Lưu Luyến Không Quên
    5. Nevertheless
    6. Bí Mật Nơi Góc Tối
    7. Chỉ Là Quan Hệ Hôn Nhân
    8. Vincenzo
    9. Nhất Kiến Khuynh Tâm
    10. Em là Niềm Kiêu Hãnh của Anh

    Các địa điểm được tìm kiếm nhiều nhất 2021

    1. Rạp chiếu phim gần đây
    2. Quán phở gần đây
    3. Nhà hàng gần đây
    4. Quán cà phê mua mang về gần đây
    5. Viettel Post gần đây
    6. Bách Hóa Xanh gần đây
    7. Techcombank gần đây
    8. Giao hàng tiết kiệm gần đây
    9. Bưu điện gần đây
    10. Bida gần đây

    Top 10 Xu hướng Tìm kiếm chủ đề Cách làm

    1. Cách làm siro mận
    2. Cách làm bánh mì
    3. Cách làm bánh tai yến
    4. Cách làm bột chiên
    5. Cách làm giá đỗ tại nhà
    6. Cách làm chuối chiên
    7. Cách làm ô mai mận
    8. Cách làm bánh khoai mỡ
    9. Cách làm chè trôi nước
    10. Cách làm mứt mận

    Các câu hỏi được tìm kiếm nhiều nhất 2021

    xu hướng tìm kiếm nổi bật năm 2021 của Google

    1. Tại sao tháng 10 có 61 ngày?
    2. Tại sao phải đặt vấn đề bảo vệ rừng Amazon?
    3. Tại sao lá cây có màu xanh?
    4. Tại sao phải mã hóa thông tin?
    5. Tại sao nói dây thần kinh tủy là dây pha?
    6. Tại sao không được đụng yết hầu của con trai?
    7. Tại sao không tải được ứng dụng trên CH play?
    8. Tại sao Triệu Vy bị phong sát?
    9. Tại sao các tấm tôn lợp có dạng lượn sóng?
    10. Tại sao người già không nên ăn nhiều mỡ?
    11. Azota giám sát như thế nào?
    12. Trùng roi di chuyển như thế nào?
    13. Test PCR như thế nào?
    14. Chiều của dòng điện được quy ước như thế nào?
    15. Nhà Lý được thành lập như thế nào?
    16. Sông và hồ khác nhau như thế nào?
    17. Trùng giày di chuyển như thế nào?
    18. Thông tin trên Internet được tổ chức như thế nào?
    19. Chỉ thị 15 là như thế nào?
    20. Nuốt lưỡi là như thế nào?
    21. Euro 2021 tổ chức ở đâu?
    22. Xét nghiệm Covid ở đâu?
    23. Chùa Tam Chúc ở đâu?
    24. Hiệu thuốc gần nhất ở đâu?
    25. Khai báo y tế ở đâu?
    26. Xin giấy đi đường ở đâu?
    27. Chợ Bình Điền ở đâu?
    28. Ngô Quyền quê ở đâu?
    29. Dubai ở đâu?
    30. Tên lửa Trung Quốc rơi ở đâu 1. Chỉ thị 16 là gì?
    31. Chỉ thị 15 là gì?
    32. Trà xanh là gì?
    33. Sao kê là gì?
    34. Phong sát là gì?
    35. Chu pa pi nha nhố nghĩa là gì?
    36. Chỉ thị 19 là gì?
    37. Hội thánh truyền giáo Phục hưng là gì?
    38. Gen Z là gì?
    39. UAE là gì?
    40. Còn bao nhiêu ngày nữa đến Tết?
    41. Bao nhiêu ngày kể từ 1/1/2021?
    42. Một cốc bằng bao nhiêu aoxơ?
    43. Nhẫn vàng 9999 1 chỉ, giá bao nhiêu?
    44. Vario 150 giá bao nhiêu?
    45. 1000 won bằng bao nhiêu tiền Việt?
    46. Huyết áp bình thường là bao nhiêu?
    47. 40.000 USD bằng bao nhiêu tiền Việt Nam?
    48. Mùa hoa tìm lại bao nhiêu tập?
    49. Một inch là bao nhiêu cm?

    Top 10 Xu hướng Tìm kiếm chủ đề Công nghệ

    1. Snaptik
    2. Fish bowl
    3. Wifispc
    4. Tải video Tiktok
    5. Shimeji
    6. Multiple tools
    7. Test camera
    8. Snap camera
    9. Tra cứu shipper
    10. Custom cursor
  • Top 7 ngôn ngữ lập trình cho trẻ em

    Top 7 ngôn ngữ lập trình cho trẻ em

    Top 7 ngôn ngữ lập trình cho trẻ em

    Lần đầu tiên học cách viết mã và đọc mã nguồn tất cả các ngôn ngữ lập trình khác nhau đều có vẻ đáng sợ, đặc biệt là đối với trẻ em mới tiếp xúc với máy tính!

    May mắn thay, trong khi việc học một thứ gì mới hiếm khi dễ dàng, nhưng vẫn có rất nhiều lựa chọn và một loạt các khóa học phù hợp cho mọi đối tượng, trình độ khác nhau.

    Trong hướng dẫn này, chúng tôi sẽ phân tích những ưu điểm và nhược điểm của 7 ngôn ngữ lập trình cho trẻ em, bao gồm Scratch, JavaScript, Java, Python, Lua, C ++ và C #. Đầy đều là những ngôn ngữ lập trình phổ biến nhất, được đông đảo các lập trình liên lựa chọn và sử dụng hàng ngày.

    Ngôn ngữ lập trình là ngôn ngữ hình thức bao gồm một tập hợp các lệnh tạo ra nhiều loại đầu ra khác nhau. Ngôn ngữ lập trình được sử dụng trong lập trình máy tính để thực hiện các thuật toán.

    Ngôn ngữ lập trình được sử dụng để truyền đạt các chỉ dẫn đến máy móc — trong hầu hết các trường hợp là máy tính. Bởi vì máy móc hoạt động theo một cách cụ thể, các lập trình viên phải sử dụng các ngôn ngữ chính thức để giao tiếp với máy tính và phát triển các chương trình phần mềm, thể hiện các thuật toán hoặc cung cấp các hướng dẫn cụ thể.

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

    1. Scratch & các ngôn ngữ lập trình trực quan khác

    Scratch là ngôn ngữ lập trình tốt nhất có thể khiến trẻ em hào hứng với việc viết mã nhờ vào cách tạo mã bằng việc kéo thả các khối mã lệnh.

    Scratch ngôn ngữ lập trình cho trẻ em

    Khi nói đến việc viết mã cho trẻ em , các ngôn ngữ lập trình trực quan như Scratch cung cấp một nền tảng vững chắc về các nguyên tắc lập trình, với việc trẻ em có thể kéo và thả các khối mã để tạo hoạt ảnh cho các nhân vật, tạo trò chơi và xây dựng ứng dụng.

    Scratch hoàn hảo để dạy cho trẻ em chưa có kinh nghiệm lập trình, trẻ em nhỏ tuổi (tiểu học).

    Scratch cho trẻ thấy việc viết mã có thể thú vị như thế nào với các thao tác kéo thả vô cùng trực quan. Nó cũng được sử dụng để tạo nên các bộ phim hoạt hình có khả năng tương tác với người xem.

    2. JavaScript – Ngôn ngữ tốt nhất cho web

    JavaScript là một ngôn ngữ lập trình thủ tục và hướng đối tượng được sử dụng cho các ứng dụng front-end hoặc client, có nghĩa là các hành động của nó được thực thi trên máy tính của người dùng.

    Ngôn ngữ này rất phổ biến, được hỗ trợ bởi nhiều người dùng (và công việc!) Và là ngôn ngữ gốc trên tất cả các trình duyệt web. JavaScript được sử dụng phổ biến nhất để tạo các ứng dụng web phức tạp và có khả năng tương tác.

    Mặc dù tên của chúng nghe có vẻ giống nhau, nhưng Java và JavaScript là hai ngôn ngữ lập trình rất khác nhau, bạn cần phân biệt rõ điều này.

    JavaScript tuyệt vời cho sinh viên quan tâm đến phát triển và thiết kế web hoặc trẻ em muốn bắt đầu học các kiến ​​thức cơ bản về lập trình.

    3. Java – Ngôn ngữ lập trình tốt nhất cho sinh viên trung cấp

    Java là một trong những ngôn ngữ lập trình được sử dụng rộng rãi nhất trên thế giới, với các nhà phân tích nói rằng khoảng 90% các công ty trong danh sách Fortune 500 sử dụng Java. Vì vậy, đó là một lựa chọn tuyệt vời cho những sinh viên muốn có hiểu biết phong phú về lập trình có thể được sử dụng trong nhiều năm tới.

    Java là một ngôn ngữ được định kiểu tĩnh, có nghĩa là nó yêu cầu bạn chỉ định một kiểu biến. Mặc dù điều này có nghĩa là các ứng dụng được xây dựng bằng Java được biết là có khả năng mở rộng, ổn định và dễ bảo trì hơn, nhưng điều đó cũng có nghĩa là Java có thể mất nhiều thời gian để thành thạo hơn các ngôn ngữ khác.

    Java tốt cho trẻ em vì nó có thể được sử dụng để tạo công cụ trò chơi, ứng dụng dành cho thiết bị di động Android, môi trường phụ trợ lớn, v.v.

    Java  tuyệt vời cho:

    • Các lập trình viên trung cấp muốn củng cố các kỹ năng lập trình của họ
    • Trẻ em học các nguyên tắc Java thông qua một trò chơi thú vị như Minecraft
    • Trẻ em đang chuẩn bị tham gia Kỳ thi AP Khoa học Máy tính hoặc muốn hiểu rõ hơn về các khái niệm lập trình

    4. Lua (dành cho Roblox) tốt nhất cho lập trình viên trò chơi

    Được tạo ra ở Brazil, Lua (có nghĩa là “mặt trăng” trong tiếng Bồ Đào Nha!) Là một ngôn ngữ lập trình gọn nhẹ được thiết kế để nhúng vào các ứng dụng. Đó là một ngôn ngữ đa mô hình, có nghĩa là nó có một tập hợp các tính năng chung có thể được áp dụng cho nhiều vấn đề.

    Lua có dễ học không?

    Với đường cong học tập ngắn (như Python), dễ nhúng và thực thi nhanh chóng, đây là một lựa chọn lý tưởng khi nói đến các hoạt động như  học cách viết mã một trò chơi. Trên thực tế, Lua là ngôn ngữ phổ biến nhất được sử dụng trong game engine, theo GameDev.net và nó đã giành được giải thưởng Gamasutra Frontline cho công cụ lập trình tốt nhất.

    Số lượng các nhà phát triển sử dụng Lua đang tăng đều, có nghĩa là sinh viên của bạn có thể chọn một công cụ có thể phục vụ họ trong một số ngành nghề. Adobe Photoshop, World of Warcraft và Angry Birds đều sử dụng mã Lua. (Đặc biệt là tìm hiểu thêm về mã hóa Roblox cho trẻ em.)

    Tuyệt vời cho:

    • Trẻ em và thanh thiếu niên muốn tiếp thu ngôn ngữ nhanh chóng
    • Sinh viên quan tâm đến lập trình trò chơi
    • Học cách làm Obby trong Roblox!

    5. Python – Ngôn ngữ tốt nhất cho người mới bắt đầu

    Được đặt tên theo loạt phim hài Monty Python, Python được coi là một trong những ngôn ngữ mã hóa dễ học nhất, một phần là do cú pháp đơn giản hóa và tập trung vào khoảng trắng. Python sử dụng ít dòng mã hơn so với các ngôn ngữ lập trình khác. Đặc biệt, việc đọc mã Python khá dễ dàng, vì vậy ngay cả người mới bắt đầu có thể bắt đầu tạo tương đối nhanh chóng.

    Các công ty như Google và Disney sử dụng Python và nó rất phổ biến trong các lĩnh vực khoa học, nơi các nhà khoa học coi lập trình như nghề nghiệp thứ hai của mình. Ngôn ngữ này có thể được sử dụng để phát triển trò chơi điện tử, các trang web, và trí tuệ nhân tạo, khoa học dữ liệu.

    Mời bạn tham khảo các bài học về lập trình Python tại https://o2.edu.vn/d/lap-trinh/python/

    Lập trình Python rất tuyệt vời cho trẻ em và cũng đủ linh hoạt để sử dụng trong các lĩnh vực phức tạp như an ninh mạng và trí tuệ nhân tạo. Bây giờ đó là một ngôn ngữ linh hoạt và mạnh mẽ!

    Tuyệt vời cho:

    • Trẻ em và thanh thiếu niên muốn lên ý tưởng và thực hiện trong thời gian ngắn.
    • Tạo mã dễ đọc trông giống như tiếng Anh thông thường.
    • Sinh viên muốn theo đuổi các lĩnh vực khoa học, đặc biệt là trí tuệ nhân tạo.

    6. C++ – Ngôn ngữ tốt nhất để hiểu sâu hơn về khoa học máy tính

    Được phát âm là “see plus plus”, ngôn ngữ lập trình này được sử dụng để tạo các ứng dụng chạy cục bộ trên các máy như máy tính của bạn.

    Bất chấp thời gian và độ phức tạp cần thiết để học C ++, ngôn ngữ này sẽ cung cấp cho thanh thiếu niên sự hiểu biết rất sâu sắc về lập trình. C ++ có thể được sử dụng để tạo phần mềm hệ thống, trò chơi và nhiều chương trình khác.

    Tuyệt vời cho:

    • Thanh thiếu niên muốn hiểu biết sâu về các nguyên tắc lập trình.
    • Sinh viên muốn lập trình trong ngành công nghiệp trò chơi.

    7. C# – tốt nhất để học lập trình game 3D

    Được phát âm là “see sharp”, C # là một ngôn ngữ lập trình cực kỳ phổ biến được sử dụng để phát triển hầu hết các ứng dụng của bên thứ ba cho Windows. Đây là ngôn ngữ lập trình được yêu cầu nhiều thứ tư cho các công việc và có thể là một ngôn ngữ khởi đầu tuyệt vời cho những người mới học lập trình.

    Về mặt cú pháp, C # rất giống với Java, vì vậy kinh nghiệm sử dụng một trong các ngôn ngữ này sẽ giúp bạn dễ dàng tiếp nhận ngôn ngữ kia hơn. C # thậm chí còn được gọi là bản sao của Microsoft đối với ngôn ngữ Java . Nó có thể được sử dụng để tạo các ứng dụng web, trò chơi và các chương trình khác.

    Unity là một game engine chuyên dụng để tạo các trò chơi 3D, nó cũng sử dụng C# để viết các script cho chương trình của mình.

    Top 7 ngôn ngữ lập trình cho trẻ em 6

    Tuyệt vời cho:

    • Sinh viên quan tâm đến việc tạo ứng dụng cho Windows
    • Thanh thiếu niên có kinh nghiệm Java và đang muốn học một ngôn ngữ tương tự