Blog Feed

Ngành Công Nghệ Thông Tin Làm Gì ? Những Sự Thực Chưa Biết

Công nghệ thông tin hiện đang là 1 ngành học khá hot bởi nó mang đến những công tác mang đãi ngộ tốt, cơ hội phải chăng cho những sinh viên sau lúc ra trường. Hãy cùng tìm hiểu về ngành công nghệ thông tin bắt buộc học các môn gì và ra trường thì làm gì nhé!

I. Ngành Công Nghệ Thông Tin Học Những Môn Gì

Ngành Công nghệ thông tin, (tiếng Anh: Information technology hay là IT) là 1 nhánh ngành công nghệ sử dụng máy tính và phần mềm máy tính để chuyển đổi, lưu trữ, bảo vệ, xử lý, truyền vận tải và thu thập thông tin.

Ngành CNTT gồm phổ biến lĩnh vực như: phần mềm máy tính, hệ thống thông tin, ngôn ngữ lập trình, công nghệ máy tính,..

CNTT là ngành rất rộng, chia là nhiều chuyên ngành. Một số ngành chính như:

  • Khoa học máy tính.
  • Kỹ thuật máy tính.
  • Kĩ thuật phần mềm.
  • Hệ thống thông tin.
  • Truyền thông và mạng máy tính.

Các môn học trong lĩnh vực công nghệ thông tin tại các trường đại học gồm hai mảng lớn: môn đại cương và môn chuyên ngành. Các môn đại cương giúp sinh viên xây dựng nền tảng, tư duy, toán học… Tới năm 3,4, sinh viên sẽ bắt đầu học các môn chuyên ngành liên quan trực tiếp tới công việc sẽ làm sau này.

Ngành Công Nghệ Thông Tin Học Những Môn Gì
Ngành Công Nghệ Thông Tin Học Những Môn Gì

II. Điểm Chuẩn Đại Học Công Nghệ Thông Tin

Trường Đại học Công nghệ Thông tin sáng 29/6 công bố điểm chuẩn theo phương thức kiểm tra năng lực; ngành Trí tuệ nhân tạo có mức đầu vào cao nhất, 940 điểm.

So với năm ngoái, điểm chuẩn ngành Trí tuệ nhân tạo giảm 10 điểm.

Những ngành khác có điểm chuẩn giảm gồm: Khoa học máy tính, Kỹ thuật phần mềm, Hệ thống thông tin, Thương mại điện tử, Công nghệ thông tin, Kỹ thuật máy tính.

Những ngành còn lại của trường có điểm chuẩn tăng nhẹ hoặc không thay đổi.

Trường Đại học Công nghệ Thông tin (thuộc Đại học Quốc gia TP HCM) là trường thứ nhất công bố điểm chuẩn theo phương thức này. Thí sinh đủ điều kiện trúng tuyển tự xác định thứ tự ưu tiên những nguyện vọng lúc đăng ký trên hệ thống chung của Bộ Giáo dục và Đào tạo. Khác với nhiều năm trước, các đại học năm nay không được phép yêu cầu thí sinh trúng tuyển làm thủ tục nhập học sớm.

Năm nay, Đại học Công nghệ Thông tin tuyển 1.700 chỉ tiêu với bốn phương thức chính: Tuyển thẳng và ưu tiên xét tuyển; xét tuyển dựa trên điểm thi (thi đánh giá năng lực, thi tốt nghiệp THPT); xét tuyển chứng chỉ quốc tế uy tín; xét tuyển theo tiêu chí riêng.

Trước đó, 93.000 thí sinh đã dự thi đánh giá năng lực do Đại học Quốc gia TP HCM tổ chức với số lượt đăng ký dự thi là 120.000. Hiện 86 trường đại học, cao đẳng sử dụng kết quả kỳ thi này để tuyển sinh.

Điểm Chuẩn Đại Học Công Nghệ Thông Tin
Điểm Chuẩn Đại Học Công Nghệ Thông Tin

III. Học Phí Của Ngành Công Nghệ Thông Tin

Học phí ngành Công nghệ thông tin luôn là vấn đề được nhiều thí sinh quan tâm trong quá trình chọn trường, chọn nghề. Mức học phí luôn có sự chênh lệch giữa các trường. Vậy mức học phí của ngành công nghệ là bao nhiêu? Trong bài viết hôm nay, Techacademy sẽ mang tới cho bạn nhiều thông tin liên quan đến học phí giữa các trường một cách chi tiết nhất.

Từ trước tới nay, công nghệ thông tin đang là một trong những ngành được giới trẻ săn. Vì thế mà có cực kỳ nhiều trường trên cả nước đào tạo về ngành này. Tùy vào chất lượng đào tạo, mô hình trường đào tạo, chương trình đào tạo và mức học phí giữa các trường cũng có sự khác nhau, cụ thể:

Mức học phí các trường công lập

STT Tên Trường Học phí (Năm học 2021 – 2022)
1 Đại học Bách khoa Hà Nội Mức học phí giao động từ 28 – 60 triệu đồng tùy theo chương trình.
2 Đại học Công nghệ, Đại học Quốc gia Hà Nội Học phí giao động từ 35 triệu đồng
3 Đại học Khoa học tự nhiên, Đại học Quốc gia Hà Nội Giao động từ 18 – 30 triệu đồng
4 HV Bưu chính viễn thông Học phí giao động từ 19,5 – 21 triệu đồng
5 Đại học Công nghệ thông tin (ĐH Quốc gia TP. HCM) Học phí Đại học Công nghệ thông tin được tính tùy theo chương trình và có mức giao động từ 18 – 35 triệu đồng

Mức học phí các trường ngoài công lập

STT Tên Trường Học phí (VNĐ) 
1 Đại học Phenikaa Mức học phí dao động từ 27 – 32 triệu đồng/học kỳ. Đây là mức học phí đã được hỗ trợ 20% học phí.
2 Đại học Hoa Sen Mức học phí năm học 2021 – 2022 giao động từ 33 – 35 triệu/học kỳ chưa tính các chi phí học tập khác
3 Đại học Kinh tế Tài chính UEF Mức học phí ngành Công nghệ thông tin của UEF năm học 2021 – 2022 khoảng 35 triệu/học kỳ
4 Đại học Văn Lang Học phí ngành Công nghệ thông tin của Đại học Văn Lang năm học 2021 – 2022 giao động ở mức 36 triệu đồng.
5 Đại học Công nghệ TP. HCM (Đại học Hutech) Mức học phí từ 15 – 16 triệu/học kỳ
6 Đại học Thăng Long Học phí dự kiến là 24,2 triệu đồng và mỗi năm sẽ tăng không quá 5%.
7 Đại học FPT Học phí mỗi học kỳ là 27,300,000/học kỳ. Học phí đã bao gồm học liệu, giáo trình, các khoá học kỹ năng mềm, chương trình ngoại khoá…

Công nghệ thông tin tại trường Đại học FPT là ngành học nổi tiếng và lâu đời nhất. Chương trình đào tạo tại trường hướng đến tính khoa học, sát thực tế nhằm loại bỏ được nhiều tính hàn lâm.

Sinh viên theo học sẽ được trang bị đầy đủ các khối kiến thức từ nền tảng đến chuyên sâu. Chương trình học của sinh viên được thế kế tích hợp, cân bằng giữa lý thuyết và thực hành cũng như năng lực ứng dụng thực tế và sáng tạo. Từng học phần luôn được chú trọng tới nội dung đào tạo nhằm tạo hứng thú học tập cho sinh viên.

Sinh viên được tập sự thực tế tại các doanh nghiệp vào năm thứ 3 từ 4-8 tháng. Tại đây, sinh viên có cơ hội tham gia vào một số dự án thực tế để nâng cao kỹ năng chuyên môn và tích lũy kinh nghiệm làm việc, được trả lương theo năng lực thực tế.

Học Phí Của Ngành Công Nghệ Thông Tin
Học Phí Của Ngành Công Nghệ Thông Tin

IV. Sau Khi Tốt Nghiệp Ngành Công Nghệ Thông Tin Làm Ở Đâu ? 

Đây là câu hỏi của nhiều bậc phụ huynh và của nhiều bạn trẻ có niềm yêu thích với IT. Học IT không chỉ là ngồi viết mã code, hãy đọc tiếp để đón chờ những cơ hội hấp dẫn trong ngành nghề này.

Lập trình viên Công nghệ thông tin – IT programmer:

Lập trình viên tạo ra, kiểm thử và xử lý các vấn đề của chương trình máy tính, họ cũng là người nâng cấp và sửa chữa chương trình đó. Hầu hết lập trình viên làm việc trong công ty lập trình thiết kế và bán phần mềm,…

Chuyên gia phân tích hệ thống – System Analyst:

Các chuyên gia tuân thủ những bước đã được mô tả trong vòng đời hệ thống. Họ lên kế hoạch và thiết kế các hệ thống mới hoặc tổ chức lại các tài nguyên máy tính của công ty để dùng một cách tốt nhất. Chuyên gia phân tích tuân thủ hầu hết các bước trong vòng đời hệ thống bao gồm: khảo sát sơ bộ, phân tích, thiết kế, phát triển, triển khai và bảo trì.

Quản trị cơ sở dữ liệu – Database Administrator:

Họ sử dụng các phần mềm quản trị cơ sở dữ liệu, để xác định cách thức tổ chức và truy cập dữ liệu của công ty một phương pháp hiệu quả nhất, bảo đảm tính bảo mật của cơ sở dữ liệu và sao lưu hệ thống. Quản trị cơ sở dữ liệu là một ngành đang phát triển nhanh chóng và hứa hẹn tạo ra nhiều việc làm trong lĩnh vực công nghệ thông tin.

Nhà quản lý hệ thống thông tin – Information System Manager:

Nhà quản lý sẽ giám sát công việc của những lập trình viên, nhà phân tích hệ thống và các chuyên gia máy tính khác. Nhà quản lý hệ thống thông tin thường dành cho những ai đã từng làm cố vấn hoặc quản lý trước đó.

Chuyên gia mật mã – Cryptographer:

Mật mã học (cryptography) là ngành khoa học che giấu và khôi phục lại thông tin đã được che giấu hay mã hóa. Chuyên gia mật mã (cryptographer) là người thiết kế hệ thống mật mã, phá vỡ hệ thống mật mã và thực hiện các nghiên các nghiên cứu về mật mã, những công việc vốn thuộc về trách nhiệm của kỹ sư bảo mật thông tin hay nhà quả trị mạng.

Có rất nhiều chuyên gia mật mã làm nhà tư vấn về mật mã, và luôn có những vị trí làm việc dành cho họ trong Chính phủ hay một số tập đoàn lớn.

Quản trị mạng – Network Administrator:

Là nhân viên quản lý các mạng LAN và WAN của công ty. Họ có trách nhiệm thiết kế, thực hiện cài đặt và duy trì sự hoạt động của các mạng nói trên, chuẩn đoán và khắc phục các sự cố liên quan đến mạng.

Đây là 1 trong số công việc được dự đoán sẽ có số lượng việc làm tăng nhanh nhất trong tương lai.

Kỹ sư phần mềm – Software Engineer:

Kỹ sư phần mềm có nhiệm vụ phân tích yêu cầu người dùng và tạo ra phần mềm ứng dụng. Họ thường có nhiều kinh nghiệm lập trình, tập trung vào nhiệm vụ thiết kế và phát triển phần mềm dựa trên các nguyên lý toán học hay kỹ thuật. Họ ít khi tự mình viết mã cho chương trình.

Các khóa thực tập trang bị cho sinh viên một số kinh nghiệm mà nhà tuyển dụng mong muốn ở một người kỹ sư phần mềm. Các ứng viên am hiểu về mạng, Internet và các ứng dụng web sẽ có lợi thế hơn.

Quản trị Web – Webmaster:

Phát triển và duy trì trang web cũng như các tài nguyên của trang web. Thông thường, công việc này bao gồm trách nhiệm sao lưu trang web công ty, cập nhật tài nguyên hoặc là xây dụng các tài nguyên mới, thiết kế và phát triển trang web, giám sát lưu lượng truy cập trên trang web và tìm biện pháp để khuyến khích người sử dụng ghé thăm trang web.

Quản trị web cũng có thể cộng tác với nhân viên marketing để tăng lưu lượng truy cập trang web và có thể tham gia vào việc phát triển quảng cáo trên trang web. Những người có kinh nghiệm sử dụng các phần mềm phát triển web như Adobe Illustrator và Adobe Flash thường được ưu tiên tuyển dụng. Các kỹ năng giao tiếp và tổ chức tốt cũng quan trọng cho vị trí này.

Kỹ thuật viên máy tính – Computer Technicians:

Sửa chữa, cài đặt hệ thống và các thành phần máy tính, làm việc trên mọi loại thiết bị, từ máy tính cá nhân, máy chủ đến máy in. Một số kỹ thuật viên máy tính có trách nhiệm cài đặt hoặc duy trì mạng máy tính. Cùng với sự phát triển của công nghệ, các thiết bị máy tính sẽ trở nên phức tạp hơn, do đó, nhu cầu về công việc trong lĩnh vực này sẽ ngày càng tăng.

Chuyên viên viết tài liệu kỹ thuật – Technical Writer:

Các chuyên viên chuẩn bị tài liệu hướng dẫn, báo cáo kỹ thuật và văn bản khoa học hay kỹ thuật khác. Hầu hết các chuyên viên viết tài liệu kỹ thuật làm việc cho các công ty máy tính, cơ quan Chính phủ hoặc viện nghiên cứu. Họ chuyển thông tin kỹ thuật thành những hướng dẫn hoặc bản tóm tắt dễ hiểu.

Sau Khi Tốt Nghiệp Ngành Công Nghệ Thông Tin Làm Ở Đâu ? 
Sau Khi Tốt Nghiệp Ngành Công Nghệ Thông Tin Làm Ở Đâu ?

V. Học Công Nghệ Thông Tin Trường Nào Tốt Nhất

Công nghệ thông tin (CNTT) là 1 trong những ngành cực kỳ HOT nhất hiện nay, đặc biệt khi mà nhu cầu sử dụng nguồn lao động công nghệ này ngày càng lớn, sẽ bảo đảm đầu ra ổn định cho những bạn đam mê ngành kỹ thuật này. Tuy nhiên, nhiều bạn đang băn khoăn chưa biết lựa chọn cho mình một ngôi trường phù hợp, chất lượng tốt.

Chính vì thế, Techacademy sẽ chia sẻ tới các bạn danh sách các trường ĐH hàng đầu Việt Nam hiện nay về đào tạo Công nghệ thông tin để các bạn có thể tham khảo.

1. Đại học Bách khoa Hà Nội

Trường Đại học Bách khoa Hà Nội (viết tắt là HUST) là một trong những trường đại học kỹ thuật đa ngành hàng đầu tại Việt Nam và cũng là một trong các trường đại học trọng điểm quốc gia Việt Nam. Đây là một trong 13 thành viên của Hiệp hội các trường đại học kỹ thuật hàng đầu của Châu Á – Thái Bình Dương mang tên AOTULE (Asia-Oceania Top University League on Engineering).

Khoa Công nghệ Thông tin (tiền thân của Viện Công nghệ Thông tin và Truyền thông ngày nay) – Đại học Bách khoa Hà Nội được thành lập vào tháng 3 năm 1995, trên cơ sở sáp nhập 03 đơn vị thuộc Trường: Khoa Tin học, Phòng Thí nghiệm Chuyên đề Xử lý tin (Khoa Điện tử – Viễn thông), và Trung tâm Máy tính và Tin học Ứng dụng. Tại thời điểm thành lập, Khoa là một trong bảy khoa công nghệ thông tin trọng điểm được thành lập tại Việt Nam.

Gần 30 năm hình thành và phát triển, Khoa CNTT trước đây, cũng như Viện CNTT&TT đã có những bước phát triển vượt bậc, xứng đáng là ngọn cờ đầu trong đào tạo, nghiên cứu và chuyển giao công nghệ trong lĩnh vực CNTT&TT tại Việt Nam. Điều này được minh chứng rõ nét từ kết quả của các bảng xếp hạng đại học uy tín trên Thế giới.

Ở cả hai bảng xếp hạng danh giá THE và QS, lĩnh vực Khoa học Máy tính (hay CNTT theo cách định nghĩa ở ta), Đại học Bách khoa Hà Nội đều đứng thứ nhất Việt Nam, và sánh vai với một số trường đại học uy tín ở các nước phát triển tiên tiến, như: The University of Georgia (Mỹ), Technische Universität Braunschweig (Đức), Université de Bordeaux (Pháp), Université Laval (Canada), La Trobe University (Úc)…

Đại học Bách khoa Hà Nội
Đại học Bách khoa Hà Nội

2. Đại học Công nghệ Thông tin – Đại học Quốc gia TP. HCM (UIT)

Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh là trường đại học công lập đào tạo về công nghệ thông tin và truyền thông (CNTT&TT) được thành lập theo quyết định số 134/2006/QĐ-TTg ngày 08/06/2006 của Thủ tướng Chính phủ.

Trường ĐH CNTT có nhiệm vụ đào tạo nguồn nhân lực công nghệ thông tin chất lượng cao, góp phần tích cực vào sự phát triển của nền công nghiệp công nghệ thông tin Việt Nam, đồng thời tiến hành nghiên cứu khoa học và chuyển giao công nghệ thông tin tiên tiến, đặc biệt là hướng vào các ứng dụng nhằm góp phần đẩy mạnh sự nghiệp công nghiệp hóa, hiện đại hóa đất nước.

Với triết lý giáo dục “Toàn diện, sáng tạo, phụng sự”, đây cũng là giá trị cốt lõi trong vận hành và phát triển nhà trường, xác lập vị trí là trường ĐH hàng đầu trong lĩnh vực CNTT tại Việt Nam, là nơi đào tạo sinh viên phát triển toàn diện cả về kiến thức, kỹ năng chuyên môn lẫn thái độ sống tích cực phục vụ cộng đồng, năng động – bản lĩnh – tự tin hội nhập với cộng đồng quốc tế.

Trường có 07 chương trình đào tạo đặc biệt (hệ chính quy) các ngành: kỹ sư tài năng ngành An toàn Thông tin, chương trình tiên tiến ngành Hệ thống Thông tin, cử nhân tài năng ngành Khoa học Máy tính v.v… Ở bậc đào tạo sau đại học có 03 chương trình đào tạo trình độ thạc sĩ (ngành khoa học máy tính, công nghệ thông tin và hệ thống thông tin) và 02 chương trình đào tạo trình độ tiến sĩ (ngành khoa học máy tính và công nghệ thông tin).

Sinh viên của trường sẽ được học tập và nghiên cứu trong môi trường năng động, được học các lớp liên kết với các tập đoàn hàng đầu về công nghệ thông tin như IBM, Microsoft, Sun Java,… sau khi học xong sẽ được cấp chứng chỉ quốc tế, tạo điều kiện rất tốt cho việc sinh viên ra trường được ứng tuyển vào làm việc các tập đoàn lớn.

Đại học Công nghệ Thông tin - Đại học Quốc gia TP. HCM (UIT)
Đại học Công nghệ Thông tin – Đại học Quốc gia TP. HCM (UIT)

3. Đại học Công nghệ – Đại học Quốc gia Hà Nội

Đại học Công nghệ (UET) được thành lập vào năm 2004, đây là 1 trong những trường hàng đầu Việt Nam về đào tạo công nghệ thông tin hiện nay. Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội được thành lập trên cơ sở Khoa Công nghệ và Trung tâm Hợp tác Đào tạo và Bồi dưỡng Cơ học trực thuộc Đại học Quốc gia Hà Nội với hai nhiệm vụ như sau:

  • Đào tạo nguồn nhân lực trình độ đại học, sau đại học và bồi dưỡng nhân tài thuộc lĩnh vực khoa học, công nghệ;
    Nghiên cứu và triển khai ứng dụng khoa học, công nghệ đáp ứng nhu cầu phát triển kinh tế – xã hội.
  • Sứ mạng của Nhà trường là đào tạo nguồn nhân lực chất lượng cao, trình độ cao và bồi dưỡng nhân tài; nghiên cứu phát triển và ứng dụng các lĩnh vực khoa học công nghệ tiên tiến mũi nhọn trên cơ sở phát huy thế mạnh về Công nghệ thông tin và Truyền thông.

UET có đội ngũ giảng viên rất yêu nghề và tâm huyết với việc giảng dạy, các thầy cô đều gần gũi với sinh viên và luôn có cách giảng dạy hiện đại, chuyên nghiệp. Trường Đại học Công nghệ còn là đối tác tin cậy của hơn 50 trường đại học, viện nghiên cứu và tập đoàn công nghiệp lớn trên thế giới. Nhà trường đi đầu và triển khai có hiệu quả hoạt động hợp tác “Trường – Viện – Doanh nghiệp”…

Đại học Công nghệ cũng là nơi có nhiều học bổng khuyến khích học tập bởi trường là đối tác tin cậy của những tập đoàn lớn như Samsung, Toshiba,… đó là nguồn động lực không nhỏ để thúc đẩy các bạn sinh viên nỗ lực hết mình, cũng là phấn đấu cho tương lai phía trước.

Đại học Công nghệ - Đại học Quốc gia Hà Nội
Đại học Công nghệ – Đại học Quốc gia Hà Nội

4. Khoa Công nghệ Thông tin (CNTT) – Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM

Đại học Khoa học Tự nhiên TP. HCM (HCMUS) là trường được tách ra từ Đại học Tổng hợp TP. HCM năm 1996. Các bạn có niềm đam mê công nghệ thông tin và các ngành có liên quan có thể đăng ký vào khoa Toán tin hoặc khoa Công nghệ thông tin. Sinh viên của trường luôn được trang bị những kiến thức cơ bản nhất, được rèn luyện khả năng tư duy, phân tích trên cơ sở chương trình học tập bài bản, khoa học.

Khoa Công nghệ Thông tin (CNTT) – Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM được thành lập theo quyết định số 3818/GD-ĐT ngày 13/12/1994 của Bộ Trưởng Bộ GD&ĐT, dựa trên Bộ môn Tin học (thuộc Khoa Toán, Trường Đại học Tổng hợp TP.HCM). Trải qua hơn 25 năm hoạt động, Khoa đã phát triển vững chắc và được Chính phủ bảo trợ để trở thành một trong những khoa CNTT đầu ngành trong hệ thống giáo dục đại học của Việt Nam.

Khoa CNTT của trường ngày càng phát triển vững chắc và được chính phủ bảo trợ để trở thành một trong những khoa CNTT đầu ngành trong hệ thống giáo dục của Việt Nam. Đặc biệt, trường luôn quan tâm đến các cuộc thi IT trong nước và quốc tế để mang lại cho sinh viên những sân chơi bổ ích, nâng cao khả năng phân tích và giải quyết các vấn đề thực tế.

Có thể thấy rằng tư duy, năng lực và sức cạnh tranh của sinh viên HCMUS luôn được đánh giá rất cao, đây chắc chắn sẽ là lựa chọn tuyệt vời để các bạn theo đuổi ước mơ của mình.

Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM

5. Đại học khoa học và công nghệ Hà Nội

Đại học khoa học và công nghệ Hà Nội là trường đại học công lập đạt chuẩn quốc tế được thành lập năm 2009 trong khuôn khổ Thỏa thuận hợp tác giữa Chính phủ hai nước Việt Nam và Pháp. Đây là một trong 4 trường đại học công lập trực thuộc Bộ giáo dục và đào tạo trong lộ trình lên đại học đẳng cấp quốc tế.

Từ lúc thành lập trường đã xác định mục tiêu chính là phát triển một trung tâm chất lượng cao kết hợp giữa nghiên cứu, giảng dạy và liên hệ chặt chẽ với giới công nghiệp trong lĩnh vực khoa học và công nghệ, đồng thời phát triển một mô hình hợp tác giữa khối tư nhân và nhà nước trong giáo dục đại học và các lĩnh vực nghiên cứu.

Các lĩnh vực đào tạo, nghiên cứu ban đầu của Trường được lựa chọn trên cơ sở các thế mạnh khoa học và công nghệ của Pháp và nhu cầu đào tạo nguồn nhân lực và chiến lược phát triển khoa học công nghệ của Việt Nam bao gồm: Công nghệ Sinh học và Dược học; Vũ trụ và Hàng Không; Năng lượng; Công nghệ Thông tin và Truyền thông; Vật liệu – Công nghệ nano; Nước – Môi trường – Hải dương học.

Sự ra đời của USTH được kỳ vọng sẽ tạo động lực mới cho sự phát triển khoa học và công nghệ của Việt Nam, đồng thời trở thành biểu tượng hợp tác về giáo dục đại học và nghiên cứu, góp phần thắt chặt mối quan hệ hợp tác hữu nghị giữa Việt Nam và Pháp.

Với các bạn đam mê công nghệ, thì đây cũng là một trong những lựa chọn tuyệt vời để hiện thực hóa giấc mơ của mình, các bạn có thể học cử nhân Công nghệ thông tin và truyền thông trong 3 năm sau đó học tiếp 2 năm thạc sĩ, như vậy thời gian học sẽ được rút ngắn rất nhiều, và đồng thời khả năng ngoại ngữ cũng như các kỹ năng của bạn sẽ ngày càng được trau dồi và tiến bộ đáng kể.

Đại học khoa học và công nghệ Hà Nội
Đại học khoa học và công nghệ Hà Nội

6. Học viện kỹ thuật quân sự

Học viện Kỹ thuật Quân sự được thành lập theo Quyết định số 146/CP ngày 08/8/1966 của Hội đồng Chính phủ với tên gọi ban đầu là “Phân hiệu II Đại học Bách khoa”. Ngày 13/6/1968, Thủ tướng Chính phủ quyết định đổi tên “Phân hiệu II Đại học Bách khoa” thành trường Đại học Kỹ thuật Quân sự và ngày 15/12/1981, Bộ Quốc phòng quyết định thành lập Học viện Kỹ thuật Quân sự trên cơ sở trường Đại học Kỹ thuật Quân sự. Ngày 06/6/1991, Chủ tịch Hội đồng Bộ trưởng quyết định cho phép Học viện Kỹ thuật Quân sự mang thêm tên gọi Đại học kỹ thuật Lê Quý Đôn.

Ngày 31/1/2008, Học viện Kỹ thuật Quân sự được Chính phủ quyết định bổ sung vào danh sách các trường đại học trọng điểm quốc gia, trung tâm nghiên cứu khoa học quan trọng của Quân đội và đất nước, đào tạo nguồn nhân lực khoa học kỹ thuật và công nghệ chất lượng cao cho sự nghiệp bảo vệ và xây dựng Tổ quốc. Hiện trường có 4 cơ sở ở cả miền Bắc và miền Nam.

Sứ mạng của Học viện Kỹ thuật Quân sự là đào tạo nguồn nhân lực chất lượng cao, nghiên cứu phát triển, sản xuất chế thử, chuyển giao công nghệ tiên tiến và hội nhập quốc tế, góp phần đắc lực vào sự nghiệp xây dựng và bảo vệ Tổ quốc, phát triển ngành khoa học kỹ thuật quân sự Việt Nam.

Học viện kỹ thuật quân sự cũng được coi là một trong những trường hàng đầu về đào tạo CNTT bởi tại đây sinh viên được rèn luyện mọi thứ theo tác phong quân đội và trong trường luôn có các giảng viên nhiệt tình, tận tâm và đặc biệt rất tâm huyết với nghề.

Ngoài ra, sinh viên trong trường luôn được thực hành tại các viện nghiên cứu với đầy đủ các trang thiết bị từ đơn giản cho tới phức tạp, liên tục được cập nhật từ các nước phát triển trên thế giới. Không chỉ vậy, trường còn có các chương trình liên kết giữa Học viện với nhiều trường đại học trong nước và quốc tế góp phần đổi mới nội dung giảng dạy, nâng cao vị thế của nhà trường.

Học viện kỹ thuật quân sự
Học viện kỹ thuật quân sự

7. Học viện Kỹ thuật Mật mã

Học viện Kỹ thuật Mật mã là một trường đại học công lập trực thuộc Ban Cơ yếu Chính phủ – Bộ Quốc phòng Việt Nam, được thành lập ngày 17 tháng 2 năm 1995 có chức năng đào tạo cán bộ có trình độ đại học, sau đại học và nghiên cứu khoa học kỹ thuật mật mã của ngành Cơ yếu Việt Nam. Trường có sơ sở cả Hà Nội và TP. HCM.

Tại đây, các bạn có thể theo học các ngành liên quan đến công nghệ, với chất lượng đào tạo hàng đầu, cộng với trang thiết bị được đầu tư vô cùng hiện đại chắc chắn sẽ mang đến cho sinh viên môi trường học tập vô cùng lý tưởng.

Hơn thế, khi mà an toàn thông tin đang rất “hót” hiện nay cho nên khi bạn theo học tại trường sẽ có thể yên tâm về vấn đề “đầu ra”. Khi học xong bạn sẽ trở thành sĩ quan và có việc làm ngay, hoặc nếu không thích hoàn toàn bạn có thể chọn cho mình một công việc khác như ý muốn.

Hợp tác quốc tế có vai trò quan trọng đối với việc xây dựng và phát triển Học viện, đặc biệt trong điều kiện toàn cầu hóa về giáo dục hiện nay.

Nhiệm vụ chính của hợp tác quốc tế là xây dựng và phát triển sự hợp tác nhiều mặt giữa Học viện với các đối tác nhằm phục vụ cho hoạt động giảng dạy, học tập và nghiên cứu khoa học. Nhận thức được tầm quan trọng của hội nhập quốc tế với sự phát triển của Học viện trong thời kỳ đổi mới, Học viện không ngừng thúc đẩy, kết nối các đối tác quốc tế ở khắp các châu lục trên thế giới.

Chương trình liên kết đào tạo quốc tế tại Học viện Kỹ thuật Mật mã:

  • Học viện đang triển khai 02 chương trình liên kết đào tạo ngắn hạn, dài hạn về công tác nghiên cứu khoa học, an toàn thông tin với trường đại học FSO, Liên bang Nga
  • Hợp tác đào tạo về thực tập sinh và giảng dạy tại Việt Nam các chuyên đề trong hợp tác với trường Đại học Lorraine, Cộng hòa Pháp
  • Hợp tác nghiên cứu khoa học về ngành CNTT, quản lý CNTT, đào tạo nghiên cứu sinh CNTT, công tác thư viện, nâng cao trình độ tiếng anh cho đội ngũ giảng viên với Đại học University of Canberra
  • Hợp tác nghiên cứu khoa học và đào tạo trong các lĩnh vực CNTT, An toàn thông tin với Học viện Kỹ thuật Quân sự (Wojskowa Akademia), Ba Lan
Học viện Kỹ thuật Mật mã
Học viện Kỹ thuật Mật mã

8. Học viện Công nghệ Bưu chính Viễn thông

Học viện Công nghệ Bưu chính Viễn thông được thành lập năm 1997, chuyên về công nghệ thông tin và truyền thông trực thuộc Bộ Thông tin và Truyền thông. Học viên gồm 2 cơ sở đào tạo tại Hà Nội, TP. Hồ Chí Minh và 03 Viện nghiên cứu trong lĩnh vực ICT.

Chức năng cơ bản của Học viện Công nghệ Bưu chính Viễn thông:

  • Giáo dục, đào tạo cho xã hội và cho nhu cầu của Ngành thông tin và truyền thông Việt Nam.
  • Nghiên cứu khoa học, tư vấn, chuyển giao công nghệ trong lĩnh vực Bưu chính, Viễn thông và công nghệ thông tin đáp ứng nhu cầu xã hội và nhu cầu của Ngành thông tin và truyền thông Việt Nam.

Tại đây, sinh viên sẽ được đào tạo một cách bài bản với đội ngũ giảng viên có nhiều kinh nghiệm thực tế. Đặc biệt, với hệ thống mạng lưới viễn thông, CNTT rộng lớn của VNPT sẽ là phòng thí nghiệm ảo rất lớn tạo môi trường để các hoạt động đào tạo và khoa học công nghệ gắn với sản xuất kinh doanh, và để cán bộ giảng dạy, nghiên cứu tiếp cận với thực tiễn, từ đó sẽ truyền đạt lại cho sinh viên những bài học vô cùng quý giá, sát thực tế.

Đây sẽ là lựa chọn vô cùng lý tưởng với những bạn sinh viên có thành tích học tập khá và là cơ hội để phát triển đam mê của mình.

Học viện Công nghệ Bưu chính Viễn thông
Học viện Công nghệ Bưu chính Viễn thông

9. Đại học RMIT Việt Nam

Đại học RMIT Việt Nam là chi nhánh tại châu Á của Đại học RMIT (đặt tại Melbourne) – trường đại học lớn nhất của Úc. Trường giảng dạy nhiều chương trình từ kinh doanh và quản trị đến thiết kế và kỹ thuật vi điện tử, công nghệ thông tin,… đồng thời tổ chức hàng loạt hoạt động ngoại khóa ấn tượng nhằm khuyến khích sinh viên mở rộng phạm vi hiểu biết của bản thân.

Môi trường học tập tại RMIT khuyến khích nhận thức văn hóa, tư duy phản biện, sự thử nghiệm và óc sáng tạo. Bạn sẽ được trải nghiệm một nền giáo dục được thiết kế để dẫn lối thành công, giúp trang bị những kỹ năng và tri thức cho bạn tiến xa trên con đường sự nghiệp đã chọn.

Lý do nên học công nghệ thông tin tại RMIT Việt Nam:

  • Bằng Cử nhân Công nghệ Thông tin (IT) tại RMIT sẽ giúp bạn được săn đón bởi các nhà tuyển dụng trong lĩnh vực phát triển phần mềm và CNTT.
  • Phát triển kiến thức và kỹ năng xây dựng, quản lý ứng dụng doanh nghiệp, lưu trữ đám mây, mạng xã hội, website và những hệ thống khác. Giúp người học nghiên cứu chuyên sâu vào phát triển cơ sở hạ tầng công nghệ.
  • Được học cách thiết kế và khắc phục các sự cố CNTT cấp độ doanh nghiệp và phối hợp làm việc với các bên liên quan trong nhiều lĩnh vực khác nhau.
  • Chương trình còn chú trọng vào phát triển phần mềm, thiết kế và kiểm định hệ thống, áp dụng kỹ năng để thiết kế ứng dụng phần mềm trên quy mô lớn.
Đại học RMIT Việt Nam
Đại học RMIT Việt Nam

10. Đại học FPT

Xuất thân từ tập đoàn FPT – tập đoàn nổi tiếng về CNTT nên Đại học FPT cũng nhanh chóng trở thành cái tên hàng đầu trong lĩnh vực đào tạo CNTT. Nhờ lợi thế hiểu yêu cầu thực tế của doanh nghiệp đối với nhân sự ngành CNTT, ĐH FPT xây dựng một chương trình đào tạo đáp ứng yêu cầu của không chỉ các doanh nghiệp trong nước mà còn làm hài lòng nhiều nhà tuyển dụng quốc tế.

Sinh viên của trường được học hoàn toàn bằng giáo trình nhập ngoại và cập nhật theo những xu hướng công nghệ mới nhất như Mobility, Cloud, Trí tuệ Nhân tạo v.v… Sinh viên cũng được đào tạo bài bản về ngoại ngữ với ngôn ngữ bắt buộc là tiếng Anh và tiếng Nhật để có thể làm việc với những thị trường CNTT lớn nhất thế giới hiện nay.

Đặc biệt, toàn bộ SV của trường sẽ được thực tập tại doanh nghiệp từ 4 – 8 tháng như một nhân viên thực thụ để cọ xát và học hỏi từ môi trường làm việc thực tế. Không ít SV của trường được tuyển dụng ngay trong giai đoạn thực tập nhờ thể hiện tốt trong công việc.

Trường ĐH FPT còn có một danh sách đa dạng các ngành đào tạo về CNTT để cho sinh viên chọn lựa, như Kỹ thuật phần mềm, An toàn thông tin, Khoa học máy tính, Thiết kế đồ họa.

Ngoài ra, ngôi trường này còn nổi bật trong số các trường đào tạo về CNTT nhờ tỉ lệ sinh viên ra trường có việc làm riêng ngành CNTT đạt tới 98% với mức lương khởi điểm trung bình lên tới 8,3 triệu đồng/tháng. Đây là minh chứng rõ ràng về chất lượng đào tạo của ĐH FPT, đồng thời giúp ngôi trường này trở thành cái tên đứng đầu khi lựa chọn trường để học về CNTT.

Đại học FPT
Đại học FPT

VI. Các Trường Đào Tạo Ngành Công Nghệ Thông Tin Tại Hà Nội

Bạn đang tìm kiếm các trường đào tạo ngành công nghệ thông tin tại Hà Nội? Vậy hãy theo chân Techacademy để cập nhật thông tin về các trường đại học uy tín này nhé!

1. Trường ĐH Bách Khoa Hà Nội

Ngành Khoa học máy tính (IT1) thuộc nhóm ngành Công nghệ thông tin luôn là ngành học có điểm chuẩn cao nhất vào Trường ĐH Bách khoa Hà Nội. Năm 2021, điểm chuẩn vào ngành này là 28,43 điểm. Đây cũng là ngành có điểm chuẩn cao nhất vào trường vào năm 2020.

Xếp sau đó là ngành Kỹ thuật máy tính cũng thuộc nhóm ngành Công nghệ thông tin với 28,1 điểm.

Một số ngành/ chương trình đào tạo khác thuộc nhóm ngành Công nghệ thông tin của trường như Công nghệ thông tin Việt – Nhật, Global ICT, Việt – Pháp, An toàn không gian số… cũng có điểm chuẩn khá cao, ở mức 27 – 28 điểm.

Mức học phí của Trường ĐH Bách Khoa dao động từ 22 – 28 triệu đồng/năm học đối với chương trình chuẩn; 40 – 45 triệu đồng/năm học đối với các chương trình ELITECH. Về lộ trình tăng học phí giai đoạn 2020-2025, với 1 chương trình riêng lẻ tại Trường ĐH Bách khoa Hà Nội, học phí tăng không quá 10% một năm, bảo đảm mức tăng trung bình với tất cả chương trình đào tạo không vượt quá 8% mỗi năm.

2. Trường ĐH Công nghệ, ĐH Quốc gia Hà Nội

Công nghệ thông tin cũng là ngành có mức điểm chuẩn cao nhất tại Trường ĐH Công nghệ, ĐH Quốc gia Hà Nội. Năm 2021, Trường ĐH Công nghệ lấy 28,75 điểm vào ngành học này. Ngoài ra, trường còn đào tạo ngành Công nghệ thông tin định hướng thị trường Nhật Bản, cũng lấy mức điểm 28,75.

Đối với nhóm ngành Công nghệ thông tin chất lượng cao, bao gồm các ngành: Khoa học Máy tính, Hệ thống thông tin, Mạng máy tính và truyền thông dữ liệu, trường lấy mức điểm chuẩn chung là 27,9.

Mức học phí của Trường ĐH Công nghệ cho các ngành đào tạo của hệ chuẩn sẽ theo quy định của nhà nước. Học phí đối với chương trình đào tạo chất lượng cao là 35 triệu/năm và được giữ ổn định trong toàn khóa học.

3. Học viện Công nghệ Bưu chính Viễn thông

Tại Học viện Công nghệ Bưu chính Viễn thông, Công nghệ thông tin cũng là ngành học luôn có mức điểm chuẩn cao nhất vào trường. Trong năm 2021, điểm chuẩn vào ngành này là 26,9 điểm tại cơ sở phía Bắc.

Ngoài ra, bắt đầu từ năm 2022, Học viện dự kiến sẽ tuyển sinh và đào tạo ngành Khoa học máy tính theo định hướng khoa học dữ liệu. Với chương trình chất lượng cao, Học viện cũng sẽ triển khai tuyển sinh đào tạo ngành Công nghệ thông tin, dự kiến chỉ tiêu tuyển sinh là 300.

Mức học phí của trường trung bình từ 19,5 – 21 triệu đồng/ năm tùy từng ngành học.

4. Trường ĐH Khoa học Tự nhiên, ĐH Quốc gia Hà Nội

Trường ĐH Khoa học Tự nhiên, ĐH Quốc gia Hà Nội có một số ngành liên quan đến Công nghệ thông tin như Toán tin, Máy tính và khoa học thông tin (chương trình chất lượng cao), Kỹ thuật điện tử và tin học.

Năm 2021, điểm chuẩn cao nhất vào nhóm ngành này là Máy tính và khoa học thông tin (chương trình chất lượng cao) với 26,6 điểm; tiếp đó là Toán – Tin với mức điểm chuẩn 26,35; ngành Kỹ thuật điện tử và Tin học có điểm chuẩn là 26,05.

Học phí các ngành Toán – Tin, Khoa học dữ liệu, Kỹ thuật điện tử và Tin học của trường khoảng 12,7 triệu đồng/năm; Máy tính và Khoa học thông tin (hệ chất lượng cao) khoảng 30 triệu đồng/năm.

5. Trường ĐH Kinh tế Quốc dân

Là ngôi trường hàng đầu đào tạo về lĩnh vực kinh tế, nhưng Trường ĐH Kinh tế Quốc dân cũng có ngành học liên quan đến Công nghệ thông tin. Mức điểm chuẩn ngành Công nghệ thông tin của Trường ĐH Kinh tế Quốc dân năm 2021 tương đối cao – 27,3 điểm. Ngoài ra, trường còn đào tạo ngành Khoa học máy tính có mức điểm chuẩn là 27 điểm.

Mức học phí đối với chương trình chuẩn của trường khoảng 15 – 20 triệu/ năm, tùy từng ngành học. Riêng với các chương trình đặc thù, mức học phí từ 40 – 60 triệu/ năm.

6. Trường ĐH Giao thông Vận tải

Công nghệ thông tin là ngành học có mức điểm chuẩn cao thứ hai tại Trường ĐH Giao thông Vận tải trong năm 2021 với 25,65 điểm, chỉ xếp sau ngành Logistics và Quản lý chuỗi cung ứng. Ngoài ra, trường còn tuyển ngành Công nghệ thông tin (chương trình chất lượng cao Công nghệ thông tin Việt – Anh) với mức điểm chuẩn là 25,35.

Mức học phí được nhà trường công bố khoảng 11,7 triệu/ năm.

7. Học viện Kỹ thuật Quân sự

Học viện Kỹ thuật Quân sự là một viện đại học kỹ thuật tổng hợp, đa ngành, đa lĩnh vực trực thuộc Bộ Quốc phòng Việt Nam, một trong những trường đại học kỹ thuật hàng đầu Việt Nam, trường đại học trọng điểm quốc gia Việt Nam, là đại học nghiên cứu – ứng dụng và đào tạo kỹ sư quân sự, kỹ sư dân sự, cán bộ chỉ huy và quản lý trình độ Đại học, Thạc sĩ, Tiến sĩ trong các ngành khoa học kỹ thuật, công nghệ quân sự, công nghệ quốc phòng và công nghệ cao phục vụ sự nghiệp hiện đại hóa quân đội và các ngành kinh tế quốc dân.

Khoa Công nghệ thông tin trường Học viện Kỹ thuật Quân đào tạo 3 chuyên ngành:

  • Công nghệ dữ liệu.
  • Phát triển ứng dụng đa phương tiện.
  • An toàn thông tin.

Trường Học viện Kỹ thuật Quân sự luôn được đánh giá cao về chất lượng đào tạo ngành CNTT khu vực miền Bắc. Nhà trường có cơ sở cật chất hiện đại, đội ngũ giảng viên chất lượng cao, luôn tạo điều kiện để sinh viên có nhiều cơ hội học tập, thực hành.

Hơn hết Học viện Kỹ thuật Quân sự là một ngôi trường quân đội – là nơi đào tạo đội ngũ cán bộ kỹ thuật, chỉ huy quản lý kỹ thuật chất lượng cao cho đất nước, nên muốn đậu vào trường các bạn phải thực sự có học lực tốt, có khả năng tự học để theo kịp với chương trình học khá nặng của nhà trường.

Với sinh viên khoa công nghệ thông tin thì khả năng tự học hỏi không ngừng là cực kì cần thiết bởi lúc bạn dừng lại có nghĩa bạn đang thụt lùi. Bạn cần phải thực hành ngay từ khi là sinh viên năm nhất nếu không muốn thất nghiệp hoặc lương cực thấp. Mặc dù đây là ngành có cơ hội việc làm rất tốt nhưng nếu bạn không thực sự có năng lực sẽ tự động sẽ bị thị trường đào thải.

Vì vậy, chọn cho mình ngôi trường đào tạo chuyên nghiệp là cực kì cần thiết và Học viện Kỹ thuật Quân sự là nơi không thể bỏ qua.

Các Trường Đào Tạo Ngành Công Nghệ Thông Tin Tại Hà Nội
Các Trường Đào Tạo Ngành Công Nghệ Thông Tin Tại Hà Nội

VII. Các Trường Đào Tạo Ngành Công Nghệ Thông Tin Tại Tp.HCM

Công nghệ thông tin đã và đang trở thành ngành “chạm bỏng tay” đối với giới trẻ Việt Nam. Vậy nên học ngành CNTT ở cơ sở đào tạo nào tại TP.HCM? Cùng Techacademy tìm hiểu nhé!

1. Đại học Bách khoa TP. HCM

Đại học Bách khoa TP. HCM được thành lập từ năm 1957, là một trong những trường có chất lượng đào tạo ngành công nghệ thông tin tốt nhất miền Nam hiện nay.

Đại học Bách khoa TP HCM là thành viên thuộc hệ thống trường Đại học Quốc Gia.

Khi học tại Bách khoa, bạn sẽ được giảng dạy bởi đội ngũ giảng viên dày dặn kinh nghiệm và tận tâm với nghề, cơ sở vật chất của trường cũng rất hiện đại để đáp ứng nhu cầu học tập của sinh viên.

Không chỉ học chỉ học lý thuyết, những bạn sinh viên học tại Bách khoa cũng có tay nghề rất vững vàng vì được học thực hành song song với lý thuyết, kinh nghiệm của các thầy cô đi trước đã giúp cho các bạn sinh viên có được nền tảng vững chắc.

  • Học phí trường Đại học Bách khoa TP. HCM là 1.170.000 đ / tháng
  • Hệ tiên tiến / chất lượng cao dự kiến: 6.000.000 đ / tháng

Tại Hà Nội, Đại học Bách Khoa cũng dẫn đầu bảng xếp hạng, đúng là cặp đôi xưng hùng xưng bá ở bất kỳ đâu.

2. Đại học Sư phạm kỹ thuật TP. HCM

Đại học Sư phạm kỹ thuật TP. HCM được tọa lạc tại Thủ Đức với cơ sở học tập rất hiện đại.

Tại trường có chia ra thành nhiều khu: Khu học lý thuyết và Khu học thực hành.

Học tại trường Sư phạm Kỹ thuật TPHCM bạn sẽ không sợ bị nhàm chán mà ngược lại bạn sẽ rất hứng thú với các câu lạc bộ, cuộc thi mà trường thường tổ chức.

Những cuộc thi về công nghệ thông tin, phần mềm máy tính, IT Mastering,…thường xuyên được tổ chức là 1 sân chơi thú vị cho sinh viên và cũng là nơi sinh viên thỏa sức sáng tạo, trau dồi, học hỏi thêm kinh nghiệm về chuyên ngành của mình.

Nếu bạn thích ngành công nghệ thông tin thì Đại học Sư phạm Kỹ thuật TPHCM sẽ là lựa chọn tốt cho bạn.

  • Học phí trường Đại học Sư phạm kỹ thuật TP. HCM khoảng 17.500.000 đ – 19.500.000 đ / năm
  • Hệ chất lượng cao (tiếng Việt): 28.000.000 đ – 30.000.000 đ / năm
  • Hệ chất lượng cao (tiếng Anh): 32.000.000 đ / năm
  • Ngành trí tuệ nhân tạo: 24.000.000 đ / năm

3. Đại học Công nghệ Thông tin TPHCM

Nhắc tới các trường đại học đào tạo về máy tính, phần mềm máy tính,… tại TPHCM thì chắc chắn phải kể đến Trường Đại học Công nghệ Thông tin TPHCM – top 10 đại học công nghệ thông tin tốt nhất TPHCM hiện nay.

Trường được thành lập khá lâu và cũng là thành viên trong hệ thống của Đại học Quốc Gia.

Là “cái nôi” đã đào tạo ra rất nhiều kỹ sư phần mềm, kỹ sư máy tính,..đóng không nhỏ vào công nghiệp công nghệ thông tin ở Việt Nam.

Trường có các chương trình liên kết với Đại học nước ngoài theo diện trao đổi sinh viên nhằm giúp sinh viên có thể tiếp thu được những kiến thức mới từ nước bạn.

Học tại Đại học Công nghiệp Thông tin TPHCM bạn phải thật sự nỗ lực thì mới có thể thành công.

  • Học phí Đại học Công nghệ thông tin TP. HCM năm 2020 là 20.000.000 / năm (dự kiến tăng 2.000.000 mỗi năm)
  • Hệ chất lượng cao 35.000.000 / năm (dự kiến tăng 5.000.000 / năm)
  • Hệ tiên tiến 40.000.000 / năm (dự kiến tăng 5.000.000 / năm)

4. Đại học FPT

Đại học FPT thuộc tập đoàn FPT có mức học phí tương đối cao và đi đôi với chất lượng đào tạo cũng thuộc hàng top.

Công nghệ thông tin là ngành mũi nhọn mà Đại học FPT xây dựng trong nhiều năm qua. Đại học FPT là trưởng tuyển chọn đầu vào cũng như xét đầu ra rất nghiêm ngặt, sinh viên phải học tốt tiếng anh và môn chuyên ngành.

Trong đó, tiếng Anh là môn học bắt buộc tại Đại học FPT.

  • Tổng học phí toàn khóa (9 học kỳ) là: 227.700.000 đ
  • Phí nhập học: 4.600.000 đ
  • Học phí tiếng Anh (Nếu chưa đủ điểm TOEFL iBT 80 hoặc IELTS 6.0) tối đa là: 62.100.000 đ

5. Đại học Khoa học Tự nhiên TP. HCM

Là một trường thuộc Đại học Quốc Gia TPHCM, không thua kém Đại học Bách Khoa và Đại học Công nghệ Thông tin, trường Đại học Khoa học Tự nhiên TP. HCM cũng liên tục đạt được các giải thưởng về sáng tạo, nghiên cứu.

Đây là môi trường khuôn khổ, nghiêm khắc nên các bạn sinh viên khi học tập tại đây lúc nào cũng phải trong tư thế sẵn sàng.

Trường cũng có rất nhiều học bổng nhằm hỗ trợ và khích lệ sinh viên học tốt. Nếu bạn học tốt và muốn “săn” học bổng của Đại học Khoa học Tự nhiên TPHCM thì bạn phải cố gắng thật nhiều nhé!

  • Học phí Đại học Khoa học Tự nhiên TP. HCM khoảng 1.170.000 đ / tháng
  • Hệ tiên tiến và chất lượng cao dao động từ 29.700.000 đ đến 40.000.000 đ / năm

6. Trường Đại học Quản lý và Công nghệ TP.HCM (UMT)

CNTT là 1 trong 6 ngành đào tạo chủ lực của Trường Đại học Quản lý và Công nghệ TP.HCM (UMT). Được dẫn dắt bởi PGS. TS. Trần Đan Thư – Nhà giáo ưu tú đã gắn bó và rất giàu kinh nghiệm trong lĩnh vực công nghệ từ lúc còn trên giảng đường đại học. Có thể nói, Khoa CNTT tại UMT là lựa chọn đáng cân nhắc cho các bạn sĩ tử có đam mê với ngành học 4.0 này.

7. Đại học Công nghệ Sài Gòn

Là một trường Đại học uy tín và khá lâu đời tại Thành phố Hồ Chí Minh, phương châm của Đại học Công nghệ Sài Gòn là: “Học đi đôi với hành” chính vì vậy trường đã trang bị cơ sở vật chất tốt nhất cho sinh viên IT có cơ hội nghiên cứu và phát triển ra các sản phẩm phục vụ đời sống.

Ngoài ra trường còn có rất nhiều trung tâm nghiên cứu tạo điều kiện học tập cho sinh viên một cách tốt nhất.

Học phí trường Đại học Công nghệ Sài Gòn 12.812.000 – 16.105.000 đ / học kỳ

Các Trường Đào Tạo Ngành Công Nghệ Thông Tin Tại Tp.HCM
Các Trường Đào Tạo Ngành Công Nghệ Thông Tin Tại Tp.HCM

VIII. Học Công Nghệ Thông Tin Nên Học Trường Cao Đẳng Nào

Công nghệ thông tin đang là ngành “hot” ở nước ta. Đặc biệt khi cuộc cách mạng công nghiệp lần thứ 4 đang diễn ra mạnh mẽ.
Học ngành Công nghệ thông tin, sinh viên được trang bị các kiến thức nền tảng về khoa học tự nhiên, kiến thức cơ bản như mạng máy tính, hệ thống thông tin, lập trình, phần mềm…

Top 3 trường cao đẳng đào tạo công nghệ thông tin đáng học

1.Trường Cao đẳng Công nghệ thông tin TP. HCM

Trường Cao đẳng Công nghệ Thông tin TP HCM (Information Technology College-ITC) đào tạo những chuyên gia trình độ cao đẳng và trung cấp trong 9 ngành: Công nghệ thông tin, Truyền thông và mạng máy tính, Hệ thống thông tin, Công nghệ kỹ thuật điện tử, truyền thông, Công nghệ kỹ thuật điều khiển và tự động hóa, Công nghệ kỹ thuật máy tính, Quản trị kinh doanh, Kế toán, Tài chính ngân hàng.

Kiên trì phương châm đào tạo Thực học, Thực nghiệp. Nên nhờ đó sinh viên ra trường các khóa đều có việc làm phù hợp nhờ chất lượng đào tạo và những ngành nghề đào tạo. Đều là những ngành có nhu cầu tuyển dụng cao.

Trường Cao đẳng Công nghệ thông tin TP. HCM
Trường Cao đẳng Công nghệ thông tin TP. HCM

2. Trường Cao đẳng kỹ thuật Cao Thắng

CĐ Kỹ thuật Cao Thắng tuyển sinh hệ cao đẳng chính quy ngành Lắp ráp Sửa chữa Máy tính. Trường xét tuyển những học sinh đã tốt nghiệp THPT.

Sinh viên được đào tạo trong 3 năm (6 học kỳ). Trong quá trình học, các em có cơ hội thực tập tại doanh nghiệp thuộc lĩnh vực Công nghệ Thông tin.

Sau khi tốt nghiệp, sinh viên có thể ứng tuyển vào các vị trí công việc sửa chữa, lắp ráp cài đặt Laptop, máy tính, smartphone và các thiết bị văn phòng, thi công và sửa chữa hệ thống camera, thi công và quản trị mạng máy tính hoặc liên thông đại học.

Các chuyên ngành liên quan:

Chuyên ngành Công nghệ phần mềm:

– Phân tích và kiểm thử trong các dự án phần mềm.

– Áp dụng thành thạo các quy trình xây dựng phần mềm.

– Thiết kế, xây dựng và triển khai các phần mềm ứng dụng cho các cơ quan, trường học và doanh nghiệp.

Chuyên ngành Mạng máy tính:

– Áp dụng những kỹ thuật mạng trong việc triển khai, xây dựng hệ thống mạng.

– Tư vấn về giải pháp kỹ thuật và công nghệ trong lĩnh vực tin học cho các cơ quan, trường học và doanh nghiệp.

– Phân tích những yêu cầu trên thực tế để thiết kế, vận hành và bảo trì hệ thống mạng máy tính cho các cơ quan, trường học và doanh nghiệp.

Trường Cao đẳng kỹ thuật Cao Thắng
Trường Cao đẳng kỹ thuật Cao Thắng

3. Trường Cao đẳng Công nghệ Thủ Đức

Trường đào tạo với phương châm: “Luôn đổi mới để phát triển”. Nhà trường đã, đang và sẽ không ngừng cố gắng và phấn đấu, vận dụng thời cơ, vượt qua thách thức, tập trung toàn lực để hoàn thành sứ mệnh của mình. Nâng cao chất lượng đào tạo, định hướng trở thành trung tâm đào tạo nguồn nhân lực chất lượng cao. Góp phần phục vụ sự nghiệp công nghiệp

Khoa Công nghệ Thông tin Trường Cao đẳng Công nghệ Thủ Đức được thành lập năm 2008, trên cơ sở Khoa Công Nghệ Thông Tin trường Trung Cấp Kỹ Thuật và Nghiệp Vụ Thủ Đức.

Khoa Công Nghệ Thông Tin có nhiệm vụ đào tạo:

– Đào tạo Cử nhân Cao đẳng ngành Công nghệ Thông tin, Truyền thông và Mạng máy tính, Thiết kế đồ họa.

– Đào tạo hệ TCCN các ngành Tin học ứng dụng, Truyền thông đa phương tiện

Trường Cao đẳng Công nghệ Thủ Đức
Trường Cao đẳng Công nghệ Thủ Đức

IX. Học Công Nghệ Thông Tin Có Cần Tiếng Anh Không

Ngày nay, khi mà hội nhập quốc tế diễn ra mạnh mẽ thì tầm quan trọng của ngoại ngữ thì có lẽ ai cũng biết. Các bạn học sinh, sinh viên đã có ý thức hơn với việc đầu tư kiến thức ngoại ngữ cho bản thân. Và có phải toàn bộ các ngành nghề đều cần tiếng Anh? Học Công nghệ Thông tin có cần tiếng Anh không? Theo học công nghệ thông tin có cần phải giỏi tiếng Anh không? Chúng ta cùng tìm hiểu nhé!

Câu trả lời là “có”. Tiếng Anh hiện đang là ngôn ngữ chính thông dụng nhất của ngành Công Nghệ Thông Tin (IT), cụ thể là trong các tài liệu, giao diện công cụ, phần mềm và nền tảng hỗ trợ trong lĩnh vực này.

Trước hết, trong bất kỳ việc gì chúng ta làm để có thể kiên trì, quyết tâm và từ đó đạt được những thành quả nhất định, chúng ta cần phải tìm được động lực cho mình. Trong phần 1 này, Techacademy mong muốn có thể cổ vũ được tinh thần học tiếng Anh của những lập trình viên bằng việc chỉ ra những lợi ích “siêu to khổng lồ” bên dưới.

+ Tiếp cận với các tài liệu tiếng Anh

Đầu tiên, việc biết thêm một ngôn ngữ nữa mà cụ thể ở đây là tiếng Anh có thể nhân đôi hay thậm chí nhân ba, nhân bốn, v.v. số lượng tài liệu, nền tảng chia sẻ kiến thức, giáo trình tiếng Anh chuyên ngành Công nghệ Thông tin, v.v. mà bạn có thể tiếp cận để nâng cao kiến thức chuyên ngành.

Ví dụ, ban đang học lập trình web và đã tham khảo gần như tất cả các tài liệu tiếng Việt mà bạn tìm được nhưng bạn vẫn muốn tích lũy thêm nhiều kiến thức hơn. Lúc này, khả năng đọc – hiểu tiếng Anh tốt sẽ giúp bạn dễ dàng tiếp cận với các tài liệu lập trình web được viết bằng tiếng Anh.

Một trường hợp khác, bạn đang mày mò lập trình game và thường xuyên lên Youtube xem các video hướng dẫn, chia sẻ kinh nghiệm, giải đáp thắc mắc, v.v. Tuy nhiên, những video bằng tiếng Việt đôi lúc chưa truyền tải những thông tin bạn đang tìm kiếm và số lượng các video tiếng Anh có phụ đề tiếng Việt chuẩn hiện chưa nhiều. Trong tình huống này, vừa có khả năng nghe – hiểu tiếng Anh tốt sẽ giúp bạn rất nhiều đấy.

+ Dễ dàng học và dùng các ngôn ngữ lập trình

Thứ hai, việc có khả năng tiếng Anh, đặc biệt là vốn từ vựng tiếng Anh về các thuật ngữ IT ổn sẽ khiến cho việc học hay sử dụng ngôn ngữ lập trình của bạn trở nên dễ dàng, nhanh chóng và hiệu quả hơn rất nhiều vì các ngôn ngữ lập trình chủ yếu dùng tiếng Anh.

Ví dụ, ta có một đoạn code được viết bằng ngôn ngữ lập trình JavaScript – một trong số những ngôn ngữ lập trình phổ biến nhất thế giới. Trong đoạn code chứa nhiều từ tiếng Anh từ quen thuộc với khá nhiều người đến không quen thuộc lắm như ‘document’ – “tài liệu/ văn kiện/…”, ‘update’ – “cập nhật”, ‘photo description’ – “mô tả hình ảnh”, v.v.

Nếu chúng ta hoàn toàn không hiểu nghĩa những từ này, việc ghi nhớ và sử dụng chúng sẽ khó khăn. Ngược lại, nếu ta nắm được ý nghĩa của chúng, ta cũng sẽ cảm thấy quen thuộc và từ đó có thể ghi nhớ và sử dụng chúng nhanh chóng, thành thạo hơn. Hiệu quả học và lập trình cũng nhờ vậy mà được nâng cao.

+ Sử dụng thành thạo các công cụ hỗ trợ lập trình

Ngoài ngôn ngữ lập trình, hầu hết giao diện của mọi công cụ (tool) hỗ trợ lập trình, phát triển phần mềm (software) đều sử dụng tiếng Anh. Vì vậy khi nắm vững được các vốn từ vựng tiếng Anh chuyên ngành Công Nghệ Thông Tin, các thao tác trên những nền tảng ứng dụng lập trình sẽ trở nên dễ dàng hơn giúp các coder cải thiện hiệu suất làm việc của mình lên rất nhiều.

+ Có lợi thế khi ứng tuyển công ty đa quốc gia

Các nhà tuyển dụng đến từ các công ty đa quốc gia luôn đánh giá cao những nhân viên hay lập trình viên (coder) có thể sử dụng thành thạo tiếng Anh. Vì điều đó cho thấy họ không chỉ dễ dàng làm việc với các ngôn ngữ lập trình vốn sử dụng tiếng Anh mà còn có thể trao đổi với các đồng nghiệp, cấp trên và khách hàng sử dụng tiếng Anh.

Đồng thời, khả năng sử dụng tiếng Anh thành thạo cũng đem đến cho bạn những cơ hội đi tu nghiệp hay làm việc thường trú ở nước ngoài.

+ Dễ dàng làm việc với các đối tác, khách hàng nước ngoài

Việc sử dụng tốt tiếng Anh, đặc biệt là hai kỹ năng nghe – nói sẽ giúp chúng ta dễ dàng trao đổi với các đối tác và khách hàng nước ngoài. Điều này góp phần khiến công việc suôn sẻ, hiệu quả và mang lại cho ta một điểm cộng “to đùng” trong mắt cấp trên.

Nếu bạn là một lập trình viên freelance, kỹ năng sử dụng tiếng Anh thành thạo cũng có thể đem lại cho bạn nhiều cơ hội hợp tác với các khách hàng nước ngoài.

+ Đạt chuẩn đầu ra tiếng Anh của các trường đại học

Phần lớn các trường Đại học hiện nay đều có những yêu cầu nhất định về trình độ tiếng Anh của sinh viên ở tất cả ngành khi xét tốt nghiệp. Chính vì vậy, để tránh tình trạng “nước đến chân mới nhảy”, các sinh viên ngành IT nói chung và sinh viên lập trình nói riêng nên dần trau dồi kỹ năng tiếng Anh của bản thân từ năm nhất, năm hai thay vì ỷ y: “Dân IT học tiếng Anh làm gì?”

Học Công Nghệ Thông Tin Có Cần Tiếng Anh Không
Học Công Nghệ Thông Tin Có Cần Tiếng Anh Không

X. Lợi Ích Của Việc Học Công Nghệ Thông Tin

Tiến bộ của công nghệ hiện đại luôn đòi hỏi sự tìm tòi và sáng tạo. Hàng năm, công nghệ mới luôn được phát triển và thể hiện tầm quan trọng của nó đối với cuộc sống. Các doanh nghiệp cũng thay đổi theo hướng cập nhật công nghệ thông tin và yêu cầu sự đổi thay về nhân sự giỏi công nghệ.

Đó là lý do nhiều bạn chọn con đường trở thành sinh viên ngành công nghệ thông tin. Ngành học CNTT được coi là lĩnh vực ngày một phát triển. Ngành CNTT trở nên hữu ích cho những bạn muốn xây dựng sự nghiệp với ngành này. Trong bài viết này, chúng tôi sẽ cùng bạn thảo luận về một số lợi ích của việc học ngành công nghệ thông tin mà bạn có thể chưa hiểu hết.

Lợi ích học ngành Công nghệ thông tin với sinh viên

+ Nhiều lựa chọn nghề nghiệp

Không giống như hầu hết những khóa học khác, CNTT cung cấp cho sinh viên nhiều lựa chọn trong các nghề nghiệp. Một người học CNTT có thể làm việc trong bất kỳ ngành nào và ở bất kỳ vị trí nào. Mọi nghề nghiệp đều yêu cầu sử dụng công nghệ máy tính. Do đó, các chuyên gia về CNTT trở thành 1 trong những chuyên gia có thị trường việc làm nhiều nhất trên thế giới.

+ Kiến thức CNTT giúp thực hiện tốt công việc

Bất kỳ công việc trong các lĩnh vực cụ thể nào, ngành học CNTT cũng mang lại kiến thức về các khía cạnh công nghệ của công việc. Lợi ích học ngành Công nghệ thông tin thể hiện ở bằng cấp được đánh giá cao trong nhiều nghề nghiệp, đặc biệt là lĩnh vực tài chính hoặc xây dựng sáng tạo. Những nhân viên tốt nghiệp CNTT hoặc lĩnh vực tương tự có thể tự nâng cao hiệu suất công việc ngay lập tức.

+ Cơ hội kiếm nhiều tiền

Có nền tảng vững chắc trong lĩnh vực CNTT là lựa chọn đúng đắn để bắt đầu công việc với mức lương cao và dễ dàng tăng lương. Điều này là do công nghệ thông tin được đánh giá cao trong các doanh nghiệp hiện đại. Sinh viên tốt nghiệp có được mức khởi đầu tốt hơn so với các lĩnh vực khác.

+ Giúp sinh viên kết nối dễ dàng

Một trong những lợi ích học ngành Công nghệ thông tin quan trọng nhất là tập trung vào các kỹ năng thực tế và sinh viên được gặp gỡ các bạn cùng chí hướng và tạo ra các kết nối mới. Kết nối mạng là một phần quan trọng của việc tìm kiếm việc làm trong lĩnh vực chuyên môn và tương tác với những người khác trong một không gian học tập.

+ Mở rộng kiến thức

Ở mức độ cơ bản, học CNTT giúp bạn luôn vận động trí não và từ đó kích thích việc học tập. Sinh viên đặt mình vào những tình huống không quen thuộc và hoàn thành những thử thách học tập mới. Sinh viên của ngành học CNTT thường tìm thấy sự nhiệt tình đối với học tập, cũng như khả năng thích ứng và mở rộng tâm trí của họ đối với các bộ kỹ năng mới mẻ hơn.

+ Hiện đại hóa kỹ năng

Ngành CNTT hiện đang là một trong những lĩnh vực đào tạo đội ngũ nhân sự ngày càng tăng một cách nhất quán. Cập nhật kỹ năng để thiết lập khả năng thành thạo và kinh nghiệm trong nhiều khía cạnh sẽ là yếu tố quan trọng nhất để sinh viên có thể thực hiện tốt công việc sau này.

Lợi ích ngành học Công nghệ thông tin đối với xã hội

Kinh doanh

Kể từ lúc có sự xuất hiện của CNTT, mọi lĩnh vực đã được thay đổi. Để điều hành các bộ phận kinh doanh khác nhau một cách nhanh chóng, việc sử dụng CNTT là cực kỳ quan trọng. Việc sử dụng công nghệ thông tin có thể thấy trong các bộ phận như tài chính, nhân sự, sản xuất và bảo mật.

Giáo dục

Công nghệ cho phép giáo viên cập nhật các kỹ thuật mới và giúp học sinh được cập nhật các công nghệ mới nhất như sử dụng máy tính bảng, điện thoại di động, máy tính… trong giáo dục. Công nghệ thông tin không chỉ giúp sinh viên học hỏi những điều mới mà còn giúp sinh viên học tập dễ dàng..

Tài chính

Công nghệ thông tin tạo cơ hội cho doanh nghiệp và những người mua hàng trực tuyến. Các ngân hàng lưu giữ hồ sơ của tất cả các giao dịch và tài khoản thông qua máy tính. Không giống như trước đây, hiện nay các giao dịch đã trở nên nhanh chóng và dễ dàng hơn.

Chăm sóc sức khỏe

Với CNTT, lĩnh vực y tế đã và đang có những cải tiến vượt bậc. Đối với các bác sĩ, việc gửi và nhận thông tin, kiểm tra bệnh nhân và thảo luận với các chuyên gia khác đã trở nên rất thuận tiện. Ngoài ra, làm giảm thời gian thực hiện các thủ tục giấy tờ.

Bảo vệ

Giao dịch trực tuyến và lưu giữ hồ sơ của tất cả các giao dịch trực tuyến giờ đây an toàn hơn so với thời gian trước đây. Chỉ có ban quản lý và người chịu trách nhiệm về hệ thống mới có thể truy cập dữ liệu trực tuyến.

Giao tiếp

Thông tin có thể được chia sẻ nhanh chóng và dễ dàng từ khắp nơi trên thế giới và các rào cản về ranh giới ngôn ngữ và địa lý có thể bị phá bỏ khi mọi người chia sẻ ý tưởng và thông tin với nhau.

Việc làm

Với CNTT, các công việc mới đã được ra đời. Công việc mới như các lập trình viên, người phát triển phần cứng và phần mềm, phân tích hệ thống, thiết kế web… Công nghệ thông tin đã mở ra một lĩnh vực hoàn toàn mới và hàng ngàn công việc cho các chuyên gia CNTT.

Lợi Ích Của Việc Học Công Nghệ Thông Tin
Lợi Ích Của Việc Học Công Nghệ Thông Tin

XI. Học Công Nghệ Thông Tin Mấy Năm

Thời gian học công nghệ thông tin trong bao lâu? là câu hỏi được nhiều thí sinh quan tâm, thắc mắc khi tìm hiểu và định hướng nghề nghiệp. Trong nội dung bài viết này, Techacademy sẽ có câu trả lời về thời gian cũng như các môn học mà các sinh viên công nghệ thông tin sẽ được học trong những năm đại học.

Ngành Công nghệ thông tin bậc đại học có thời gian đào tạo là 4 năm. Trong thời gian 4 năm đại học, các bạn sinh viên công nghệ thông tin (IT) sẽ được trang bị khối kiến thức đại cương về khoa học tự nhiên, kiến thức từ cơ bản cho đến chuyên sâu về công nghệ phần mềm, hệ thống thông tin, mạng máy tính, kỹ thuật máy tính.

Học Công Nghệ Thông Tin Mấy Năm
Học Công Nghệ Thông Tin Mấy Năm

XII. Lương Ngành Công Nghệ Thông Tin

Báo cáo Hướng dẫn lương 2022 của Adecco Việt Nam vừa đưa ra con số choáng ngợp về mức lương ‘khủng’ của ngành công nghệ thông tin, cao nhất là 400 triệu và thấp nhất là 15 triệu.

Thị trường tuyển dụng CNTT được coi là “đại dương đỏ” với vô số cơ hội hấp dẫn luôn sẵn sàng và là một trong 4 ngành có tỷ lệ nhảy việc cao nhất, với 20 tháng là thời gian trung bình cho một lập trình viên nhảy việc và tỷ lệ nghỉ việc đạt mốc 24% theo một thống kê năm 2020.

Từ đó đã xuất hiện một cuộc cạnh tranh săn đầu người, “đào góc tường” lẫn nhau giữa các công ty công nghệ. Có tới 89% nhân sự CNTT nhảy việc vì “lương cao hơn”, trở thành nguyên nhân các doanh nghiệp liên tục đưa ra chế độ đãi ngộ, phúc lợi hậu hĩnh nhằm mời gọi và “giữ chân” người tài..

Báo cáo Hướng dẫn lương mới nhất của Adecco cho thấy, vào năm 2022, trước đà phục hồi và tăng tốc trở lại của nền kinh tế nhờ chuyển đổi số và đổi mới sản phẩm, các tài năng công nghệ có tay nghề cao trong lĩnh vực thương mại điện tử, Fintech, blockchain sẽ dẫn đến cuộc chiến cạnh tranh nhân lực gay cấn nhất dành cho các công ty công nghệ.

Đặc biệt là việc nhanh chóng đón đầu mọi xu hướng công nghệ mới của nhà lãnh đạo doanh nghiệp tại Việt Nam dẫn tới nhu cầu cao ở các vị trí CIO, Solution Architect, DevOps và các vai trò kỹ sư khác.

Lương Ngành Công Nghệ Thông Tin
Lương Ngành Công Nghệ Thông Tin

Vị trí kiếm “bội tiền” dẫn đầu bảng xếp hạng là CIO và CTO thuộc lĩnh vực phần mềm. Cụ thể, ở TP. HCM, nhân sự có thể nhận từ 180-250 triệu/tháng nếu ở mức 1-5 năm kinh nghiệm, 250-400 triệu/tháng nếu có thâm niên trên 5 năm.

Tương tự ở Hà Nội, mức lương tuy không cao ngất ngưởng như ở TP. HCM nhưng vẫn thuộc hàng top với 130-275 triệu cho người trên 5 năm kinh nghiệm, từ 1-5 năm kinh nghiệm được trả 90-165 triệu/tháng.

Nối gót là vị trí giám đốc công nghệ thông tin với thu nhập 80-240 triệu/tháng ở mảng IT in-house. Còn ở lĩnh vực thương mại điện tử, trưởng bộ phận thương mại điện tử/kinh doanh là các vị trí cấp cao với thu nhập 60-180 triệu/tháng.

Ngoài ra, QA/QC, infrastructure manager, customer success manager, quản lý CNTT,…là các vị trí chưa bao giờ giảm nhiệt trong thị trường lao động CNTT với đãi ngộ cao nhất lên đến 160 triệu/tháng.

Adecco chỉ ra thêm, khi việc tương tác trực tuyến ngày càng phổ biến, các vị trí sáng tạo liên quan đến trực quan và trải nghiệm trực tuyến như thiết kế đồ họa, thiết kế UI/UX cũng được đặc biệt quan tâm. Các doanh nghiệp sẵn sàng đưa ra mức đãi ngộ từ 15 – 80 triệu/tháng để chiêu mộ nhân tài với điều kiện không quá khắt khe về kinh nghiệm.

Qua báo cáo, không khó để thấy, TP. HCM vẫn luôn là đầu tàu công nghệ cao của cả nước, là thiên đường của giới CNTT khi sẵn sàng trả lương cao vượt bậc ở nhiều vị trí so với đầu cầu Hà Nội.

Tất nhiên, ứng viên phải đáp ứng được yêu cầu không chỉ về chuyên môn mà còn cả các kỹ năng liên kết cá nhân khác, đồng thời không ngừng cập nhật kiến thức về AWS, điện toán đám mây,…

XIII. Nên Học Công Nghệ Thông Tin Hay Khoa Học Máy Tính

Hiện nay, có cực kỳ nhiều bạn trẻ trong quá trình định hướng theo lĩnh vực công nghệ bị nhầm lẫn giữa 2 định nghĩa khoa học máy tính và công nghệ thông tin. Bởi vì hai ngành này nghe có vẻ tương đối giống nhau nên cũng rất dễ hiểu sai. Nhưng thực chất, mỗi ngành lại tập trung vào từng khía cạnh khác nhau của máy tính. Dẫn đến việc phạm vi lựa chọn nghề nghiệp của 2 lĩnh vực cũng khác nhau nhiều.

Khoa học máy tính và công nghệ thông tin đều đảm nhận những vị trí đặc biệt quan trọng trong doanh nghiệp. Do đó việc lựa chọn giữa hai ngành này thực sự cần đến cân nhắc kỹ lưỡng.

Chưa nói tới vấn đề lương mỗi ngành là bao nhiêu? Nhưng nếu dựa trên tính cách để xác định, định hướng ngành nghề nghiệp phù hợp. Bạn có thể lựa chọn nên học khoa học máy tính hay công nghệ thông tin dựa vào một số đặc điểm như sau:

Nếu là người thích sự nghiên cứu, tìm tòi học hỏi những chuyên môn máy tính. Người ít giao tiếp và thích cảm giác làm việc với máy tính toàn thời gian mỗi ngày. Thì bạn đang phù hợp với ngành khoa học máy tính.

Nếu bạn yêu thích sự cập nhật về công nghệ thông tin, sự thay đổi công nghệ toàn cầu. Bên cạnh đó là người thích giao tiếp, đối ngoại, tạo ra sản phẩm công nghệ hiện đại thì bạn đang phù hợp với công nghệ thông tin.

Hai ngành này không tách biệt hoàn toàn mà nó luôn có mối quan hệ tương hỗ với nhau. Chỉ khác là cách thức làm việc và tư duy mỗi ngành sẽ có đặc thù riêng. Do đó cũng có thể đảm nhận linh hoạt những vị trí làm việc khác nhau trong ngành liên quan đến công nghệ và máy tính. Mục đích là để phần cứng, phần mềm và người sử dụng có thể kết hợp hoàn hảo với nhau.

Nên Học Công Nghệ Thông Tin Hay Khoa Học Máy Tính
Nên Học Công Nghệ Thông Tin Hay Khoa Học Máy Tính

XIV. Nên Học Công Nghệ Thông Tin Hay Kỹ Thuật Phần Mềm

Tại Việt Nam, kỹ thuật phần mềm và công nghệ thông tin là hai ngành học được xếp vào danh sách các ngành học hot, được các bạn sinh viên quan tâm tương đối nhiều. Vậy các bạn nên học kỹ thuật phần mềm hay công nghệ thông tin? Cùng tìm hiểu qua nội dung bài viết dưới đây nhé!

Nên học Kỹ thuật phần mềm hay Công nghệ thông tin? Về cơ bản, hai ngành đều có những ưu, khuyết điểm khác nhau thế nên không có câu trả lời chắc chắn nào cho câu hỏi này. Nên học ngành nào hơn ngành nào. Tùy vào niềm đam mê, khả năng mà mỗi người sẽ chọn được ngành nghề thích hợp với bản thân.

Nếu như bạn muốn nghiên cứu và sở hữu một vốn kiến thức rộng, không thích ngồi bên bàn máy tính để lập trình cả ngày mà muốn phát triển xa và rộng hơn nữa thì Công nghệ thông tin là ngành nghề phù hợp với mong muốn và sở thích của bạn.

Tuy nhiên, giả dụ bạn say mê việc tạo ra cho xã hội những sản phẩm phần mềm như các ứng dụng mạng xã hội, các công cụ hỗ trợ cuộc sống, các app tiện ích và những dòng code thì Kỹ thuật phần mềm là ngành nghề thích hợp nhất để giúp bạn có thể dễ dàng đạt được ước mơ tạo nên những đứa con tinh thần của mình.

Song, dù cho bạn lựa chọn bất kỳ ngành nghề nào, mà đặc biệt hơn là các ngành nghề về công nghệ thông tin thì trước hết bạn cần phải có niềm đam mê với ngành. Ai cũng đều biết rằng, muốn làm tốt bất kỳ một công việc nào, điều quan trọng nhất là niềm đam mê của mình đối với ngành nghề đó. Phải có đủ niềm yêu thích và sự đam mê thì bạn mới có thể tiến lên trong công việc và có hoài bão phát triển tương lai.

Nên Học Công Nghệ Thông Tin Hay Kỹ Thuật Phần Mềm
Nên Học Công Nghệ Thông Tin Hay Kỹ Thuật Phần Mềm

The post Ngành Công Nghệ Thông Tin Làm Gì ? Những Sự Thực Chưa Biết first appeared on Techacademy.

source https://techacademy.edu.vn/nganh-cong-nghe-thong-tin-lam-gi/

Tem

Trong bài viết này Techacademy sẽ hướng dẫn các bạn tiếp cận tới một kiến thức khá là quan trọng mà mỗi người học lập trình C++ đều phải biết và áp dụng nó. Đó chính là Template.

I. Template Trong C++ Là Gì

Template là một công cụ đơn giản nhưng rất mạnh mẽ trong lập trình C ++. Template giúp truyền các kiểu dữ liệu dưới dạng tham số để không cần phải viết cùng một mã cho các loại dữ liệu khác nhau. Ví dụ, bạn cần viết một hàm sort () để sắp xếp phần từ cho nhiều kiểu dữ liệu khác nhau. Thay vì viết và duy trì nhiều mã, chúng ta có thể viết một sort () và truyền vào tham số là kiểu dữ liệu
C ++ sử dụng hai từ khóa để cài đặt template: ‘template’ và ‘typename’. “typename” có thể được thay thế bằng từ khóa “class”

  • Template (khuôn mẫu) là một từ khóa trong C++, và là một kiểu dữ liệu trừu tượng tổng quát hóa cho các kiểu dữ liệu int, float, double, bool…
  • Template trong C++ có 2 loại đó là function template & class template.
  • Template giúp người lập trình định nghĩa tổng quát cho hàm và lớp thay vì phải nạp chồng (overloading) cho từng hàm hay phương thức với những kiểu dữ liệu khác nhau.

Sử dụng template để cài đặt các hàm sau sử dụng cho nhiều kiểu dữ liệu khác nhau: sort(), max(), min(), printArray().

max():

#include <iostream>
using namespace std;

// One function works for all data types. This would work
// even for user defined types if operator '>' is overloaded
template <typename T> T myMax(T x, T y)
{
   return (x > y) ? x : y;
}

int main()
{
   cout << myMax<int>(3, 7) << endl; // Call myMax for int
   cout << myMax<double>(3.0, 7.0)
      << endl; // call myMax for double
   cout << myMax<char>('g', 'e')
      << endl; // call myMax for char

   return 0;
}

Bubble Sort:

// CPP code for bubble sort
// using template function
#include <iostream>
using namespace std;

// A template function to implement bubble sort.
// We can use this for any data type that supports
// comparison operator < and swap works for it.
template <class T> void bubbleSort(T a[], int n)
{
   for (int i = 0; i < n - 1; i++)
      for (int j = n - 1; i < j; j--)
         if (a[j] < a[j - 1])
            swap(a[j], a[j - 1]);
}

// Driver Code
int main()
{
   int a[5] = { 10, 50, 30, 40, 20 };
   int n = sizeof(a) / sizeof(a[0]);

   // calls template function
   bubbleSort<int>(a, n);

   cout << " Sorted array : ";
   for (int i = 0; i < n; i++)
      cout << a[i] << " ";
   cout << endl;

   return 0;
}

Output:

7
7
g

II. Class Template Trong C++

Giống như các template function, template class rất hữu ích khi một lớp xác định một thứ gì đó độc lập với kiểu dữ liệu.

#include <iostream>
using namespace std;

template <typename T> class Array {
private:
   T* ptr;
   int size;

public:
   Array(T arr[], int s);
   void print();
};

template <typename T> Array<T>::Array(T arr[], int s)
{
   ptr = new T[s];
   size = s;
   for (int i = 0; i < size; i++)
      ptr[i] = arr[i];
}

template <typename T> void Array<T>::print()
{
   for (int i = 0; i < size; i++)
      cout << " " << *(ptr + i);
   cout << endl;
}

int main()
{
   int arr[5] = { 1, 2, 3, 4, 5 };
   Array<int> a(arr, 5);
   a.print();
   return 0;
}

Output:

Sorted array : 10 20 30 40 50

III. Truyền Nhiều Đối Số Tới Template Trong C++

Giống như các tham số bình thường, bạn có thể truyền nhiều kiểu dữ liệu làm đối số cho các mẫu. Dưới đây là một số ví dụ:

#include <iostream>
using namespace std;

template <class T, class U> class A {
   T x;
   U y;

public:
   A() { cout << "Constructor Called" << endl; }
};

int main()
{
   A<char, char> a;
   A<int, double> b;
   return 0;
}

Output:

1 2 3 4 5

 

 

 

 

The post Tem first appeared on Techacademy.

source https://techacademy.edu.vn/tem/

Vòng Lặp Trong Python

Trong Python các câu lệnh (statement) được thực hiện một cách tuần tự từ trên xuống dưới. Tuy nhiên đôi khi bạn muốn thực hiện một khối các câu lệnh nhiều lần, bạn có thể sử dụng vòng lặp (loop). Chúng ta cũng sẽ tìm hiểu về một thứ không thể thiếu trong các ngôn ngữ lập trình đó là vòng lặp.

I. While Trong Python

Vòng lặp while trong Python có tác dụng gì? Cú pháp và cách sử dụng vòng lặp while ra sao? Đó là những nội dung mà chúng ta sẽ tiếp cận trong bài học Python này.

Vòng lặp được sử dụng trong lập trình để lặp lại một đoạn code cụ thể, while cũng là một trong số đó. Trong Python, while được dùng để lặp lại một khối lệnh, đoạn code khi điều kiện kiểm tra là đúng. while dùng trong những trường hợp mà chúng ta không thể dự đoán trước được số lần cần lặp là bao nhiêu.

Cú pháp của while trong Python

while điều_kiện_kiểm_tra:
      Khối lệnh của while

Trong vòng lặp while, điều_kiện_kiểm_tra sẽ được kiểm tra đầu tiên. Khối lệnh của vòng lặp chỉ được nạp vào nếu điều_kiện_kiểm_tra là True. Sau một lần lặp, điều_kiện_kiểm_tra sẽ được kiểm tra lại. Quá trình này sẽ tiếp tục cho đến khi điều_kiện_kiểm_tra là False.

Trong Python mọi giá trị khác 0 đều là True, None và 0 được hiểu là False. Đặc điểm này của while có thể dẫn đến trường hợp là while có thể không chạy vì ngay lần lặp đầu tiên điều_kiện_kiểm_tra đã False. Khi đó, khối lệnh của while sẽ bị bỏ qua và phần code ngay sau đó sẽ được thực thi.

While Trong Python
While Trong Python

Giống như if hay vòng lặp for, khối lệnh của while cũng được xác định thông qua thụt lề. Khối lệnh bắt đầu với thụt lề đầu tiên và kết thúc với dòng không thụt lề đầu tiên liền sau khối.

Ví dụ 1:

count = 0
n = 0
while (count < 8):
      print ('Số thứ', n,' là:', count)
      n = n + 1
      count = count + 1
print ("Hết rồi!")

Với đoạn code này, ta sẽ tăng dần count và in giá trị của nó cho đến khi giá trị này không còn nhỏ hơn 8 nữa. Kết quả khi chạy lệnh trên ta có:

Số thứ 0 là: 0
Số thứ 1 là: 1
Số thứ 2 là: 2
Số thứ 3 là: 3
Số thứ 4 là: 4
Số thứ 5 là: 5
Số thứ 6 là: 6
Số thứ 7 là: 7
Hết rồi!

Ví dụ 2: Sử dụng while để tính tổng các số

n = int(input("Nhập n: ")) #Nhập số n tùy ý
tong = 0 #khai báo và gán giá trị cho tong
i = 1 #khai báo và gán giá trị cho biến đếm i

while i <= n:
    tong = tong + i
    i = i+1 # cập nhật biến đếm

print("Tổng là", tong)

Với khối lệnh trên ta có, nhập một số tự nhiên n bất kỳ và tính tổng các số từ 1 đến n, sau đó in tổng. Biến lưu trữ tổng là tong, biến đếm là i, cho đến khi i còn nhỏ hơn hoặc bằng n thì vòng lặp vẫn tiếp tục và tong vẫn tăng.

Sau khi chạy lệnh ta có kết quả:

Nhập n: 11
Tổng là 66

Trong ví dụ trên biến đếm i cần phải được tăng giá trị, điều này là rất quan trọng, nếu không sẽ dẫn đến một vòng lặp vô hạn. Rất nhiều trường hợp lưu ý này đã bị lãng quên.

Ví dụ 3: Vòng lặp vô hạn

Lấy lại ví dụ trên, bạn chỉ cần bỏ đi dòng i=i+1

n = int(input("Nhập n: ")) #Nhập số n tùy ý
tong = 0 #khai báo và gán giá trị cho tong
i = 1 #khai báo và gán giá trị cho biến đếm i

while i <= n:
    tong = tong + i

print("Tổng là", tong)

Khi này chạy lệnh ta sẽ được:

Nhập n: 1
Traceback (most recent call last):
 File "C:/Users/Quantrimang.com/Programs/Python/Python36-32/QTM.com", line 6, in <module>
 tong = tong + i
KeyboardInterrupt
2
3
4
5

Khi bạn nhập giá trị 1 vào thì thấy không có lệnh nào được thực hiện tiếp, nhấn Enter > nhập 2 > Enter > nhập 3… đến 5 vẫn không thấy tong được in. Đây là một trường hợp của lệnh vô hạn. Để thoát khỏi vòng lặp vô hạn bạn nhấn phím Ctrl + C, khi đó sẽ xuất hiện dòng thông báo “Traceback…” như bên trên.

Kết hợp while với else

Giống như vòng lặp for, bạn cũng có thể kết hợp else với while. Trong trường hợp này, khối lệnh của else sẽ được thực hiện khi điều kiện của while là False.

Ví dụ 4: Minh họa việc sử dụng while kết hợp với else

dem = 0
while dem < 3:
    print("Đang ở trong vòng lặp while")
    dem = dem + 1
else:
    print("Đang ở trong else")

Ở đây ta sử dụng biến dem để in chuỗi “Đang ở trong vòng lặp while” 3 lần. Đến lần lặp thứ 4, điều kiện của while trở thành False, nên phần lệnh của else được thực thi. Kết quả là:

Đang ở trong vòng lặp while
Đang ở trong vòng lặp while
Đang ở trong vòng lặp while
Đang ở trong else

Ví dụ 5: Đếm và in các số nhỏ hơn 2

n = 0
while n < 2:
    print(n,"nhỏ hơn 2")
    n = n + 1
else:
   print (n,"không nhỏ hơn 2")

Giá trị ban đầu của n ta gán là 0, tăng dần giá trị của n và in, lặp cho đến khi n không nhỏ hơn 2, nếu n bằng hoặc lớn hơn 2 thì vòng lặp kết thúc và khối lệnh else sẽ được thực thi, kết quả là:

0 là nhỏ hơn 2
1 là nhỏ hơn 2
2 không nhỏ hơn 2

while trên một dòng

Nếu vòng lặp while chỉ có một lệnh duy nhất thì có thể viết trên cùng một dòng với while như ví dụ này:

Ví dụ 6: Vòng lặp vô hạn với while một dòng lệnh

flag = 1
while (flag): print ('Flag đã cho là True!")
Print ("Hẹn gặp lại!")

Đây là một vòng lặp vô hạn, hãy nhớ tổ hợp phím Ctrl + C trước khi bạn nhấn F5 hay Run, nếu không nó sẽ chạy từ ngày này qua ngày khác đấy =)).

II. For Trong Python

Vòng lặp for trong python được sử dụng để lặp một biến qua một dãy (List hoặc String) theo thứ tự mà chúng xuất hiện. Vòng lặp for trong python được sử dụng để lặp một phần của chương trình nhiều lần. Nếu số lần lặp là cố định thì vong lặp for được khuyến khích sử dụng, còn nếu số lần lặp không cố định thì nên sử dụng vòng lặp while.

Sau đây là cú pháp của vòng lặp for trong python:

for bien_vong_lap in day_sequense::
    // khối lệnh

Nếu một mảng day_sequense gồm một danh sách các biểu thức, nó được ước lượng đầu tiên. Sau đó, item đầu tiên trong mảng được gán cho biến vòng lặp bien_vong_lap. Tiếp theo, các khối lệnh bên trong vòng lặp được thực thi và khối lệnh này được thực thi tới khi mảng này đã được lặp xong.

Dưới đây là ví dụ minh họa vòng lặp for trong Python:

# Ví dụ lặp một chuỗi
for letter in "Python":
    print ("Chữ cái hiện tại:", letter);
 
# Ví dụ lặp một mảng
fruits = ['chuối', 'táo',  'xoài']
for fruit in fruits:
    print ("Bạn có thích ăn:", fruit);

Kết quả:

Chu cai hien tai: P
Chu cai hien tai: y
Chu cai hien tai: t
Chu cai hien tai: h
Chu cai hien tai: o
Chu cai hien tai: n
Bạn có thích ăn: chuối
Bạn có thích ăn: táo
Bạn có thích ăn: xoài

Lặp qua index của mảng

Một cách khác để lặp qua mỗi item là bởi chỉ mục index bên trong mảng đó. Bạn theo dõi ví dụ đơn giản sau:

# Ví dụ lặp một mảng
fruits = ['chuối', 'táo',  'xoài']
for index in range(len(fruits)):
    print ("Bạn có thích ăn:", fruits[index]);

Kết quả:

Bạn có thích ăn: chuối
Bạn có thích ăn: táo
Bạn có thích ăn: xoài

Ở đây, chúng ta sử dụng hàm len(), có sẵn trong Python, để cung cấp tổng số phần tử trong tuple cũng như hàm range() để cung cấp cho chúng ta dãy thực sự để lặp qua đó.

Sử dụng lệnh else trong vòng lặp for

Python cho phép bạn có một lệnh else để liên hợp với một lệnh vòng lặp.

  • Nếu câu lệnh else được sử dụng với vòng lặp for, thì câu lệnh else được thực thi khi vòng lặp kết thúc.
  • Nếu câu lệnh else được sử dụng với vòng lặp while, câu lệnh else được thực thi khi điều kiện là false.
for num in range(10, 21):    #lặp num từ 10 tới 20
    for i in range(2, num):  #lặp i từ 2 tới num - 1
        if num % i == 0:     #num có chia hết cho i hay không
             print ("%d không phải là số nguyên tố." %(num));
             break;          # thoát vòng lặp for hiện tại
    else:                    # else là một phần của vòng lặp for
         print ("%d là số nguyên tố" %(num));

Kết quả:

10 không phải là số nguyên tố.
11 là số nguyên tố
12 không phải là số nguyên tố.
13 là số nguyên tố
14 không phải là số nguyên tố.
15 không phải là số nguyên tố.
16 không phải là số nguyên tố.
17 là số nguyên tố
18 không phải là số nguyên tố.
19 là số nguyên tố
20 không phải là số nguyên tố.
For Trong Python
For Trong Python

III. Thoát Vòng Lặp Trong Python

Hướng dẫn cách sử dụng lệnh break trong python. Bạn sẽ học được cách dùng lệnh break để thoát khỏi vòng lặp trong python sau bài học này.

Lệnh break trong python

Lệnh break trong python được sử dụng để thoát khỏi vòng lặp trong python. Các vòng lặp trong python như vòng lặp while hoặc vòng lặp for sẽ buộc phải kết thúc khi câu lệnh break được thực thi.

Câu lệnh break trong python được sử dụng kết hợp với câu lệnh if trong python và được miêu tả trong khối lệnh while hoặc khối lệnh for với cú pháp sau đây:

while biểu thức điều kiện while :
    Câu lệnh 1
    Câu lệnh 2
    if biểu thức điều kiện if:
        break

Sử dụng lệnh break để thoát khỏi vòng lặp for trong python

Chúng ta sử dụng lệnh break để thoát khỏi vòng lặp for trong python theo điều kiện mà bạn muốn. Lệnh for sẽ dừng lại khi lệnh break được thực hiện, tất cả các xử lý sau lệnh break cũng như các lượt lặp còn lại trong lệnh for đều bị dừng giữa chừng.

Ví dụ, chúng ta dừng lệnh tính tổng một dãy số nguyên dương nhỏ hơn 10 khi tổng đó lớn hơn 5 như sau:

sum = 0
for num in range(0,10):
    print(num)
    sum += num
    if sum > 5:
        break
print("Tổng = ",sum)
#> 0
#> 1
#> 2
#> 3
#> Tổng =  6

Sử dụng lệnh break để thoát khỏi vòng lặp while trong python

Chúng ta sử dụng lệnh break để thoát khỏi vòng lặp while trong python theo điều kiện mà bạn muốn. Lệnh while sẽ dừng lại khi lệnh break được thực hiện, tất cả các xử lý sau lệnh break cũng như các lượt lặp còn lại trong lệnh while đều bị dừng giữa chừng.

Ví dụ, chúng ta dừng lệnh tính tổng một dãy số nguyên dương nhỏ hơn 10 khi tổng đó lớn hơn 5 như sau:

num = 0
sum = 0
while num < 10:
    print(num)
    sum += num
    num += 1
    if sum > 5:
        break
print("Tổng = ",sum)
#> 0
#> 1
#> 2
#> 3
#> Tổng =  6

Lại nữa, câu lệnh break thường được sử dụng kết hợp với vòng lặp while True để thoát khỏi một vòng lặp vô hạn trong python. Ví dụ chúng ta sử dụng vòng lặp while True trong ví dụ trên như sau:

num = 0
sum = 0
while True:
    print(num)
    sum += num
    num += 1
    if sum > 5:
        break
print("Tổng = ",sum)
#> 0
#> 1
#> 2
#> 3
#> Tổng =  6
Thoát Vòng Lặp Trong Python
Thoát Vòng Lặp Trong Python

IV. Vòng Lặp For Giảm Dần Trong Python

Trước khi đi sâu vào xem cách range()hoạt động, chúng ta cần xem xét cách hoạt động của vòng lặp. Vòng lặp là một khái niệm khoa học máy tính quan trọng . Nếu bạn muốn trở thành một lập trình viên giỏi, thành thạo các vòng lặp là một trong những bước đầu tiên bạn cần làm.

Đây là một ví dụ về vòng lặp for trong Python:

captains = ['Janeway', 'Picard', 'Sisko']

for captain in captains:
    print(captain)

Đầu ra trông như thế này:

Janeway
Picard
Sisko

Như bạn có thể thấy, vòng lặp for cho phép bạn thực thi một khối mã cụ thể bất kỳ lúc nào bạn muốn. Trong trường hợp này, chúng tôi lặp lại danh sách các đội trưởng và in tên từng người.

Mặc dù Star Trek là tuyệt vời và mọi thứ, bạn có thể muốn làm nhiều hơn là chỉ đơn giản lặp lại danh sách các đội trưởng. Đôi khi, bạn chỉ muốn thực thi một khối mã một số lần cụ thể. Vòng lặp có thể giúp bạn làm điều đó!

Hãy thử đoạn mã sau với các số chia hết cho ba:

numbers_divisible_by_three = [3, 6, 9, 12, 15]

for num in numbers_divisible_by_three:
    quotient = num / 3
    print(f"{num} divided by 3 is {int(quotient)}.")

Đầu ra của vòng lặp đó sẽ giống như sau:

3 divided by 3 is 1.
6 divided by 3 is 2.
9 divided by 3 is 3.
12 divided by 3 is 4.
15 divided by 3 is 5.

Đó là đầu ra chúng tôi muốn, vì vậy vòng lặp đã hoàn thành công việc một cách đầy đủ, nhưng có một cách khác để có được kết quả tương tự bằng cách sử dụng range().

Lưu ý: Ví dụ mã cuối cùng đó có một số định dạng chuỗi. Để tìm hiểu thêm về chủ đề đó, bạn có thể xem Các phương pháp hay nhất về định dạng chuỗi trong Python và f-Strings của Python 3: Cú pháp định dạng chuỗi được cải thiện (Hướng dẫn) .

Bây giờ bạn đã quen thuộc hơn với các vòng lặp, hãy xem cách bạn có thể sử dụng range()để đơn giản hóa cuộc sống của mình.

Tăng dần với range()

Nếu bạn muốn tăng, thì bạn cần stepphải là một số dương. Để hiểu ý nghĩa của điều này trong thực tế, hãy nhập mã sau:

for i in range(3, 100, 25):
    print(i)

Nếu steplà của bạn 25, thì đầu ra của vòng lặp của bạn sẽ giống như sau:

3
28
53
78

Bạn có một loạt các số mà mỗi số lớn hơn số trước đó 25, stepmà bạn đã cung cấp.

Bây giờ bạn đã thấy cách bạn có thể tiến lên trong một phạm vi, đã đến lúc xem bạn có thể lùi lại như thế nào.

Đang giảm dần với range()

Nếu của bạn steplà số dương, thì bạn chuyển qua một loạt các số tăng dần và đang tăng dần. Nếu của bạn steplà số âm, thì bạn chuyển qua một loạt các số giảm dần và đang giảm dần. Điều này cho phép bạn xem qua các con số ngược lại.

Trong ví dụ sau, của bạn steplà -2. Điều đó có nghĩa là bạn sẽ giảm dần 2cho mỗi vòng lặp:

for i in range(10, -6, -2):
    print(i)

Đầu ra của vòng lặp giảm dần của bạn sẽ giống như sau:

10
8
6
4
2
0
-2
-4

Bạn nhận được một loạt các số mà mỗi số nhỏ hơn số trước đó 2, giá trị tuyệt đối của số stepbạn đã cung cấp.

Cách Pythonic nhất để tạo ra một phạm vi giảm dần là sử dụng range(start, stop, step). Nhưng Python có một reversedchức năng tích hợp sẵn. Nếu bạn bọc range()bên trong reversed(), thì bạn có thể in các số nguyên theo thứ tự ngược lại.

Hãy thử cái này:

for i in reversed(range(5)):
    print(i)

Bạn sẽ nhận được điều này:

4
3
2
1
0

range()làm cho nó có thể lặp qua một chuỗi số giảm dần, trong khi reversed()thường được sử dụng để lặp lại một chuỗi theo thứ tự ngược lại.

Lưu ý: reversed() cũng hoạt động với chuỗi. Bạn có thể tìm hiểu thêm về chức năng của reversed()chuỗi trong Cách đảo ngược chuỗi trong Python .

Vòng Lặp For Giảm Dần Trong Python
Vòng Lặp For Giảm Dần Trong Python

V. Vòng Lặp Vô Hạn Trong Python

Cùng tìm hiểu về vòng lặp vô hạn trong python. Bạn sẽ biết vòng lặp vô hạn trong python là gì, cách tạo ra vòng lặp vô hạn trong python cũng như là cách thoát khỏi vòng lặp vô hạn trong python sau bài học này.

Vòng lặp vô hạn trong python là gì

Vòng lặp vô hạn trong python là một chuỗi các lệnh mà khi được viết ra sẽ kéo dài vô tận, trừ khi có sự can thiệp từ bên ngoài. Vòng lặp vô hạn có thể được thực hiện một cách có chủ đích.

Đại diện tiêu biểu cho vòng lặp vô hạn trong python là lệnh while true trong python khi không được kèm điều kiện để thoát vòng lặp.

Dưới đây là một ví dụ:

Nếu chạy lệnh trên, do biểu thức điều kiện của lệnh while luôn là True (đúng), do đó dòng chữ hello sẽ được in ra màn hình mãi mãi.

hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
.....
.....

Cách tạo ra vòng lặp vô hạn trong python

Ngoại trừ những trường hợp đặc biệt thì trong phần lớn các trường hợp, chúng ta đã vô tình tạo ra vòng lặp vô hạn trong python trong các lỗi logic khi xử lý vòng lặp.

Ví dụ, bạn có thể vô tình tạo ra vòng lặp vô hạn khi sử dụng lệnh while trong python. Khác với lệnh for trong python chỉ lặp lại đúng số lần bằng với số phần tử có trong đối tượng và kết thúc sau khi xử lý phần tử cuối cùng, lệnh while trong python sẽ lặp liên tục cho tới khi biểu thức điều kiện trở nên False (sai) mà thôi.

Nói cách khác, nếu bạn vô tình chỉ định biểu thức điều kiện trong lệnh while luôn True (đúng), lệnh while lúc này sẽ tạo ra một vòng lặp vô hạn trong python.

Dưới đây là một ví dụ bạn đã vô tình tạo ra vòng lặp vô hạn trong python với lệnh while:

num = 0
while num < 4:
    if num == 2:
        print('!!CONTINUE!!')
        continue
    print(num)
    num += 1

Trong câu lệnh trên, mục đích của chúng ta là bỏ qua lượt lặp khi num = 2, tuy nhiên do giá trị của num trong trường hợp num=2 không được thay đổi và luôn bằng 2, dẫn đến biểu thức điều kiện num <4 luôn đúng và BOOM, bạn đã vô tình tạo ra vòng lặp vô hạn trong python.

Bạn cũng có thể vô tính tạo ra vòng lặp vô hạn khi sử dụng lệnh for trong python. Dưới đây là một ví dụ:

l = [0] 

for i in l: 
    print (i) 
    l.append (i + 1)

Khi thực hiện câu lệnh trên, bạn muốn thêm phần tử vào trong một danh sách, tuy nhiên việc thêm này không có điểm dừng do biểu thức điều kiện i in l nhằm kiểm tra phần tử tồn tại trong list luôn True. Và BOOM, bạn đã vô tình tạo ra vòng lặp vô hạn trong python.

Một vòng lặp vô hạn trong python sẽ không có điểm dừng, dẫn đến chương trình không bao giờ được kết thúc và vô tình tiêu tốn rất nhiều bộ nhớ máy tính và CPU. Vòng lặp vô hạn giống như đại dịch covid sẽ tiêu diệt toàn bộ nhân loại nếu chúng ta không để ý đến nó vậy.

Do đó khi sử dụng vòng lặp trong python, hãy chú ý để không vô tình tạo ra một vòng lặp vô hạn. Trong trường hợp bạn cần sử dụng tới vòng lặp vô hạn trong python, hãy đảm bảo rằng mình đã chuẩn bị một cách để thoát ra khỏi vòng lặp vô hạn đó.

Cách thoát khỏi vòng lặp vô hạn trong python

Về cơ bản, cách tốt nhất để thoát khỏi vòng lặp vô hạn trong python đó là bạn ĐỪNG tạo ra nó. Trong trường hợp bạn cần sử dụng tới vòng lặp vô hạn trong python, hãy đảm bảo rằng mình đã chuẩn bị một cách để thoát ra khỏi vòng lặp vô hạn đó bằng cách thêm biểu thức điều kiện, dùng lệnh if hoặc lệnh break bên trong vòng lặp.

Tuy nhiên, giả sử nếu bạn lỡ chạy một vòng lặp vô hạn trong python thì cũng đừng lo lắng. Chúng ta có thể chấm dứt chương trình đó và thoát khỏi vòng lặp vô hạn trong python bằng cách sử dụng các tổ hợp phím tùy vào hệ điều hành như sau:

  • Windows Ctrl + C
  • Mac Control + C
Vòng Lặp Vô Hạn Trong Python
Vòng Lặp Vô Hạn Trong Python

VI. Bài Tập Vòng Lặp Trong Python

Bài này tổng hợp các bài tập vòng lặp trong Python giúp bạn làm quen cú pháp và cách sử dụng của các vòng lặp Python cơ bản: vòng lặp for, vòng lặp while, vòng lặp do-while và vòng lặp lồng nhau.

Bài tập 1: in các số từ 1-10 theo thứ tự tăng dần

Đây là một bài tập đơn giản giúp bạn làm quen với cách sử dụng vòng lặp for trong Python.

Dưới đây là chương trình Python để in các số 1-10 theo thứ tự tăng dần.

for i in range(1, 10):
    print(i, end=" ")

Kết quả:

Bài Tập Vòng Lặp Trong Python
Bài Tập Vòng Lặp Trong Python

Bài tập 2: In các số từ 1-10 theo thứ tự giảm dần

Yêu cầu là in các số từ 1 tới 10 theo thứ tự giảm dần. Với bài tập Python này, chúng ta chỉ cần sử dụng một vòng lặp for trong Python.

Dưới đây là chương trình Python để in các số 1-10 theo thứ tự giảm dần.

print("Cach 1:")
for i in range(10,0,-1):
    print(i, end=" ")
 
print("\nCach 2:")
for i in reversed(range(1,11)):
    print(i, end=" ")

Kết quả:

Bài Tập Vòng Lặp Trong Python
Bài Tập Vòng Lặp Trong Python

Bài tập 3: in bảng số từ 1 đến 100

In một bảng số thỏa mãn điều kiện:

  • Bảng số gồm 10 hàng và 10 cột
  • Các giá trị trong Pythonột là liên tiếp nhau
  • Các giá trị trong hàng hơn kém nhau 10

Với bài tập Python này, chúng ta sử dụng lồng vòng lặp: vòng lặp bên ngoài sẽ điều khiển các hàng và vòng lặp bên trong điều khiển các cột.

Dưới đây là chương trình Python để giải bài tập Python trên:

print("In bang so:")
for i in range(0, 10):
    for j in range(i+1, 101, 10):
        print("{:<3}".format(j), end=" ")
    print()

Kết quả:

Bài Tập Vòng Lặp Trong Python
Bài Tập Vòng Lặp Trong Python

Bài tập 4: in bảng nhân

In một bảng nhân của một số bất kỳ với các số từ 1 tới 10 và hiển thị kết quả.

Với bài tập Python này, chúng ta chỉ sử dụng một vòng lặp và tăng dần giá trị của số nhân lên.

Dưới đây là chương trình Python để giải bài tập Python trên:

n = 6;
print("In bang nhan:");
for i in range (1, 10):
    print("{:<2}x {:<2}= {:<2}".format(n, i, n*i))

Kết quả:

Bài Tập Vòng Lặp Trong Python
Bài Tập Vòng Lặp Trong Python

Bài tập 5: in bảng cửu chương rút gọn

Bảng cửu chương rút gọn là bảng có hàng là kết quả của phép nhân một số với các giá trị từ 1 tới 10. Chúng ta sẽ in 9 hàng tương ứng với các số từ 2 tới 10.

Với bài tập này, chúng ta sẽ sử dụng lồng vòng lặp: vòng lặp bên ngoài điều khiển số hàng và vòng lặp bên trong điều khiển số cột của bảng.

Dưới đây là chương trình Python để giải bài tập Python trên:

start = 2
end = 11
  
print("In bang cuu chuong rut gon:");
for i in range(start, end):
    count = i;
    for j in range(1, 11):
        print("{:<3}".format(count*j), end=" ")
    print("")

Kết quả:

Bài Tập Vòng Lặp Trong Python
Bài Tập Vòng Lặp Trong Python

Bài tập 6: in các số chẵn trong dãy từ 1-10

Yêu cầu là in các số chẵn trong dãy số từ 1 tới 10 bởi sử dụng vòng lặp trong ngôn ngữ C.

Với bài tập Python này, ngoài sử dụng vòng lặp, chúng ta cần kết hợp thêm một lệnh để kiểm tra điều kiện xem số đó là số chẵn hay lẻ, nếu là số chẵn thì in còn nếu là số lẻ thì không. Chúng ta sử dụng lệnh IF và toán tử % (để lấy phần dư) trong Python.

Dưới đây là chương trình Python để giải bài tập Python trên:

print("In cac so chan: ")
for i in range(1, 11):
    if(i%2 == 0):
        print(i, end=" ");

Kết quả:

Bài Tập Vòng Lặp Trong Python
Bài Tập Vòng Lặp Trong Python

Bài tập 7: in các số lẻ trong dãy từ 1-10

Yêu cầu là in các số lẻ trong dãy số từ 1 tới 10 bởi sử dụng vòng lặp trong ngôn ngữ C.

Với bài tập Python này, ngoài sử dụng vòng lặp, chúng ta cần kết hợp thêm một lệnh để kiểm tra điều kiện xem số đó là số chẵn hay lẻ, nếu là số lẻ thì in còn nếu là số chẵn thì không. Chúng ta sử dụng lệnh IF và toán tử % (để lấy phần dư) trong Python.

Dưới đây là chương trình Python để giải bài tập Python trên:

print("In cac so chan: ")
for i in range(1, 11):
    if(i%2 != 0):
        print(i, end=" ");

Kết quả:

Bài Tập Vòng Lặp Trong Python
Bài Tập Vòng Lặp Trong Python

The post Vòng Lặp Trong Python first appeared on Techacademy.

source https://techacademy.edu.vn/vong-lap-trong-python/

List Trong Python

Trong ngôn ngữ lập trình Python có 4 kiểu dữ liệu thu thập (collection data) bao gồm List, Tuple, Set và Dictionary. Khi bạn chọn một kiểu tập hợp, bạn cần phải hiểu rõ các thuộc tính của nó để tăng cường hiệu quả bảo mật hoặc sử dụng. Bài viết hôm nay sẽ giới thiệu và phân tích rõ các thuộc tính của List trong Python, một trong những kiểu dữ liệu thường xuyên sử dụng trong lập trình.

I. Các Kiểu Dữ Liệu Chuẩn

Dữ liệu mà được lưu trữ trong bộ nhớ có thể có nhiều kiểu khác nhau. Ví dụ, lương của công nhân đươc lưu trữ dưới dạng một giá trị số còn địa chỉ của họ được lưu trữ dưới dạng các ký tự chữ-số. Python có nhiều kiểu dữ liệu chuẩn được sử dụng để xác định các hành động có thể xảy ra trên chúng và phương thức lưu trữ cho mỗi kiểu.

Python có 5 kiểu dữ liệu chuẩn là:

  1. Kiểu Number
  2. Kiểu String
  3. Kiểu List
  4. Kiểu Tuple
  5. Kiểu Dictionary

Ngoài kiểu Number và kiểu String mà có thể bạn đã được làm quen với các ngôn ngữ lập trình khác thì ở trong Python còn xuất hiện thêm ba kiểu dữ liệu đó là List, Tuple và Dictionary.

Các Kiểu Dữ Liệu Chuẩn
Các Kiểu Dữ Liệu Chuẩn

II. List Trong Python Là Gì

Trong Python list là một dạng dữ liệu cho phép lưu trữ nhiều kiểu dữ liệu khác nhau và truy xuất các phần tử bên trong nó thông qua vị trí của phần tử đó trong list. List có thể được coi là một mảng tuần tự như trong các ngôn ngữ khác (như vector trong C++ và ArrayList trong Java).

Lists không nhất thiết phải đồng nhất, điều này khiến nó trở thành 1 công cụ mạnh mẽ nhất trong Python. Một list đơn có thể bao gồm các loại Datatypes như Integers, Strings cũng như Objects. Lists có thể đổi thay được ngay cả sau khi được tạo.

List trong Python được sắp xếp theo thứ tự và có số lượng xác định. Các phần tử trong list được lập chỉ mục theo một trình tự xác định và việc lập chỉ mục của danh sách được thực hiện với 0 là chỉ số đầu tiên. Mỗi yếu tố trong trong list đều có vị trí xác định trong list, điều này cho phép sao chép các phần tử trong danh sách, với mỗi phần tử có vị trí và độ tin cậy riêng biệt.

 List Trong Python Là Gì
List Trong Python Là Gì

III. Nhập List Trong Python

Hướng dẫn cách nhập list trong python. Bạn sẽ học được cách nhập list trong python( input list trong python) bằng phương pháp sử dụng hàm input() sau bài học này.

Nhập list trong python có giới hạn số phần tử

Để nhập list trong python, chúng ta cũng lặp lại hàm input() với số lần cụ thể bằng cách dùng vòng lặp for giống như ở phần trên.

Tuy nhiên lúc cần chỉ định và giới hạn số phần tử trong list, chúng ta buộc phải thêm một bước nhập số phần tử của list đó, trước khi tiến hành input list trong python.

Ví dụ, chúng ta nhập list trong python có giới hạn phần tử bằng hàm input() và vòng lặp for như sau:

num = int(input("Nhập số phần tử của list : "))
mylist = []
for i in range(num):
   val = input('Nhập giá trị: ')
   mylist.append(val)
print(mylist)

#>> Nhập số phần tử của list : 3
#>> Nhập giá trị: 1
#>> Nhập giá trị: 2
#>> Nhập giá trị: 3
#>> ['1', '2', '3']

Ngoài cách lặp lại hàm input() như trên, chúng ta cũng có thể sử dụng một lần nhập duy nhất bằng cách nhập tất cả các phần tử của list cách nhau bởi 1 ký tự phân cách, thí dụ như là dấu cách chẳng hạn, sau đó dùng phương pháp tách chuỗi và thu về kết quả dưới dạng list như sau:

mystr = input("Nhập các phần tử của list cách nhau bởi dấu cách: ")
mylist = mystr.split()
print(mylist)

Màn hình nhập dữ liệu sẽ như sau:

Nhập các phần tử của list cách nhau bởi dấu cách: 1 2 3 a b c de7
['1', '2', '3', 'a', 'b', 'c', 'de7']

Nhập list trong python không giới hạn số phần tử

Bằng cách sử dụng vòng lặp vô hạn while True có kèm điều kiện để dừng, chúng ta có thể nhập list trong python mà không giới hạn số phần tử cần nhập vào.

Ví dụ, chúng ta nhập một list trong python không giới hạn số phần tử và sẽ kết thúc quá trình nhập khi bạn nhập vào dòng chữ stop như sau:

mylist = []

print('Nhập "stop" khi muốn dừng')
while True:
    val = input('Nhập dữ liệu: ')
    if val == 'stop':
        print('Kết thúc')
        break
    mylist.append(val)
print(mylist)

Màn hình nhập dữ liệu sẽ như sau:

Nhập "stop" khi muốn dừng
Nhập dữ liệu: 1
Nhập dữ liệu: 2
Nhập dữ liệu: a
Nhập dữ liệu: b
Nhập dữ liệu: k8
Nhập dữ liệu: stop
Kết thúc
['1', '2', 'a', 'b', 'k8']
Nhập List Trong Python
Nhập List Trong Python

IV. Truy Cập Các Phần Tử Của List Trong Python

Truy cập các phần tử của tập hợp List trong Python

Các phần tử trong danh sách có thể được truy cập bằng cách sử dụng những chỉ số tương ứng của nó. List là 1 danh sách các phần tử được sắp xếp thứ tự với chỉ số của mỗi phần từ là duy nhất. Do đó, chúng ta có thể truy cập các phần tử thông qua chỉ số của nó.

Trong Python, các chỉ số sẽ được đánh từ trái qua phải bắt đầu từ giá trị là 0 cho tới độ dài của list -1. Vì vậy, một một đối tượng kiểu List có 5 phần tử sẽ có chỉ số từ 0 tới 4. Và giả dụ chúng ta muốn truy cập vào phần tử thứ 3 của danh sách thì chúng ta phải dùng chỉ số là 2 vì danh sách được đánh số từ 0.

Một số lưu ý:

  • Chỉ số của danh sách bắt đầu từ 0 cho tới độ dài chuỗi -1
  • Khi chúng ta truy cập một danh sách với chỉ số vượt quá phạm vi của độ dài của nó, chương trình sẽ báo lỗi ‘Index Error’.
  • Tương tự, những chỉ số là số nguyên, do đó, nếu chúng ta sử dụng các kiểu dữ liệu khác cho chỉ số thì chương trình sẽ báo lỗi Type Error.

Ví dụ 4:

vi_du = [100, 300, "Python", "Javascript"]
print(vi_du[0])
print(vi_du[3])
vi_du2 = ["Python", [100, 200, 300, 400]]
print(vi_du2[0])
print(vi_du2[1][2])

Kết quả:

100
Javascript
Python
300

Trong ví dụ trên, để truy cập được phần tử thứ 4 của danh sách, chúng ta cần phải truyền vào giá trị chỉ số là 3. Tương tự, chúng ta truyền vào chỉ số là 0 để truy cập phần tử đầu tiên trong danh sách.

Cách truy cập này tương tự như chúng ta đã sử dụng với các chuỗi ký tự trước đây. Các quy tắc trong truy cập chuỗi ký tự cũng có thể được áp dụng với kiểu danh sách List.

Ngoài ra, ở ví dụ trên, trong câu lệnh thứ 6, chúng ta đã tiến hành truy cập 1 phần tử trong danh sách con, bởi nó cũng là một danh sách và có chỉ số riêng. Vì vậy ở đây chúng ta có 2 dấu ngoặc vuông [].

Chúng ta cũng có thể sử dụng các chỉ số có giá trị âm để truy cập các phần tử của List. Python cho phép sử dụng chỉ số có giá trị âm cho các phần tử của nó. Chỉ số -1 tham chiếu đến phần tử cuối cùng, -2 tham chiếu đến phần tử cuối cùng thứ hai,…

Truy Cập Các Phần Tử Của List Trong Python
Truy Cập Các Phần Tử Của List Trong Python

Ví dụ 5:

vi_du2 = ["Python", [100, 200, 300, 400]]
print(vi_du2[-1])
print(vi_du2[-2])

Kết quả:

[100, 200, 300, 400]
Python

Nhắc lại, chúng ta không được phép truy cập chỉ số nằm ngoài danh sách. Nếu không chương trình sẽ báo lỗi!!!

Ví dụ 6:

vi_du = [100, 300, "Python", "Javascript"]
print(vi_du[5])

Kết quả:

Traceback (most recent call last):
  File "e:/Learning/IT/Python/Bai2.py", line 2, in <module>
    print(vi_du[5])
IndexError: list index out of range

V. Các Hoạt Động Cơ Bản Trên List Trong Python

1. Tính Độ Dài Của Một List Trong Python

Giả sử trong tay bạn có một list dài ngoằng chứa một đống thông tin về thẻ tín dụng của bạn, mà bạn không thể biết được mình có bao nhiêu khoản nợ trong đó. Chẳng lẽ lại ngồi đếm? Techacademy cá với bạn rằng lúc này, bạn sẽ cần dùng tới hàm len() của python để giải quyết việc đếm số khoản nợ có trong list này chỉ trong vòng một tích tắc. Thật là sugoi đúng không nào? Hãy cùng Techacademy tìm hiểu cách tính độ dài của List python với hàm len() thông qua bài học này.

Khi cần tính độ dài của một list, ngoài cách tự đếm (đùa đấy ^_ ) thì chúng ta có thể sử dụng một hàm tích hợp sẵn của python, đó là hàm len().

Chúng ta tính độ dài của một list (số phần tử có trong list đó) bằng hàm len với cú pháp sau đây:

Cú pháp tính độ dài List python bằng hàm len

len (list)

Hàm len cho ra kết quả là độ dài hoặc số phần tử của đối tượng đang xét. Nếu đối tượng này là list, hàm sẽ cho ra kết quả là số phần tử có trong list đó.

Chúng ta hãy xem một vài ví dụ sau đây:

len(["Red", "Green", "Blue"])
#>>  3

len([1, 2, 3, 4, 5])
#>>  5

len([10, 20, ["Sun", "Mon", "Fri"], 40])
#>>  4

Cách sử dụng hàm len khá đơn giản. Cuối cùng bạn hãy thực hành online để sử dụng nó thuần thục hơn.

print(len(["Red", "Green", "Blue"]))

print(len([1, 2, 3, 4, 5]))

print(len([10, 20, ["Sun", "Mon", "Fri"], 40]))
Tính Độ Dài Của Một List Trong Python
Tính Độ Dài Của Một List Trong Python

2. Chèn Phần Tử Tới List Trong Python

Hướng dẫn tất cả các cách chèn phần tử vào list python. Bạn sẽ học được các cách chèn phần tử vào list python như chèn một phần tử vào vị trí chỉ định trong list ban đầu, chèn nhiều phần tử vào vị trí chỉ định trong list ban đầu, cũng như cách chèn và thay thế nhiều phần tử vào phạm vi chỉ định trong list ban đầu, bằng cách sử dụng phương thức insert() và chức năng cắt (slice) list python sau bài học này.

Chúng ta có 3 phương pháp để chèn phần tử vào list python như sau:

  • Phương thức insert() : chèn một phần tử vào vị trí chỉ định trong list ban đầu.
  • Cắt (slice) list : Chèn nhiều phần tử vào vị trí chỉ định trong list ban đầu
  • Cắt (slice) list : Thay thế và chèn nhiều phần tử vào phạm vi chỉ định trong list ban đầu

Lại nữa trong trường hợp bạn chỉ muốn thêm chèn phần tử vào cuối một list python, hãy sử dụng các phương thức khác như append() hay extend() trong bài viết thêm phần tử vào list và kết hợp các list với nhau trong python nhé.

Chèn một phần tử vào vị trí chỉ định trong list ban đầu | phương thức insert()

Phương thức insert() trong python được dùng để chèn một phần tử vào vị trí chỉ định trong list python. Chúng ta sử dụng phương thức insert() với cú pháp sau đây:

org_list.insert (index, giá trị)

Trong đó:

  • org_list là list ban đầu
  • index là vị trí cần chèn phần tử trong list ban đầu
  • giá trị là giá trị của phần tử cần chèn vào list. Giá trị này có thể là một chuỗi hoặc một số.

Phương thức insert() sẽ chèn giá trị vào vị trí trước phần tử có index được chỉ định trong list ban đầu.

Ví dụ cụ thể, chúng ta chèn một chuỗi ký tự vào list python như sau

mylist = ["A", "B", "C"]
mylist.insert(1, "Z")

print(mylist)
#>> ["A", "Z", "B", "C"]

Bạn có thể thấy ký tự Z đã được chèn vào vị trí đứng trước ký tự B có index bằng 1.

Trong trường hợp chỉ định giá trị chèn vào là một chuỗi string, thì bản thân chuỗi string đó sẽ được coi như là một phần tử mới và được chèn vào list ban đầu như sau:

mylist = ["Blue", "Red", "Green"]

# Chèn chuỗi 'White' vào trước phần tử có index bằng 2
mylist.insert(2, "White")
print(mylist)
#>> ['Blue', 'Red', 'White', 'Green']

# Chèn chuỗi 'Black' vào đầu list
mylist.insert(0, "Black")
print(mylist)
#>> ['Black', 'Blue', 'Red', 'White', 'Green']

Nếu bạn muốn lấy từng ký tự trong chuỗi chỉ định và chèn vào list ban đầu, hãy xem ở phần dưới nhé.

Tương tự với chuỗi, bạn cũng có thể chèn một số vào list python bằng cách sử dụng phương thức insert() như sau:

mynum = [1, 2, 3, 4, 5]
mynum.insert(3, 6)

print(mynum)
#>> [1, 2, 3, 6, 4, 5]


mylist = ["A", "B", "C"]
mylist.insert(1, 3)

print(mylist)
#>> ['A', 3, 'B', 'C']

Lưu ý là với phương thức insert() chúng ta chỉ có thể chèn một phần tử vào list python mà thôi.

Chèn nhiều phần tử vào vị trí chỉ định trong list ban đầu | cắt (slice) list

Bằng cách ứng dụng chức năng cắt (slice) list, chúng ta có thể chèn nhiều phần tử vào vị trí chỉ định trong list ban đầu thông qua một list, một tuple hoặc một chuỗi.

Ý tưởng ở đây là chúng ta sẽ lưu giữ tất cả các phần tử cần chèn vào trong một tuple, chuỗi, hoặc list, sau đó sử dụng cắt (slice) list để cắt một phạm vi trống ở list ban đầu, rồi chèn vào đó các phần tử trong tuple, chuỗi, hoặc list chỉ định.

Cú pháp chúng ta sử dụng sẽ là:

org_list [index : index ] = tuple,string,list

Trong đó org_list là list ban đầu, index là vị trí cần chèn, và tuple,string, hoặc list dùng để chỉ định các phần tử cần thêm vào list ban đầu.

Ví dụ cụ thể, chúng ta chèn nhiều phần tử vào vị trí chỉ định trong list ban đầu thông qua list như sau:

mynum = list(range(3))
print(mynum)
#>> [0, 1, 2]

mynum[1:1] = [4, 5, 6]
print(mynum)
#>> [0, 4, 5, 6, 1, 2]

Một ví dụ khác khi chúng ta sử dụng tuple để chèn nhiều phần tử vào vị trí chỉ định trong list ban đầu.

mylist = ["A", "B", "C"]
mylist[2:2] = ('E', 'F')

print(mylist)
#>> ['A', 'B', 'E', 'F', 'C']

Lưu ý là khi chúng ta sử dụng chuỗi string để chèn nhiều phần tử vào vị trí chỉ định trong list ban đầu bằng cắt (slice) list, không phải là cả chuỗi đó được thêm vào như một phần tử mới, mà là từng ký tự trong chuỗi được lấy ra và thêm vào list. Ví dụ:

mylist = ["A", "B", "C"]
mylist[2:2] = 'EFG'

print(mylist)
#>> ['A', 'B', 'E', 'F', 'G', 'C']

Bằng cách ứng dụng cắt (slice) list, chúng ta cũng có thể chèn phần tử vào vị trí cuối cùng trong list python như sau:

mylist = ["1", "2", "3"]
length = len(mylist)

mylist[length:length] = ["4", "5"]
print(mylist)
#>> ['1', '2', '3', '4', '5']

Thay thế và chèn nhiều phần tử vào phạm vi chỉ định trong list ban đầu | cắt (slice) list

Một cách sử dụng khác của cắt (slice) list, chúng ta có thể vừa chèn vừa thay thế nhiều phần tử vào phạm vi chỉ định trong list ban đầu thông qua một list, tuple hoặc chuỗi string.

Ý tưởng ở đây là chúng ta sẽ cắt toàn bộ các phần tử trong một phạm vi ở list ban đầu, rồi chèn vào đó các phần tử mới đã được chứa trong tuple,string,list chỉ định.

Cú pháp chúng ta sử dụng sẽ là:

org_list [start_index : end_index ] = tuple,string,list

Trong đó org_list là list ban đầu, start_index và end_index là phạm vi cắt ra và chèn mới phần tử vào trong list ban đầu. Còn tuple,string,list là để chứa các phần tử mới cần chèn vào.

Ví dụ, chúng ta thay thế và chèn mới toàn bộ phần tử trong phạm vi index [1:3] trong list ban đầu như sau:

mynum = list(range(5))
print(mynum)
#>> [0, 1, 2, 3, 4]

mynum[1:3] = [7, 8, 9]
print(mynum)
#>> [0, 7, 8, 9, 3, 4]

Chúng ta cũng có thể sử dụng với tuple hoặc chuỗi như sau:

mynum = list(range(5))
print(mynum)
#>> [0, 1, 2, 3, 4]

mynum[1:3] = (7, 8, 9)
print(mynum)
#>> [0, 7, 8, 9, 3, 4]

mynum[1:2] = "ABC"
print(mynum)
#>> [0, 'A', 'B', 'C', 8, 9, 3, 4]
Chèn Phần Tử Vào List Trong Python
Chèn Phần Tử Vào List Trong Python

3. Cắt List Trong Python

Hướng dẫn cách cắt list trong python. Bạn sẽ học được khái niệm cắt (slice) list trong python là gì cũng như các cách cắt list trong python bằng index sau bài học này.

Cắt (slice) list trong python hay còn gọi là slice list python là thao tác lấy ra các phần tử trong một phạm vi của list ban đầu và tạo ra một list mới. Phạm vi cắt được chỉ định thông qua index của phần tử trong python.

Cú pháp cắt (slice) list trong python như sau:

org_list [ start_index : end_index : step]


Trong đó,

  • org_list là list ban đầu
  • start_index : index của phần tử ở vị trí bắt đầu cắt
  • end_index: index của phần tử ở vị trí kết thúc cắt

Lưu ý kết quả của phép cắt (slice) list python sẽ bao gồm phần tử tại vị trí bắt đầu cắt, nhưng KHÔNG bao gồm phần tử tại vị trí kết thúc cắt. Trong trường hợp bạn muốn lấy cả phần tử ở vị trí kết thúc cắt, chúng ta cần chỉ định end_index công thêm 1 đơn vị để có thể bao gồm cả phần tử đó trong kết quả phép cắt.

Ví dụ cụ thể của cắt (slice) list trong python như sau:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums)
#>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

cut_list= nums[0:5]
print(cut_list)
#>> [0, 1, 2, 3, 4]

cut_list2 = nums[3:7]
print(cut_list2)
#>> [3, 4, 5, 6]

Lưu ý là phép cắt (slice) list trong python sẽ KHÔNG thay đổi list ban đầu mà chỉ sao chép các phần tử trong một phạm vi trong list ban đầu và tạo ra một list mới.

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

#Trước khi cắt
print(nums)
#>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

nums_cut = nums[2:7]
print(nums_cut)
#>>[2, 3, 4, 5, 6]


#Sau khi cắt thì list ban đầu cũng không thay đổi.
print(nums)
#>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Các phương pháp cắt list trong python

+ Cắt ra một phạm vi từ list ban đầu

Bằng cách chỉ định vị trí bắt đầu và vị trí kết thúc cắt bằng index của các phần tử tại các vị trí đó, chúng ta có thể cắt ra một phạm vi từ list python như ví dụ sau đây:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[2:5]) 
#>> [2, 3, 4]

print(nums[-5: -2])
#>> [5, 6, 7]

Tương tự bạn cũng có thể cắt ra phạm vi từ một list có phần tử là các chuỗi ký tự như sau:

l = ['a','b','c','d','e']
print(l[2:4])
#>> ['c', 'd']

print(l[1:5])
#>> ['b', 'c', 'd', 'e']

Lưu ý là nếu bạn chỉ định vị trí bắt đầu hoặc kết thúc cắt bằng các giá trị index nằm ngoài phạm vi index trong list ban đầu, thì chức năng cắt (slice) list cũng chỉ có thể cắt ra phạm vi lớn nhất có thể từ list ban đầu mà thôi. Ví dụ:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(len(nums))
#>> 10

newlist = nums[2:100]
print(newlist)
#>> [2, 3, 4, 5, 6, 7, 8, 9]

newlist2 = nums[-80:-3]
print(newlist2)
#>> [0, 1, 2, 3, 4, 5, 6]

+ Cắt ra một phạm vi từ đầu tới giữa list python

Để cắt từ đầu tới giữa list python, chúng ta lược bỏ start_index khi viết cú pháp cắt list.

Ví dụ như chúng ta viết [:5] chẳng hạn. Khi đó, python ngầm hiểu vị trí bắt đầu bằng 0 và cắt list tương tự với khi viết [0:5] như ví dụ sau:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
newlist1= nums[0:5]
newlist2= nums[:5]

print(newlist1)
print(newlist2)

Kết quả:

[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4]

+ Cắt ra một phạm vi từ giữa tới cuối list python

Để cắt (slice) list trong python từ giữa list tới cuối list, chúng ta lược bỏ end_index khi viết cú pháp cắt list.

Ví dụ như chúng ta viết [5:] chẳng hạn. Khi đó, python ngầm hiểu vị trí kết thúc bằng số phần tử của list (có thể tính bằng hàm len()) như ví dụ sau:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
newlist3= nums[5:]
newlist4= nums[5:10]
newlist5= nums[5:len(nums)]

print(newlist3)
print(newlist4)
print(newlist5)

Kết quả:

[5, 6, 7, 8, 9]
[5, 6, 7, 8, 9]
[5, 6, 7, 8, 9]

+ Cắt (slice) ngược list trong python

Khi chỉ định vị trí bắt đầu và kết thúc bằng index âm, chúng ta có thể cắt (slice) ngược một list trong python. Chúng ta sử dụng phương pháp này để Đảo ngược list trong python.

Ví dụ:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[::-1])
#>> [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

Chúng ta cũng có thể nhảy cóc và bỏ qua một số phần tử khi cắt ngược list ban đầu như sau:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[::-3])
#>> [9, 6, 3, 0]

Chúng ta cũng có cắt (slice) ngược list trong python trong một phạm vi của list ban đầu như sau:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[8:2:-1]) 
#>> [8, 7, 6, 5, 4, 3]

print(nums[-2:-9:-2])
#>> [8, 6, 4, 2]
Cắt List Trong Python
Cắt List Trong Python

4. Đảo Ngược List Trong Python

Một tutorial mô tả từng bước về 3 cách chính để đảo ngược một list trong Python.

Đảo ngược một list là một thao tác phổ biến trong lập trình Python.

Ví dụ, tưởng tượng bạn có một list gồm các tên khách hàng đã được sắp xếp mà chương trình của bạn hiển thị theo thứ tự alphabet. Một vài user muốn xem list khách hàng theo thứ tự ngược lại.

Trong bài viết này, chúng ta sẽ thấy ba cách khác nhau để đạt được mục đích mà không cần tới thư viện của bên thứ ba:

  1. Sử dụng phương thức list.reverse()
  2. Sử dụng mẹo list slicing “[::-1]”
  3. Tạo một iterator đảo ngược với hàm built-in reversed()

Option #1: Reversing a List In-Place With the list.reverse() Method

In-place ở đây nghĩa là sẽ không có list mới được tạo ra. Thay vào đó phương thức reverse() sẽ trực tiếp thay đổi đối tượng list ban đầu:

>>> mylist = [1, 2, 3, 4, 5]
>>> mylist
[1, 2, 3, 4, 5]

>>> mylist.reverse()
None

>>> mylist
[5, 4, 3, 2, 1]

Như bạn có thể thấy, việc gọi mylist.reverse() trả về None nhưng lại thay đổi đối tượng list ban đầu. Việc implement đã được lựa chọn kỹ càng bởi các nhà phát triển thư viện chuẩn Python:

The reverse() method modifies the sequence in place for economy of space when reversing a large sequence. To remind users that it operates by side effect, it does not return the reversed sequence.

Option #2: Using the “[::-1]” Slicing Trick to Reverse a Python List

List có một tính năng thú vị là slicing. Một trường hợp đặc biệt khi slicing một list với “[::-1]” sẽ tạo ra một list mới đã được đảo ngược:

>>> mylist
[1, 2, 3, 4, 5]

>>> mylist[::-1]
[5, 4, 3, 2, 1]

Đảo ngược list theo cách này tốn bộ nhớ hơn so với cách đầu tiên bởi vì nó tạo ra một shallow copy của list ban đầu. Tạo ra một shallow copy nghĩa là chỉ có container bị duplicate, còn bản thân các element trong list thì không. Vậy nên, nếu một element trong list ban đầu bị thay đổi thì shallow copy cũng sẽ bị ảnh hưởng.

Option #3: Creating a Reverse Iterator With the reversed() Built-In Function

Bản thân reversed() không đảo ngược list ban đầu, cũng chẳng tạo ra một bản copy. Thay vào đó, chúng ta nhận được một iterator đảo ngược mà từ đó chúng ta có thể duyệt qua các element của list theo thứ tự ngược:

>>> mylist = [1, 2, 3, 4, 5]
>>> for item in reversed(mylist):
...     print(item)
5
4
3
2
1
>>> mylist
>>> [1, 2, 3, 4, 5]

Ở bên trên, chúng ta chỉ lặp qua các element của list theo thứ tự ngược. Vậy làm thế nào để tạo ra một bản copy đảo ngược với hàm reversed()?

>>> mylist = [1, 2, 3, 4, 5]
>>> list(reversed(mylist))
[5, 4, 3, 2, 1]

Vậy đó! Kết quả là chúng ta thu được một shallow copy của list ban đầu.

Summary

Nếu bạn đang thắc mắc đâu là cách tốt nhất để đảo ngược một list trong Python, câu trả lời của tôi sẽ là “Còn tùy”. Theo cá nhân tôi, tôi thích cách tiếp cận thứ nhất và thứ ba:

  • Phương thức list.reverse() nhanh, rõ ràng. Nếu trong trường hợp của bạn, việc đảo ngược bản thân list ban đầu là chấp nhận được, hãy chọn cách này.
  • Nếu điều đó là không chấp nhận được, hãy sử dụng reversed().

Tôi không thích mẹo list slicing. Cú pháp của nó khá khó hiểu. Tôi tránh sử dụng nó vì lý do này.

Chú ý rằng có những cách tiếp cận khác như là tự implement từ đầu hay đảo ngược list sử dụng đệ quy – những cái hay được hỏi trong các buổi phỏng vấn nhưng không thực sự là giải pháp hay đối với lập trình Python trong thực tế. Đó là lý do mà tôi không đề cập đến nó trong tutorial này.

5. So Sánh 2 List Trong Python

Hướng dẫn cách so sánh 2 list trong python. Bạn sẽ học được các cách so sánh 2 list trong python cũng như là cách lấy ra các phần tử giống nhau và khác nhau giữa 2 list trong python sau bài học này.

Chúng ta có 4 phương pháp để so sánh 2 list trong python như sau:

  • Toán tử == và != : Kiểm tra hai list có giống nhau trong Python
  • Toán tử <, <=, >, >= :So sánh lớn nhỏ giữa 2 list trong python
  • Hàm set() python : So sánh 2 list và lấy ra các phần tử giống nhau trong python
  • Hàm set() python : So sánh 2 list và lấy ra các phần tử khác nhau trong python

Chúng ta sẽ cùng tìm hiểu các phương pháp này ở dưới đây.

So sánh 2 list trong python

Để so sánh 2 list trong python, chúng ta sử dụng tới các toán tử so sánh như so sánh bằng hoặc so sánh lớn nhỏ trong python.

+ Kiểm tra hai list có giống nhau trong Python | toán tử == và !=

Để kiểm tra hai list có giống nhau trong Python, chúng ta sử dụng toán tử so sánh bằng, và nếu như toàn bộ giá trị của các phần tử trong hai list đều giống nhau, giá trị True được trả về. Ví dụ:

print(["Red", "Blue"] == ["Red", "Blue"])
#> True
print(["Red", "Blue"] != ["Red", "Blue"])
#> False
print(["Red", "Blue"] == ["Red", "Blue", "White"])
#> False
print(["Red", "Blue"] != ["Red", "Blue", "White"])
#> True

Tương tự với phép so sánh 2 list có phần tử thuộc kiểu số:

numlist1 = [0,1,2,3]
numlist2 = [0,1,2,3]
numlist3 = [4]

print(numlist1 == numlist2)
#>> True

Lưu ý là khi so sánh 2 list trong python và kiểm tra xem chúng có giống nhau hay không, chúng ta cần chú ý tới cả thứ tự của các phần tử trong hai list. Nếu như giá trị các phần tử trong hai list là giống nhưng thứ tự của phần tử trong hai list là khác nhau, hai list này sẽ được coi là khác nhau.

print(["Red", "Blue"] == ["Red", "Blue"])
#> True

print(["Red", "Blue"] == ["Blue", "Red"])
#> False

+ So sánh lớn nhỏ giữa 2 list trong python | toán tử <, <=, >, >=

Khi sử dụng phép so sánh lớn nhỏ để so sánh 2 list trong Python, phần tử đầu tiên có giá trị khác nhau trong 2 list sẽ được dùng để so sánh.

Khi đó tùy thuộc vào phần tử trong 2 list thuộc kiểu dữ liệu nào phép so sánh 2 list trong python sẽ chuyển thành phép so sánh 2 chuỗi trong python hoặc là phép so sánh 2 số trong python v.v..

Ví dụ chúng ta so sánh lớn nhỏ giữa 2 list có phần tử thuộc kiểu chuỗi string như sau:

print(["red", "blue", "green"] > ["red", "blue", "white"])
#> False

Phép so sánh 2 list ở trên thực chất đã chuyển về phép so sánh 2 chuỗi python bằng cách so sánh các điểm mã unicode (unicode code point) của hai chuỗi như sau:

print( "green" > "white")
#>> False

Tương tự khi chúng ta so sánh lớn nhỏ giữa 2 list có phần tử thuộc kiểu số trong python:

numlist1 = [0,1,2,3]
numlist2 = [0,1,5,3]

print(numlist1 <= numlist2)
#>> True

Phép so sánh 2 list ở trên thực chất đã chuyển về phép so sánh 2 số python như sau:

print( 2 <=  5)
#>> True

Lưu ý là nếu phần tử đầu tiên có giá trị khác nhau trong 2 list thuộc các kiểu dữ liệu khác nhau, thì cũng có khả năng chúng ta không thể tiến hành so sánh chúng được.

Ví dụ:

numlist = [0,1,2,3]
mixlist =  [0,1,'Bob',3]
print(numlist1 <= numlist2)

Do lúc này, phép so sánh 2 list python ở trên sẽ chuyển về phép so sánh giữa string và số ( so sánh 2 với ‘Bob’) nên lỗi TypeError sẽ bị trả về như sau:

Traceback (most recent call last):
  File "Main.py", line 3, in <module>
    print(numlist <= mixlist)
TypeError: '<=' not supported between instances of 'int' and 'str'

So sánh 2 list và lấy ra các phần tử giống nhau trong python | hàm set() python

Trong python không có một hàm hay phương thức nào giúp chúng ta có thể so sánh trực tiếp và lấy ra các phần tử giống nhau giữa hai list cả.

Để so sánh 2 list trong python và lấy các phần tử giống nhau, chúng ta cần chuyển 2 list đã cho về kiểu set (tập hợp), sau đó mới tìm ra phần tử giống nhau giữa chúng thông qua phép tìm giao hai tập hợp bằng toán tử & trong python.

Việc chuyển list về kiểu set còn có một tác dụng nữa là giúp chúng ta xóa các phần tử trùng nhau trong list python trước khi đem chúng đi so sánh.

Sau đây, chúng ta sẽ xem ví dụ cụ thể về so sánh 2 list trong python và lấy các phần tử giống nhau giữa chúng như sau:

l1 = [0,1,2,3,'Bob']
l2 = [0,1,5,3]
l3 = [0,1,'Bob',3]

print( set(l1) & set(l2) )
#>> {0, 1, 3}

print( set(l1) & set(l3) )
#>> {0, 1, 3, 'Bob'}

print(type(set(l1) & set(l3)))
#>> <class 'set'>

Sau khi thu về set kết quả chứa các phần tử giống nhau giữa 2 list đã cho, chúng ta có thể dùng vòng lặp for để lấy ra các phần tử trong set kết quả. Lưu ý là do trong set không tồn tại index nên thứ tự lấy các phần tử và in ra màn hình có thể khác nhau trong các lần thực thi.

l1 = [0,1,2,3,'Bob']
l2 = [0,1,'Bob',3]

common_s =  set (l1) & set(l2)
for i in common_s:
    print(i)
#>> 0
#>> 1
#>> 3
#>> Bob

Chúng ta cũng có thể tìm số phần tử trùng nhau giữa 2 list python bằng cách sử dụng hàm len() để đếm số phần tử trong set kết quả thu về. Ví dụ:

l1 = [0,1,2,3,'Bob']
l2 = [0,1,'Bob',3]
commmon_count = len( set(l1) & set(l2) )
print(commmon_count)
#>> 4

Bạn cũng có thể chuyển set kết quả về kiểu list và thu về một list mới chứa các phần tử giống nhau trong 2 list ban đầu bằng cách sử dụng thêm hàm set() với hàm list() trong python như ví dụ sau:

l1 = [0,1,2,3,'Bob']
l2 = [0,1,'Bob',3]

common_l = list( set (l1) & set(l2) )

print(common_l[2])
#>> Bob

Tương tự khi so sánh 2 list, bạn cũng có thể so sánh 3 list hay nhiều list với nhau và tìm ra các phần tử giống nhau trong python như sau:

l1 = [0,1,2,3,'Bob']
l2 = [0,1,5,3]
l3 = [0,1,'Bob',3]
l1_l2_l3 = set(l1) & set(l2) & set(l3)
print(l1_l2_l3)
#>> {0, 1, 3}

So sánh 2 list và lấy ra các phần tử khác nhau trong python | hàm set() python

Trong python không có một hàm hay phương thức nào giúp chúng ta có thể so sánh trực tiếp và lấy ra các phần tử khác nhau giữa hai list cả.

Để so sánh 2 list trong python và lấy các phần tử khác nhau, chúng ta cần chuyển 2 list đã cho về kiểu set (tập hợp), sau đó mới tìm ra phần tử khác nhau giữa chúng thông qua phép tìm phần bù giữa hai tập hợp bằng toán tử ^ trong python.

Việc chuyển list về kiểu set còn có một tác dụng nữa là giúp chúng ta xóa các phần tử trùng nhau trong list python trước khi đem chúng đi so sánh.

Sau đây, chúng ta sẽ xem ví dụ cụ thể về so sánh 2 list trong python và lấy các phần tử khác nhau giữa chúng như sau:

l1 = [0,1,2,3,'Bob']
l2 = [0,1,5,3]
l3 = [0,1,'Bob',4]

print( set(l1) ^ set(l2) )
#>> {2, 5, 'Bob'}

print( set(l1) ^ set(l3) )
#>> {2, 3, 4}

print(type(set(l1) ^ set(l3)))
#>> <class 'set'>

Sau khi thu về set kết quả chứa các phần tử khác nhau giữa 2 list đã cho, chúng ta có thể dùng vòng lặp for để lấy ra các phần tử trong set kết quả. Lưu ý là do trong set không tồn tại index nên thứ tự lấy các phần tử và in ra màn hình có thể khác nhau trong các lần thực thi.

l1 = [0,1,2,3,'Bob']
l2 = [0,1,'Bob',4]

common_s =  set (l1) ^ set(l2)
for i in common_s:
    print(i)
#>> 2
#>> 3
#>> 4

Chúng ta cũng có thể tìm số phần tử khác nhau giữa 2 list python bằng cách sử dụng hàm len() để đếm số phần tử trong set kết quả thu về.

Ví dụ:

l1 = [0,1,2,3,'Bob']
l2 = [0,1,5,3]
commmon_count = len( set(l1) ^ set(l2) )
print(commmon_count)
#>> 3

Bạn cũng có thể chuyển set kết quả về kiểu list và thu về một list mới chứa các phần tử khác nhau trong 2 list ban đầu bằng cách sử dụng thêm hàm set() với hàm list() trong python như ví dụ sau:

l1 = [0,1,2,3,'Bob']
l2 = [0,1,5,3]
commmon_count = len( set(l1) ^ set(l2) )
print(commmon_count)
#>> 3

Bạn cũng có thể chuyển set kết quả về kiểu list và thu về một list mới chứa các phần tử khác nhau trong 2 list ban đầu bằng cách sử dụng thêm hàm set() với hàm list() trong python như ví dụ sau:

l1 = [0,1,2,3,'Bob']
l2 = [0,1,'Bob',4]

common_l = list( set (l1) ^ set(l2) )

print(common_l[2])
#>> 4
So Sánh 2 List Trong Python
So Sánh 2 List Trong Python

6. Xóa List Trong Python

Có một số phương pháp để xóa các phần tử khỏi một list như sau:

+ Xóa phần tử bằng phương thức remove()

fruits = ["apple", "banana", "guava"];
fruits.remove("banana")
print(fruits);

Kết quả:

['apple', 'guava']

+ Xóa phần tử bằng phương thức pop()

Phương thức pop() xóa phần tử cuối cùng của list:

fruits = ["apple", "banana", "guava"];
fruits.pop();
print(fruits);

Kết quả:

['apple', 'banana']

+ Xóa phần tử bằng lệnh del

Lệnh del được sử dụng để xóa phần tử có chỉ mục cụ thể:

fruits = ["apple", "banana", "guava"];
del fruits[0]
print(fruits);

Kết quả:

['banana', 'guava']

+ Xóa phần tử bằng phương thức clear()

fruits = ["apple", "banana", "guava"];
fruits.clear()
print(fruits);

Kết quả:

[]
Xóa List Trong Python
Xóa List Trong Python

7. Sắp Xếp List Trong Python

+ Sắp xếp List tăng dần trong Python

Trong Python, kiểu List được xây dựng sẵn một phương thức sort() để sắp xếp các phần tử trong List theo chiều tăng dẫn (mặc định của phương thức).

Ví dụ dưới đây sử dụng phương thức sort() để sắp xếp một List gồm các phần tử mang kiểu số nguyên, sắp xếp theo chiều tăng dần như sau:

# Khai bao list gom cac phan tu so nguyen
listA = [8, 1, 5, 9, 5, 2, 3, 7, 2]
# Sap xep list theo chieu tang dan
listA.sort()
# Hien thi list sau khi sap xep
print(listA)

Kết quả:

[1, 2, 2, 3, 5, 5, 7, 8, 9]

Ví dụ tiếp theo, sử dụng phương thức sort() để sắp xếp các phần tử mang kiểu chuỗi ký tự theo bảng chữ cái như sau:

# Khai bao list gom cac phan tu chuoi ky tu
listA = ["oto", "xe may", "may bay", "tau dien", "xe dap"]
# Sap xep list theo bang chu cai 
listA.sort()
# Hien thi list sau khi sap xep
print(listA)

Kết quả:

[‘may bay’, ‘oto’, ‘tau dien’, ‘xe dap’, ‘xe may’]

+ Sắp xếp List giảm dần trong Python

Việc sắp xếp một List theo chiều giảm dần cũng được thực hiện thộng qua phương thức sort() có sẵn trong Python. Trong trường hợp cần sắp xếp List giảm dần, ta cần truyền vào phương thức sort() tham số reverse = True

Ví dụ dưới đây, sử dụng sort() truyền vào tham số reverse = True để sắp xếp một List bao gồm các phần tử có kiểu dữ liệu số nguyên theo chiều giảm dần như sau:

# Khai bao list gom cac phan tu so nguyen
listA = [8, 1, 5, 9, 5, 2, 3, 7, 2]
# Sap xep list theo chieu giam dan
listA.sort(reverse = True)
# Hien thi list sau khi sap xep
print(listA)

Kết quả:

[9, 8, 7, 5, 5, 3, 2, 2, 1]

Tương tự với kiểu số, ta cũng có thể sử dụng phương thức sort() truyền vào tham số reverse = True để có thể sắp xếp một List bao gồm các chuỗi ký tự theo chiều ngược lại bảng chữ cái như sau:

# Khai bao list gom cac phan tu chuoi ky tu
listA = ["oto", "xe may", "may bay", "tau dien", "xe dap"]
# Sap xep list nguoc lai  bang chu cai 
listA.sort(reverse = True)
# Hien thi list sau khi sap xep
print(listA)

Kết quả:

[‘xe may’, ‘xe dap’, ‘tau dien’, ‘oto’, ‘may bay’]
Sắp Xếp List Trong Python
Sắp Xếp List Trong Python

8. Lấy 1 Phần Tử Trong List Python

Cùng tìm hiểu index trong python và cách truy cập phần tử trong list Python thông qua index. Bạn sẽ học được khái niệm index trong python là gì cũng như cách lấy phần tử trong list python thông qua index của phần tử đó sau bài học này.

Index trong python là gì

Index trong python là giá trị đại diện cho vị trí hoặc số thứ tự của một phần tử trong iterable (list, chuỗi..) chứa nó. Có hai kiểu index là index dương và index âm trong python.

Trong python, mỗi phần tử trong iterable sẽ được đại diện bằng một cặp index âm và dương duy nhất thể hiện vị trí của nó. Bằng cách sử dụng index của phần tử, chúng ta có thể truy cập và lấy giá trị của phần tử đó, hoặc là thay đổi giá trị của nó.

+ Index dương trong python

Index dương trong python là phương pháp chỉ định index của phần tử theo chiều tăng tiến từ trái qua phải trong iterable. Chúng ta chỉ định index dương của các phần tử bằng một dãy số dương tăng từ 0 và cộng dần một đơn vị.

Điều đó có nghĩa là phần tử đầu tiên trong iterable sẽ có index là 0, sau đó tăng dần 1, 2, 3… theo thứ tự về phía sau.

Ví dụ index dương của phần tử trong list [“Hà Nội”, “Sài Gòn”, “Đà Nẵng”] như sau:

["Thanh Hóa", "Hà Nội", "Sài Gòn", "Đà Nẵng"]
-----------------------------------------
    0         1           2          3

+ index âm trong python

Ngược với index dương thì index âm trong python là phương pháp chỉ định index của phần tử theo chiều giảm dần từ phải qua trái trong iterable. Chúng ta chỉ định index âm của các phần tử bằng một dãy số âm giảm từ -1 và trừ dần một đơn vị.

Điều đó có nghĩa là phần tử cuối cùng bên tay phải sẽ có index là -1, sau đó giảm dần -1, -2,-3… về phía đầu bên tay trái.

Ví dụ index phần tử trong list [“Hà Nội”, “Sài Gòn”, “Đà Nẵng”] như sau:

["Thanh Hóa", "Hà Nội", "Sài Gòn", "Đà Nẵng"]
---------------------------------------------
      -4        -3       -2         -1

Truy cập và lấy phần tử trong list Python bằng index

+ Cú pháp truy cập và lấy phần tử bất kỳ trong list Python

Chúng ta truy cập và lấy phần tử trong list Python bằng index với cú pháp như sau:

list [index]

Trong đó:

  • list là list mà chúng ta cần truy cập phần tử
  • index là index của phần tử trong list mà chúng ta cần truy cập.

Ví dụ, chúng ta lấy các phần tử trong list python như sau:

tỉnh = ["Thanh Hóa", "Hà Nội", "Sài Gòn", "Đà Nẵng"]
print(tỉnh[1])
#> Hà Nội

print(tỉnh[2])
#>Sài Gòn

print(tỉnh[-1])
#>Đà Nẵng

+ Truy cập và lấy phần tử cuối cùng của list (danh sách) trong Python

Chúng ta có thể truy cập và lấy phần tử cuối cùng của list (danh sách) trong Python bằng cách chỉ định index của phần tử cuối cùng đó.

Có hai cách tìm index của phần tử cuối cùng trong list như sau:

1. Tìm index dương của phần tử cuối cùng thông qua hàm len().

Ví dụ, chúng ta truy cập và lấy phần tử cuối cùng của list như sau:

provin = ["Hà Nội", "Sài Gòn", "Đà Nẵng"]
last_item_index = len(provin) - 1

last_item = provin[last_item_index]

print(last_item)
#>> Đà Nẵng

2. Sử dụng index âm của phần tử cuối cùng trong list.

Rất đơn giản, index âm của phần tử cuối cùng trong list luôn luôn bằng -1, và chúng ta có thể lấy giá trị của nó như sau:

provin = ["Hà Nội", "Sài Gòn", "Đà Nẵng"]
last_item=provin[-1]
print(last_item)
#>> Đà Nẵng

+ Lỗi IndexError

Cần lưu ý khi truy cập và lấy phần tử trong list Python thông qua index, nếu bạn chỉ định một index không tồn tại trong list thì sẽ xảy ra lỗi IndexError như sau.

tỉnh = ["Hà Nội", "Sài Gòn", "Đà Nẵng"]
print(tỉnh[3])

#>>Traceback (most recent call last):
#>>  File "", line 2, in <module>
#>>    print(tỉnh[3])
#>>IndexError: list index out of range

Lỗi này xảy ra, giống như bạn đang cố lấy tiền trong ví mà trong ví lại chả còn đồng nào ấy. Để tránh lỗi này, bạn chỉ nên chỉ định một index tồn tại trong list mà thôi.

Lấy 1 Phần Tử Trong List Python
Lấy 1 Phần Tử Trong List Python

9. Kiểm Tra Sự Tồn Tại Của Một Item Trong List

Sử dụng từ khóa in để kiểm tra sử tồn tại của một item trong một list trong Python. Ví dụ:

fruits = ["apple", "banana", "guava"];
x = "banana" in fruits;
if (x == True):
    print("\"banana\" co ton tai trong list");
else:
    print("\"banana\" khong ton tai trong list");

Kết quả:

"banana" co ton tai trong list
Kiểm Tra Sự Tồn Tại Của Một Item Trong List
Kiểm Tra Sự Tồn Tại Của Một Item Trong List

VI. Chuyển String Sang List Trong Python

Hướng dẫn cách chuyển string sang list trong Python. Bạn sẽ học được tất cả các cách chuyển string sang list trong Pythonsau bài học này.

Chúng ta có 3 phương pháp để chuyển string sang list trong Python như sau:

  • Hàm list(): chuyển string sang list trong Python
  • Phương thức split(): tách chuỗi và chuyển string sang list
  • RegEx trong Python: Tách số và ký tự trong chuỗi và chuyển string sang list trong python

Chuyển string sang list trong Python | Hàm list() python

Hàm list() trong python là một hàm tạo (constructor) trong class List và được sử dụng để tạo list từ các giá trị được chỉ định.
Bằng cách chỉ định đối số của hàm list() là một string, chúng ta có thể chuyển string sang list trong Python như ví dụ sau:

mystring =  'cityboy'
mylist= list(mystring)
print(mylist)

#>> ['c', 'i', 't', 'y', 'b', 'o', 'y']

Chúng ta cũng có thể làm tương tự với các chuỗi chứa số trong nó như sau:

mystring =  'cityboy1968'
mylist= list(mystring)
print(mylist)

#>> ['c', 'i', 't', 'y', 'b', 'o', 'y', '1', '9', '6', '8']

Tách chuỗi chỉ định và chuyển string sang list trong python | Phương thức split()

Đối với các chuỗi mà ký tự trong nó được phân cách bởi dấu phân tách hoặc các ký tự chỉ định, chúng ta có thể tách chuỗi này bằng dấu phân tách hoặc ký tự chỉ định đó và thu về kết quả dưới dạng một list bằng cách sử dụng phương thức split() trong Python.

Ví dụ, chúng ta có thể sử dụng split() và chuyển string sang list trong python với một chuỗi ban đầu có các ký tự phân tách nhau bởi dấu cách như sau:

mystring = 'Thứ 6 ngày 25 tháng 6 năm 2021'
mylist = mystring.split()
print(mylist)

#>> ['Thứ', '6', 'ngày', '25', 'tháng', '6', 'năm', '2021']

Hoặc là với một chuỗi có các ký tự được phân tách bởi chuỗi ký tự bất kỳ, chúng ta có thể tách chuỗi ban đầu bởi chuỗi đó và chuyển string sang list trong python bằng phương thức split() như sau:

mystring = 'Đỏ và đen và nâu và trắng'
mylist = mystring.split(' và ')
print(mylist)
#>> ['Đỏ', 'đen', 'nâu', 'trắng']

Cách này sẽ đặc biệt hữu dụng khi bạn muốn tạo một list từ một chuỗi liệt kê phần tử như trên.

Tách số và ký tự trong chuỗi và chuyển string sang list trong python | RegEx trong Python

Đối với các chuỗi chứa cả số và ký tự trong nó mà chúng ta muốn tách riêng số và ký tự thành các phần tử trong list python, ví dụ như chuỗi ‘Năm 2021’ thành [‘Năm’, 2021] chẳng hạn, chúng ta có thể sử dụng tới RegEx trong Python để tách số và ký tự trong chuỗi trước khi nối các kết quả thành list trong python.

Ví dụ cụ thể:

import re
mystring = 'Thứ 6 ngày 25 tháng 6 năm 2021'
m = re.findall(r'\d+', mystring)  
m1 = re.sub(r'\d','', mystring).split()

mylist = m + m1
print(m)
print(m1)
print(mylist)

#>> ['6', '25', '6', '2021']
#>> ['Thứ', 'ngày', 'tháng', 'năm']
#>> ['6', '25', '6', '2021', 'Thứ', 'ngày', 'tháng', 'năm']

Một ví dụ khác:

import re
mystring = 'a12b34c1991'
m = re.findall(r'\d+', mystring)  
m1 = re.sub(r'\d','', mystring).split()

mylist = m + m1
print(m)
print(m1)
print(mylist)

#>> ['12', '34', '1991']
#>> ['abc']
#>> ['12', '34', '1991', 'abc']

Phương pháp này sẽ đặc biệt hữu ích khi bạn cần lấy ra các dãy số trong một dải mật mã, hoặc là lấy id Facebook của một người trong một chuỗi ký tự bao gồm cả các ký tự làm nhiễu chẳng hạn.

Chuyển String Sang List Trong Python
Chuyển String Sang List Trong Python

VII. Constructor List() Là Gì

Constructor trong Python là một loại phương thức (hàm) đặc biệt được sử dụng để khởi tạo các thể hiện của lớp. Constructor có thể có hai loại.

  1. Constructor tham số.
  2. Constructor không tham số.

Định nghĩa contructor được thực thi khi chúng ta tạo đối tượng của lớp này.

Tạo contructor trong Python

Trong python, phương thức __ init __ mô phỏng contructor của lớp. Phương thức này được gọi khi lớp được khởi tạo. Chúng ta có thể chuyển bất kỳ số lượng đối số nào tại thời điểm tạo đối tượng lớp, tùy thuộc vào định nghĩa __ init __. Nó chủ yếu được sử dụng để khởi tạo các thuộc tính của lớp. Mỗi lớp phải có một constructor.

Ví dụ sau khởi tạo các thuộc tính của lớp Employee.

class Employee:
 
    def __init__(self, name, id):
        self.id = id;
        self.name = name;
 
    def display (self):
        print("ID: %d \nName: %s" % (self.id, self.name))
 
emp1 = Employee("Vinh", 101)
emp2 = Employee("Trung", 102)
 
# gọi phương thức display() để hiển thị thông tin employee 1
emp1.display();
   
# gọi phương thức display() để hiển thị thông tin employee 2
emp2.display();

Kết quả:

ID: 101 
Name: Vinh
ID: 102 
Name: Trung

Ví dụ: Đếm số lượng đối tượng của một lớp

class Student:
    count = 0
 
    def __init__(self):
        Student.count = Student.count + 1
 
s1 = Student()
s2 = Student()
s3 = Student()
print("Số lượng sinh viên là:", Student.count)

Kết quả:

Số lượng sinh viên là: 3

Ví dụ: constructor không tham số trong Python

class Student:
 
    # Constructor không tham số
    def __init__(self):
        print("Đây là constructor không tham số")
 
    def show(self, name):
        print("Hello", name)
 
student = Student()
student.show("The Mac")

Kết quả:

Đây là constructor không tham số
Hello The Mac

Ví dụ: constructor tham số trong Python

class Student:
 
    # Constructor tham số
    def __init__(self, name):
        print("Đây là constructor tham số.")
        self.name = name
 
    def show(self):
        print("Hello", self.name)
 
student = Student("The Mac")
student.show()

Kết quả:

Đây là constructor tham số.
Hello The Mac
Constructor List() Là Gì
Constructor List() Là Gì

VIII. Các Phương Thức Xử Lý List Trong Python

Python còn xây dựng sẵn rất nhiều hàm và phương thức để bạn có thể sử dụng khi làm việc với List. Bảng dưới đây liệt kê các phương thức này. Bạn truy cập link để thấy ví dụ chi tiết.

Danh sách các hàm xử lý List trong Python:

STT Hàm và Miêu tả
1 Hàm len(list)
Trả về độ dài của list
2 Hàm max(list)
Trả về phần tử có giá trị lớn nhất trong list
3 Hàm min(list)
Trả về phần tử có giá trị nhỏ nhất trong list
4 Hàm list(seq)
Chuyển đổi một tuple thành list

Danh sách các phương thức xử lý List trong Python:

STT Hàm và Miêu tả
1 Hàm list.append(obj)
Phụ thêm đối tượng obj vào cuối list
2 Hàm list.count(obj)
Đếm xem có bao nhiêu lần mà obj xuất hiện trong list
3 Hàm list.extend(seq)
Phụ thêm các nội dung của seq vào cuối list
4 Hàm list.index(obj)
Trả về chỉ mục thấp nhất trong list mà tại đó obj xuất hiện
5 Hàm list.insert(index, obj)
Chèn đối tượng obj vào trong list tại index đã cho
6 Hàm list.pop(obj=list[-1])
Xóa và trả về phần tử cuối cùng hoặc đối tượng obj có chỉ mục đã cung cấp từ list đã cho
7 Hàm list.remove(obj)
Xóa đối tượng obj từ list
8 Hàm list.reverse()
Đảo ngược thứ tự các đối tượng trong list
9 Hàm list.sort([func])
Sắp xếp các đối tượng của list, sử dụng hàm so sánh nếu được cung cấp

 

Các Phương Thức Xử Lý List Trong Python
Các Phương Thức Xử Lý List Trong Python

IX. Bài Tập List Trong Python

List trong Python là cấu trúc dữ liệu mà có khả năng lưu giữ các kiểu dữ liệu khác nhau.

List trong Python là thay đổi (mutable), nghĩa là Python sẽ không tạo một List mới nếu bạn sửa đổi một phần tử trong List.

List là một container mà giữ các đối tượng khác nhau trong một thứ tự đã cho. Các hoạt động khác nhau như chèn hoặc xóa có thể được thực hiện trên List.

Một List có thể được tạo ra bởi lưu trữ một dãy các kiểu giá trị khác nhau được phân biệt bởi các dấu phảy. Dưới đây là cú pháp để tạo List:

<ten_list>=[giatri1, giatri2, ..., giatriN];

Ví dụ:

list1 = ['vatly', 'hoahoc', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];

Một List trong Python được bao xung quanh bởi các dấu ngoặc vuông [].

Tương tự như chỉ mục của chuỗi, chỉ mục của List bắt đầu từ 0.

Truy cập các giá trị trong List trong Python

Để truy cập các giá trị trong List, bạn sử dụng cú pháp sau:

<ten_list>[index]

để lấy giá trị có sẵn tại chỉ mục đó.

Ví dụ:

list1 = ['vatly', 'hoahoc', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];

print "list1[0]: ", list1[0]
print "list2[1:5]: ", list2[1:5]

Khi code trên được thực thi sẽ cho kết quả:

list1[0]:  vatly
list2[1:5]:  [2, 3, 4, 5]

Ghi chú: Trình tổ chức bộ nhớ nội tại

List không lưu trữ các phần tử một cách trực tiếp tại chỉ mục. Sự thực là một tham chiếu được lưu trữ tại mỗi chỉ mục mà tham chiếu tới đối tượng được lưu trữ ở đâu đó trong bộ nhớ. Điều này là do một số đối tượng có thể lớn hơn một số đối tượng khác và vì thế chúng được lưu trữ tại một vị trí bộ nhớ khác.

Các hoạt động cơ bản trên List trong Python

Bạn có thể thực hiện các hoạt động nối với toán tử + hoặc hoạt động lặp với * như trong các chuỗi. Điểm khác biệt là ở đây nó tạo một List mới, không phải là một chuỗi.

Ví dụ cho nối List:

list1=[10,20]
   list2=[30,40]
   list3=list1+list2
   print list3

Kết quả là:

>>> 
   [10, 20, 30, 40]
   >>>

Ghi chú: Toán tử + ngụ ý rằng cả hai toán hạng được truyền cho nó phải là List, nếu không sẽ cho một lỗi như ví dụ sau:

list1=[10,20]
list1+30
print list1

Kết quả là:

Traceback (most recent call last):
  		File "C:/Python27/lis.py", line 2, in <module>
    		list1+30

Ví dụ cho lặp List:

list1=[10,20]
print list1*1

Kết quả là:

>>> 
[10, 20]
>>>

Cập nhật List trong Python

Bạn có thể cập nhật một hoặc nhiều phần tử của List bởi gán giá trị cho chỉ mục cụ thể đó. Cú pháp:

<ten_list>[index]=<giatri>

Ví dụ:

list = ['vatly', 'hoahoc', 1997, 2000];

print "Gia tri co san tai chi muc thu 2 : "
print list[2]
list[2] = 2001;
print "Gia tri moi tai chi muc thu 2 : "
print list[2]

Khi code trên được thực thi sẽ cho kết quả:

Gia tri co san tai chi muc thu 2 :
1997
Gia tri moi tai chi muc thu 2 :
2001

Phụ thêm phần tử vào cuối một List

Phương thức append() được sử dụng để phụ thêm phần tử vào cuối một List. Cú pháp:

<ten_list>.append(item)

Ví dụ:

list1=[10,"hoang",'z']
print "Cac phan tu cua List la: "
print list1
list1.append(10.45)
print "Cac phan tu cua List sau khi phu them la: "
print list1

Khi code trên được thực thi sẽ cho kết quả:

>>> 
Cac phan tu cua List la: 
[10, 'hoang', 'z']
Cac phan tu cua List sau khi phu them la: 
[10, 'hoang', 'z', 10.45]
>>>

Xóa phần tử trong List

Để xóa một phần tử trong List, bạn có thể sử dụng lệnh del nếu bạn biết chính xác phần tử nào bạn muốn xóa hoặc sử dụng phương thức remove() nếu bạn không biết. Ví dụ:

list1 = ['vatly', 'hoahoc', 1997, 2000];

print list1
del list1[2];
print "Cac phan tu cua List sau khi xoa gia tri tai chi muc 2 : "
print list1

Khi code trên được thực thi sẽ cho kết quả:

['vatly', 'hoahoc', 1997, 2000]
Cac phan tu cua List sau khi xoa gia tri tai chi muc 2 :
['vatly', 'hoahoc', 2000]

Bạn cũng có thể sử dụng del để xóa tất cả phần tử từ chi_muc_bat_dau tới chi_muc_ket_thuc như sau:

list1=[10,'hoang',50.8,'a',20,30]
print list1
del list1[0]
print list1
del list1[0:3]
print list1

Khi code trên được thực thi sẽ cho kết quả:

>>> 
[10, 'hoang', 50.8, 'a', 20, 30]
['hoang', 50.8, 'a', 20, 30]
[20, 30]
>>>
Bài Tập List Trong Python
Bài Tập List Trong Python

The post List Trong Python first appeared on Techacademy.

source https://techacademy.edu.vn/list-trong-python/

Các Kiểu Dữ Liệu Trong Python

Ở bài trước mình đã giới thiệu qua với mọi người về ngôn ngữ python rồi, và ở đây mình nhắc lại một lần nữa là series này mình sẽ nói về python 3. Bài này chúng ta sẽ cùng nhau đi vào tìm hiểu về cách khai báo các kiểu dữ liệu trong Python.

I. Khai Báo Kiểu Dữ Liệu Trong Python

Python cũng giống như một số các ngôn ngữ bậc cao khác, khi ta khai báo biến thì kiểu dữ liệu của nó sẽ tự động được detect. Vì vậy nên chúng ta cũng không phải quá vất vả khi khai báo 1 biến.

VD: Các kiểu dữ liệu cơ bản trong python.

name = "Vũ Thanh Tài"
#string

age = 22
#integer

point = 8.9
#float

option = [1,2,3,4,5]
#lists

tuple = ('Vũ Thanh Tài', 22 , True)
#Tuple

dictionary = {"name": "Vu Thanh Tai", "age": 22, "male": True}
#Dictionary

Từng bài sau mình sẽ đi vào chi tiết các kiểu dữ liệu này nên các bạn cũng không cần phải quá lo lắng vì chưa biết về nó nhé.

Khai Báo Kiểu Dữ Liệu Trong Python
Khai Báo Kiểu Dữ Liệu Trong Python

II. Các Kiểu Dữ Liệu Cơ Bản Trong Python

Giới thiệu

Trong lập trình, kiểu dữ liệu là một khái niệm rất quan trọng. Các biến có thể lưu trữ dữ liệu thuộc nhiều kiểu khác nhau và các kiểu khác nhau có thể làm những việc khác nhau.

Python có các kiểu dữ liệu sau được tích hợp sẵn theo mặc định:

*Text Type: str

*Numeric Types: int, float, complex

*Sequence Types: list, tuple, range

*Mapping Type: dict

*Set Types: set, frozenset

*Boolean Type: bool

*Binary Types: bytes, bytearray, memoryview

Bạn có thể lấy kiểu dữ liệu của bất kỳ đối tượng nào bằng cách sử dụng hàm type():

x = 5
print(type(x))

Trong Python, kiểu dữ liệu được đặt khi bạn gán giá trị cho một biến. Nếu bạn muốn chỉ định kiểu dữ liệu, bạn có thể sử dụng các hàm khởi tạo sau:

Example Data type
x = str(“Hello World”) str
x = int(20) int
x = float(20.5) float
x = complex(1j) complex
x = list((“apple”, “banana”, “cherry”)) list
x = tuple((“apple”, “banana”, “cherry”)) tuple
x = range(6) range
x = dict(name=”John”, age=36) dict
x = set((“apple”, “banana”, “cherry”)) set
x = frozenset((“apple”, “banana”, “cherry”)) frozenset
x = bool(5) bool
x = bytes(5) bytes
x = bytearray(5) bytearray
x = memoryview(bytes(5)) memoryview

Python numbers

Có ba kiểu số trong Python:

  • int
  • float
  • complex

int

Int, hoặc integer, là một số nguyên, dương hoặc âm, không có số thập phân, có độ dài không giới hạn.

x = 1
y = 35656222554887711
z = -3255522

float

Float, hoặc “số dấu phẩy động” là một số, dương hoặc âm, chứa một hoặc nhiều số thập phân.

x = 1.10
y = 1.0
z = -35.59

Float cũng có thể là các số khoa học với chữ “e” để biểu thị lũy thừa của 10.

x = 35e3
y = 12E4
z = -87.7e100

Complex

Complex (số phức) được viết với “j” là phần ảo:

x = 3+5j
y = 5j
z = -5j

Python Strings

String Literals

Các ký tự chuỗi trong python được bao quanh bởi dấu ngoặc kép đơn hoặc dấu ngoặc kép.

‘hello’ cũng giống như “hello”.

Bạn có thể hiển thị một chuỗi ký tự bằng hàm print():

print("Hello")
print('Hello')

Multiline Strings

Bạn có thể gán một chuỗi nhiều dòng cho một biến bằng cách sử dụng ba dấu ngoặc kép:

a = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""
print(a)

Hoặc

a = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''
print(a)

Chuỗi là Mảng

Giống như nhiều ngôn ngữ lập trình phổ biến khác, chuỗi trong Python là các mảng byte đại diện cho các ký tự unicode. Tuy nhiên, Python không có kiểu dữ liệu ký tự, một ký tự đơn giản chỉ là một chuỗi có độ dài là 1. Dấu ngoặc vuông có thể được sử dụng để truy cập các phần tử của chuỗi.

Ví dụ: Lấy ký tự ở vị trí 1 (hãy nhớ rằng ký tự đầu tiên có vị trí 0)

a = "Hello, World!"
print(a[1])

Python Booleans

Boolean đại diện cho một trong hai giá trị: True hoặc False.

Giá trị Boolean

Trong lập trình, bạn thường cần biết một biểu thức là True hoặc False. Bạn có thể đánh giá bất kỳ biểu thức nào trong Python và nhận được một trong hai câu trả lời, True hoặc False. Khi bạn so sánh hai giá trị, biểu thức được đánh giá và Python trả về câu trả lời Boolean:

print(10 > 9)
print(10 == 9)
print(10 < 9)

Hầu hết các giá trị đều là True

Hầu hết mọi giá trị đều được đánh giá là True nếu nó có một số loại nội dung.

Bất kỳ chuỗi nào là True, ngoại trừ các chuỗi rỗng.

Bất kỳ số nào là True, ngoại trừ 0.

Mọi list, tuple, set và dictionary đều True, ngoại trừ những danh sách trống.

Một số giá trị là False

Trên thực tế, không có nhiều giá trị được đánh giá là False, ngoại trừ các giá trị trống, chẳng hạn như (), [], {}, “”, số 0 và giá trị None. Và tất nhiên giá trị False đánh giá là False.

Python Lists

List là một tập hợp được sắp xếp và có thể thay đổi. Trong Python, list được viết bằng dấu ngoặc vuông.

thislist = ["apple", "banana", "cherry"]
print(thislist)

Bạn truy cập các mục trong list bằng cách tham chiếu đến số chỉ mục:

thislist = ["apple", "banana", "cherry"]
print(thislist[1])

Ngoài ra, cũng có thể sử dụng hàm tạo list() để tạo một danh sách mới.

thislist = list(("apple", "banana", "cherry")) # lưu ý 2 cặp dấu ngoặc tròn
print(thislist)

Python Tuples

tuple là một tập hợp được sắp xếp theo thứ tự và không thể thay đổi. Trong Python, tuple được viết bằng dấu ngoặc tròn.

thistuple = ("apple", "banana", "cherry")
print(thistuple)

Bạn có thể truy cập phần tử của tuple bằng cách tham chiếu đến số chỉ mục, bên trong dấu ngoặc vuông:

thistuple = ("apple", "banana", "cherry")
print(thistuple[1])

Tạo Tuple với một mục

Để tạo một bộ dữ liệu tuple chỉ có một phần tử, bạn phải thêm dấu phẩy sau phần tử đó, nếu không Python sẽ không nhận ra nó là một tuple.

thistuple = ("apple",)
print(type(thistuple))

#NOT a tuple
thistuple = ("apple")
print(type(thistuple))

Cũng có thể sử dụng hàm tạo tuple() để tạo một bộ tuple.

thistuple = tuple(("apple", "banana", "cherry")) # lưu ý 2 cặp dấu ngoặc tròn
print(thistuple)

Khi một tuple được tạo, bạn không thể thay đổi các giá trị của nó. Tuples là không thể thay đổi, hoặc cũng được gọi bất biến.

Nhưng có một cách giải quyết. Bạn có thể chuyển đổi tuple thành một list, thay đổi list và chuyển đổi lại list thành tuple.

Python Sets

set là một tập hợp không có thứ tự và không được lập chỉ mục. Trong Python, set được viết bằng dấu ngoặc nhọn.

thisset = {"apple", "banana", "cherry"}
print(thisset)

Bạn không thể truy cập các mục trong một set bằng cách tham chiếu đến chỉ mục hoặc khóa.

Nhưng bạn có thể lặp qua các phần tử trong set bằng vòng lặp for hoặc kiểm tra xem giá trị được chỉ định có trong set hay không bằng cách sử dụng từ khóa in.

Lặp qua tập hợp và in các giá trị:

thisset = {"apple", "banana", "cherry"}

for x in thisset:
  print(x)

Kiểm tra xem “chuối” có trong set không:

thisset = {"apple", "banana", "cherry"}

print("banana" in thisset)

Sau khi set được tạo, bạn không thể thay đổi các mục của nó, nhưng bạn có thể thêm các mục mới.

Có thể sử dụng hàm tạo set() để tạo một set.

thisset = set(("apple", "banana", "cherry")) # note the double round-brackets
print(thisset)

Python Dictionaries

dictionary là một tập hợp không có thứ tự, có thể thay đổi và được lập chỉ mục. Trong Python dictionary được viết bằng dấu ngoặc nhọn và chúng có các khóa và giá trị.

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(thisdict)

dictionary cũng có thể chứa nhiều dictionary, đây được gọi là nested dictionaries.

myfamily = {
  "child1" : {
    "name" : "Emil",
    "year" : 2004
  },
  "child2" : {
    "name" : "Tobias",
    "year" : 2007
  },
  "child3" : {
    "name" : "Linus",
    "year" : 2011
  }
}

Hoặc, nếu bạn muốn lồng ba dictionary đã tồn tại dưới dạng dictionary:

child1 = {
  "name" : "Emil",
  "year" : 2004
}
child2 = {
  "name" : "Tobias",
  "year" : 2007
}
child3 = {
  "name" : "Linus",
  "year" : 2011
}

myfamily = {
  "child1" : child1,
  "child2" : child2,
  "child3" : child3
}

Cũng có thể sử dụng hàm tạo dict() để tạo dictionary mới:

thisdict = dict(brand="Ford", model="Mustang", year=1964)
# lưu ý rằng từ khóa không phải là chuỗi ký tự
# lưu ý việc sử dụng dấu bằng thay vì dấu hai chấm cho việc gán giá trị
print(thisdict)
Các Kiểu Dữ Liệu Cơ Bản Trong Python
Các Kiểu Dữ Liệu Cơ Bản Trong Python

III. Nhập Dữ Liệu Trong Python

Do sự phổ biến của Python3, nên trong bài viết này cũng như các bài chia sẻ kiến thức cho các bạn tại chuyên đề Tự học python cho người mới bắt đầu, Kiyoshi mạn phép sẽ gọi và sử dụng hàm input() trong Python3 là Hàm input() trong Python và coi đây là hàm nhập dữ liệu mặc định. Chúng ta sẽ cùng tìm hiểu chi tiết về hàm này ở dưới đây.

Hàm input() trong Python là gì

Hàm input() trong Python là một hàm cài sẵn, có chức năng nhận dữ liệu nhập từ bàn phím vào Python và trả về kết quả dưới dạng kiểu chuỗi string(str).

Cú pháp và cách sử dụng hàm input() trong Python

Chúng ta sử dụng hàm input() trong Python với cú pháp sau đây:

input ( prompt )

Trong đó prompt là đối số duy nhất của hàm input(). Đây là một chuỗi ký tự bất kỳ có tác dụng hướng dẫn hoặc gợi ý về dữ liệu nhập vào. Bạn có thể tự do viết prompt hoặc có thể lược bỏ đi đối số này.

Ví dụ như các cách viết sau với hàm input() trong Python đều OK cả.

1. Lược bỏ promtp

input()

Màn hình nhập dữ liệu:

Nhập Dữ Liệu Trong Python
Nhập Dữ Liệu Trong Python

Thêm hướng dẫn, gợi ý về dữ liệu nhập vào thông qua promtp:

input("Hay nhap mot so nguyen duong:")

Màn hình nhập dữ liệu:

Nhập Dữ Liệu Trong Python
Nhập Dữ Liệu Trong Python

Thêm ký tự thông báo chờ nhập liệu và làm đẹp phần nhập dữ liệu thông qua promtp:

input(">>")

Màn hình nhập dữ liệu:

Nhập Dữ Liệu Trong Python
Nhập Dữ Liệu Trong Python

Nếu bạn chỉ định một chuỗi ký tự trong đối số promtp khi sử dụng hàm input(), chuỗi ký tự đó sẽ được hiển thị khi chờ nhập. Nếu bạn lược bỏ promtp, sẽ không có gì sẽ được hiển thị trên màn hình và bạn sẽ không biết liệu mình có đang chờ nhập liệu hay không. Do đó Kiyoshi khuyên bạn sẽ tốt hơn nếu bạn sử dụng hàm input() có kèm theo chỉ định đối số prompt trong hàm.

Hàm input() sẽ nhận dữ liệu nhập từ bàn phím và sau đó trả về kết quả là một chuỗi string(str) chứa dữ liệu được nhập. Chúng ta có thể gán kết quả này vào biến và sử dụng trong chương trình, ví dụ như in ra màn hình như sau:

dulieu = input("Hãy nhập dữ liệu:")
>>> Hãy nhập dữ liệu:123abc

print(dulieu)

#>> 123abc

Lưu ý là tất cả các loại dữ liệu nhập từ bàn phím vào Python bằng hàm input() đều được trả về kết quả là một chuỗi string(str). Do đó kể cả bạn có nhập số từ bàn phím vào Python chăng nữa thì số này cũng sẽ được nhận dưới dạng kiểu chuỗi mà thôi. Chúng ta có thể kiểm tra kiểu dữ liệu của kết quả nhận được bằng hàm type() như dưới đây:

dulieu = input("Hãy nhập dữ liệu:")
# Hãy nhập dữ liệu:123

print(type(dulieu))
#>> <class 'str'>

Bạn có thể thấy số 123 nhập từ bàn phím đã được python nhận vào dưới dạng chuỗi (<class ‘str’>) như trên.

Các cách nhập dữ liệu nâng cao bằng hàm input trong python

Ở phần trên chúng ta đã biết cách sử dụng hàm input() căn bản nhất để nhập dữ liệu trong Python rồi. Thực tế khi sử dụng hàm input() trong Python, bằng cách kết hợp với các hàm hoặc phương thức khác, chúng ta sẽ có vô vàn cách sử dụng input() khác nhau một cách đơn giản và thông mình hơn. Kiyoshi sẽ giới thiệu cho bạn một số phương pháp sử dụng nâng cao của hàm input() trong Python như dưới đây:

Nhập cùng lúc nhiều dữ liệu trên một dòng vào Python

Bằng cách kết hợp với phương thức tách chuỗi split() trong Python, chúng ta có thể nhập cùng lúc nhiều giá trị vào Python chỉ trên một dòng nhập dữ liệu.

Chúng ta sẽ nhập cùng lúc nhiều dữ liệu trên một dòng vào Python bằng cách nhập tất cả các dữ liệu đó cách nhau bởi dấu cách, sau đó tách các dữ liệu đó ra bằng split() và lưu kết quả dưới dạng list như sau:

s = input(">>").split()
print(s)

Màn hình nhập dữ liệu sẽ như sau:

>> 1 23 ab
['1', '23','ab']

Nhập nhiều dữ liệu trên nhiều dòng vào Python

Bằng cách sử dụng kết hợp với cách viết nội hàm list comprehension, chúng ta có thể sử dụng hàm input() để nhập nhiều dữ liệu trên nhiều dòng vào Python như sau:

s = [input(">>") for i in range(3)]
print(s)

Màn hình nhập dữ liệu sẽ như sau:

>> 1
>> 23
>> ab
['1', '23','ab']

Ứng dụng cách viết này, chúng ta có thể nhập n số nguyên từ bàn phím python như sau:

n = 5
s = [int(input(">>")) for i in range(n)]
print(s)

Màn hình nhập dữ liệu sẽ như sau:

>> 1
>> 23
>> 34
>> 100
>> 2
[1, 23, 34, 100, 2]

IV. Xuất Dữ Liệu Trong Python

Hàm print() trong Python

Do sự phổ biến của Python3, nên trong bài viết này cũng như các bài chia sẻ kiến thức cho các bạn tại chuyên đề Tự học python cho người mới bắt đầu, Kiyoshi mạn phép sẽ gọi và sử dụng hàm print() trong Python3 là hàm print() trong Python và coi đây là hàm xuất dữ liệu mặc định. Chúng ta sẽ cùng tìm hiểu chi tiết về hàm này ở dưới đây.

+ Hàm print() trong Python là gì

Hàm print() trong Python là một hàm cài sẵn, có chức năng hiển thị (in) dữ liệu ra màn hình khi chạy chương trình python.

+ Cú pháp và cách sử dụng hàm print() trong Python

Hàm print() trong Python có cú pháp tổng quát với khá nhiều đối số như sau:

print ( *objects , sep=' ', end='\n', file=sys.stdout, flush=False )

Trong đó:

  • *objects : đối tượng (dữ liệu) cần in ra màn hình. Dấu * có ý nghĩa là số nhiều và chúng ta cũng có thể chỉ định nhiều đối tượng khác nhau và in chúng cùng lúc ra màn hình.
  • sep: đối tượng chỉ định sẽ được phân tách thành các phần nhỏ bằng ký tự phân tách sep trước khi được in, và mặc định giá trị này là một khoảng trắng ‘ ‘.
  • end: giá trị cuối cùng được in ra màn hình, và mặc định giá trị này là ký tự xuống dòng \n. Đối số này sẽ quyết định việc in xuống dòng hay in không xuống dòng trong Python.
  • file=sys.stdout: chỉ định lưu kết quả đầu ra vào bộ nhớ đệm sys.stdout.
  • flush=False: chỉ định cưỡng chế lưu giữ kết quả vào bộ nhớ đệm, và giá trị mặc định là false, có nghĩa là KHÔNG lưu giữ kết quả vào bộ nhớ.

Tuy nhiên trong thực tế khi sử dụng hàm print() trong Python, chúng ta lược bỏ hầu hết các đối số và sử dụng cú pháp đơn giản nhất sau đây:

print ( *objects )

Ví dụ, chúng ta chỉ định objects là 1 chuỗi ký tự và in ra màn hình dòng chữ I LOVE PYTHON như sau:

print('I LOVE PYTHON')

Màn hình xuất dữ liệu:

Xuất Dữ Liệu Trong Python
Xuất Dữ Liệu Trong Python

Chúng ta cũng có thể chỉ định *objects với nhiều chuỗi ký tự được cách nhau bởi dấu phẩy và in chúng cùng lúc ra màn hình như sau:

print('I LOVE PYTHON', 'and JavaScript')

Màn hình xuất dữ liệu:

Xuất Dữ Liệu Trong Python
Xuất Dữ Liệu Trong Python

Lưu ý là các đối số sep, end, file và flush đều là các đối số keyword, do đó nếu bạn muốn sử dụng chúng trong hàm print() thì phải viết cả keyword của nó.

Ví dụ như chúng ta sử dụng đối số end trong hàm print() để in không xuống dòng trong Python như sau:

print("Việt Nam ", end='')
print("vô địch")
#>> Việt Nam vô địch

Nếu bạn bỏ quên không ghi keyword, mặc dù lỗi không xảy ra nhưng đối số đó sẽ bị Python coi như là một đối tượng cần in ra màn hình và bỏ qua chức năng của nó như sau:

print("Việt Nam ", '')
print("vô địch")

#>> Việt Nam  
#>> vô địch

V. Kiểu Dữ Liệu Boolean Trong Python

Trong bài học này chúng ta sẽ xem xét chí tiết cách sử dụng kiểu dữ liệu bool trong Python. Đây là một kiểu dữ liệu đơn giản nhưng rất quan trọng để chuyển sang học về các cấu trúc điều khiển (if-elif-else, while, for) trong Python.

Kiểu bool trong Python

Kiểu bool (Boolean) trong Python là kiểu dữ liệu trong đó chỉ có hai giá trị True và False. True và False là hai từ khóa trong Python.

>>> a = True
>>> type(a) # hàm cho biết kiểu của biến
<class 'bool'>
>>> b = False
>>> type(b)
<class 'bool'>

Nếu bạn đã học một ngôn ngữ trong họ C cần lưu ý giá trị là True/False (T và F phải viết hoa). Viết true/false là sai và sẽ bị báo lỗi như sau:

>>> a = true # Python sẽ hiểu true là một biến (vốn chưa tồn tại)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
NameError: name 'true' is not defined

Kiểu bool là kiểu kết quả trả về của các phép so sánh trên số và chuỗi mà bạn đã học trong các bài trước:

>>> a = 10; b = 5
>>> a > b
True
>>> a <= b
False
>>> a != b
True
>>> a == b
False
>>> 0 < b < a < 11 # Python cho phép viết như thế này
True
>>> a = 'Hello'; b = 'Python'
>>> a != b
True
>>> a > b
False
>>> a < b
True
>>> a == b
False
>>>

Một số phương thức của str cũng trả về giá trị bool:

>>> my_string = "Hello World"
>>> my_string.isalnum()        #kiểm tra xem chuỗi có chứa toàn chữ số
False
>>> my_string.isalpha()        # chuỗi chứa toàn chữ cái
False
>>> my_string.isdigit()        # chuỗi có chứa chứ số
False
>>> my_string.isupper()        # chuỗi chứa toàn ký tự hoa
False
>>> my_string.islower()        # chuỗi chứa toàn kỹ tự thường
False
>>> my_string.isspace()        # chuỗi chỉ chứa khoảng tráng
False
>>> my_string.endswith('d')        # kết thúc là d
True
>>> my_string.startswith('H')    # bắt đầu là H
True

Chuyển đổi kiểu dữ liệu về bool

Python cho phép chuyển đổi giữa các kiểu dữ liệu khác và bool qua hàm bool() theo quy tắc sau:

  • Giá trị kiểu số (số nguyên, số thực, số phức) thành giá trị True nếu số đó khác 0, và False nếu số đó bằng 0.
  • Giá trị kiểu chuỗi thành giá trị False nếu đó là chuỗi rỗng (không có ký tự nào ”), và True nếu chuỗi có dù chỉ 1 ký tự.
>>> zero_int = 0
>>> bool(zero_int)
False
>>> pos_int = 1
>>> bool(pos_int)
True
>>> neg_flt = -5.1
>>> bool(neg_flt)
True
>>> ans = 'true'
>>> bool(ans)
True
>>> ans = 'hello'
>>> bool(ans)
True
>>> ans = '' # chuỗi rỗng (không có ký tự nào)
>>> bool(ans)
False
>>> ans = ' ' # chuỗi này chứa 1 dấu cách
>>> bool(ans)
True

Python cũng có thể chuyển đổi giá trị của các kiểu khác về bool. Ví dụ danh sách rỗng -> False, danh sách có phần tử -> True. Chúng ta sẽ học về các kiểu dữ liệu này sau.

Các phép toán trên kiểu bool

Các phép toán trên kiểu bool, còn được gọi là số học Boolean, là các phép toán logic chỉ trả về kết quả True hoặc False. Các phép toán thông dụng nhất bao gồm and, or, not, == và !=.

>>> A = True
>>> B = False
>>> A or B
True
>>> A and B
False
>>> not A
False
>>> not B
True
>>> A == B
False
>>> A != B
True
A B not A not B A == B A =! B A or B A and B
T F F T F T T F
F T T F F T T F
T T F F T F T T
F F T T T F F

Bảng chân trị của các phép toán logic Boolean

Bạn có thể ghép các phép toán trên để tạo thành biểu thức phức tạp hơn như sau:

>>> A = True
>>> B = False
>>> C = False
>>> A or (C and B)
True
>>> (A and B) or C
False
Kiểu Dữ Liệu Boolean Trong Python
Kiểu Dữ Liệu Boolean Trong Python

VI. Các Kiểu Dữ Liệu Số Trong Python

Python hỗ trợ số nguyên, số thập phân và số phức, chúng lần lượt được định nghĩa là các lớp int, float, complex trong Python. Số nguyên và số thập phân được phân biệt bằng sự có mặt hoặc vắng mặt của dấu thập phân. Ví dụ: 5 là số nguyên, 5.0 là số thập phân. Python cũng hỗ trợ số phức và sử dụng hậu tố j hoặc J để chỉ phần ảo. Ví dụ: 3+5j. Ngoài int và float, Python hỗ trợ thêm 2 loại số nữa là Decimal và Fraction.

Ta sẽ dùng hàm type() để kiểm tra xem biến hoặc giá trị thuộc lớp số nào và hàm isinstance() để kiểm tra xem chúng có thuộc về một class cụ thể nào không.

a = 9

# Output: <class 'int'>
print(type(a))

# Output: <class 'float'>
print(type(5.0))

# Output: (10+2j)
b = 8 + 2j
print(b + 2)

# Kiểm tra xem b có phải là số phức không
# Output: True
print(isinstance(b, complex))

Số nguyên trong Python không bị giới hạn độ dài, số thập phân bị giới hạn đến 16 số sau dấu thập phân.

Những con số chúng là làm việc hàng ngày thường là hệ số 10, nhưng lập trình viên máy tính (thường là lập trình viên nhúng) cần làm việc với hệ thống số nhị phân, thập lục phân và bát phân. Để biểu diễn những hệ số này trong Python, ta đặt một tiền tố thích hợp trước số đó.

Tiền tố hệ số cho các số Python:

Hệ thống số Tiền tố
Hệ nhị phân ‘0b’ hoặc ‘0B’
Hệ bát phân ‘0o’ hoặc ‘0O’
Hệ thập lục phân ‘0x’ hoặc ‘0X’

(Bạn đặt tiền tố nhưng không có dấu ‘ ‘ nhé).

Đây là ví dụ về việc sử dụng các tiền tố hệ số trong Python, và khi dùng hàm print() để in giá trị của chúng ra màn hình, ta sẽ nhận được số tương ứng trong hệ số 10.

# Output: 187
print(0b10111011)

# Output: 257 (250 + 7)
print(0xFA + 0b111)

# Output: 15
print(0o17)
Các Kiểu Dữ Liệu Số Trong Python
Các Kiểu Dữ Liệu Số Trong Python

VII. Chuỗi (String)

Kiểu dữ liệu chuỗi (String) trong Python là một trong các kiểu phổ biến nhất trong Python. Chuỗi ký tự trong python được bao quanh bởi dấu ngoặc kép đơn hoặc dấu ngoặc kép. Python coi các lệnh trích dẫn đơn và kép là như nhau. Ví dụ: ‘Hello’ tương đương với “Hello”.

Bạn có thể hiển thị một chuỗi trong Python bằng print(). Ví dụ:

print("Hello")
print('Hello')

Gán chuỗi cho một biến

Việc gán một chuỗi cho một biến được thực hiện với tên biến theo sau là dấu bằng và chuỗi, Ví dụ:

str1 = "Hello World!"
print(str1)

Chuỗi đa dòng

Bạn có thể gán một chuỗi nhiều dòng cho một biến bằng cách sử dụng 3 dấu ngoặc kép hoặc 3 dấu nháy đơn:

Ví dụ nhập chuỗi đa dòng với 3 dấu ngoặc kép:

str1 = """Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4"""
print(str1)

Ví dụ nhập chuỗi đa dòng với 3 dấu nháy đơn:

str1 = '''Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4'''
print(str1)

Chuỗi là một mảng

Các chuỗi trong Python là mảng các byte đại diện cho các ký tự unicode.

Tuy nhiên, Python không có kiểu dữ liệu ký tự, một ký tự đơn giản chỉ là một chuỗi có độ dài bằng 1.

Dấu ngoặc vuông [] có thể được sử dụng để truy cập các phần tử của chuỗi. Ký tự đầu tiên có chỉ số là 0.

str1 = "Hello World!"
print(str1[0])

Kết quả:

H

Truy cập các giá trị trong String

Dấu ngoặc vuông [] có thể được sử dụng để truy cập các phần tử của chuỗi. Ký tự đầu tiên có chỉ số là 0.

Chuỗi (String)
Chuỗi (String)

Ví dụ 1:

str1 = "HELLO"
str1 = "HELLO"
print(str1[0])
print(str1[1])
print(str1[2])
print(str1[3])
print(str1[4])

Kết quả: trả về một chuỗi con từ vị trí 6 đến 8 của chuỗi đã cho:

H
E
L
L
O

Chỉ định chỉ mục bắt đầu và chỉ mục kết thúc, được phân tách bằng dấu hai chấm, để trả về một phần của chuỗi.

Chuỗi (String)
Chuỗi (String)

Ví dụ 2:

str1 = "HELLO"
print(str1[:])
print(str1[0:])
print(str1[:5])
print(str1[:3])
print(str1[0:2])
print(str1[1:4])

Kết quả:

HELLO
HELLO
HELLO
HEL
HE
ELL

Truy cập chuỗi bằng chỉ mục âm

Sử dụng các chỉ mục âm để lấy ra chuỗi con bắt đầu từ cuối chuỗi: Ví dụ:

str1 = "Hello World!"
print(str1[-5:-2])

Kết quả: trả về một chuỗi con từ vị trí 3 đến 5 từ từ cuối chuỗi của chuỗi đã cho:

orl

Chiều dài chuỗi trong Python

Sử dụng hàm len() để tính chiều dài chuỗi trong Python, Ví dụ:

a = "Hello World!"
print(len(a))

Kết quả:

12

VIII. Danh Sách (List)

Python cung cấp một loạt các dữ liệu phức hợp, thường được gọi là các chuỗi (sequence), sử dụng để nhóm các giá trị khác nhau. Đa năng nhất là danh sách (list).

Cách tạo list trong Python

Trong Python, list được biểu diễn bằng dãy các giá trị, được phân tách nhau bằng dấu phẩy, nằm trong dấu []. Các danh sách có thể chứa nhiều mục với kiểu khác nhau, nhưng thông thường là các mục có cùng kiểu.

>>> squares = [1, 4, 9, 16, 25]
>>> squares
[1, 4, 9, 16, 25]

List không giới hạn số lượng mục, bạn có thể có nhiều kiểu dữ liệu khác nhau trong cùng một list, như chuỗi, số nguyên, số thập phân,…

list1 = [] # list rỗng
list2 = [1, 2, 3] # list số nguyên
list3 = [1, "Hello", 3.4] # list với kiểu dữ liệu hỗn hợp

Bạn cũng có thể tạo các list lồng nhau (danh sách chứa trong danh sách), ví dụ:

a = ['a', 'b', 'c']
n = [1, 2, 3]
x = [a, n]

print (x) # Output: [['a', 'b', 'c'], [1, 2, 3]]
print (x[0]) # Output: ['a', 'b', 'c']
print(x[0][1]) # Output: b

Hoặc khai báo list lồng nhau từ đầu:

list4 = [mouse", [8, 4, 6], ['a']]

Truy cập vào phần tử của list

Có nhiều cách khác nhau để truy cập vào phần tử của một danh sách:

Index (chỉ mục) của list:

Sử dụng toán tử index [] để truy cập vào một phần tử của list. Index bắt đầu từ 0, nên một list có 5 phần tử sẽ có index từ 0 đến 4. Truy cập vào phần tử có index khác index của list sẽ làm phát sinh lỗi IndexError. Index phải là một số nguyên, không thể sử dụng float, hay kiểu dữ liệu khác, sẽ tạo lỗi TypeError.

qtm_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']

# TypeError: list indices must be integers or slices, not float
# TypeError: index của list phải là số nguyên hoặc slice, không phải số thập phân
qtm_list[2.0]

List lồng nhau có thể truy cập bằng index lồng nhau:

qtm_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']
# Output: q
print(qtm_list[0])

# Output: a
print(qtm_list[2])

# Output: t
print(qtm_list[4])

# List lồng nhau
ln_list = ["Happy", [1,3,5,9]]

# Index lồng nhau

# Output: a
print(ln_list[0][1])

# Output: 9
print(ln_list[1][3])

Index âm:

Python cho phép lập chỉ mục âm cho các chuỗi. Index -1 là phần tử cuối cùng, -2 là phần tử thứ 2 từ cuối cùng lên. Nói đơn giản là index âm dùng khi bạn đếm phần tử của chuỗi ngược từ cuối lên đầu.

qtm_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']

# Code by Quantrimang.com
# Output: m
print(qtm_list[-1])
# Output: i
print(qtm_list[-9])

Cắt lát (slice) list trong Python

Python cho phép truy cập vào một dải phần tử của list bằng cách sử dụng toán tử cắt lát : (dấu hai chấm). Mọi hành động cắt list đều trả về list mới chứa những yếu tố được yêu cầu.

qtm_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']
# Code by Quantrimang.com
# Output: ['u', 'a', 'n', 't']
print(qtm_list[1:5])
# Output: ['q', 'u', 'a', 'n', 't', 'r', 'i']
print(qtm_list[:-8])
# Output: ['n', 'g', '.', 'c', 'o', 'm']
print(qtm_list[9:])

Để cắt lát list, bạn chỉ cần sử dụng dấu : giữa 2 index cần lấy các phần tử. [1:5] sẽ lấy phần tử 1 đến 5, [:-8] lấy từ 0 đến phần tử -8,…

Nếu thực hiện hành động cắt sau thì nó sẽ trả về một list mới là bản sao của list ban đầu:

qtm_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']

# Output: ['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g', '.', 'c', 'o', 'm']
print(qtm_list[:])

Thay đổi hoặc thêm phần tử vào list

List cũng hỗ trợ các hoạt động như nối list:

>>> squares + [36, 49, 64, 81, 100]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Không giống như chuỗi, bị gán cố định, list là kiểu dữ liệu có thể thay đổi. Ví dụ, bạn có thể thay đổi các mục trong list:

>>> cubes = [1, 8, 27, 65, 125] # có vẻ sai sai
>>> 4 ** 3 # lập phương của 4 là 64, không phải 65!
64
>>> cubes[3] = 64 # thay thế giá trị sai
>>> cubes
[1, 8, 27, 64, 125]

Bạn cũng có thể cho thêm mục mới vào cuối list bằng cách sử dụng các phương thức, chẳng hạn như append():

>>> cubes.append(216) # thêm lập phương của 6
>>> cubes.append(7 ** 3) # và lập phương của 7
>>> cubes
[1, 8, 27, 64, 125, 216, 343]

Việc gán cho lát cũng có thể thực hiện và thậm chí có thể thay đổi cả kích thước của list hay xóa nó hoàn toàn:

>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> # thay thế vài giá trị
>>> letters[2:5] = ['C', 'D', 'E']
>>> letters
['a', 'b', 'C', 'D', 'E', 'f', 'g']
>>> # giờ thì xóa chúng
>>> letters[2:5] = []
>>> letters
['a', 'b', 'f', 'g']
>>> # xóa list bằng cách thay tất cả các phần tử bằng một list rỗng
>>> letters[:] = []
>>> letters
[]

Hàm len() cũng có thể áp dụng với list:

>>> letters = ['a', 'b', 'c', 'd']
>>> len(letters)
4

Xóa hoặc loại bỏ phần tử khỏi list trong Python

Bạn có thể xóa một hoặc nhiều phần tử khỏi list sử dụng từ khóa del, có thể xóa hoàn toàn cả list.

my_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']

# xóa phần tử có index là 2
del my_list[2]

# Output: ['q', 'u', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g', '.', 'c', 'o', 'm'] 
print(my_list)

# xóa phần tử có index từ 1 đến 7
del my_list[1:7]

# Output: ['q', 'a', 'n', 'g', '.', 'c', 'o', 'm']
print(my_list)

# xóa toàn bộ list my_list
del my_list

# Error: NameError: name 'my_list' is not defined
print(my_list)

Bạn cũng có thể sử dụng remove() để loại bỏ những phần tử đã cho hoặc pop() để loại bỏ phần tử tại một index nhất định. pop() loại bỏ phần tử và trả về phần tử cuối cùng nếu index không được chỉ định. Điều này giúp triển khai list dưới dạng stack (ngăn xếp) (cấu trúc dữ liệu first in last out – vào đầu tiên, ra cuối cùng).

Ngoài ra, phương thức clear() cũng được dùng để làm rỗng một list (xóa tất cả các phần tử trong list).

my_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']
my_list.remove('.')

# Output: ['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g', 'c', 'o', 'm'] 
print(my_list)

# Output: n
print(my_list.pop(3))

# Output: ['q', 'u', 'a', 't', 'r', 'i', 'm', 'a', 'n', 'g', 'c', 'o', 'm']
print(my_list)

# Output: m
print(my_list.pop())

# Output: ['q', 'u', 'a', 't', 'r', 'i', 'm', 'a', 'n', 'g', 'c', 'o']
print(my_list)

my_list.clear()

# Output: [] (list rỗng)
print(my_list)

Cách cuối cùng để xóa các phần tử trong một list là gán một list rỗng cho các lát phần tử.

>>> my_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']
>>> my_list[11:15]=[]
>>> my_list
['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g']

Phương thức list trong Python

Những phương thức có sẵn cho list trong Python gồm:

  • append(): Thêm phần tử vào cuối list.
  • extend(): Thêm tất cả phần tử của list hiện tại vào list khác.
  • insert(): Chèn một phần tử vào index cho trước.
  • remove(): Xóa phần tử khỏi list.
  • pop(): Xóa phần tử khỏi list và trả về phần tử tại index đã cho.
  • clear(): Xóa tất cả phần tử của list.
  • index(): Trả về index của phần tử phù hợp đầu tiên.
  • count(): Trả về số lượng phần tử đã đếm được trong list như một đối số.
  • sort(): Sắp xếp các phần tử trong list theo thứ tự tăng dần.
  • reverse(): Đảo ngược thứ tự các phần tử trong list.
  • copy(): Trả về bản sao của list.

Ví dụ 1:

QTM = [9,8,7,6,8,5,8]

# Output: 2
print(QTM.index(7))

# Output: 3
print(QTM.count(8))

QTM.sort()

# Output: [5, 6, 7, 8, 8, 8, 9]
print(QTM)

QTM.reverse()

# Output: [9, 8, 8, 8, 7, 6, 5]
print(QTM)

Ví dụ 2:

QTM = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']

# Output: 3
print(QTM.index('n'))

# Output: 2
print(QTM.count('a'))

QTM.sort()

# Output: ['.', 'a', 'a', 'c', 'g', 'i', 'm', 'm', 'n', 'n', 'o', 'q', 'r', 't', 'u']
print(QTM)

QTM.reverse()

# Output: ['u', 't', 'r', 'q', 'o', 'n', 'n', 'm', 'm', 'i', 'g', 'c', 'a', 'a', '.']
print(QTM)

List comprehension: Cách tạo list mới ngắn gọn

List comprehension là một biểu thức đi kèm với lệnh for được đặt trong cặp dấu ngoặc vuông [].

Ví dụ:

cub3 = [3 ** x for x in range(9)]

# Output: [1, 3, 9, 27, 81, 243, 729, 2187, 6561]
print(cub3)

Code trên tương đương với:

cub3 = []
for x in range (9):
cub3.append(3**x)
print(cub3)

Ngoài for, if cũng có thể được sử dụng trong một list comprehension của Python. Lệnh if có thể lọc các phần tử trong list hiện tại để tạo thànhKiểm tra phần tử có trong list không

Sử dụng keyword in để kiểm tra xem một phần tử đã có trong list hay chưa. Nếu phần tử đã tồn tại, kết quả trả về là True, và ngược lại sẽ trả về False. list mới. Dưới đây là ví dụ:

cub3 = [3 ** x for x in range(9) if x > 4]

# Output: [243, 729, 2187, 6561]
print(cub3)

so_le = [x for x in range (18) if x % 2 == 1]

# Output: [1, 3, 5, 7, 9, 11, 13, 15, 17]
print(so_le)

noi_list = [x+y for x in ['Ngôn ngữ ','Lập trình '] for y in ['Python','C++']]

# Output: ['Ngôn ngữ Python', 'Ngôn ngữ C++', 'Lập trình Python', 'Lập trình C++']
print(noi_list)

Kiểm tra phần tử có trong list không

Sử dụng keyword in để kiểm tra xem một phần tử đã có trong list hay chưa. Nếu phần tử đã tồn tại, kết quả trả về là True, và ngược lại sẽ trả về False.

QTM = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']

# Output: True
print('q' in QTM)

# Output: True
print('.' in QTM)

# Output: False
print('z' in QTM)

Vòng lặp for trong list

Sử dụng vòng lặp for để lặp qua các phần tử trong list như ví dụ dưới đây:

for ngon_ngu in ['Python','Java','C']:
print("Tôi thích lập trình",ngon_ngu)

Kết quả trả về sẽ như sau:

Tôi thích lập trình Python
Tôi thích lập trình Java
Tôi thích lập trình C

Các hàm Python tích hợp với list

Các hàm Python tích hợp sẵn như all(), any(), enumerate(), len(), max(), min(), list(), sorted(),… thường được sử dụng với list để thực hiện những nhiệm vụ khác nhau.

  • all(): Trả về giá trị True nếu tất cả các phần tử của list đều là true hoặc list rỗng.
  • any(): Trả về True khi bất kỳ phần tử nào trong list là true. Nếu list rỗng hàm trả về giá trị False.
  • enumerate(): Trả về đối tượng enumerate, chứa index và giá trị của tất cả các phần tử của list dưới dạng tuple.
  • len(): Trả về độ dài (số lượng phần tử) của list.
  • list(): Chuyển đổi một đối tượng có thể lặp (tuple, string, set, dictionary) thành list.
  • max(): Trả về phần tử lớn nhất trong list.
  • min(): Trả về phần tử nhỏ nhất trong list.
  • sorted(): Trả về list mới đã được sắp xếp.
  • sum(): Trả về tổng của tất cả các phần tử trong list.
Danh Sách (List)
Danh Sách (List)

IX. Tuple

Bài này chúng ta sẽ tiếp tục tìm hiểu về kiểu dữ liệu thứ 4 trong ngôn ngữ lập trình Python, đó là kiểu Tuple.

1, Tuple Trong Python là gì?

Tuple trong Python là một kiểu dữ liệu dùng để lưu trữ các đối tượng không thay đổi về sau (giống như hằng số). Còn lại thì cách lưu trữ của nó cũng khá giống như kiểu dữ liệu list mà bài trước chúng ta đã được tìm hiểu.

Để khai báo một enum thì mọi người sử dụng cú pháp sau:

(val1, val2,.., valn)

Trong đó, val1, val2,.., valn là các giá trị của tuple.

VD: Mình sẽ khai báo 1 Tuple chứa các ngày trong tuần.

day = ('monday', 'tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' , 'sunday')

Nếu bạn khai báo 1 biến chứa các giá trị mà không được bao quang bởi dấu () thì Python cũng nhận định nó là một tuple (nhưng mình khuyên mọi người lên sử dụng cách đầu tiên cho code được tường minh).

VD:

day = 'monday', 'tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' , 'sunday'

Và nếu như bạn muốn khai báo 1 tuple trống thì bạn chỉ cần khai báo như sau:

a = ();

Còn nếu như tuple của bạn chỉ chứa duy nhất một giá trị thì bắt buộc bạn phải thêm một dấu , nữa đằng sau giá trị đó.

VD:

a = (10,)

2, Truy cập đến các phần tử trong Tuple.

Để truy cập đến các phần tử trong Tuple thì các bạn thực hiện tương tự như đối với chuỗi và list.

  • Các phần tử trong Tuple được đánh dấu từ 0 theo chiều từ trái qua phải.
  • Và ngược lại từ -1 theo chiều từ phải qua trái.

VD: Mình sẽ truy cập đến các phần tử trong tuple day ở trong VD trên.

day = ('monday', 'tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' , 'sunday')
day[0] # monday

day[-2] # saturday

Và nếu như bạn muốn lấy ra một tuple con trong tuple hiện tại thì bạn có thể sử dụng cú pháp sau (giống với list và string):

tupleName[start:end]

Trong đó:

  • start là vị trí bắt đầu lấy. Nếu để trống start thì nó sẽ lấy từ đầu Tuple.
  • end là vị trí kết thúc. Nếu để trống end thì nó sẽ lấy đến hết Tuple.

VD:

day = ('monday', 'tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' , 'sunday')
day[1:3] # ('tuesday', 'wednesday')

day[:3] # ('monday', 'tuesday', 'wednesday')

day[1:] # ('tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' , 'sunday')

3, Các tác vụ khác trên Tuple.

Xóa Tuple.

Như mình đã nói ở trên thì khi một tuple đã được khai báo giá trị thì chúng ta không thể sửa đổi hay xóa các giá trị đó được mà chúng ta chỉ có thể xóa cả tuple đi được thôi.

Để xóa một hay nhiều tuple thì chúng ta sử dụng hàm del .

VD: Mình sẽ xóa Tuple day.

day = ('monday', 'tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' , 'sunday')
del day

print(day) # Error: name 'day' is not defined

Thêm mới phần tử.

Thực ra đây chỉ là cách lách luật thôi, chứ một tuple đã được khai báo thì chúng ta chỉ được gọi và không được sửa đổi hay thêm mới bất cứ một cái gì cả. Nhưng chúng ta có thể tạo ra được một tuple mới từ các tuple đã có bằng biểu thức + hai tuple.

VD: Mình sẽ ghép 2 tuple day1 và day2 thành tuple day.

day1 = ('monday', 'tuesday', 'wednesday')
day2 = ('thursday', 'friday', 'saturday' , 'sunday')

day = day1 + day2

print(day)
# ('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday')

4, Tuple lồng.

Cũng giống như list, bạn cũng có thể khai báo các tuple lồng nhau.

VD:

day1 = ('monday', 'tuesday', 'wednesday')
day2 = ('thursday', 'friday', 'saturday' , 'sunday', day1)

# day = day1 + day2

print(day2)
# ('thursday', 'friday', 'saturday', 'sunday', ('monday', 'tuesday', 'wednesday'))

print(day2[4][0]) # monday

Và bạn có thể lồng bao nhiêu cấp cũng được. Và lồng bất cứ một kiểu dữ liệu nào cũng ok.

Tuple
Tuple

X. Set

Set trong python là gì?

Set
Set

Set trong python là một tập các giá trị không có thứ tự. Mỗi giá trị trong set là duy nhất, không thể lặp lại và bất biến( tức bạn không thể thay đổi giá trị các phần tử trong set).

Tuy nhiên các set có thể thay đổi. Chúng ta có thể thêm, xóa các phần tử trong set.

Các set có thể được sử dụng để thực hiện các phép tập hợp như phép giao, hợp, …

Cách tạo một set trong python

Mỗi set được tạo bằng cách đặt các phần tử của nó vào trong dấu {}, được phân tách bằng dấu phẩy, hoặc sử dụng hàm dựng sẵn set().

Các phần tử của set có thể thuộc nhiều kiểu dữ liệu khác nhau như: numbers, string,… Nhưng các phần tử không được là các kiểu dữ liệu có thể thay đổi như list hay dictionary.

 
#một set kiểu numbers
set1={5,7,8,6}
print(set1)    #return {8, 5, 6, 7}
 
#một set kiểu string
set2={"hello", "hi", "xin chao"}
print(set2)    #return  {'hi', 'hello', 'xin chao'}
 
#set với kiểu dữ liệu hỗn hợp
set3 = {"hello", 5, (1,5,7)}
print(set3)    #return {(1, 5, 7), 5, 'hello'}

Lưu ý: nếu khi tạo set mà có các phần tử trùng nhau thì sẽ tự động loại bỏ các phần tử lặp.

 
name = {'hieu', 'hieu'}
print(name)
#return {'hieu'}

Truy cập các phần tử trong set

Không thể truy cập đến một phần tử thông qua vị trí của chúng, vì set không có thứ tự các phần tử. Thay vào đó, ta phải sử dụng vòng for .

 
myset = {5,7,6,4}
for item in myset:
   print(item)

kết quả:

 
4
5
6
7

XI. Dictionary

1, Dictionary là gì?

Kiểu dữ liệu dictionary trong Python là một kiểu dữ liệu lưu trữ các giá trị chứa key và value , nhìn một cách tổng quát thì nó giống với Json. Và đối với kiểu dữ liệu này thì các giá trị bên trong nó không được sắp xếp theo một trật tự nào cả.

Để khai báo một dictionary chúng ta sử dụng cặp dấu {} theo cú pháp sau:

{key1: value1, key2: value2,..., keyN: valueN}

Trong đókey1: value1, key2: value2,..., keyN: valueN là các key và giá trị của kiểu dữ liệu dictionary. Và tên của key thì các bạn phải tuân thủ theo một số quy tắc sau:

  • Các phần tử đều phải có key.
  • Và Key chỉ có thể là số hoặc chuỗi.
  • Key phải là duy nhất, nếu không nó sẽ nhận giá trị của phần tử có key được xuất hiện cuối cùng.
  • Key khi đã được khai báo thì không thể đổi được tên.
  • Key có phân biệt hoa thường.

VD: Mình sẽ khai báo một dictionary có tên là person.

person = {
    'name': 'Vũ Thanh Tài',
    'age': 22,
    'male': True,
    'status': 'single'        
    }

2, Truy cập đến các phần tử trong dictionary.

Ở trên mình có nói là các phần tử trong dictionary được sắp xếp không theo một thứ tự nào cả, nên cũng chính vì điều đó mà chúng ta không thể nào sử dụng được cú pháp như đối với string và list mà chúng ta sẽ dựa vào các key của nó để truy xuất.

-Để truy cập đến các phần tử trong dictionary thì các bạn sử dụng cú pháp sau:

dicName[key]

Trong đó:

  • dicName là tên của của dictionary.
  • key là tên của key các bạn muốn lấy ra trong dictionary.

VD: Mình sẽ lấy ra name và status của dictionary person trên.

person = {
    'name': 'Vũ Thanh Tài',
    'age': 22,
    'male': True,
    'status': 'single'        
    }
person['name'] # Vũ Thanh Tài

person['status'] # signle

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

Để 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ó.

VD: Mình sẽ đổi status thành married (an ủi mình tí :D).

person = {
    'name': 'Vũ Thanh Tài',
    'age': 22,
    'male': True,
    'status': 'alone'        
    }

person['status'] = 'married'
print(person)
#{'name': 'Vu Thanh Tài', 'age': 22, 'male': True, 'status': 'married'}

4, Xóa phần tử trong diction.

Để xóa một phần tử trong dictionary thì chúng ta sử dụng hàm del và chọn phần tử cần xóa.

VD:

person = {
    'name': 'Vũ Thanh Tài',
    'age': 22,
    'male': True,
    'status': 'alone'        
    }

del person['status']
print(person)
#{'name': 'Vu Thanh Tài', 'age': 22, 'male': True}

Và nếu như 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:

dictName.clear();

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

VD:

person = {
    'name': 'Vũ Thanh Tài',
    'age': 22,
    'male': True,
    'status': 'alone'        
    }

person.clear()
print(person)
#{}

Và nếu như bạn muốn xóa hẳn dictionary thì bạn dùng hàm del để xóa.

VD:

person = {
    'name': 'Vũ Thanh Tài',
    'age': 22,
    'male': True,
    'status': 'alone'        
    }

del person
print(person)
#error: name 'person' is not defined

5, Dictionary lồng nhau.

Cũng giống như kiểu dữ liệu list, tuple thì trong dicrtionary các bạn cũng có thể lồng bất kỳ kiểu dữ liệu nào bạn thích vào trong nó.

VD: Mình sẽ lồng một dictionary vào trong dictionary và đồng thời truy vấn luôn đến dictionary con.

person = {
    'name': 'Vũ Thanh Tài',
    'option': {
                'age': 22,
                'male': True,
                'status': 'alone'
            }        
    }

print(person['option']['age'])
# 22
Dictionary
Dictionary

XII. Ép Kiểu Dữ Liệu Trong Python

1. Ép kiểu dữ liệu ngầm trong Python

Đây là thao tác tự động chuyển đổi một loại dữ liệu sang loại dữ liệu khác của Python, quá trình này không cần bất kỳ sự tham gia của lập trình viên.

Chúng ta hãy xem ví dụ dưới đây, trong đó Python chuyển đổi kiểu dữ liệu thấp hơn (số nguyên) sang kiểu dữ liệu cao hơn (float) để tránh mất dữ liệu.

num_int = 123
num_flo = 1.23
 
num_new = num_int + num_flo
 
print("Kiểu dữ liệu của num_int:",type(num_int))
print("Kiểu dữ liệu của num_flo:",type(num_flo))
 
print("Giá trị của num_new:",num_new)
print("Kiểu dữ liệu của num_new:",type(num_new))

Kết quả của chương trình này như sau:

Kiểu dữ liệu của num_int: <class 'int'>
Kiểu dữ liệu của num_flo: <class 'float'>
Giá trị của num_new: 124.23
Kiểu dữ liệu của num_new: <class 'float'>
Ép Kiểu Dữ Liệu Trong Python
Ép Kiểu Dữ Liệu Trong Python

Trong chương trình trên thì:

Mình đã định nghĩa hai biến num_int và num_flo, sau đó tạo một biến num_new để lưu trữ tổng của hai biến đó.
Tiếp theo sẽ dùng hàm type để kiểm tra kiểu dữ liệu của cả ba biến, thật bất ngờ vì num_new đã mang kiểu float vì đây là kiểu số lớn hơn kiểu int. Như vậy biến num_new đã được chuyển đổi ngầm.
Bây giờ, hãy thử thêm một chuỗi và một số nguyên và xem Python xử lý thế nào.

Ví dụ: Bổ sung kiểu dữ liệu chuỗi (cao hơn) và kiểu dữ liệu số nguyên (thấp hơn)

num_int = 123
num_str = "456"
 
print("Kiểu dữ liệu của num_int:",type(num_int))
print("Kiểu dữ liệu của num_str:",type(num_str))
 
# Dòng này sẽ lỗi vì string và number không chuyển ngầm được
print(num_int+num_str)

Khi chạy chương trình trên, kết quả sẽ là:

Traceback (most recent call last):
  File "C:Usersgf63IdeaProjectsLearnPythonhelloworld.py", line 7, in <module>
    print(num_int+num_str)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Kiểu dữ liệu của num_int: <class 'int'>
Kiểu dữ liệu của num_str: <class 'str'>
Ép Kiểu Dữ Liệu Trong Python
Ép Kiểu Dữ Liệu Trong Python

Như vậy mặc định Python không thể tự động chuyển đổi ngầm giữa string và number.

2. Ép kiểu trong Python tường minh

Trong ép kiểu tường minh thì lập trình viên sẽ chuyển đổi loại dữ liệu của một đối tượng thành loại dữ liệu cần thiết theo nhu cầu của họ.

Chúng ta sử dụng các hàm được xác định trước như int(), float(), str(), v.v để thực hiện chuyển đổi loại rõ ràng.

Chuyển đổi loại này cũng được gọi là typecasting vì người dùng ép (thay đổi) kiểu dữ liệu của các đối tượng. Cú pháp như sau:

(required_datatype)(expression)

Ví dụ dưới đây sẽ thể hiện việc ép kiểu từ string sang int trong Python, chương trình sẽ không báo lỗi.

num_int = 123
num_str = "456"
 
print("Kiểu dữ liệu của num_int:",type(num_int))
print("Kiểu dữ liệu của num_str trước khi ép kiểu:",type(num_str))
 
num_str = int(num_str)
print("Kiểu dữ liệu của num_str sau khi ép kiểu:",type(num_str))
 
num_sum = num_int + num_str
 
print("Tổng của num_int và num_str:",num_sum)
print("Kiểu dữ liệu của sum:",type(num_sum))

Chạy lên kế quả sẽ như sau:

Kiểu dữ liệu của num_int: <class 'int'>
Kiểu dữ liệu của num_str trước khi ép kiểu: <class 'str'>
Kiểu dữ liệu của num_str sau khi ép kiểu: <class 'int'>
Tổng của num_int và num_str: 579
Kiểu dữ liệu của sum: <class 'int'>

Trong ví dụ trên thì bạn thấy mình đã sử dụng hàm int() để thực hiện chuyển đổi, ép kiểu một cách rõ ràng.

num_str = int(num_str)

XIII. Xuống Dòng Trong Python

Hướng dẫn cách xuống dòng trong python. Bạn sẽ học được cách xuống dòng bên ngoài câu lệnh python bằng cách sử dụng ký tự xuống dòng trong python, cách xuống dòng bên trong câu lệnh python và viết câu lệnh đó trên nhiều dòng, cách in xuống dòng trong python cũng như cách in không xuống dòng trong python trong bài học này.

Xuống dòng bên ngoài câu lệnh python

Về căn bản, một câu lệnh trong python được viết trên môt dòng và được kết thúc bằng cách sử dụng ký tự xuống dòng được tạo ra khi bạn nhấn phím ENTER.

Đây là điểm này rất khác biệt so với các ngôn ngữ khác như JavaScript vốn có thể tùy ý xuống dòng tạo bởi phím ENTER khi viết câu lệnh.

Khi câu lệnh đã kết thúc và bạn đang ở ngoài câu lệnh, bạn có thể tùy ý xuống dòng bằng cách nhấn phím ENTER khi viết code python cho dễ nhìn. Các khoảng trống này cũng sẽ được bỏ qua khi chương trình được xử lý.

Ví dụ, chúng ta có thể xuống dòng bên ngoài câu lệnh python tùy ý như sau:

str1 = "Hello"

str2 =", Việt Nam"



print (str1 + str2)

Kết quả của ví dụ trên cũng giống như cách viết sau:

str1 = "Hello"
str2 =", Việt Nam"
print (str1 + str2)

Kết quả

Hello, Việt Nam

Xuống dòng bên trong câu lệnh python

+ Bạn không thể xuống dòng bên trong câu lệnh python chỉ bằng cách nhấn ENTER

Ở phần trên chúng ta đã biết, một câu lệnh trong python được viết trên môt dòng và được kết thúc bởi ký tự xuống dòng tạo ra khi bạn nhấn phím ENTER.

Do vậy, trong một câu lệnh quá dài, nếu bạn muốn xuống dòng trong câu lệnh và viết câu lệnh trên nhiều dòng cho dễ nhìn, bạn không thể đơn giản xuống dòng chỉ bằng cách nhấn phím ENTER.

Python sẽ coi câu lệnh đó kết thúc tại vị trí ấn phím ENTER và bỏ qua phần còn lại của câu lệnh, khiến cho câu lệnh bị lỗi khi chạy.

Ví dụ như câu lệnh dưới đây:

num = 10 + 20 + 30 + 40 + 50 + 60 + 70 
print (num)

Giả sử bạn muốn xuống dòng ở vị trí sau ký tự 40 +, nếu bạn xuống dòng bằng cách nhấn phím ENTER thì lỗi sẽ xảy ra như sau:

num = 10 + 20 + 30 + 40 +
50 + 60 + 70 
print (num)

Lỗi SyntaxError bị trả về:

File "Main.py", line 1
    num = 10 + 20 + 30 + 40 +
                            ^
SyntaxError: invalid syntax

Do đó bạn không thể đơn giản nhấn phím ENTER để xuống dòng giữa chừng câu lệnh trong python.

+ Sử dụng dấu backslash \ để xuống dòng bên trong câu lệnh python

Để xuống dòng bên trong câu lệnh python và viết câu lệnh trên nhiều dòng, hãy thêm dấu backslash \ vào trước vị trí muốn xuống dòng trong câu lệnh.

Cú pháp viết sẽ như sau:

abc \
xyz

Trong đó abc và xyz là các phần của câu lệnh mà bạn muốn viết xuống dòng giữa chừng.

Dấu \ tại vị trí xuống dòng sẽ báo cho python biết bạn muốn xuống dòng bên trong câu lệnh python và viết câu lệnh trên nhiều dòng, do đó python sẽ không kết thúc câu lệnh ở vị trí này mà tiếp tục đọc nối câu lệnh ở các dòng tiếp theo ở phía dưới.

Với ví dụ bị lỗi ở trên, chúng ta cần viết lại nó với dấu \ như sau:

num = 10 + 20 + 30 + 40 + \
50 + 60 + 70
print (num)

Hãy thử cách viết này với chế độ tương tác :

Xuống Dòng Trong Python
Xuống Dòng Trong Python

Hãy chú ý tới ký tự tiền yên, đây chính là dấu \ được biểu diễn trong windows. Và hãy chú ý tới dấu ba chấm … , đó là do python sau khi xử lý dấu \ đã nhận định câu lệnh vẫn đang còn tiếp tục, do đó bạn có thể xuống dòng viết câu lệnh ở trên.

Qua ví dụ trên, bạn có thể thấy việc dùng dấu \ đã giúp chúng ta xuống dòng giữa chừng một câu lệnh quá dài để viết tiếp mà nó vẫn chạy được.

In xuống dòng trong python

Trong python, chúng ta sử dụng hàm print để in các ký tự ra màn hình.

Có nhiều cách dùng hàm print, trong đó cú pháp hàm print cơ bản không chỉ định option như sau:

print(line)

line là dòng kết quả bạn muốn in ra màn hình. Bạn có thể chỉ định trực tiếp giá trị của line hoặc gán nó vào một biến và in giá trị của biến đó ra.

Về mặc định sau khi kết thúc một câu lệnh sử dụng hàm print cơ bản, thì kết quả hiển thị ra màn hình sẽ tự động in xuống dòng trong python

Do đó bạn không cần lo lắng dòng kết quả có được in xuống dòng trong python khi sử dụng hàm print cơ bản hay không.

Hãy cùng xem ví dụ cụ thể sau đây:

# chỉ định trực tiếp dòng kết quả muốn in ra màn hình
print("Hello")
print("Viet Nam")
print("Hello Viet Nam")

# gán biến và in ra màn hình
xinchao = "Hello"
tennuoc= "Viet Nam"
print(xinchao)
print(tennuoc)
print(xinchao + tennuoc)

Hãy thử cả hai ví dụ trên trong chế độ tương tác của python, bạn có thể thấy chúng đều đưa ra kết quả giống nhau, cũng như các kết quả đều tự động in xuống dòng trong python:

>>> print("Hello")
Hello
>>> print("Viet Nam")
Viet Nam
>>> print("Hello Viet Nam")
Hello Viet Nam

>>> xinchao = "Hello"
>>> tennuoc= "Viet Nam"
>>> print(xinchao)
Hello
>>> print(tennuoc)
Viet Nam
>>> print(xinchao + tennuoc)
Hello Viet Nam
Xuống Dòng Trong Python
Xuống Dòng Trong Python

In không xuống dòng trong python

Ở phần trên chúng ta đã biết Về mặc định sau khi kết thúc một câu lệnh sử dụng hàm print cơ bản không option, thì kết quả hiển thị ra màn hình sẽ tự động in xuống dòng trong python.

Câu hỏi đặt ra là vậy để in không xuống dòng trong python chúng ta phải làm thế nào?

Cách làm rất đơn giản, chúng ta cần thêm option bằng cách chỉ định thêm tham số endtrong hàm print như sau:

print(line, end='')

Bằng cách thêm tham số end=” vào hàm print như trên, các kết quả sẽ được in không xuống dòng trong python như ví dụ sau:

# in không xuống dòng trong python
print("Việt Nam ", end='')
print("vô địch")

Kết quả in không xuống dòng trong python:

Việt Nam vô địch

XIV. Bài Tập Về Kiểu Dữ Liệu Trong Python

Trong bài này mình sẽ tổng hợp các bài tập Python thực hành với các kiểu dữ liệu như kiểu mảng list, tuple, set, dictionary. Đây là những bài tập ở mức cơ bản dành cho newbie.

Bài 01:

Câu hỏi:

Viết chương trình tìm tất cả các số chia hết cho 7 nhưng không phải bội số của 5, nằm trong đoạn 2000 và 3200 (tính cả 2000 và 3200). Các số thu được sẽ được in thành chuỗi trên một dòng, cách nhau bằng dấu phẩy.

Gợi ý:

Sử dụng range(#begin, #end)

Code mẫu:

j=[]
for i in range(2000, 3201):
    if (i%7==0) and (i%5!=0):
        j.append(str(i))
print (','.join(j))

Bài 02:

Câu hỏi:

Viết một chương trình có thể tính giai thừa của một số cho trước. Kết quả được in thành chuỗi trên một dòng, phân tách bởi dấu phẩy. Ví dụ, số cho trước là 8 thì kết quả đầu ra phải là 40320.

Gợi ý:

Trong trường hợp dữ liệu đầu vào được cung cấp, bạn hãy chọn cách để người dùng nhập số vào.

Code mẫu:

x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
    if x == 0:
        return 1
    return x * fact(x - 1)
print (fact(x))

Bài 03:

Câu hỏi:

Với số nguyên n nhất định, hãy viết chương trình để tạo ra một dictionary chứa (i, i*i) như là số nguyên từ 1 đến n (bao gồm cả 1 và n) sau đó in ra dictionary này. Ví dụ: Giả sử số n là 8 thì đầu ra sẽ là: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}.

Gợi ý:

Viết lệnh yêu cầu nhập số nguyên n.

Code mẫu:

n=int(input("Nhập vào một số:"))
d=dict()
for i in range(1,n+1):
    d[i]=i*i
    #Code by Quantrimang.com

print (d)

Bài 04:

Câu hỏi:

Viết chương trình chấp nhận một chuỗi số, phân tách bằng dấu phẩy từ giao diện điều khiển, tạo ra một danh sách và một tuple chứa mọi số.

Ví dụ: Đầu vào được cung cấp là 34,67,55,33,12,98 thì đầu ra là:

[’34’, ’67’, ’55’, ’33’, ’12’, ’98’]
(’34’, ’67’, ’55’, ’33’, ’12’, ’98’)

Gợi ý:

Viết lệnh yêu cầu nhập vào các giá trị sau đó dùng quy tắc chuyển đổi kiểu dữ liệu để hoàn tất.

Code mẫu:

values=input("Nhập vào các giá trị:")
l=values.split(",")
t=tuple(l)
print (l)
print (t)
Bài Tập Về Kiểu Dữ Liệu Trong Python
Bài Tập Về Kiểu Dữ Liệu Trong Python

 

The post Các Kiểu Dữ Liệu Trong Python first appeared on Techacademy.

source https://techacademy.edu.vn/cac-kieu-du-lieu-trong-python/

Mảng Trong Python

Mảng trong Python là loại cấu trúc dữ liệu có thể chứa nhiều giá trị cùng kiểu. Thông thường, chúng bị hiểu sai thành những lists hoặc mảng Numpy. Về mặt kỹ thuật, mảng trong Python khác với cả hai khái niệm trên. Trong bài viết này, hãy cùng tìm hiểu xem mảng trong Python là gì và cách triển khai nó nhé!

I. Mảng Trong Python Là Gì

Mảng về cơ bản là 1 cấu trúc dữ liệu có thể chứa nhiều giá trị cùng một lúc. Nó là một tập hợp hoặc một loạt những phần tử (có thứ tự) cùng loại. Ví dụ:

a=arr.array('d',[1.2,1.3,2.3])

Chúng ta có thể chạy vòng lặp qua các mảng một cách dễ dàng và tìm nạp các giá trị cần thiết bằng cách xác định số chỉ mục (index number). Mảng cũng có thể thay đổi, do đó, bạn có thể thực hiện các thao tác khác nhau theo yêu cầu.

Mảng Trong Python Là Gì
Mảng Trong Python Là Gì

II. Khai Báo Mảng Trong Python

Để tạo mảng, các bạn cần nhập mô-đun array. Chẳng hạn:

import array as arr

a = arr.array(‘d’,[1.2, 3.6, 4.6])

print(a)

Code trên tạo mảng có kiểu float. Chữ ‘d’ là mã kiểu, quyết định kiểu của mảng trong quá trình tạo. Dưới đây bảng thống kê các kiểu mã phổ biến nhất trong Python:

Mã kiểu C Type Python Type Kích thước tối thiểu tính theo byte
‘b’ signed char int 1
‘B’ unsigned char int 1
‘u’ Py_UNICODE Unicode character 2
‘h’ signed short int 2
‘H’ unsigned short int 2
‘i’ signed int int 2
‘I’ unsigned int int 2
‘l’ signed long int 4
‘L’ unsigned long int 4
‘f’ float float 4
‘d’ double float 8
Khai Báo Mảng Trong Python
Khai Báo Mảng Trong Python

III. Nhập Mảng Trong Python

Chúng ta sử dụng index để truy cập đến các phần tử của mảng. Index cũng bắt đầu từ 0, tương tự như trong list Python.

import array as arr 
a = arr.array('i', [2, 4, 6, 8]) 

print("Phần tử đầu tiên:", a[0]) 
print("Phần tử thứ 2:", a[1]) 
print("Phần tử cuối cùng:", a[-1])

Chạy chương trình trên ta được:

Phần tử đầu tiên: 2
Phần tử thứ 2: 4
Phần tử cuối cùng: 8

Bạn có thể truy cập vào một dải phần tử trong mảng, sử dụng toán tử cắt lát :.

import array as arr 

numbers_list = [5, 85, 65, 15, 95, 52, 36, 25] 
numbers_array = arr.array('i', numbers_list) 

print(numbers_array[2:5]) # Phần tử thứ 3 đến 5 
print(numbers_array[:-5]) # Phần tử đầu tiên đến 4 
print(numbers_array[5:]) # Phần tử thứ 6 đến hết 
print(numbers_array[:]) # Phần tử đầu tiên đến cuối cùng

Khi bạn chạy code trên sẽ nhận được output là:

array('i', [65, 15, 95])
array('i', [5, 85, 65])
array('i', [52, 36, 25])
array('i', [5, 85, 65, 15, 95, 52, 36, 25])
Nhập Mảng Trong Python
Nhập Mảng Trong Python

IV. Duyệt Mảng Trong Python

NumPy package chứa vòng lặp numpy.nditer. Là vòng lặp đa chiều hiệu quả bằng cách sử dụng nó có thể lặp lại trên một mảng. Mỗi phần tử của một mảng được truy cập bằng giao diện Iterator tiêu chuẩn của Python.

Ví dụ 1 :

import numpy as np
a = np.arange(0,60,5)
a = a.reshape(3,4)

print 'Original array is:'
print a
print '\n'

print 'Modified array is:'
for x in np.nditer(a):
   print x,

Kết quả :

Original array is:
[[ 0 5 10 15]
 [20 25 30 35]
 [40 45 50 55]]

Modified array is:
0 5 10 15 20 25 30 35 40 45 50 55

Ví dụ 2 :

import numpy as np 
a = np.arange(0,60,5) 
a = a.reshape(3,4) 
   
print 'Original array is:'
print a 
print '\n'  
   
print 'Transpose of the original array is:' 
b = a.T 
print b 
print '\n'  
   
print 'Modified array is:' 
for x in np.nditer(b): 
   print x,

Kết quả :

Original array is:
[[ 0 5 10 15]
 [20 25 30 35]
 [40 45 50 55]]

Transpose of the original array is:
[[ 0 20 40]
 [ 5 25 45]
 [10 30 50]
 [15 35 55]]

Modified array is:

0 5 10 15 20 25 30 35 40 45 50 55

1. Thứ tự lặp lại :

Nếu các phần tử giống nhau được lưu trữ bằng cách sử dụng thứ tự kiểu F, trình vòng lặp sẽ chọn cách hiệu quả hơn để lặp qua một mảng.

Ví dụ 1 :

import numpy as np
a = np.arange(0,60,5)
a = a.reshape(3,4)
print 'Original array is:'
print a
print '\n'

print 'Transpose of the original array is:'
b = a.T
print b
print '\n'

print 'Sorted in C-style order:'
c = b.copy(order = 'C')
print c
for x in np.nditer(c):
   print x,

print '\n'

print 'Sorted in F-style order:'
c = b.copy(order = 'F')
print c
for x in np.nditer(c):
   print x,

Kết quả :

Original array is:
[[ 0 5 10 15]
 [20 25 30 35]
 [40 45 50 55]]

Transpose of the original array is:
[[ 0 20 40]
 [ 5 25 45]
 [10 30 50]
 [15 35 55]]

Sorted in C-style order:
[[ 0 20 40]
 [ 5 25 45]
 [10 30 50]
 [15 35 55]]
0 20 40 5 25 45 10 30 50 15 35 55

Sorted in F-style order:
[[ 0 20 40]
 [ 5 25 45]
 [10 30 50]
 [15 35 55]]
0 5 10 15 20 25 30 35 40 45 50 55

Ví dụ 2 :

Có thể buộc đối tượng nditer sử dụng một thứ tự cụ thể bằng cách đề cập rõ ràng đến nó.

import numpy as np 
a = np.arange(0,60,5) 
a = a.reshape(3,4) 

print 'Original array is:' 
print a 
print '\n'  

print 'Sorted in C-style order:' 
for x in np.nditer(a, order = 'C'): 
   print x,  
print '\n' 

print 'Sorted in F-style order:' 
for x in np.nditer(a, order = 'F'): 
   print x,

Kết quả :

Original array is:
[[ 0 5 10 15]
 [20 25 30 35]
 [40 45 50 55]]

Sorted in C-style order:
0 5 10 15 20 25 30 35 40 45 50 55

Sorted in F-style order:
0 20 40 5 25 45 10 30 50 15 35 55

2. Sửa đổi giá trị mảng

Đối tượng nditer có một tham số tùy chọn khác được gọi là op_flags. Giá trị mặc định của nó là chỉ đọc, nhưng có thể được đặt ở chế độ chỉ đọc-ghi hoặc chỉ ghi. Điều này sẽ cho phép sửa đổi các phần tử mảng bằng cách sử dụng trình lặp này.
Ví dụ :

import numpy as np
a = np.arange(0,60,5)
a = a.reshape(3,4)
print 'Original array is:'
print a
print '\n'

for x in np.nditer(a, op_flags = ['readwrite']):
   x[...] = 2*x
print 'Modified array is:'
print a

Kết quả :

Original array is:
[[ 0 5 10 15]
 [20 25 30 35]
 [40 45 50 55]]

Modified array is:
[[ 0 10 20 30]
 [ 40 50 60 70]
 [ 80 90 100 110]]

3. Vòng lặp ngoài :

Phương thức khởi tạo lớp nditer có tham số ‘flags’, có thể nhận các giá trị sau:
  1. c_index : index C_order có thể được theo dõi
  2. f_index : index Fortran_order được theo dõi
  3. multi-index : Có thể theo dõi loại index có một index cho mỗi lần lặp lại
  4. external_loop : các giá trị được cung cấp là mảng một chiều có nhiều giá trị thay vì mảng không chiều
Ví dụ :
import numpy as np 
a = np.arange(0,60,5) 
a = a.reshape(3,4) 

print 'Original array is:' 
print a 
print '\n'  

print 'Modified array is:' 
for x in np.nditer(a, flags = ['external_loop'], order = 'F'):
   print x,

Kết quả :

Original array is:
[[ 0 5 10 15]
 [20 25 30 35]
 [40 45 50 55]]

Modified array is:
[ 0 20 40] [ 5 25 45] [10 30 50] [15 35 55]

4. Con trỏ Broadcasting :

Nếu hai mảng có thể broadcast, một đối tượng nditer kết hợp có thể lặp lại chúng đồng thời. Giả sử rằng một mảng a có kích thước 3X4 và có một mảng b khác có kích thước 1X4, trình lặp kiểu sau sẽ được sử dụng (mảng b được broadcast với kích thước là a).

Ví dụ :

import numpy as np 
a = np.arange(0,60,5) 
a = a.reshape(3,4) 

print 'First array is:' 
print a 
print '\n'  

print 'Second array is:' 
b = np.array([1, 2, 3, 4], dtype = int) 
print b  
print '\n' 

print 'Modified array is:' 
for x,y in np.nditer([a,b]): 
   print "%d:%d" % (x,y),

Kết quả :

First array is:
[[ 0 5 10 15]
 [20 25 30 35]
 [40 45 50 55]]

Second array is:
[1 2 3 4]

Modified array is:
0:1 5:2 10:3 15:4 20:1 25:2 30:3 35:4 40:1 45:2 50:3 55:4
Duyệt Mảng Trong Python
Duyệt Mảng Trong Python

V. Nối Mảng Trong Python

Mảng cũng có thể được hợp nhất bằng cách thực hiện nối mảng. Bất kỳ hai mảng nào cũng có thể được hợp nhất với ký tự “+”.

Ví dụ:

a=arr.array('d',[1.1 , 2.1 ,3.1,2.6,7.8])
b=arr.array('d',[3.7,8.6])
c=arr.array('d')
c=a+b
print("Array c = ",c)

Kết quả:

Array c= array(‘d’, [1.1, 2.1, 3.1, 2.6, 7.8, 3.7, 8.6])

Có thể thấy, mảng c là sự kết hợp các phần tử của mảng a và b.

Nối Mảng Trong Python
Nối Mảng Trong Python

VI. Sắp Xếp Mảng Trong Python

Hãy viết chương trình Python sắp xếp các phần tử trong mảng theo thứ tự tăng dần và giảm dần, danh sách các phần tử do người dùng nhập vào và đó phải là danh sách các số nguyên.

Qua bài tập sắp xếp mảng Python này sẽ giúp bạn hiểu được thuật toán sắp xếp nổi bọt, bằng cách sử dụng hai vòng lặp for lồng nhau để sắp xếp thứ tự cho chúng.

Thuật toán này khá đơn giản cho trường hợp sắp xếp tăng dần như sau:

  • Vòng lặp 1 sẽ lặp qua lần lượt các phần tử trong mảng,
  • Mỗi lần lặp sẽ lặp tiếp các phần tử phía sau bằng cách sử dụng thêm một vòng lặp nữa,
  • Nếu có phần tử phía sau nào bé hơn phần tử đang lặp ở vòng 1 thì đổi vị trí cho chúng.
  • Cứ như vậy cho tới khi vòng lặp 1 kết thúc thì ta thu được kết quả

Trường hợp sắp xếp giảm dần thì ta chỉ cần đổi điều kiện từ bé hơn sang lớn hơn.

Để đơn giản hóa thì trong bài giải này mình chỉ làm trường hợp sắp xếp tăng dần thôi nhé.

Xem chương trình mẫu dưới đây:

# SẮP XẾP TĂNG DẦN
 
numbers = [3,45,2,46,5,25,65,8,57,67]
lenth = len(numbers)
 
# Lặp từ phần tử đầu đến kế cuối,
# Vì khi đến phần tử cuối là đã sắp xếp thànhcông
for i in range(0, lenth - 1):
    for j in range(i + 1, lenth):
        if (numbers[i] > numbers[j]):
            # Hoán đổi vị trí
            tmp = numbers[i]
            numbers[i] = numbers[j]
            numbers[j] = tmp
 
print(numbers)
# Kết quả: [2, 3, 5, 8, 25, 45, 46, 57, 65, 67]

Áp dụng vào chương trình chính:

# Học Python tại Freetuts.net
# Author: Cường Nguyễn
 
# SẮP XẾP TĂNG DẦN
def sap_xep_tang_dan(numbers):
 
    lenth = len(numbers)
 
    # Lặp từ phần tử đầu đến kế cuối,
    # Vì khi đến phần tử cuối là đã sắp xếp thànhcông
    for i in range(0, lenth - 1):
        for j in range(i + 1, lenth):
            if (numbers[i] > numbers[j]):
                # Hoán đổi vị trí
                tmp = numbers[i]
                numbers[i] = numbers[j]
                numbers[j] = tmp
 
    return numbers
 
# Chương trình chính
print("Chương trình sắp xếp mảng Python")
print("Bạn muốn tạo mảng có bao nhiêu phần tử", end=":")
 
length = int(input())
numbers = []
 
for i in range(0, length):
    print("Nhập phần tử thứ ", (i + 1), end=":")
    numbers.append(int(input()))
 
print("Mảng trước khi sắp xếp")
print(numbers)
 
print("Mảng sau khi sắp xếp")
print(sap_xep_tang_dan(numbers))

Chạy lên kết quả sẽ như sau:

Sắp Xếp Mảng Trong Python
Sắp Xếp Mảng Trong Python

VII. Đảo Ngược Mảng Trong Python

Hướng dẫn tất cả cách đảo ngược list trong python. Bạn sẽ học được tất cả cách đảo ngược list trong python bằng cách sử dụng phương thức reverse()hàm reverse trong python cũng như bằng cách cắt (slice) list python sau bài học này.

Chúng ta có 3 phương pháp để đảo ngược list trong python như sau:

  • Phương thức reverse() : đảo ngược list ban đầu trong python
  • Cắt (slice) list : Đảo ngược list và tạo ra một list mới
  • Hàm reverse trong python : Đảo ngược list và tạo ra một trình lặp

Chúng ta sẽ cùng tìm hiểu các phương pháp này ở dưới đây:

Đảo ngược list ban đầu trong python| Phương thức reverse()

Phương thức reverse() trong python sẽ đảo ngược thứ tự các phần tử trong list ban đầu. Đây là một quá trình tự phá hủy (Destructive processing) và tái tạo lại list ban đầu với các phần tử theo thứ tự ngược lại.

Chúng ta sử dụng Phương thức reverse() trong python với cú pháp sau đây:

orinary_list . reverse ()

Trong đó orinary_list là list ban đầu cần đảo ngược lại.

Ví dụ, chúng ta dùng Phương thức reverse() để đảo ngược một dãy số trong python như sau:

orinary_list = [1, 2, 3, 4, 5]

orinary_list.reverse()
print(orinary_list)
#>> [5, 4, 3, 2, 1]

Tương tự chúng ta sử dụng reverse() để đảo ngược list trong python phần tử là chuỗi như sau:

mylist = ['Ali' , 'Bob' , 'Eva' , 'Adam']
mylist.reverse()
print(mylist)
#>> ['Adam', 'Eva', 'Bob', 'Ali']

Lưu ý, sau khi thực hiện phương thức reverse() thì list ban đầu sẽ bị thay đổi, nhưng bản thân phương thức reverse() sẽ trả về giá trị None như sau:

print(org_list.reverse())
# None

Nếu không biết kết quả trả về của phương thức reverse() là None, bạn rất dễ mắc lỗi logic trong chương trình. Ví dụ như khi muốn in ra list đảo ngược trong python, thay vì in list đã được đảo ngược bằng reverse() thì bạn lại in ra kết quả của phương thức reverse() như sau:

l = ['a' , 'b', 'c']

# Cách in sai:
print(l.reverse())
#>> None.

# Cách in đúng:
l.reverse()
print(l)
#>> ['a', 'b', 'c']

Đảo ngược list và tạo ra một list mới trong python | Cắt (slice) list

Chúng ta cũng có thể ứng dụng chức năng cắt (slice) list để đảo ngược list trong python.

Nếu chúng ta chỉ định đối số step = -1 khi Cắt (slice) list trong python , list được cắt ra sẽ có thứ tự ngược lại với list ban đầu. Lợi dụng tính chất này, chúng ta có thể đảo ngược list trong python như ví dụ sau:

orinary_list = [1, 2, 3, 4, 5]
new_list = orinary_list[::-1]

print(org_list)
print(new_list)
# [1, 2, 3, 4, 5]
# [5, 4, 3, 2, 1]

Lưu ý là khác với phương thức resort() ở trên, khi cắt (slice) list chúng ta sẽ tạo ra một list mới có phần tử ngược lại với list ban đầu, còn bản thân list ban đầu thì không bị thay đổi.

Đảo ngược list và tạo ra trình lặp trong python | hàm reversed trong python

Hàm reversed trong python là một hàm cài đặt sẵn trong python, có chức năng lấy các phần tử trong list chỉ định và tạo ra một trình lặp với thứ tự các phần tử trong đó ngược lại với list ban đầu.

Kết hợp sử dụng hàm list() trong python, chúng ta có thể chuyển trình lặp – kết quả của hàm reversed() thành một list mới, với thứ tự phần tử ngược với list ban đầu.

Chúng ta sử dụng hàm reversed() trong python với cú pháp sau đây:

list_iterator = reversed ( orginary_list )

Trong đó orginary_list là list ban đầu cần đảo thứ tự và list_iterator là trình lặp được tạo ra.

Ví dụ cụ thể:

orginary_list = ['a' , 'b', 'c' , 'd' , 'e']
print(orginary_list)
#>> ['a' , 'b', 'c' , 'd' , 'e']

list_iterator = reversed(orginary_list)
print(list_iterator)
#>> <list_reverseiterator object at 0x14d5e9b41340>

Lưu ý là hàm reversed() sẽ trả về một trình lặp chứ không phải là một list. Do đó khi in trình lặp ra thì kết quả sẽ như ở trên. Để lấy và in ra các phần tử trong trình lặp, chúng ta cần phải dùng vòng lặp for như sau:

for i in list_iterator:
    print(i)
#>> e
#>> d
#>> c
#>> b
#>> a

Kết hợp với hàm list() trong python, chúng ta có thể biến trình lặp ở trên thành một list mới có thứ tự phần tử ngược lại với list ban đầu như sau:

new_list = list(list_iterator)
print(new_list)
#>>['e', 'd', 'c', 'b', 'a']

Một cách tổng quát, chúng ta đảo ngược list trong python bằng hàm reversed() với cách viết như sau:

orginary_list = ['a' , 'b', 'c' , 'd' , 'e']
new_list = list(reversed(orginary_list))

print(orginary_list)
print(new_list)
#>> ['a', 'b', 'c', 'd', 'e']
#>> ['e', 'd', 'c', 'b', 'a']
Đảo Ngược Mảng Trong Python
Đảo Ngược Mảng Trong Python

VIII. Tính Tổng Trong Mảng Python

Hàm tích hợp sẵn sum() trong Python trả về tổng tất cả các số trong iterable.

Cú pháp hàm sum()

sum(iterable, start)

Hàm sum() bắt đầu cộng từ trái qua phải

  • iterable: các iterable được tích hợp sẵn (như list, string, dict) cần tính tổng, thường là các số.
  • start: giá trị được cộng thêm vào giá trị trả về từ iterable. Giá trị mặc định là 0.

Giá trị trả về từ sum()

Hàm sum() trả về tổng của start và các item thành phần của iterable.

Ví dụ: Cách sum() hoạt động trong Python

numbers = [2.5, 3, 4, -5]

# không truyền tham số start 
numbersSum = sum(numbers)
print(numbersSum)

# start = 10
numbersSum = sum(numbers, 10)
print(numbersSum)

Chạy chương trình, kết quả trả về là:

4.5
14.5
Tính Tổng Trong Mảng Python
Tính Tổng Trong Mảng Python

IX. Các Thao Tác Với Mảng Trong Python

Thay đổi giá trị của phần tử

Như ta biết, list bản chất là array nên mỗi phần tử sẽ có một chỉ số đánh dấu riêng, vị trí đầu tiên là 0, tiếp theo là 1, 2, 3, 4, … Ví dụ bạn có một List gồm 5 phần tử thì lần lược chỉ số đánh dấu của các phần tử là: 0, 1, 2, 3, 4. Như vậy để thay đổi giá trị của phần tử nào thì ta sẽ dựa vào số chỉ mục đánh dấu này.

Ví dụ

thislist = ["apple", "banana", "cherry"]
thislist[1] = "blackcurrant"
print(thislist)

Kết quả:

['apple', 'blackcurrant', 'cherry']

Đếm chiều dài của mảng

Để đếm chiều dài của mảng thì ta sử dụng hàm len.

thislist = ["apple", "banana", "cherry"]
print(len(thislist))

Kết quả:

3

Lặp qua từng phần tử

Để lặp qua từng phần tử thì ta sư dụng vòng lặp for hoặc vòng lặp while, kết hợp với hàm len để đếm tổng số phần tử của List.

Ví dụ

fruits = ['banana', 'apple',  'mango']
for index in range(len(fruits)):
   print 'Current fruit :', fruits[index]

Có một cách đơn giản hơn là bạn sử dụng cú pháp basic như sau:

fruits = ['banana', 'apple',  'mango']
for fruit in fruits: 
   print 'Fruit :', fruit

Kiểm tra một giá trị có tồn tại trong mảng

Ta phải sử dụng lênh if để kiểm tra. Như ví dụ dưới đây kiểm tra chuỗi “Apple” có tồn tại trong list không.

thislist = ["apple", "banana", "cherry"]
if "apple" in thislist:
  print("Apple có trong danh sách này")

Thêm phần tử vào mảng

Nếu PHP sử dụng cú pháp $var[] = value để thêm một phần tử vào array thì trong Python phải sử dụng phương thức append của List.

thislist = ["apple", "banana", "cherry"]
thislist.append("orange")
print(thislist)

Kết quả:

['apple', 'banana', 'cherry', 'orange']

Xóa phần tử ra khỏi mảng

Cách 1: Để xóa một phần tử ra khỏi List thì ta sử dụng phương thức remove() được tích hợp sẵn trong List.

thislist = ["apple", "banana", "cherry"]
thislist.remove("banana")
print(thislist)

Chương trình này sẽ xóa phần tử có giá trji là “banana”.

Cách 2: Nếu bạn muốn xóa phần tử có số thứ tự index nào đó thì sử dụng phương thức pop(). Nếu bạn không truyền index vào thì mặc định nó sẽ xóa phần tử cuối cùng.

thislist = ["apple", "banana", "cherry"]
thislist.pop(1)
print(thislist)

Chương trình này sẽ xóa phần tử có index = 1, tức là “banana”.

Cách 3: Sử dụng từ khóa del

thislist = ["apple", "banana", "cherry"]
del thislist[<em>0</em>]
print(thislist)

Từ khóa del còn có thể xóa toàn bộ phần tử như sau.

thislist = ["apple", "banana", "cherry"]
del thislist

Thiết lập List rỗng

Để thiết lập list rỗng thì bạn sử dụng phương thức clear().

thislist = ["apple", "banana", "cherry"]
thislist.clear()
print(thislist)
Các Thao Tác Với Mảng Trong Python
Các Thao Tác Với Mảng Trong Python

The post Mảng Trong Python first appeared on Techacademy.

source https://techacademy.edu.vn/mang-trong-python/

Split Trong Python

Python là ngôn ngữ lập trình có nhiều kiểu dữ liệu khác nhau trong đó bao gồm các chuỗi – string. Mặc dù chuỗi là một thành phần bất biến, chúng ta vẫn có thể thực hiện thao tác trên một chuỗi string sử dụng hàm split. Hàm này sẽ chia nhỏ các chuỗi lớn thành các chuỗi nhỏ hơn sử dụng các tham số khác nhau. Trong bài viết này ta sẽ tìm hiểu cách sử dụng hàm split trong Python.

I. Cắt Chuỗi Trong Python Sử Dụng Hàm Nào

Hướng dẫn cách cắt chuỗi trong python. Bạn sẽ học được cách cắt (slice) một chuỗi thành các chuỗi nhỏ hơn bằng cách dùng chức năng cắt (slice) trong python sau bài học này.

Để cắt (slice) chuỗi trong python , chúng ta sử dụng chức năng cắt (slice) trong python hay còn gọi là slice string python như sau:

Cú pháp cắt (slice) chuỗi trong python

Chúng ta sẽ chỉ định vị trí bắt đầu cắt chuỗi và vị trí kết thúc từ chuỗi ban đầu để lấy chuỗi con ra, theo cú pháp dưới đây:

str [ vị trí bắt đầu cắt : vị trí kết thúc cắt ]

Trong đó:

  • str là chuỗi cần cắt
  • vị trí bắt đầu cắt là index của ký tự bắt đầu cắt chuỗi
  • vị trí kết thúc cắt là index của ký tự kết thúc cắt chuỗi cộng thêm 1 đơn vị

🌟 Cần chú ý do chuỗi được cắt ra không bao gồm ký tự ở vị trí kết thúc cắt, nên khi chỉ định vị trí kết thúc cắt chúng ta cần cộng thêm 1 đơn vị. Như thế, chuỗi cắt ra sẽ bao gồm cả ký tự ở vị trí kết thúc cắt.

🌟 Về cách đánh số index của ký tự trong chuỗi, bắt đầu đánh số index của ký tự ngoài cùng tay trái bằng 0, sau đó cộng thêm 1 và tiến dần về phía bên phải. Lưu ý là đánh số index bắt đầu từ 0 chứ không phải từ 1 nhé.

 Cắt Chuỗi Trong Python Sử Dụng Hàm Nào
Cắt Chuỗi Trong Python Sử Dụng Hàm Nào

II. Split Trong Python Là Gì

Chuỗi trong Python đại diện cho các giá trị ký tự unicode. Python không có kiểu dữ liệu ký tự, vì vậy kiểu ký tự đơn cũng được coi là một chuỗi.

Chúng ta sử dụng các ngoặc đơn hoặc ngoặc đôi để khai báo dữ liệu. Để truy cập một chuỗi, chúng ta sử dụng chỉ mục và dấu ngoặc vuông. Vì các chuỗi là các thành phần bất biến nên chúng ta không thể thực hiện thay đổi sau khi đã khai báo chúng.

Ví dụ:

name = "Edureka"

print(name[0])

Output: E

Mặc dù không thể thay đổi chuỗi sau khi thực hiện khai báo, ta vẫn có thể chia tách chuỗi string trong Python.

Split Trong Python Là Gì
Split Trong Python Là Gì

III. Cú Pháp Của Split() Trong Python

Hàm split() trong Python chia chuỗi theo delimeter đã cho (là space nếu không được cung cấp) và trả về danh sách các chuỗi con; nếu bạn cung cấp đối số num thì chia chuỗi thành num + 1 chuỗi con.

Cú pháp của split() trong Python:

str.split(str="", num=string.count(str))

Chi tiết về tham số:

  • str: Đây là bất kỳ phân chia chuỗi – delimeter nào, mặc định là khoảng trống.
  • num: Số chuỗi con num + 1 được tạo ra.

Ví dụ sau minh họa cách sử dụng của split() trong Python.

str1 = "Line1-Python Line2-Java Line3-PHP";
 
print("Test 1:");
arr1 = str1.split();
for arr in arr1:
    print (arr);
 
print("\nTest 2:");
arr1 = str1.split(' ', 1);
for arr in arr1:
    print (arr);

Chạy chương trình Python trên sẽ cho kết quả:

Test 1:
Line1-Python
Line2-Java
Line3-PHP

Test 2:
Line1-Python
Line2-Java Line3-PHP
Cú Pháp Của Split() Trong Python
Cú Pháp Của Split() Trong Python

IV. Hàm Join Và Split Trong Python

Hàm join() trong Python nối chuỗi các biểu diễn chuỗi của các phần tử trong dãy seq thành một chuỗi.

Cú pháp của join() trong Python:

str.join(sequence)

Các tham số:

  • sequence: Đây là dãy các phần tử để được kết hợp.

Ví dụ sau minh họa cách sử dụng của join() trong Python.

s = ", "
seq = ("Java", "Python", "PHP")
print (s.join(seq))

Chạy chương trình Python trên sẽ cho kết quả −

Java, Python, PHP
Hàm Join Và Split Trong Python
Hàm Join Và Split Trong Python

V. Tách Chuỗi Trong Python

Hướng dẫn cách tách chuỗi trong python. Bạn sẽ học được cách tách chuỗi trong python bằng các phương thức có sẵn như split và splitlines trong bài viết này.

Tách chuỗi trong python bằng phương thức split

Chúng ta sử dụng phương thức split để tách chuỗi trong python bằng một ký tự phân cách và thu về kết quả là một list có các phần tử là các chuỗi nhỏ vừa được tách ra, với cú pháp sau đây:

str.split(sep, maxsplit)

Trong đó :

  • sep (viết tắt của separator) là ký tự phân cách dùng để tách chuỗi str ban đầu ra các chuỗi nhỏ. Nếu không chỉ định thì python mặc định sep là ký tự trống.
  • maxsplit là số lần tách lớn nhất. Nếu không chỉ định thì python mặc định số lần tách là vô hạn.

Cách sử dụng phương thức split thực tiễn giống như ví dụ sau:

Tách chuỗi trong python bằng phương thức split rút gọn

Chúng ta rút gọn các đối số sep và maxsplit như cú pháp dưới đây

str.split()

Ví dụ 1

print("My First Love".split())
#>> ['My', 'First', 'Love']

Ở ví dụ này, ký tự phân tách được rút gọn nên python mặc định nó là ký tự trống. Sau khi tách chuỗi ‘My First Love’ bằng ký tự trống, một list mới được tạo ra có phần tử là 3 chuỗi nhỏ thu về là My, First và Love .

Ví dụ 2

print("  Next  Page  ".split())
#>> ['Next', 'Page']

Ở ví dụ thứ hai, chúng ta sẽ tách chuỗi ‘ Next Page ‘ có cấu trúc _ _ Next _ _ Page_ _ , với mỗi ký tự _ đại diện cho một ký tự trống ‘ ‘cho dễ nhìn.

Ở đây ký tự phân tách cũng được rút gọn và chúng ta cũng dùng ký tự trống để tách chuỗi ‘ Next Page ‘. Tuy nhiên khi chúng ta dùng phương thức split mà không chỉ định ký tự phân tách thì các ký tự trống liên tiếp sẽ chỉ được coi là một ký tự trống.

Ngoài ra ký tự trống ở đầu và cuối của chuỗi cũng sẽ được bỏ qua khi chúng ta dùng phương thức split mà không chỉ định ký tự phân tách.

Do trong chuỗi ‘ Next Page ‘ tồn tại hai ký tự trống liên tiếp nhau ở giữa chuỗi , nên hai ký tự trống này chỉ được coi là một ký tự trống và được dùng để tách chuỗi. Ngoải ra, trong chuỗi cũng tồn tại các ký tự trống ở đầu và cuối chuỗi, nên các ký tự trống này sẽ bị bỏ qua.

Kết quả, một list mới được tạo ra có phần tử chỉ là 2 chuỗi nhỏ là ‘Next’ và ‘Page’ mà thôi.

Ví dụ 3

print("Apple\tOrange\tLemon".split())
#>> ['Apple', 'Orange', 'Lemon']

Ở ví dụ thứ ba, chúng ta đã dùng chuỗi thoát \t để biểu diễn ký tự trống ‘ ‘ tạo bởi tab trong chuỗi ‘Apple\tOrange\tLemon’. Do đó chuỗi này cũng sẽ được tách bằng ký tự trống, và một list mới được tạo ra có phần tử là 3 chuỗi nhỏ thu về là Apple,Orange và Lemon

Tách chuỗi trong python bằng phương thức split chỉ định ký tự phân cách

Chúng ta chỉ định ký tự phân cách sep như cú pháp dưới đây

str.split(sep)

Chúng ta có thể chỉ định sep là một ký tự, hay một chuỗi ký tự đều được.

Ví dụ 1

print("Orange,Lemon,Apple".split(","))
#>> ['Orange', 'Lemon', 'Apple']

print("Red*-*Blue*-*Green".split("*-*"))
#>> ['Red', 'Blue', 'Green']

Trong hai ví dụ trên, chúng ta đã dùng một ký tự hoặc một chuỗi ký tự để tách chuỗi ban đầu ra các chuỗi nhỏ và tạo ra một list mới chứa chúng.

Ví dụ 2

print("  Next  Page  ".split(" "))
#>> ['', '', 'Next', '', 'Page', '', '']

Hãy chú ý vào ví dụ 2 này. Mặc dù chuỗi ‘ Next Page ‘ có chứa các ký tự trống liên tiếp ‘ ‘ cũng như ký tự trống ở đầu và cuối chuỗi, nhưng trong trường hợp chúng ta chỉ định ký tự phân cách thì kết quả sẽ rất khác so với khi không chỉ định ký tự phân cách.

Nếu có chỉ định ký tự phân cách như trên, các ký tự trống liên tiếp sẽ được coi như ký tự riêng biệt chứ không bị coi là một ký tự trống như với trường hợp không chỉ định ký tự phân cách. Và các ký tự trống ở đầu và cuối chuỗi cũng sẽ không bị bỏ qua khi xử lý. Do đó, chuỗi ‘ Next Page ‘ sẽ được chia ra ra các chuỗi nhỏ là ‘ ‘, ‘ ‘, Next, ‘ ‘ , Page và ‘ ‘ như kết quả ở trên.

Hãy cùng xem thêm một vài trường hợp khác như dưới đây:

print("Next Page".split(" "))
#>> ['Next', 'Page']

print("Next  Page".split(" "))
#>> ['Next', '', 'Page']

print("Next   Page".split(" "))
#>> ['Next', '', '', 'Page']

print(" Next Page ".split(" "))
#>> ['', 'Next', 'Page', '']

Tách chuỗi trong python bằng phương thức split chỉ định số lần tách lớn nhất

Chúng ta chỉ định ký tự phân cách lớn nhất maxsplit như cú pháp dưới đây

str.split(maxsplit)

Khi đó chuỗi sẽ được tách với số lần lớn nhất bằng với maxsplit, như các ví dụ dưới đây:

print("A B C D E".split(" "))
#>> ['A', 'B', 'C', 'D', 'E']

print("A B C D E".split(" ", 1))
#>> ['A', 'B C D E']

print("A B C D E".split(" ", 2))
#>> ['A', 'B', 'C D E']

print("A B C D E".split(" ", 3))
#>> ['A', 'B', 'C', 'D E']

print("A B C D E".split(" ", 4))
#>> ['A', 'B', 'C', 'D', 'E']

print("A B C D E".split(" ", 8))
#>> ['A', 'B', 'C', 'D', 'E']

Lưu ý ở ví dụ cuối cùng, chúng ta đã chỉ định maxsplit lớn hơn số ký tự có trong chuỗi cần tách. Mặc dù có thể chỉ định maxsplit vô hạn, nhưng python cũng chỉ có thể cắt ra số chuỗi lớn nhất chính bằng độ dài chuỗi đó mà thôi.

Tách chuỗi trong python bằng phương thức splitlines

Chúng ta sử dụng phương thức splitlines để tách chuỗi trong python bằng một ký tự xuống dòng nếu như ký tự xuống dòng này tồn tại trong chuỗi, và thu về kết quả là một list có các phần tử là các chuỗi nhỏ vừa được tách ra, với cú pháp sau đây:

str.splitlines([keepends])

Các ký tự xuống dòng sẽ không được bao gồm trong danh sách kết quả trừ khi chúng ta chỉ định giá trị keepends = True

Các ký tự trong chuỗi được coi là ký tự xuống dòng như bảng sau đây:

\n xuống dòng
\r quay về đầu dòng
\r\n xuống dòng + quay về đầu dòng
\v or \x0b Tab thẳng
\f or \x0c ngắt trang
\x1c ngắt tệp
\x1d Ngắt nhóm
\x1e Ngắt bản ghi
\x85 xuống dòng (mã điều khiển C1)
\u2028 ngắt dòng
\u2029 Phân cách đoạn văn

Hãy cùng xem vài ví dụ đơn giản sau đây:

Ví dụ 1: tách chuỗi chứa ký tự xuống dòng \n

str1 = "Orange\nLemon\nApple"
print(str1)
#>> Orange
#>> Lemon
#>> Apple

print(str1.splitlines())
#>> ['Orange', 'Lemon', 'Apple']

Ví dụ 2: tách chuỗi nhiều dòng tạo bởi dấu nháy tam “””

str2 = """\
Hello
My name is Kiyoshi
Thank you"""

print(str2)
#>> Hello
#>> My name is Kiyoshi
#>> Thank you

print(str2.splitlines())
#>> ['Hello', 'My name is Kiyoshi', 'Thank you']

Trong ví dụ này, chúng ta tách một chuỗi nhiều dòng tạo bởi dấu nháy tam, và ở phần đầu chuỗi có chứa cả chuỗi thoát \. Bạn có thể thấy cả chuỗi thoát \ lẫn chỗ xuống dòng trong chuỗi nhiều dòng đều được tách ra như nhau.

Ví dụ 3: tách chuỗi chứa ký tự xuống dòng \n với giá trị keepends = True

str1 = "Orange\nLemon\nApple"
print(str1)
#>> Orange
#>> Lemon
#>> Apple

print(str1.splitlines(True))
#>> ['Orange\n', 'Lemon\n', 'Apple']

Bạn có thể thấy khi chỉ định giá trị keepends = True thì ký tự xuống dòng như \n sẽ được bao gồm trong danh sách kết quả trả về.

Tách Chuỗi Trong Python
Tách Chuỗi Trong Python

VI. Tách Số Và Chữ Trong Chuỗi Python

Hướng dẫn cách tách số trong chuỗi python. Bạn sẽ học được cách tìm số trong chuỗi python cũng như các phương pháp tách số trong chuỗi bằng cách sử dụng Regular Expression trong Python sau bài học này.

Chúng ta có 5 phương pháp sử dụng Regular Expression để tìm số trong chuỗi python cũng như tách số trong chuỗi python như sau:

  • Hàm số re.findall() : tìm và tách số trong chuỗi python dưới dạng một list
  • Hàm số re.findall() : tìm và tách dãy số trong chuỗi python dưới dạng một list
  • Hàm số re.sub() : tìm và tách số trong chuỗi python dưới dạng một chuỗi
  • Hàm số re.search(): tìm và tách số đầu tiên trong chuỗi python
  • Hàm số re.search(): tìm và tách dãy số đầu tiên trong chuỗi python

Regular Expression trong Python

Regular Expression trong Python, hay còn gọi là biểu thức chính quy với cách viết tắt là RegEx trong python, là một phương thức mô phỏng một chuỗi ký tự theo những quy tắc cú pháp nhất định. Chúng ta thường sử dụng Regular Expression khi muốn tìm kiếm , lấy ra hoặc thay thế một chuỗi ký tự có cấu trúc chỉ định trong Python.

Đây là một kỹ thuật thường được sử dụng khi xử lý một lượng lớn văn bản trong một chương trình.

Để sử dụng regular expression trong python, chúng ta cần sử dụng tới module re bằng cách import re trong python vào chương trình.

Và nếu bạn biết cách sử dụng, bạn có thể dễ dàng tìm kiếm cũng như tách số trong chuỗi python bằng regular expression trong python.

import re trong python

Chúng ta sử dụng lệnh import để import re trong python và có thể sử dụng tất cả các hàm số và phương thức được cài sẵn của nó trong chương trình như sau:

import re

Sau đây, chúng ta sẽ cùng tìm hiểu các cách tách số trong chuỗi bằng cách sử dụng các hàm trong regex python.

Tách số trong chuỗi python dưới dạng một list | hàm re.findall Python

Chúng ta tìm số trong chuỗi python cũng như tách từng số trong chuỗi đó và thu về kết quả dưới dạng một list bằng cách sử dụng hàm re.findall() trong module re trong python.

Cú pháp sử dụng hàm re.findall() để tách số trong python như sau:

re.findall ( r'\d' , str)

Trong đó:

  • re.findall dùng để gọi hàm
  • str là chuỗi cần tách số ra.
  • r’\d’ là một chuỗi thô được sử dụng như mẫu RegEx trong hàm, có tác dụng biểu thị một chữ số.

Ví dụ cụ thể, chúng ta tách số trong chuỗi python dưới dạng một list như sau:

import re

s1 = '1ab23cdef456'
m1 = re.findall(r'\d', s1)  
print(m1)
#>> ['1', '2', '3', '4', '5', '6']

s2 = 'Thứ 6 ngày 25 tháng 6 năm 2021, 21:30'
m2 = re.findall(r'\d', s2)  
print(m2)
#>> ['6', '2', '5', '6', '2', '0', '2', '1', '2', '1', '3', '0']

Lưu ý là chúng ta tách số ra từ chuỗi ban đầu và lấy kết quả, chứ không làm thay đổi chuỗi ban đầu nhé.

import re

s = '1 con gà 2 con vịt'
print(s)

m = re.findall(r'\d', s)  
print(m)
print(s)

#>> 1 con gà 2 con vịt
#>> ['1', '2']
#>> 1 con gà 2 con vịt

Sau khi tách các số từ chuỗi và thu về kết quả dưới dạng list, chúng ta có thể nối các phần tử trong list và chuyển kết quả về dạng chuỗi bằng cách sử dụng hàm join trong python. Ví dụ:

r = ''.join(m)
print(r)
#>> 12

Tách dãy số trong chuỗi python dưới dạng một list | hàm re.findall() Python

Ở phần trên chúng ta đã biết cách tìm số trong chuỗi python cũng như tách từng số trong chuỗi và thu về kết quả dưới dạng một list rồi. Với cách này, thì các số tồn tại trong chuỗi sẽ được coi là riêng biệt và chúng cũng sẽ được tách riêng rẽ với nhau. Ví dụ như dãy ‘2021’ sẽ được tách ra thành ‘2’,’0’,’2’,’1’.

Tuy nhiên cũng có những trường hợp mà chúng ta cần tìm cũng như tách và thu về từng dãy số trong chuỗi, ví dụ như tách năm, tháng , ngày ra khỏi chuỗi chẳng hạn. Khi đó, chúng ta cũng sử dụng hàm re.findall() python và thay thế mẫu RegEx từ r’\d’ sang r’\d+’ như sau.

re.findall ( r'\d+' , str)

Ví dụ cụ thể, chúng ta tách dãy số trong chuỗi python dưới dạng một list như sau:

import re

s = 'Thứ 6 ngày 25 tháng 6 năm 2021, 21:30'
m = re.findall(r'\d+', s)  
print(m)
#>> ['6', '25', '6', '2021', '21', '30']

Sau đó, chúng ta có thể truy cập phần tử trong list qua index, và thu về kết số mong muốn. Ví dụ như chúng ta lấy số ngày, tháng, năm từ list kết quả ở trên như sau:

print("Ngày",m[1])
print("Tháng",m[2])
print("Năm",m[3])

#>> Ngày 25
#>> Tháng 6
#>> Năm 2021

Tách số trong chuỗi python dưới dạng một chuỗi | hàm re.sub() Python

Chúng ta tìm số trong chuỗi python cũng như tách số trong chuỗi đó và thu về kết quả dưới dạng một chuỗi bằng cách sử dụng hàm re.sub() trong module re trong python.

Hàm re.sub() trong Python vốn được sử dụng để tìm một chuỗi ký tự có định dạng chỉ định và thay thế chuỗi đó bằng một chuỗi khác. Ứng dụng re.sub(), chúng ta có thể tìm ra tất cả các ký tự trong chuỗi, sau đó xóa hết chúng đi. Kết quả sẽ chỉ còn chữ số sẽ ở lại, qua đó chúng ta có thể tách số trong chuỗi python.

Cú pháp sử dụng hàm re.sub() để tách số trong python như sau:

re.sub ( r'\D' , '', str)

Trong đó:

  • re.sub dùng để gọi hàm
  • str là chuỗi cần tách số ra.
  • r’\D’ là một chuỗi thô được sử dụng như mẫu RegEx trong hàm, có tác dụng biểu thị một ký tự.
  • Ký tự trắng ” dùng để thay thế các ký tự tồn tại trong chuỗi str

Ví dụ cụ thể, chúng ta tách số trong chuỗi python dưới dạng một chuỗi như sau:

import re

s1 = '1ab23cdef456'
m1 = re.sub(r'\D','', s1)
print(m1)
#>> 123456

s2 = 'Thứ 6 ngày 25 tháng 6 năm 2021, 21:30'
m2 = re.sub(r'\D','', s2)  
print(m2)
#>> 6256202121Tách số đầu tiên trong chuỗi python | hàm re.search() python<br ></br >30

Lưu ý là chúng ta tách số ra từ chuỗi ban đầu và lấy kết quả, chứ không làm thay đổi chuỗi ban đầu nhé.

import re

s = '1 con gà 2 con vịt'
print(s)
m = re.sub(r'\D','', s) 
print(m)
print(s)

#>> 1 con gà 2 con vịt
#>> 12
#>> 1 con gà 2 con vịt

Tách số đầu tiên trong chuỗi python | hàm re.search() python

Chúng ta tìm và tách số đầu tiên xuất hiện trong chuỗi python bằng cách sử dụng hàm re.search() trong module re trong python.

Hàm re.search() trong Python vốn được sử dụng để tìm một chuỗi ký tự có định dạng chỉ định và trả về kết quả khớp đầu tiên. Ứng dụng re.search(), chúng ta có thể tìm và tách ra số đầu tiên trong chuỗi python.

Cú pháp sử dụng hàm re.search() để tách số trong python như sau:

re.search ( r'\d' , str)

Trong đó:

  • re.search dùng để gọi hàm
  • str là chuỗi cần tách số ra.
  • r’\d’ là một chuỗi thô được sử dụng như mẫu RegEx trong hàm, có tác dụng biểu thị một chữ số.

Lưu ý là kết quả của Hàm re.search() trong Python không phải là chuỗi kết quả mà là một match object chứa chuỗi đó. Để lấy ra chuỗi kết quả ra từ trong match object, chúng ta sẽ cần sử dụng thêm phương thức group() trong Python.

Ví dụ cụ thể, chúng ta tách số đầu tiên trong chuỗi python như sau:

import re

s1 = '1ab23cdef456'
m1 = re.search(r'\d', s1)
print(m1)
#>> <re.Match object; span=(0, 1), match='1'>

print(m1.group())
#>> 1


s2 = 'Thứ 6 ngày 25 tháng 6 năm 2021, 21:30'
m2 = re.search(r'\d', s2)  
print(m2.group())
#>> 6

Tách dãy số đầu tiên xuất hiện trong chuỗi python | hàm re.search() python

Tương tự như với cách tách số đầu tiên xuất hiện trong chuỗi, chúng ta cũng sử dụng hàm re.search() để tìm và tách dãy số đầu tiên xuất hiện trong chuỗi python. Khi đó, chúng ta thay thế mẫu RegEx sử dụng trong hàm re.search() từ r’\d’ sang r’\d+’ như sau.

re.search ( r'\d+' , str)

Lưu ý là kết quả của Hàm re.search() trong Python không phải là chuỗi kết quả mà là một match object chứa chuỗi đó. Để lấy ra chuỗi kết quả ra từ trong match object, chúng ta sẽ cần sử dụng thêm phương thức như start(), end(), span(), group() trong Python.

Ví dụ cụ thể, chúng ta tách dãy số đầu tiên trong chuỗi python như sau:

import re

s = 'Năm 2021, thứ 6 ngày 13 21:30'
m = re.search(r'\d+', s)  
print(m)
#>> <re.Match object; span=(4, 8), match='2021'>

print(m.group())
#>> 2021

Sau đó, chúng ta có thể lấy vị trí bắt đầu và kết thúc của dãy số trong chuỗi bằng cách dùng phương thức start() và end() như sau:

#Lấy vị trí xuất hiện của dãy số
print(m.start())
#>> 4

#Lấy vị trí kết thúc của dãy số
print(m.end())
#>> 8
Tách Số Và Chữ Trong Chuỗi Python
Tách Số Và Chữ Trong Chuỗi Python

The post Split Trong Python first appeared on Techacademy.

source https://techacademy.edu.vn/split-trong-python/

Biến Trong Python

Techacademy sẽ giới thiệu với các bạn về BIẾN TRONG PYTHON. Một phần tuy cơ bản nhưng rất quan trọng trong lập trình và nó sẽ theo bạn mãi cho tới khi bạn còn code.

I. Trong Python Biến Là Gì

Có hai trường phái định nghĩa biến trong python như sau:

Trường phái đầu tiên coi biến trong python giống như 1 cái hộp để lưu trữ dữ liệu. Các dữ liệu này có thể là số hoặc chuỗi mà bạn có thể ưu trữ vào biến và dùng nhiều lần. Kết quả của những phép xử lý như tính toán giá trị số, chỉnh sửa chuỗi ký tự sẽ tạm thời được giữ vào biến và dùng để sử dụng cho chương trình sau này.

Trường phái thứ hai coi biến trong python giống như thẻ ghi địa chỉ của dữ liệu. Các dữ liệu được lưu giữ tại các vị trí riêng biệt trong bộ nhớ với địa chỉ khác nhau, và biến trong python là thẻ dùng để ghi địa chỉ của dữ liệu đó trong bộ nhớ. Khi dùng dữ liệu, chúng ta sẽ truy cập vào địa chỉ được ghi trên biến của dữ liệu đó.

Bạn cũng không cần quá chú ý trường phái nào đúng, chỉ cần ghi nhớ khái niệm biến trong python bằng 1 trong hai cách trên là được.

Trong Python Biến Là Gì
Trong Python Biến Là Gì

II. Các Kiểu Biến Trong Python

Dữ liệu mà được lưu trữ trong bộ nhớ có thể có nhiều kiểu khác nhau. Ví dụ, lương của công nhân đươc lưu trữ dưới dạng một giá trị số còn địa chỉ của họ được lưu trữ dưới dạng những ký tự chữ-số. Python có đa dạng kiểu dữ liệu chuẩn được dùng để xác định các hành động có thể xảy ra trên chúng và phương thức lưu trữ cho mỗi kiểu.

Python có 5 kiểu dữ liệu chuẩn là:

  1. Kiểu Number
  2. Kiểu String
  3. Kiểu List
  4. Kiểu Tuple
  5. Kiểu Dictionary

Ngoài kiểu Number và kiểu String mà có thể bạn đã được làm quen với các ngôn ngữ lập trình khác thì ở trong Python còn xuất hiện thêm ba kiểu dữ liệu đó là List, Tuple và Dictionary.

 Các Kiểu Biến Trong Python
Các Kiểu Biến Trong Python

III. Kiểm Tra Kiểu Dữ Liệu Của Biến Trong Python

Trong Python, chúng ta có thể sử dụng nhiều cách khác nhau để kiểm tra dữ liệu input là chuỗi hay số.

Cách 1: Chuyển đổi thành int hoặc float để kiểm tra input là số hay chuỗi

Với cách này thì ta sử dụng hai hàm int() và float() để ép kiểu dữ liệu, dựa vào kết quả trả về ta sẽ biết chính xác người sử dụng nhập vào 1 chuỗi hay 1 số.

Ta phải đặt nó trong lệnh try .. except, bởi hai hàm ép kiểu trên sẽ không thể ép một chuỗi thành một số trong trường hợp giá trị của chuỗi không phải là số. Ví dụ bạn chuyển chuỗi “freetuts.net” thành số là hoàn toàn sai.

Quá trình kiểm tra như sau: Nếu ép kiểu thành công thì là số, ngược lại thì một Exception sẽ được bung ra nên nó là một chuỗi.

print ("Chương trình đăng tại freetuts.net")
user_input = input("Nhập tuổi của bạn ")
 
print("\n")
try:
    val = int(user_input)
    print("Dữ liệu nhập vào là int = ", val)
except ValueError:
    try:
        val = float(user_input)
        print("Dữ liệu nhâp vào là float = ", val)
    except ValueError:
        print("Dữ liệu nhập vào không phải là number")

Cách 2: Sử dụng hàm isdigit để kiểm tra là number hay string

Hàm này công dụng khá đơn giản như sau:

print ("Chương trình đăng tại freetuts.net")
num = input("Nhập số của bạn ")
 
print("\n")
if num.isdigit():
    print("Dữ liệu nhập vào là số ")
else:
    print("Dữ liệu nhập vào là chuỗi ")

Tuy nhiên hàm này chủ hoạt động với số nguyên dương. Nếu bạn nhập vào là một số thực hoặc một số âm thì nó sẽ trả về là chuỗi. Vì vậy, giải pháp tốt nhất vẫn là chọn phương án 1 nhé cả nhà.

Kiểm Tra Kiểu Dữ Liệu Của Biến Trong Python
Kiểm Tra Kiểu Dữ Liệu Của Biến Trong Python

IV. Ép Kiểu Dữ Liệu Của Biến Trong Python

Đây là thao tác tự động chuyển đổi một loại dữ liệu sang loại dữ liệu khác của Python, quá trình này không cần bất kỳ sự tham gia của lập trình viên.

Chúng ta hãy xem ví dụ dưới đây, trong đó Python chuyển đổi kiểu dữ liệu thấp hơn (số nguyên) sang kiểu dữ liệu cao hơn (float) để tránh mất dữ liệu.

num_int = 123
num_flo = 1.23
 
num_new = num_int + num_flo
 
print("Kiểu dữ liệu của num_int:",type(num_int))
print("Kiểu dữ liệu của num_flo:",type(num_flo))
 
print("Giá trị của num_new:",num_new)
print("Kiểu dữ liệu của num_new:",type(num_new))

Kết quả của chương trình này như sau:

Kiểu dữ liệu của num_int: <class 'int'>
Kiểu dữ liệu của num_flo: <class 'float'>
Giá trị của num_new: 124.23
Kiểu dữ liệu của num_new: <class 'float'>
Ép Kiểu Dữ Liệu Của Biến Trong Python
Ép Kiểu Dữ Liệu Của Biến Trong Python

Trong chương trình trên thì:

  • Mình đã định nghĩa hai biến num_int và num_flo, sau đó tạo một biến num_new để lưu trữ tổng của hai biến đó.
  • Tiếp theo sẽ dùng hàm type để kiểm tra kiểu dữ liệu của cả ba biến, thật bất ngờ vì num_new đã mang kiểu float vì đây là kiểu số lớn hơn kiểu int. Như vậy biến num_new đã được chuyển đổi ngầm.

Bây giờ, hãy thử thêm một chuỗi và một số nguyên và xem Python xử lý thế nào.

Ví dụ: Bổ sung kiểu dữ liệu chuỗi (cao hơn) và kiểu dữ liệu số nguyên (thấp hơn)

num_int = 123
num_str = "456"
 
print("Kiểu dữ liệu của num_int:",type(num_int))
print("Kiểu dữ liệu của num_str:",type(num_str))
 
# Dòng này sẽ lỗi vì string và number không chuyển ngầm được
print(num_int+num_str)

Khi chạy chương trình trên, kết quả sẽ là:

Traceback (most recent call last):
  File "C:\Users\gf63\IdeaProjects\LearnPython\helloworld.py", line 7, in <module>
    print(num_int+num_str)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Kiểu dữ liệu của num_int: <class 'int'>
Kiểu dữ liệu của num_str: <class 'str'>
Ép Kiểu Dữ Liệu Của Biến Trong Python
Ép Kiểu Dữ Liệu Của Biến Trong Python

Như vậy mặc định Python không thể tự động chuyển đổi ngầm giữa string và number.

V. Biến Global Trong Python Là Gì

Trong ngôn ngữ lập trình Python, một biến được khai báo bên ngoài hàm hoặc trong phạm vi toàn cục được gọi là biến toàn cục hay biến global. Biến toàn cục có thể được truy cập từ bên trong hoặc bên ngoài hàm

Hãy xem ví dụ về cách tạo biến toàn cục trong Python.

x = "Biến toàn cục" #khai báo biến x
#Gọi x từ trong hàm vidu()
def vidu():
    print("x trong hàm vidu() :", x)

vidu()
#Gọi x ngoài hàm vidu()
print("x ngoài hàm vidu():", x)

Trong ví dụ trên, ta khai báo biến x là biến toàn cục, và định nghĩa hàm vidu() để in biến x. Cuối cùng ta gọi hàm vidu() để in giá trị của biến x. Chạy code trên ta sẽ được kết quả là:

x trong hàm vidu(): Biến toàn cục
x ngoài hàm vidu(): Biến toàn cục

Chuyện gì sẽ xảy ra nếu bạn thay đổi giá trị của x trong hàm?

x = 2 
def vidu():
   x=x*2    
   print(x)

vidu()

Nếu chạy code này bạn sẽ nhận được thông báo lỗi:

UnboundLocalError: local variable 'x' referenced before assignment

Lỗi này xuất hiện là do Python xử lý x như một biến cục bộ và x không được định nghĩa trong vidu().

Để thay đổi biến toàn cục trong một hàm bạn sẽ phải sử dụng từ khóa global. Chúng tôi sẽ nói kỹ hơn trong bài về từ khóa global.

Biến Global Trong Python Là Gì
Biến Global Trong Python Là Gì

VI. Biến Cục Bộ Trong Python Là Gì

Biến được khai báo bên trong một hàm hoặc trong phạm vi cục bộ được gọi là biến cục bộ hay biến local.

def vidu():
 y = "Biến cục bộ"
vidu()
print(y)

Khi chạy code trên bạn sẽ nhận được thông báo lỗi:

NameError: name 'y' is not defined

Lỗi này xuất hiện là do chúng ta đã cố truy cập vào biến cục bộ y trong phạm vi toàn cục, nhưng y chỉ làm việc trong hàm vidu() hoặc phạm vi cục bộ.

Thông thường, để tạo một biến cục bộ, chúng ta sẽ khai báo nó trong một hàm như ví dụ dưới đây:

def vidu():
 y = "Biến cục bộ"
 print(y)
vidu()

Chạy code trên ta sẽ được kết quả

Biến cục bộ
Biến Cục Bộ Trong Python Là Gì
Biến Cục Bộ Trong Python Là Gì

VII. Biến Static Trong Python Là Gì

Hàm staticmethod() được coi là un-Pythonic (ngôn ngữ không chính thống của Python). Trong các phiên bản mới hơn của Python, bạn nên sử dụng decorator @staticmethod để thay thế.

Cú pháp của @staticmethod là:

@staticmethod
def func(args, ...)

Cú pháp của hàm staticmethod() trong Python

Hàm staticmethod() được xác định bằng cú pháp sau:

staticmethod(function)

Tham số của hàm staticmethod()

Hàm staticmethod() có một tham số duy nhất:

  • Hàm: Hàm cần được chuyển thành một static method

Giá trị trả về của hàm staticmethod()

Hàm staticmethod() trả về một static method cho một hàm tham số mà bạn đưa vào.

Biến Static Trong Python Là Gì
Biến Static Trong Python Là Gì

VIII. Biến Hằng Trong Python Là Gì

Biến là một đối tượng trong chương trình. Mỗi biến sẽ có một vị trí riêng trong bộ nhớ để lưu trữ dữ liệu (giá trị) được gán. Biến trong Python được đặt theo nguyên tắc định danh

Câu lệnh gán giá trị cho biến là: <tên biến> = <giá trị gán cho biến>

Biến trong Python không cần khai báo trước, không gần khai báo kiểu dữ liệu. Khi đặt tên và gán giá trị Python tự động nhận dạng và tùy biến theo kiểu dữ liệu được gán.

Ví dụ 1:

number = 10

number = 1.1

print(number)

input()

Ở ví dụ trên, biến được đặt tên là number, được gán giá trị là 10 sau đó lại được gán giá trị là 1.1. Như vậy sau sau 2 câu lệnh trên giá trị của biến number lưu sẽ là 1.1. Kết quả khi chạy chương trình là: 1.1.

Hằng là 1 loại biến đặc biệt, giá trị của hằng là không đổi trong suốt chương trình sau lần gán giá trị đầu tiên. Tên hằng được viết hoàn toàn bằng chữ hoa và dấu gạch dưới (nếu cần).

Ví dụ:

PI = 3.14 # đây là hằng
bankinh = 20 # đây là biến

Trong thực tế, việc đặt tên Hằng bằng những ký tự in hoa là để phân biệt với biến chứ nó không có tác dụng ngăn cản việc gán giá trị mới cho Hằng.

Đối với các chương trình lớn, Hằng số thường được khai báo riêng trong một mô-đun. Mô-đun là một tệp riêng chứa các biến, hàm, v.v. được nhập (import) vào tệp chính.

Ví dụ:

Tạo 1 file mới với tên “hang.py” trong cùng thư mục với file “thuchanh.py”.

– Nội dung file hang.py:

PI = 3.14
GRAVITY = 9.8





– Nội dung file thuchanh.py:

import hang

print(hang.PI)

print(hang.GRAVITY)

input()

Chạy file thuchanh.py sẽ cho kết quả là:

3.14 9.8
Biến Hằng Trong Python Là Gì
Biến Hằng Trong Python Là Gì

IX. Gán Biến Trong Python Thế Nào

Sau khi gán một giá trị cho biến trong Python, chúng ta có thể sử dụng biến để đại diện cho giá trị đó trong chương trình. Việc gán biến trong python có thể thực hiện cùng lúc hoặc sau khi bạn đã khai báo biến trong python. Bạn có thể gán một giá trị khác với giá trị khởi tạo ban đầu vào biến, hoặc gán giá trị một biến cho một biến khác. Hãy cùng học cách gán biến trong python sau bài học này.

Gán biến trong python bằng một giá trị khác giá trị khởi tạo

Khi khởi tạo và khai báo biến trong python, chúng ta cần chỉ định giá trị ban đầu để gán cho biến đó.

Tuy nhiên sau khi đã gán một giá trị cụ thể cho biến thì chúng ta vẫn có thể gán một giá trị khác cho biến đó như ví dụ sau đây:

price = 100
price = 200

print(price)
#>> 200

Trong bài biến trong python là gì bạn đã biết biến trong python không phải là địa chỉ của vị trí chứa giá trị trong bộ nhớ, mà chỉ là thẻ ghi địa chỉ của dữ liệu đó mà thôi. Do đó khi gán một giá trị khác cho một biến đã xác định, chúng ta chỉ đơn giản là thay đổi dòng địa chỉ ghi trên biến mà thôi.

Do đó, bản chất biến không thay đổi, chỉ là địa chỉ của giá trị trong bộ nhớ mà nó được gán đã thay đổi mà thôi.

Lại nữa, các giá trị dùng để gán vào biến tuy có thể thuộc các dạng dữ liệu khác nhau, tuy nhiên biến trong python lại được tự động nhận diện kiểu dữ liệu khi được gán giá trị.

Do đó, bạn có thể gán một biến có kiểu dữ liệu khác với kiểu dữ liệu ban đầu vào cùng một biến như ví dụ sau:

name = "Kiyoshi"
name = 30

print(name)

#>> 30

Trong ví dụ trên, mặc dù biến name được khai báo với giá trị dưới dạng chuỗi, nhưng sau đó, nó vẫn có thể được gán bởi giá trị dưới dạng số. Đó là nhờ trong python, các biến sẽ được tự động nhận diện kiểu giá trị được gán vào nó.

Gán giá trị một biến cho một biến khác

Chúng ta có thể gán giá trị một biến đã được khai báo cho một biến khác, như ví dụ sau đây:

num1 = 100
num2 = num1

print("num1",num1)
#>> num1 100
print("num2",num2)
#>> num2 100

Trong trường hợp này, cả hai biến num1 và num2 đều cùng ghi và trỏ về một địa chỉ, đó là vị trí của giá trị 100 trong bộ nhớ.

Tuy nhiên cần lưu ý, nếu lúc này chúng ta gán một giá trị mới vào biến num1, thì giá trị của biến num2 vẫn sẽ không thay đổi.

num1 = 100
num2 = num1

num1 = 200
print("num1",num1)
#>> 200
print("num2",num2)
#>> 100

Nếu bạn gán một giá trị khác cho num1 thay vì lưu trữ giá trị mới ở vị trí mà num1 đang tham chiếu, num1 sẽ ghi địa chỉ của giá trị mới đó trong bộ nhớ.

Tại thời điểm này, biến num2 vẫn đang tham chiếu đến vị trí ban đầu, do đó, biến num1 tham chiếu đến vị trí có giá trị 200 còn biến num2 thì tham chiếu đến vị trí có giá trị 100.

Do đó khi in ra màn hình, giá trị của hai biến này sẽ khác nhau:

num1 200
num2 100
Gán Biến Trong Python Thế Nào
Gán Biến Trong Python Thế Nào

X. Nhập Biến Trong Python Thế Nào

Hướng dẫn cách Nhập biến trong python. Bạn sẽ học được cách nhập giá trị của biến từ bàn phím bằng hàm inpput () trong python sau bài học này.

Để nhập biến trong python, chúng ta cần sử dụng một hàm dựng sẵn là hàm inpput () trong python.

Hàm input() sẽ giúp chúng ta nhập liệu từ bàn phím và gán giá trị đó vào biến với cú pháp sau đây:

tên biến= input()

Trong đó:

  • input dùng để gọi hàm. Khi hàm được gọi, một dòng nhập dữ liệu sẽ hiện ra để người dùng có thể nhập liệu từ bàn phím.
  • tên biến được đặt theo Quy tắc đặt tên biến trong Python mà bạn đã học trong bài Biến trong python là gì

Sau khi người dùng có thể nhập liệu từ bàn phím, chuỗi nhập vào sẽ được gán vào tên biến dưới dạng kiểu dữ liệu string.

Bạn cũng có thể dùng cú pháp sau đây để màn hình nhập liệu trở nên đẹp hơn:

tên biến= input(">>")

Ví dụ, chúng ta có chương trình nhập tên tuổi và in ra màn hình như sau:

print("Hay nhap ten cua ban : ")
name=input(">>")

print("Hay nhap tuoi cua ban : ")
old=input(">>")

user = "\n Ten ban : " + name + "\n Tuoi ban : " +old
print(user)

Hãy lưu lại chương trình trên với tên user.py và chạy trên Anaconda Prompt. Kết quả sẽ như sau:

Nhập Biến Trong Python Thế Nào
Nhập Biến Trong Python Thế Nào

XI. In Biến Ra Màn Hình Thế Nào Trong Python

Hàm print() trong Python có tác dụng hiển thị dữ diệu ra màn hình khi chương trình thực thi.

Cú pháp đầy đủ của print():

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

Tham số của hàm print():

  • objects: đối tượng được in, có thể có nhiều đối tượng. Sẽ được chuyển đổi thành chuỗi trước khi hiển thị ra màn hình.
  • sep: cách tách riêng các đối tượng, giá trị mặc định là một khoảng trắng.
  • end: giá trị cuối cùng được in ra màn hình.
  • file: mặc định hàm print sẽ ghi nội dung vào file sys.stdout.
  • flush: giá trị mặc định giá trị là False.

Lưu ý: sep, end, file và flush đều là các tham số keyword. Nếu bạn muốn sử dụng tham số sep, bạn phải dùng như này:

print(*objects, sep = 'separator')

không được sử dụng:

print(*objects, 'separator')

Ví dụ 1: Cách print() hoạt động trong Python

print("Học Python rất thú vị.")

a = 5
# 2 object
print("a =", a)

b = a
# 3 object
print('a =', a, '= b')

Chạy chương trình, kết quả trả về là:

Học Python rất thú vị.
a = 5
a = 5 = b

Trong 3 câu lệnh ở ví dụ trên, chỉ có duy nhất tham số object được sử dụng trong các câu lệnh.

Ví dụ 2: print () với các tham số separator và end

a = 5
print("a =", a, sep='00000', end='\n\n\n')
print("a =", a, sep='0', end='')

Chạy chương trình, kết quả trả về là:

a =000005



a =05
In Biến Ra Màn Hình Thế Nào Trong Python
In Biến Ra Màn Hình Thế Nào Trong Python

XII. Quy Tắc Đặt Tên Biến Trong Python

Để đặt tên cho biến trong python, chúng ta cần tuân theo Quy tắc đặt tên biến trong Python như dưới đây:

1/ Các ký tự có thể được sử dụng để đặt tên cho biến trong python là a đến z, A đến Z, 0 đến 9, gạch dưới _, chữ hán tự , tiếng việt có dấu v.v.

2/ Không thể sử dụng các giá trị số (0 đến 9) cho ký tự đầu tiên.

3/ Có thể sử dụng gạch dưới cho ký tự đầu tiên. Tuy nhiên vì gạch dưới thường được sử dụng trong các trường hợp đặc biệt, nên tốt hơn là không sử dụng nó.

4/ Phân biệt chữ hoa chữ thường khi đặt tên cho biến trong python

5/ Không thể sử dụng các từ khóa của Python.

Chúng ta sẽ cùng tìm hiểu chi tiết về các Quy tắc đặt tên biến trong Python ở trên như sau.

Dùng ký tự alphabet, chữ số, gạch dưới để đặt tên biến trong Python

Từ Python 3 trở đi, chúng ta có thể dùng chữ hán tự và tiếng Việt có dấu để Đặt tên cho biến trong python, tuy nhiên Kiyoshi không khuyến khích bạn dùng cách này.

tên = "Kiyoshi"
tuổi =30

名前 = "Kiyoshi"
年齢 = 30

Không dùng các giá trị số cho ký tự đầu tiên của biến

Chúng ta không thể sử dụng các giá trị số cho ký tự đầu tiên của biến trong python, bởi vì lỗi SyntaxError sẽ xuất hiện.

7up = 100

Lỗi SyntaxError:

File "Main.py", line 1
    7up = 100
     ^
SyntaxError: invalid syntax

Phân biệt chữ hoa chữ thường khi đặt tên biến trong Python

Phân biệt chữ hoa chữ thường khi Đặt tên cho biến trong python. Ví dụ hai biến trong ví dụ dưới đây là khác nhau và cho ra kết quả cũng khác nhau:

str = "Tôi yêu"
STR = "Việt Nam"
print(str, STR)

>> Tôi yêu Việt Nam

Không dùng các từ khóa của Python để đặt tên biến trong python

Chúng ta Không thể sử dụng các từ khóa của Python để đặt tên biến trong python. Các từ khóa (keyword) là các từ chỉ dành riêng cho Python và bạn không thể dùng chúng để đặt tên biến được.

Bạn có thể kiểm tra Danh sách các từ khóa trong python bằng câu lệnh dưới đây.

import sys
import keyword
 
print ("Python version: ", sys.version_info)
print ("Python keywords: ", keyword.kwlist)

Và đây là bảng các từ khóa trong python.

False    await    else    import    pass
None    break    except    in    raise
True    class    finally    is    return
and    continue    for    lambda    try
as    def    from    nonlocal while
assert    del    global    not    with
async    elif    if    or    yield

Nếu bạn dùng các từ khóa trong python ở bảng trên để đặt tên biến trong Python thì lỗi SyntaxError sẽ trả về như ví dụ sau:

from = "Việt Nam"

Lỗi SyntaxError:

 File "Main.py", line 1
    from = "Việt Nam"
         ^
SyntaxError: invalid syntax
Quy Tắc Đặt Tên Biến Trong Python
Quy Tắc Đặt Tên Biến Trong Python

 

The post Biến Trong Python first appeared on Techacademy.

source https://techacademy.edu.vn/bien-trong-python/

Verification Testing Là Gì ?

Trong ngữ cảnh testing, 2 tư tưởng Verification (Xác minh) và Validation (Xác nhận) được thực hiện rộng rãi. Trong phần nhiều những trường vừa lòng, bọn họ thường coi bọn chúng có thuộc nghĩa tuy nhiên thực tế nó là 2 tư tưởng không giống nhau. Hãy cùng Techacademy đi tìm hiểu verification testing là gì qua bài viết dưới đây nhé.

I. Validation Testing Là Gì

Validation là quá trình đánh giá sản phẩm cuối cùng để kiểm tra xem phần mềm có đáp ứng được yêu cầu nghiệp vụ không? Hoạt động validation bao gồm smoke testing, functional testing, regression testing, systems testing etc… Để dễ hiểu hơn, chúng ta cùng xem qua thí dụ sau:

Xác Minh Xác Nhận
“Are you building it right?” (Bạn đang xây dựng nó phải không?) “Are you building the right thing?” (Bạn đang xây dựng là đúng đắn?)
Đảm bảo phần mềm đáp ứng tất cả các chức năng. Đảm bảo các chức năng đáp ứng đúng với các hành vi dự định, có trong yêu cầu đã đề ra.
Việc xác minh cần phải là đầu tiên và bao gồm việc kiểm tra tài liệu, code, v.v.. Xác nhận xảy ra sau khi xác minh và phần chính liên quan đến kiểm tra tổng thể.
Hoàn thành bởi Developer. Hoàn thành bởi Tester.

 

Validation Testing Là Gì
Validation Testing Là Gì

II. Tại Sao Phải Validation Testing?

+ Theo mô hình trưởng thành năng lực (CMM), chúng ta có thể định nghĩa thẩm định là quá trình kiểm tra những phần mềm trong hoặc ở cuối của quá trình phát triển để xác định xem nó đáp ứng các yêu cầu và quy định không.

+ Một sản phẩm có thể đạt yêu cầu trong khi thẩm định, vì nó được thực hiện trên giấy và không chạy hoặc chức năng ứng dụng nào được yêu cầu. Tuy nhiên, khi cùng một thời điểm đó sản phẩm đã được thẩm định trên giấy nhưng sau đó các sản phẩm chạy có thể thất bại trong khi kiểm định. Điều này có thể xảy ra vì lúc một sản phẩm hoặc ứng dụng được xây dựng theo các đặc điểm kỹ thuật nhưng những thông số kỹ thuật không chính xác vì thế họ không thể giải quyết các yêu cầu của người sử dụng.

+ Ưu điểm của kiểm định phần mềm:

  • Trong quá trình kiểm định nếu một số khiếm khuyết bị bỏ qua sau đó trong quá trình thẩm định nó có thể được phát hiện thì là lỗi.
  • Nếu trong quá trình kiểm định 1 số đặc điểm kỹ thuật bị hiểu nhầm và việc phát triển đã xảy ra sau đó trong quá trình thẩm định khi thực hiện chức năng đó là sự khác biệt giữa kết quả thực tế và kết quả mong đợi có thể được hiểu.
  • Thẩm định được thực hiện trong quá trình kiểm thử như kiểm thử chức năng, kiểm thử tích hợp, kiểm thử hệ thống, kiểm thử tải, kiểm thử tương thích, …
  • Thử nghiệm giúp trong việc xây dựng các sản phẩm đúng theo yêu cầu của khách hàng và đáp ứng nhu cầu của họ.

+ Thẩm định là bước cơ bản được thực hiện bởi các kiểm thử viên trong suốt quá trình kiểm thử. Trong quá trình thẩm định sản phẩm nếu một vài sai lệch được tìm thấy trong kết quả thực tế từ kết quả mong đợi thì sau đó một lỗi sẽ được báo cáo hoặc một sự cố sẽ được đề cập. Không phải hầu hết các sự cố đều là lỗi. Nhưng tất cả các lỗi đều là sự cố. Sự cố cũng có thể là kiểu ‘câu hỏi’ những chỗ nào các chức năng của sản phẩm không rõ ràng dành cho các kiểm thử viên.

+ Do đó, thẩm định giúp đưa ra các chức năng chính xác của các tính năng và giúp các kiểm thử viên hiểu được sản phẩm một cách tốt hơn. Nó giúp việc tạo các sản phẩm thân thiện hơn đối với người sử dụng.

Tại Sao Phải Validation Testing
Tại Sao Phải Validation Testing

III. Sự Khác Nhau Giữa Verification Và Validation

+ Verification:

  1. Đánh giá các sản phẩm trung gian để kiểm tra xem nó có đáp ứng các yêu cầu cụ thể của từng giai đoạn không.
  2. Kiểm tra xem sản phẩm có được xây dựng đúng theo yêu cầu và đặc điểm kỹ thuật thiết kế không.
  3. Kiểm tra xem “Chúng tôi xây dựng sản phẩm đúng không”?
  4. Điều này được thực hiện mà không cần chạy phần mềm.
  5. Bao gồm tất cả các kỹ thuật test tĩnh Ví dụ bao gồm các bài đánh giá, kiểm tra và hướng dẫn

+ Validation:

  1. Đánh giá sản phẩm cuối cùng để kiểm tra xem nó có đáp ứng được yêu cầu nghiệp vụ không.
  2. Xác định xem phần mềm có phù hợp với nhu cầu sử dụng và đáp ứng yêu cầu nghiệp vụ không.
  3. Kiểm tra “Chúng tôi xây dựng đúng sản phẩm”?
  4. Được thực hiện cùng với việc chạy phần mềm.
  5. Bao gồm tất cả các kỹ thuật test động Ví dụ bao gồm tất cả các loại test như smoke test, regression test, functional test, systems test và UAT
 Sự Khác Nhau Giữa Verification Và Validation
Sự Khác Nhau Giữa Verification Và Validation

IV. Verification Và Validation Trong Các Giai Đoạn Khác Nhau Của Vòng Đời Phát Triển

Một vòng đời phát triển có các giai đoạn khác nhau. Verification và validation được thực hiện trong từng giai đoạn của vòng đời. Chúng ta hãy cùng tìm hiểu

#1. V & V tasks – Lập kế hoạch:

  • Xác minh hợp đồng
  • Đánh giá tài liệu khái niệm
  • Phân tích rủi ro

#2. V & V tasks – Phân tích yêu cầu:

  • Đánh giá các yêu cầu phần mềm
  • Đánh giá / phân tích các giao diện
  • Lập kế hoạch systems test
  • Lập kế hoạch Acceptance test

#3. V&V tasks – Giai đoạn thiết kế:

  • Đánh giá thiết kế phần mềm
  • Đánh giá / Phân tích giao diện (UI)
  • Lập kế hoạch Integration test
  • Lập kế hoạch Component test
  • Tạo test design

#4. V&V Tasks – Giai đoạn triển khai:

  • Đánh giá source code
  • Đánh giá tài liệu
  • Tạo test case
  • Tạo test proceduce
  • Thực hiện các component test case

#5. V&V Tasks – Giai đoạn test:

  • Thực hiện các system test case
  • Thực hiện các acceptance test case
  • Update tracebility metrics
  • Phân tích rủi ro

#6. V&V Tasks – Giai đoạn cài đặt và kiểm tra:

  • Kiểm tra việc cài đặt và cấu hình
  • Kiểm tra lần cuối cài đặt candidate build (bản build phát hành nội bộ)
  • Tạo test report cuối cùng

#7. V&V Tasks – Giai đoạn hoạt động:

  • Đánh giá những hạn chế mới
  • Đánh giá những đề xuất thay đổi

#8. V&V Tasks – Giai đoạn bảo trì:

  • Đánh giá các bất thường
  • Đánh giá migration
  • Đánh giá tính năng retrial
  • Đánh giá những đề xuất thay đổi
  • Xác nhận các vấn đề của production
Verification Và Validation Trong Các Giai Đoạn Khác Nhau Của Vòng Đời Phát Triển
Verification Và Validation Trong Các Giai Đoạn Khác Nhau Của Vòng Đời Phát Triển

The post Verification Testing Là Gì ? first appeared on Techacademy.

source https://techacademy.edu.vn/verification-testing-la-gi/

Automation Testing Là Gì ?(Kiểm Thử Tự Động Là Gì ?)

Quá trình kiểm thử phần mềm liên quan đến hai loại kiểm thử khác nhau – thủ công và tự động. Có sự khác biệt rõ ràng giữa các loại thử nghiệm này. Kiểm thử thủ công đòi hỏi thời gian và nỗ lực để bảo đảm code phần mềm làm được mọi thứ. Ngoài ra, những người kiểm tra thủ công phải ghi lại những phát hiện của mình. Trong bài viết này, Techacademy sẽ cùng bạn đọc tìm hiểu Automation testing là gì và nó hoạt động như thế nào.

I. Automation Testing Là Gì

Automation testing (Kiểm thử tự động) là quá trình sử dụng các công cụ, script và phần mềm để thực hiện những trường hợp kiểm thử, bằng cách lặp lại những hành động được xác định trước. Automation testing tập trung vào việc thay thế hoạt động thủ công của con người bằng các hệ thống hoặc thiết bị.

Bởi vì Automation testing được thực hiện thông qua một công cụ tự động hóa, nên nó tiêu tốn ít thời gian hơn trong các thử nghiệm khám phá và hiệu quả hơn trong việc duy trì các script kiểm tra, đồng thời nâng cao phạm vi kiểm tra tổng thể.

Automation testing thích hợp nhất cho các dự án lớn yêu cầu kiểm tra lặp lại các khu vực giống nhau và những dự án đã trải qua quá trình thử nghiệm thủ công ban đầu.

Automation Testing Là Gì
Automation Testing Là Gì

II. Ưu, Nhược Điểm Của Automation Testing So Với Manual Testing

+ Ưu điểm:

  • Độ tin cậy cao: công cụ kiểm thử tự động có sự ổn định cao hơn so với con người, đặc biệt trong trường hợp nhiều test cases, nên độ tin cậy cao hơn so với kiểm thử thủ công.
  • Khả năng lặp: công cụ kiểm thử tự động ra đời là để giúp cho các tester không phải lặp đi lặp lại các thao tác (ví dụ: nhập dữ liệu, click, check kết quả…) 1 cách nhàm chán với độ tin cậy và ổn định cao.
  • Khả năng tái sử dụng: với 1 bộ kiểm thử tự động, người ta có thể sử dụng cho nhiều phiên bản ứng dụng khác nhau, đây được gọi là tính tái sử dụng.
  • Tốc độ cao: do thực thi bởi máy nên tốc độ của kiểm thử tự động nhanh hơn nhiều so với tốc độ của con người. Nếu cần 5 phú để thực thi một test case một cách thủ công thì có thể người ta chỉ cần khoảng 30s để thực thi một cách tự động.
  • Chi phí thấp: nếu áp dụng kiểm thử tự động đúng cách, người ta có thể tiết kiệm được nhiều chi phí, thời gian và nhân lực, do kiểm thử tự động nhanh hơn nhiều so với kiểm thử thủ công, đồng thời nhân lực cần để thực thi và bảo trì scripts không nhiều.

Nhược điểm:

  • Khó mở rộng, khó bảo trì: trong cùng một dự án, để mở rộng phạm vi cho kiểm thử tự động khó hơn nhiều so với kiểm thử thủ công vì cập nhật hay chỉnh sửa yêu cầu nhiều công việc như debug, thay đổi dữ liệu đầu vào và cập nhật code mới.
  • Khả năng bao phủ thấp: do khó mở rộng và đòi hỏi nhiều kỹ năng lập trình nên độ bao phủ của kiểm thử tự động thấp xét trên góc nhìn toàn dự án.
  • Vấn đề công cụ và nhân lực: hiện nay cũng có nhiều công cụ hỗ trợ kiểm thử tự động khá tốt nhưng chúng vẫn còn nhiều hạn chế. Ngoài ra nhân lực đạt yêu cầu (có thể sử dụng thành thạo các công cụ này) cũng không nhiều.
Ưu Nhược Điểm Của Automation Testing So Với Manual Testing
Ưu Nhược Điểm Của Automation Testing So Với Manual Testing

III. Automation Test Làm Những Công Việc Gì?

Thông thường những công việc của automation test sẽ bao gồm:

– Automate TC (ATC): thực hiện các bước trong MỘT kịch bản test, mô phỏng các thao tác của người sử dụng một cách tự động hóa

– Automate automated TC (AATC): thực hiện chạy TOÀN BỘ các kịch bản test (test suite) một cách tự động hóa và report.

Chi tiết:

ATC bao gồm các bước

– Chuẩn bị test data (nếu cần): ví dụ lựa chọn test data hợp lệ bao gồm 1 email và 1 password ngẫu nhiên để đăng ký tài khoản mới, bạn phải tự động tạo 1 email hợp lệ sau mỗi test case.

– Thực hiện mô phỏng các thao tác của người dùng trong kịch bản test bằng việc viết các script sử dụng các ngôn ngữ hỗ trợ khác nhau.

– Thực hiện việc so sánh kết quả thực tế và kết quả mong đợi trong mỗi kịch bản test

– Cập nhật kết quả test của kịch bản test

AATC bao gồm các bước:

– Chuẩn bị môi trường để test: bước này có thể sẽ phải triển khai môi trường cho automation test, hoặc chuẩn bị các file cài đặt, các test data….

– Khởi chạy test suite: theo cấu hình hoặc yêu cầu từ trước, ví dụ như: chạy các test case UAT, hoặc các nhóm test case liên quan tới 1 function nào đó….

– Báo cáo: việc báo cáo có thể được thực hiện update dần thông qua từng kịch bản test (như extend report, allure report), hoặc có thể tạo DB report riêng và dashboard riêng để hiển thị kết quả. Ngoài ra, tùy theo yêu cầu của project mà report được thông báo với các bên liên quan thông qua các công cụ hỗ trợ, như slack, skype, email, jira…..

 Automation Test Làm Những Công Việc Gì
Automation Test Làm Những Công Việc Gì

IV. Quy Trình Automation Test

Thành công trong tự động hóa việc thử nghiệm đòi hỏi việc lập kế hoạch và thiết kế cẩn thận. Các bước sau được thực hiện theo quy trình tự động hóa:

+ Lựa chọn công cụ kiểm thử

Trước khi áp dụng Automation testing, bạn nên xác định mục tiêu. Bây giờ, lúc bạn chắc chắn mình đang thực hiện loại kiểm tra nào, bạn cần chọn công cụ kiểm thử phần mềm. Bạn cần cân nhắc những điểm sau khi chọn công cụ:

  • Nó có dễ dàng để phát triển và duy trì các script cho công cụ hay không?
  • Nó có hoạt động trên các nền tảng như web, điện thoại di động, máy tính để bàn, v.v… không?
  • Công cụ có chức năng báo cáo kiểm thử không?
  • Công cụ này có thể hỗ trợ bao nhiêu loại kiểm thử?
  • Công cụ hỗ trợ bao nhiêu ngôn ngữ?

+ Xác định phạm vi tự động hóa

  • Tiếp theo, bạn cần xác định phạm vi tự động hóa. Vì vậy, bạn cần quyết định trường hợp kiểm thử nào sẽ tự động hóa dựa trên những điều sau:
  • Các tình huống có một lượng lớn dữ liệu
  • Những trường hợp thử nghiệm có chức năng chung trên các ứng dụng
  • Tính khả thi về kỹ thuật
  • Mức độ có thể sử dụng lại các thành phần của doanh nghiệp
  • Sự phức tạp của các trường hợp kiểm thử

+ Lập kế hoạch, thiết kế và phát triển

Sau khi xác định mục tiêu và loại thử nghiệm nào cần tự động hóa, bạn nên quyết định những hành động mà Automation testing sẽ thực hiện. Việc lập kế hoạch, thiết kế và phát triển bao gồm:

– Phát triển các trường hợp kiểm thử: Các bài kiểm tra tự động lớn, phức tạp luôn rất khó chỉnh sửa và gỡ lỗi. Tốt nhất nên chia các bài kiểm tra thành nhiều bài kiểm tra đơn giản, logic và nhỏ hơn.

– Phát triển bộ kiểm thử: Bộ thử nghiệm bảo đảm rằng các trường hợp thử nghiệm tự động chạy lần lượt mà không cần bất kỳ sự can thiệp thủ công nào. Bây giờ, điều này có thể dễ dàng được thực hiện bằng cách tạo 1 bộ kiểm thử có nhiều trường hợp thử nghiệm, một thư viện và công cụ dòng lệnh chạy bộ kiểm thử.

+ Thực thi kiểm thử

Các script tự động hóa được thực thi trong giai đoạn này. Ngoài ra, việc thực thi có thể được thực hiện bằng cách sử dụng công cụ tự động hóa trực tiếp hoặc thông qua công cụ quản lý kiểm thử sẽ gọi công cụ tự động hóa.

+ Bảo trì

Khi những trường hợp kiểm thử được thực thi, bước tiếp theo là tạo báo cáo để những hành động thực hiện trong quá trình thử nghiệm được ghi lại. Khi các chức năng mới được thêm vào phần mềm mà bạn đang thử nghiệm với những chu kỳ liên tiếp, các script tự động hóa cần được thêm, xem xét và duy trì cho mỗi chu kỳ phát hành. Do đó, việc bảo trì trở nên cần thiết để nâng cao hiệu quả của tự động hóa.

Quy Trình Automation Test
Quy Trình Automation Test

V. Khi Nào Nên Áp Dụng Automation Testing

  • Trường hợp kiểm thử cần thực hiện nhiều lần, thường xuyên phải thực hiện regression test, một số lượng test data lớn cần hoàn thành trong một thời gian ngắn.
  • Kiểm thử cần thực hiện ở môi trường khác nhau
  • Áp dụng với những project ổn định, đặc điểm kĩ thuật được xác định trước, chức năng không thay đổi trong tương lai
  • Kiểm thử hoạt động cơ bản mà phải thực hiện lặp lại với lượng test data lớn
  • Kiểm tra nhiều màn hình trong thời gian ngắn, liên tục
  • Thực thi test performance test hoặc load test thì kiểm thử tự động gần như là lựa chọn duy nhất
Khi Nào Nên Áp Dụng Automation Testing
Khi Nào Nên Áp Dụng Automation Testing

VI. Học Gì Để Trở Thành Automation Tester ?

+ Nắm kiến thức về Manual Testing

  • Các loại kiểm thử: Unit Test, Intergration Test, System Test, Acceptance Test, Regression Test, Sanity Test, Smoke Test… là gì?
  • Các kiến thức căn bản: Phân tích giá trị biên, phân vùng tương đương, biểu đồ kết quả, đoán lỗi…
  • Rèn luyện khả năng quan sát và nhìn nhận vấn đề đối với 1 case nào đó bất kỳ. Cần kiểm tra cái gì, đến mức độ nào, cái nào quan trọng hơn cái nào,…Để sau còn biết cái nào mang sang Auto Test cái nào giữ lại cho Manual Test.

Tại sao phải trang bị những kiến thức này, bởi vì một Automation Tester sẽ không design được đúng hoặc đủ tất cả những Cases mà mình cần nếu không nắm chắc những nội dung này. Và trong trường hợp bạn phải ôm xô cả vai trò của Manual Tester hoặc phải design Test Case trước khi thực hiện viết kịch bản Auto thì chắc hơi căng đấy =))

+ Hiểu về HTML, CSS và Xpath

  • Để nhận dạng đúng Test Objects/ Elements mà mình cần thao tác cho auto test.
  • Vô cùng quan trọng: việc nhận dạng đúng đối tượng cần thao tác sẽ tăng sự ổn định và độ chính xác của Test Script.

+ Học ít nhất một ngôn ngữ lập trình

Để hỗ trợ cho việc viết kịch bản trên test tools

  • Java/ C#/ Python/ Ruby/ Javascript/ Groove…

Đây là phần cực kì quan trọng nếu bạn muốn làm tốt và phát triển công việc của một Automation Tester.

Riêng ở Việt Nam thì An gợi ý là học ngôn ngữ Java để kết hợp Selenium Java. Các công ty đang làm và tuyển dụng phổ biến.

+ Sử dụng thư viện hỗ trợ auto test

Phần này khá là quan trọng trong thời điểm hiện tại, Selenium được sử dụng tại hầu hết các công ty có làm Automation cho Website (open source, dễ sử dụng, cộng đồng lớn).

Song song đó thì chúng ta dùng Appium để auto test cho Mobile.

+ Tự build code với Framework Testing

JUnit/ TestNG/ Cucumber/ Specflow/ NUnit/ XUnit/ MSTest/ Pytest…

Việc sử dụng thành thạo sẽ giúp bạn rất nhiều trong việc build framework, hỗ trợ trong việc phân nhóm, quản lí test script, report, prepare data/ environment/ browsers.

+ Học hỏi công nghệ mới trong mảng Automation Testing

Khi mà đã code được hoàn thiện dự án automation test rồi thì bước tiếp theo sẽ là nghiên cứu học hỏi các công nghệ mới bổ trợ cho mình về sau lâu dài để nâng cao kiến thức, hiệu quả cũng như năng suất cho auto test.

  • Build tools: Maven, ANT,…
  • CI/CD: Jenkins, TeamCity, CircleCI, TFS, Docker, …
  • Cloud: AWS, Saucelab, Browserstack, Testingbot,…
  • BDD: Cucumber, Serenity, Specflow,…
  • Big Data: Hadoop, HBase, Kafka, Spark, Hive,…
  • Mobile: Appium, Perfecto,…
  • Automation Testing Tools: Katalon Studio, Katalon Recoder, Selenium IDE,…và một số Extensions trên Browser

+ Tìm hiểu về Software Design Pattern

Để build framework/ common library mục đích làm cho source code mình nó bài bản hơn. Sau này dễ custom dễ optimize.

+ Build Framework với kiểu Page Object Model pattern (POM)

Hầu hết các framework nổi tiếng hiện nay đều kế thừa ý tưởng từ pattern này nên việc bạn sử dụng thành thạo POM sẽ không khó lúc tiếp cận một công nghệ/ framework mới.

Sau khi build thành công framework, apply vào một dự án thực tế bất kì để kiểm nghiệm.

+ Kĩ năng về Coding/ IDE

Khi mà đã biết code rồi thì rèn luyện code nhanh hơn, mượt hơn, nghiên cứu các cách xử lý lỗi xảy ra để cứng tay hơn =))

  • Debug, coding convention, source version control (GIT, SVN,…)
  • Cách dùng IDE: Visual Studio, Eclipse, IntelliJ,…
  • Cài  những Extension bổ trợ hoặc viết luôn Extension cho IDE để code bá cháy hơn

+ Làm việc với Database

Hầu hết dự án phần mềm nào cũng có thao tác với DB, nắm vững kiến thức về truy vấn, verify data, ràng buộc dữ liệu,.. sẽ giúp bạn rất nhiều trong công việc hàng ngày của Automation Tester.

Học Gì Để Trở Thành Automation Tester
Học Gì Để Trở Thành Automation Tester

VII. Những Kỹ Năng Nào Là Cần Thiết Dành Cho Một Automation Tester?

1) Hiểu nguyên lý nhận dạng test objects. Nếu làm Web Automation Test cần nắm rõ HTML và XPath. Bạn có thể học hai mảng này ở W3School.

2) Hiểu nguyên lý lập trình, và thành thạo ít nhất 1 ngôn ngữ lập trình. Web Automation Engine được dùng phổ biến ở thị trường hiện nay là Selenium WebDriver, có kết hợp cho những ngôn ngữ Java, C#, Ruby, Python…

Ngoài ra các bạn có thể tham khảo thêm các ngôn ngữ scripting phổ biến như VBScript, JavaScript hoặc Groovy nếu cần.

3) Không bỏ qua SQL và XML. Hai mảng này bạn có thể học tại TutorialsPoint và W3School.

Đa số các dự án lập trình đều cần có cơ sở dữ liệu. XML được hiểu như một phần của portal database và SML cũng được dùng tương đối nhiều hiện nay.

4) Những bạn muốn đi sâu vào thiết kế tốt framework/common library thì nên tìm hiểu sâu về software design pattern.

5) Làm Automation Tester là liên quan đến coding nên các bạn cần quan tâm tới những kỹ năng của code như debug, source version control, coding convention, unit testing… Tìm kiếm các từ khoá này trên Google là thấy ngay tài liệu.

6) Nên ham học hỏi những cái mới trong chuyên môn.

Ví dụ, xu thế Automation Test và software development hiện tại là kỹ thuật tích hợp (integration). Đó là 1 chuỗi khép kín, tương tác giữa development, deploy và test. Anh đang nghiên cứu kỹ thuật này vì nó là xu hướng chung, không học hỏi sẽ bị tụt hậu.

Những Kỹ Năng Nào Là Cần Thiết Dành Cho Một Automation Tester
Những Kỹ Năng Nào Là Cần Thiết Dành Cho Một Automation Tester

VIII. Các Tool Automation Test

Với sự gia tăng trong việc áp dụng các phương pháp Agile và DevOps, ngành công nghiệp kiểm thử phần mềm đang trải qua một sự thay đổi mô hình. Automation test đang ngày càng được ưa chuộng vì chỉ cần rất ít thời gian để thực hiện kiểm thử. Các công cụ kiểm tra tự động hóa không chỉ cung cấp tự động hóa một cách thông minh mà còn cung cấp các hướng phân tích để giải quyết mọi thách thức khi tiến hành kiểm thử.

Dưới đây là danh sách 5 công cụ và khung kiểm tra tự động hóa hàng đầu có thể cải thiện đáng kể kết quả kiểm thử phần mềm của bạn.

+ Selenium

Selenium được dùng để kiểm tra trình duyệt chéo ( cross-browser testing) và tự động hóa kiểm tra trình duyệt web (web-browser test automation). Để sử dụng công cụ này, người kiểm tra phải có kỹ năng lập trình nâng cao để viết các kịch bản kiểm tra phức tạp và nâng cao.

Những kỹ năng này là cần thiết để xây dựng các khung và thư viện tự động hóa cho các nhu cầu kiểm thử cụ thể. Selenium là một công cụ nguồn mở thường được sử dụng bởi các nhà phát triển và người thử nghiệm, những người thông thạo các ngôn ngữ lập trình như Java, C #, Perl, Python, Scala, Groovy, PHP & Ruby.

Selenium được trang bị Selenium WebDriver mạnh mẽ cho phép bạn tạo các bộ kiểm tra và tự động hồi quy dựa trên trình duyệt. Một trong những lợi thế chính của công cụ này là nó cho phép bạn chia tỷ lệ và phân phối các tập lệnh trên nhiều môi trường.

+ IBM Rational Functional Tester (RFT)

IBM RFT rất phù hợp để kiểm thử hồi quy (regression testing) và kiểm thử chức năng (functional testing). Đây là một nền tảng kiểm thử (testing platform) dựa trên dữ liệu hỗ trợ các ứng dụng như .Net, Java, SAP, Flex và Ajax. Các ngôn ngữ kịch bản được sử dụng bởi RFT là .Net và Java.

Một trong những tính năng độc đáo của IBM RFT là kiểm thử Storyboard (Storyboard testing) giúp đơn giản hóa kiểm thử trực quan bằng cách ghi lại và trực quan hóa các hành động của người dùng với sự trợ giúp của các ảnh chụp màn hình ứng dụng theo định dạng bảng phân cảnh. Nó cũng cho phép chỉnh sửa bằng ngôn ngữ tự nhiên. Nó cũng cung cấp tích hợp với quản lý vòng đời ứng dụng IBM Jazz như IBM Rotational Team Concert và Rational Quality Manager.

+ Cucumber

Cucumber là khung phát triển hướng hành vi (BDD) cho phép xác thực chức năng theo định dạng dễ hiểu và dễ đọc. BDD là một cách tiếp cận mở rộng của Phát triển hướng thử nghiệm (Test Driven Development) và nó được sử dụng để kiểm tra hầu hết hệ thống thay vì kiểm tra một đoạn mã cụ thể.

Cucumber là 1 công cụ để làm việc với các thông số kỹ thuật thực thi. Các thông số kỹ thuật thực thi được sử dụng cho sự hợp tác lớn hơn giữa các nhóm CNTT và doanh nghiệp. Công cụ này hữu ích để viết acceptance tests cho ứng dụng web. Cucumber cung cấp các tệp tính năng có thể được sử dụng làm tài liệu của các Nhà phân tích, Nhà phát triển và Người kiểm tra, v.v. Cucumber hỗ trợ các ngôn ngữ như Perl, PHP, Python, Net, v.v.

+ TestComplete

TestComplete cho phép bạn xây dựng và chạy các kiểm thử giao diện người dùng chức năng (functional UI tests). Đây là một công cụ kiểm tra tự động hóa rất phù hợp để kiểm tra các ứng dụng máy tính để bàn, thiết bị di động và web. Công cụ cho phép bạn tạo ra các trường hợp kiểm thử bằng hầu hết các ngôn ngữ phổ biến như Python, JavaScript và VBScript, v.v …

Nó cho phép bạn ghi lại và phát lại các bài kiểm thử. Nó cung cấp các khả năng nhận dạng đối tượng GUI UI tự động phát hiện và cập nhật các đối tượng UI. Nó giúp giảm bớt những nỗ lực cần thiết để duy trì các kịch bản kiểm thử (test scripts) . Với TestComplete, việc kiểm thử quy mô trên 1500+ môi trường thử nghiệm thực tế là tươg đối dễ dàng để cung cấp phạm vi kiểm tra hoàn chỉnh.

+ eggPlant

Một trong những công cụ kiểm tra tự động hóa tốt nhất cho ứng dụng và kiểm tra GUI là eggPlant. TestPlant đã phát triển eggPlant cho tester để thực hiện các loại kiểm thử khác nhau. Trong khi hầu hết các công cụ tự động hóa tuân theo cách tiếp cận dựa trên đối tượng, eggPlant hoạt động theo cách tiếp cận dựa trên hình ảnh.

Công cụ cho phép người kiểm tra tương tác với ứng dụng giống như cách endusers sẽ làm. Trong eggPlant, bạn có thể sử dụng một tập lệnh duy nhất để thực hiện kiểm thử trên nhiều nền tảng như Windows, Mac, Linux và Solaris, v.v. eggPlant cung cấp một bộ công cụ tự động hóa kiểm thử để thực hiện các loại kiểm thử khác nhau.

Công cụ kiểm tra chức năng eggPlant được sử dụng để kiểm tra chức năng và hiệu suất eggPlant được sử dụng để kiểm tra hiệu suất, tải và ứng suất (performance testing, load testing và stress testing).

Các Tool Automation Test
Các Tool Automation Test

IX. Các Câu Hỏi Phỏng Vấn Automation Test

+ Tại sao cần Automation Test? (Why need automation test?)

Câu hỏi này để đánh giá kiến thức sơ bộ của bạn về automation test và việc bạn có biết mục đích sử dụng automation test để sử dụng nó có hiệu quả.

  • Giúp tiết kiệm tiền bạc và thời gian: nhất là trong giai đoạn bảo trì của những dự án lớn. Mỗi tuần chúng ta phải thực hiện regression test từ 1 đến 2 lần với số lượng test case rất lớn trong 1 tới 2 ngày. ĐIều này gần như không thể thực hiện bằng cách thủ công, trong lúc với kiểm thử tự động chúng ta hoàn toàn có thể với nguồn nhân lực vô cùng khiêm tốn.
  • Chính xác hơn: Nhờ độ ổn định cao, kiểm thử tự động có thể thực thi các test case với độ chính xác cao hơn.
  • Độ bao phủ cao: Như đã nói ở trên, khi dùng kiểm thử tự động, chúng ta có thể thực thi số lượng lớn test case trong một thời gian ngắn. Nên độ bao phủ của nó rất cao. Điều này giúp chúng ta nâng cao độ bao phủ trong giai đoạn regression test.
  • Hoàn thành những công việc mà con người không thể làm được: Nếu chúng ta muốn thực thi load test, performance test, thì kiểm thử tự động là cách duy nhất.

Các trường hợp cần sử dụng automation test:

a) Kiểm thử hồi quy (Regression testing): Trong trường hợp sửa lỗi hoặc triển khai module mới, tester phải đảm bảo rằng chức năng đã được triển khai hoặc không thay đổi không bị ảnh hưởng. Trong trường hợp này, tester kết thúc chạy test case hồi quy nhiều lần.

Ví dụ: Sau mỗi yêu cầu thay đổi hoặc sửa lỗi, sau mỗi lần lặp trong trường hợp tiếp cận phát triển gia tăng, v.v.

b) Kiểm thử phi chức năng: Kiểm thử các khía cạnh phi chức năng của một ứng dụng.

Ví dụ: kiểm thử tải (load testing) hoặc kiểm thử hiệu suất (performance testing), vv rất khó cho con người theo dõi và phân tích.

c) Kiểm thử tính toán phức tạp: các test scenario dễ bị lỗi khi kiểm thử thủ công.

d) Thực hiện lặp lại các kiểm thử giống nhau: Đôi khi, tester phải chạy cùng một bộ test case cho một bộ dữ liệu khác nhau hoặc sau mỗi lần phát hành bản dựng hoặc trên nhiều phần cứng, phần mềm hoặc kết hợp cả hai.
Kiểm thử tự động các test case trong các tình huống trên giúp đạt được tốc độ kiểm thử và giảm thiểu lỗi của con người.

+ Framework là gì? (What is the framework?)

Câu hỏi để đánh giá sơ bộ cách build framework của bạn và liệu frame work đó có hiệu quả không?

Framework là một tập hợp cấu trúc của toàn bộ bộ kiểm thử tự động. Nó cũng là một hướng dẫn, mà nếu tuân theo có thể dẫn đến một cấu trúc dễ bảo trì và nâng cao.

Những hướng dẫn này bao gồm:

– Tiêu chuẩn mã hóa

– Xử lý dữ liệu kiểm thử

– Duy trì và xử lý các phần tử (kho đối tượng trong QTP)

– Xử lý tệp môi trường và tệp thuộc tính

– Báo cáo dữ liệu

– Xử lý nhật ký

+ Automation test framework là gì?

Có thể hiểu đơn giản đó là một application project được dựng lên để tự động hóa việc kiểm thử một ứng dụng nào đó. Như vậy, bản thân framework cũng chính là một ứng dụng. Nó cũng phải được thiết kế hoàn chỉnh, được apply những design pattern, và cũng phải dựa trên những định nghĩa, quy tắc cơ bản nhất của ngôn ngữ lập trình được sử dụng để phát triển nên framework đó. Framework có thể được deploy như một ứng dụng hoàn chỉnh, hoặc cũng có thể được đóng gói thành các thư viện để được tiếp tục được phát triển.

+ Trách nhiệm của một Automation Engineer?

Automation Engineer không chỉ làm công việc viết automation script. Họ trước hết vẫn phải là một QA Tester đúng nghĩa. Đó là phải có sự am hiểu về mặt nghiệp vụ (business) của hệ thống. Có thể hiểu ít nhất mức độ quan trọng của việc kiểm thử, biết cách viết test case, log defect. Thực tế công việc thì người Automation Engineer sẽ kiêm luôn công việc của một Manual QA, và khi đã feature nào đã được hoàn tất, họ sẽ bắt tay vào việc implement các test case liên quan tới feature đó thành automation.

Trên thực tế, từ một QA thuần manual để chuyển sang Automation QA thực sự không phải là việc dễ dàng vì có dính tới code, và cũng đòi hỏi nhiều mindset, kỹ năng của một developer. Vì vậy, bạn cũng đừng ngạc nhiên khi thấy có nhiều Developer chuyển sang làm Automation QA nhưng từ Manual QA mà chuyển sang Automation thành công lại khá hiếm.

Đó là bởi vì developer đã có sẵn dev skills và coding mindset, là những thứ cần rất nhiều thời gian + năng khiếu mới có được. Khi đó, chỉ cần học hỏi thêm mindset và kỹ năng cơ bản của một Manual QA là đã có thể bắt đầu con đường của một Automation QA được rồi.

Tuy nhiên, một full-stack QA không chỉ cần có Manual và Automation skills mà còn cần phải có ít nhiều kỹ năng của một DevOps để có thể tự deploy và maintain những gì mình đã xây dựng. Và cuối cùng là khả năng ngoại ngữ + giao tiếp để có thể deliver những gì mình đã và đang làm tới khách hàng.

+ Nêu 4 tính chất cơ bản của Lập trình hướng đối tượng OOP (Object-Oriented Programming)?

Phần lớn các automation framework hiện nay được xây dựng dựa trên Selenium kết hợp với một ngôn ngữ lập trình hướng đối tượng (phổ biến nhất có lẽ là Java và C#). Vậy nên dĩ nhiên các câu hỏi phỏng vấn sẽ ít nhiều liên quan tới OOP.

4 tính chất cơ bản của OOP thì có lẽ ai cũng biết, đó là:

– Encapsulation (tính đóng gói).

– Abstraction (tính trừu tượng).

– Inheritance (tính kế thừa).

– Polymorphism (tính đa hình).

Nhưng để hiểu và giải thích được cặn kẽ cả 4 tính chất này thì bạn cần ít nhất 1-2 tiếng đồng hồ để thử practice và nghiền ngẫm qua các ví dụ đầy rẫy trên mạng.

Các Câu Hỏi Phỏng Vấn Automation Test
Các Câu Hỏi Phỏng Vấn Automation Test

X. Khóa Học Automation Testing Ở Đâu Tốt Nhất

Hiện nay có nhu cầu tuyển Tester tăng cao, rất nhiều nhà tuyển dụng lớn như Seta Cinq (Mỹ và Nhật), Exoplatform (Pháp), Sumy(Cty VN có các dự án ở Malaysia) … Nên việc xin việc đối với các học viên sau Khoá học Automation testing của Techacademy.edu.vn là điều dễ dàng. Đây là thời cơ rất tốt cho những bạn sinh viên học CNTT.

Phương pháp đào tạo

Cụm từ “tự động hóa” đã và đang được nhắc đến cực kỳ nhiều mục đích thường rất đa dạng, phụ thuộc vào yêu cầu đặc thù của từng lĩnh vực. Tuy nhiên điểm chung nhất vẫn là giảm nhân lực thời gian và sai sót.

Ngành CNTT mà cụ thể là phát triển phần mềm cũng không ngoại lệ. Đặc biệt với sự phát triển như vũ bão về công nghệ, ý tưởng mới như hiện nay đòi hỏi cách doanh nghiệp phần mềm phải rút ngắn thời gian đưa sản phẩm ra thị trường (time to market) với chất lượng tốt nhất.

Kiểm thử tự động bởi thế có thêm nhiều cơ hội và thách thức mới trở thành ngành “hot” đang được tìm kiếm và quan tâm nhất.

Ngoài ưu điểm về giảm thiểu thời gian và nhân lực trong kiểm tra hồi quy (regression test) thì để thích ứng với mô hình Agile, test tự động còn phải đáp ứng thêm những yêu cầu sau:

– Đáp ứng nhanh các yêu cầu của kiểm thử viên về cả kiểm tra hồi quy (regression) và các chức năng mới (new test cases).

– Thời gian scripting ngắn, dễ dàng review + đối chiếu với SRS, và khả năng tái sử dụng cao (maintenance).

– Phản hồi thông tin nhanh cho đội phát triển về chất lượng phần mềm (Quick feedback to development team).

– Dễ dàng mở rộng và thích ứng với các công nghệ mới.

– Chi phí thấp

Trước các yêu cầu mới này ICT – HÀ NỘI phối hợp với các doanh nghiệp lớn đã xây dựng chương trình đào tạo kiểm thử phần mềm tự động với mục đích:

– Giúp học viên nắm được công cụ và quy trình làm test tự động.

– Sẵn sàng tham gia vào quá trình áp dụng và triển khai kiểm thử phần mềm tự động cho các dự án Web, Desktop, Mobile vừa và lớn.

– Có khả năng mở rộng xây dựng các framework, cập nhật các công nghệ kiểm thử tự động mới.

– Đặc biệt giúp công ty nơi học viên sau khi kết thúc khóa học làm việc có được các phương pháp mới nhất với chi phí thấp nhất về test tự động theo mô hình ATDD (acceptance test driven development) để có khả năng đấu thầu các dự án lớn trên thế giới.

Khóa Học Automation Testing Ở Đâu Tốt Nhất
Khóa Học Automation Testing Ở Đâu Tốt Nhất

The post Automation Testing Là Gì ?(Kiểm Thử Tự Động Là Gì ?) first appeared on Techacademy.

source https://techacademy.edu.vn/automation-testing-la-gi/