Hướng dẫn cách viết lệnh python

Python là một ngôn ngữ đề cao khả năng dễ đọc, ngắn gọn là quan trọng là LÀM ĐƯỢC NHIỀU THỨ.

Ngôn ngữ Python được coi là ngôn ngữ lập trình dễ học nhất. Vậy, hôm nay mình sẽ cùng bạn thử Tự học Python Cơ Bản trong 10 PHÚTxem nhé.

* Lưu ý: Trước khi bắt đầu, bạn nên Cài đặt PythonCài đặt Pycharm [Nhớ xem cả cách chạy thử một tập tin Python trong bài hướng dẫn cài đặt Pycharm nữa nhé].

* Bài viết này mình sử dụng để giúp các bạn học viên KHÓA HỌC PYTHONcó một chút nền tảng đề khi bắt đầu học Python sẽ dễ hơn.

Nội dung chính

  • 1. Thử chạy trình thông dịch Python Python đi kèm với một trình thông dịch tương tác. Khi bạn gõ python trong shell hoặc command prompt, trình thông dịch python sẽ hoạt động với một dấu nhắc >>> và chờ lệnh của bạn. $ python Python 3.7.4 [v3.7.4:e09359112e, Jul  8 2019, 14:54:52] [Clang 6.0 [clang-600.0.57]] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> Bây giờ bạn có thể gõ bất kỳ biểu thức python hợp lệ tại dấu nhắc lệnh này. Python sẽ đọc biểu thức bạn vừa gõ, đánh giá nó và trả lại kết quả. Ví dụ: >>> 4242>>> 4 + 26 Bài tập 1: Hãy mở trình thông dịch Python mới và sử dụng nó để tìm giá trị của 2 + 3 Lưu ý: Trong các ví dụ, mình sẽ sử dụng command prompt [command line]. Nếu bạn sử dụng Pycharm thì hãy bỏ các dấu >>> và ... . Khi muốn in kết quả thì ném biểu thức vào trong lệnh print[]
  • 2. Thử chạy tập lệnh Python Hãy mở trình soạn thảo văn bản / Pycharm của bạn, nhập đoạn code sau và lưu nó dưới dạng hello.py. Lưu ý là phải lưu đúng đuôi .py nhé! print["hello, world!"] Và chạy chương trình này bằng cách gọi python hello.py. Hãy chắc chắn rằng bạn thay đổi thư mục đến nơi bạn đã lưu tệp trước khi thực hiện lệnh này. Trong Pycharm thì bạn có thể Click chuột phải [hoặc Ctrl + Shift + f10] vào file hello.py và chọn Run 'hello'. Hoặc Click chuột phải vào sidebar trái và chọn Open in Terminal sau đó gõ lệnh python hello Mẹo: gõ cls + Enter trong Terminal / command prompt để dọn sạch màn hình console. Và đây là kết quả [ * trên command prompt]: $ python hello.py hello, world! Ngoài cách chạy ngay trên Command Prompt / Terminal thì bạn có thể chạy chương trình Python trên Pycharm bằng cách chuột phải vào file hiện tại và chọn Run.
  • 3. Các kiểu dữ liệu phổ biến trong Python Ngôn ngữ lập trình Python có hỗ trợ cho tất cả các kiểu dữ liệu cơ bản và cũng có kiểu dữ liệu kết hợp rất mạnh. Python có kiểu số nguyên: integers print[1+2] Chạy chương trình thì chúng ta có kết quả: 3 Python cũng rất giỏi trong việc xử lý số rất lớn. Ví dụ: Chúng ta hãy thử tính 2^1000. print[2**1000] Kết quả là một con số khá lớn, phải không? Bạn nào đếm được kết quả chính xác có bao nhiêu số liên hệ mình sẽ có quà nhé: ;] Python có hỗ trợ kiểu dữ liệusố dấu phẩy động: float print[1.2+2.3] Chạy chương trình ta có kết quả: 3.5 Python có kiểu dữ liệu chuỗi: String print["helloworld"] print['helloworld'] Chạy chương trình, ta có kết quả: hello world hello world Chuỗi có thể được đặt trong dấu ngoặc đơn '' hoặc dấu ngoặc kép "". Cả hai đều giống hệt nhau. Trong Python, các chuỗi rất linh hoạt và rất dễ dàng để làm việc với chúng. print['hello'+'world'] print["hello"*3] print["="*10] Chạy chương trình, ta có kết quả: helloworld hellohellohello ========== Trong Python, hàm print[] có một chút khác biệt: #Tạomộtbiếntuổi [là một số nguyên] tuoi=18; #Inrathôngbáo print["Tôi"+tuoi+"tuổi"] Thực hiện như thế này sẽ gây ra lỗi bởi vì Python cho rằng cộng một số vào một chuỗi thì không có ý nghĩa. Do đó, để được kết quả mong muốn thì ta phải chuyển đổi kiểu số thành String [chuyển về cùng kiểu dữ liệu], như sau: #Tạomộtbiếntuổi tuoi=18; #Inrathôngbáo print["Tôi"+str[tuoi]+"tuổi"] Kết quả: Tôi 18 tuổi Hàm len tích hợp [built-in function] được sử dụng để tìm độ dài của chuỗi. print[len['helloworld']] Chạy chương trình, ta có kết quả: 10 Python cũng hỗ trợ viết các chuỗi trên nhiều dòng. Chúng được đặt trong ba dấu ngoặc kép hoặc ba dấu ngoặc đơn, như ví dụ sau: text="""Đâylàmộtchuỗinhiềudòng. Dòngthứ2 Dòngthứ3 vànócóthểchứađoạntext"Trongdấunháy"nhưthếnày. """ print[text] Chạy chương trình Python trên ta nhận được kết quả: Đây là một chuỗi nhiều dòng. Dòng thứ 2 Dòng thứ 3 và nó có thể chứa đoạn text "Trong dấu nháy" như thế này. Python cũng hỗ trợ các lệnh tắt. \n là thông báo một dòng mới, \t là thông báo 1 tab ... Ví dụ: print["a\nb\nc"] Kết quả khi chạy chương trình nhận được là: a b c Python có kiểu dữ liệu dạng danh sách [được gọi là List]. List là một trong những loại dữ liệu hữu ích nhất của Python. #KhaibáomộtList x=["a","b","c"] #Inrax print[x] #Inrađộdàicủax print[len[x]] #Truycậpphầntửthứ2 print[x[1]] Chạy chương trình trên, ta nhận được kết quả: ['a', 'b', 'c'] 3 b Để khai báo một List trong Python, chúng ta sử dụng ngoặc vuông []. Python cũng có một kiểu dữ liệu khác gọi là tuple để biểu diễn các bản ghi với chiều rộng cố định. Tuples hành xử giống như List, nhưng chúng là bất biến. #Khaibáomộttuple point=[2,3] #Inratuple print[point] Chạy chương trình, ta nhận được kết quả: [2, 3] Khi khai báo một tuple, bạn có thể bỏ qua dấu ngoặc đơn, như thế này. #Khaibáomộttuple không có ngoặc đơn point=2,3 Bạn cũng có thể gán một tuple với nhiều giá trị cùng một lúc: #Khaibáomộttuple yellow=[255,255,0] #Gántuplevớinhiêugiátrị r,g,b=yellow #Inracácgiátrị print[r,g,b] Chạy chương trình ta nhận được kết quả: 255 255 0 Python có kiểu dữ liệu dictionary để biểu diễn dữ liệu theo các cặp name : value #Khaibáomộtdictionary person={"name":"NIIT","email":""} #Inragiátrịcủaname print[person['name']] #Inragiátrịcủaemail print[person['email']] Chạy chương trình, chúng ta nhận được kết quả là: NIIT Thêm nữa, Python cũng có một kiểu dữ liệu gọi làset. Một set là một tập hợp các phần tử không có thứ tự và duy nhất. #Khaibáomộtset x={1,2,3,2,1} #Inset print[x] Chạy chương trình, chúng ta nhận được kết quả: {1, 2, 3} Python có kiểu boolean. Nó có hai giá trị đặc biệt True và False để đại diện cho Đúng và Sai. #Khaibáomộtbiếnboolean x=True #Inx print[x] Kết quả nhận được là: True Lưu ý: Trong python thì True và False sẽ viết hoa chữ cái đầu, sẽ hơi khác so với các ngôn ngữ khác như Java, PHP. Cuối cùng, Python có một kiểu dữ liệu đặc biệt gọi là None để đại diện cho không có gì. #None:KiểudữliệuđặcbiệttrongPython x=None print[x] Bây giờ bạn đã biết hầu hết các cấu trúc dữ liệu phổ biến của Python. Nhìn thì chúng rất đơn giản, nhưng thành thạo vận dụng các kiểu dữ liệu này cũng cần một chút luyện tập đấy. Và hãy chắc chắn bạn đã hiểu tất cả các ví dụ trên, thử viết và chạy lại xem kết quả vài lần để đảm bảo bạn quen thuộc trước khi chúng ta chuyển sang phần tiếp theo.
  • 4. Tìm hiểu về Biến trong lập trình Python Bạn chưa được học về biến trong Python nhưng bạn học lập trình Python thì đây là kiến thức căn bản không thể thiếu. Và, bạn đã nhìn thấy biến ở phần trước. :D Bây giờ, chúng ta sẽ xem xét kỹ hơn về biến trong Python. Trong Python, biến không có kiểu [hay không cần khai báo kiểu dữ liệu]. Chúng chỉ là tên giữ chỗ đó và có thể giữ bất kỳ giá trị với bất kỳ kiểu dữ liệu nào, hãy xem ví dụ sau: x=5 print[x] x='hello' print[x] Chạy chương trình, ta nhận được kết quả: 5 hello Note: Nếu bạn làm như thế trong Java thì lỗi sấp mặt rồi. Điều quan trọng là bạn có thể nhận thấy sự khác biệt giữa các biến và chuỗi. Thông thường người mới học lập trình sẽ hay bị nhầm lãn. Hãy thử xem bạn có thể nhận ra lỗi nào trong ví dụ sau không? name="NIIT" print["name"] Nếu có thì chúc mừng bạn, biến trong Python cũng không có gì là khó khăn cả. [Thế mà mấy ông cứ bảo học lập trình khó lắm -_-]
  • 5. Tìm hiểu về Hàm trong lập trình Python Hàm - hay còn gọi là function. Trong Python, có nhiều hàm dựng sẵn [built-in functions]. Ví dụ, print một hàm được tích hợp sẵn được sử dụng phổ biến nhất. print['hello'] print['hello',1,2,3] Chạy chương trình, ta có kết quả: hello hello 1 2 3 Chúng ta cũng đã thấy hàm lenở phần trước. Hàm lenđược sử dụng để tính chiều dài của một chuỗi, list hoặc các tập hợp khác. print[len["hello"]] print[len[['a','b','c']]] Chạy chương trình, ta nhận được kết quả: 5 3 Một điều quan trọng về Python là nó không cho phép các hoạt động trên các kiểu dữ liệu không tương thích. Ví dụ, bạn làm như thế này: print[5+"2"] Bạn sẽ nhận được thông báo lỗi tương tự thế này: Traceback[mostrecentcalllast]: File "c:/Users/Admin/Desktop/Hello.py", line1, in print[5 + "2"] TypeError: unsupported operand type[s] for +: 'int' and 'str' Đó là bởi vì không thể cộng số với chuỗi. Chúng ta cần chuyển đổi 5 thành một chuỗi hoặc "2"thành một số. Để làm điều này, chúng ta có hàm dựng sẵn làintsẽchuyển đổi một chuỗi thành một số và hàm strsẽ chuyển đổi bất kỳ giá trị nào thành một chuỗi. Ví dụ như thế này: int['2'] Bây giờ, chúng ta làm lại ví dụ ở bên trên: print[5+int['2']] print[str[5]+"2"] Khi chạy chương trình, ta có kết quả: 7 52 Vì cộng chuỗi với chuỗi nên chúng ta có chuỗi 52 > Đọc thêm: Lập trình hàm trong Python
  • Ví dụ: Đếm số chữ số trong một số với Python Ở phần trên mình đã đố bạn đếm được số chữ số của kết quả 2^1000 đúng không? Tuy nhiên, đếm bằng tay thì quá khổ. Hãy viết một chương trình để đếm số chữ số trong một số, ví dụ, chúng ta có các số:
  • 6. Tạo hàm tùy chỉnh trong Python Giống như cách gán một giá trị cho một biến, một đoạn logic cũng có thể được liên kết với một tên bằng cách định nghĩa nó là một hàm. Ví dụ hàm tùy chỉnh trong Python: #Khaibáomộthàmtínhbìnhphương defsquare[x]: returnx*x #Inrabìnhphươngcủa5 print[square[5]] Chạy chương trình, ta nhận được kết quả: 25 Trong đó:
  • 7. Tìm hiểu về biểu thức điều kiện trong Python Python cung cấp các toán tử khác nhau để so sánh các giá trị. Kết quả của một so sánh là một giá trị boolean, True hoặc False. print[23] Kết quả: True False Dưới đây là danh sách các toán tử điều kiện phổ biến nhất.
  • 8. Tìm hiểu về List trong PythonList là một trong những loại dữ liệu rất thường gặp trong Python [Nó giống như mảng trong các ngôn ngữ khác vậy]Bây giờ chúng ta sẽ tìm hiểu kỹ hơn một chút về List. Kiến thức cơ bản về List là bắt buộc để có thể sử dụng Python.Đây là một list chứa các giá trị number: x=[1,2,3] Đây là một list chứa các giá trị string: x=["hello","world"] List cũng có thể chứa các giá trị không đồng nhất. Dưới đây là List chứa số, chuỗi và cả List khác: x=[1,2,"hello","world",["another","list"]] Hàm len cũng có thể làm việc được với List: x=[1,2,3] print[len[x]] Kết quả: 3 Toán tử [] được sử dụng để truy cập một giá trị nhất định trong list. #Khaibáomộtlist x=[1,2,3] #Inraphầntửthứ2 print[x[1]] #Cậpnhậtphầntửthứ2 x[1]=4 #Inraphầntửthứ2 print[x[1]] Kết quả: 2 4 Có kết quả như trên bởi vì: Phần tử đầu tiên có chỉ số [index] là 0, phần tử thứ hai có chỉ số là 1, ...* Bạn sẽ được học nhiều hơn về List ở những bài chia sẻ sau.
  • 9. Tìm hiểu về Modules trong PythonCác Module là các thư viện trong Python. Python chứa rất nhiều thư viện tiêu chuẩn.Một module có thể được nhập bằng cách sử dụng câu lệnh importHãy xem cách nhập module time để sử dụng, như bên dưới: #Importmoduletime importtime #Inrathờigianởdạngchuỗi print[time.asctime[]] Kết quả: Fri Aug 28 08:26:36 2020 Hàm asctime trong module time trả về thời gian hiện tại của hệ thống như một chuỗi.Còn có rất nhiều Module thú vị trong thư viện tiêu chuẩn của Python [Python Standard Library].Chúng ta sẽ tìm hiểu thêm về chúng trong các bài viết sắp tới.OK. Trước khi kết thúc hướng dẫn học lập trình Python này, hãy cùng làm một bài tập cuối nào.Bài tập 13:Viết một chương trình add.py lấy 2 số nhập vào command line và in ra tổng của chúng.
  • Tổng kết Tự học Python Cơ Bản trong 10 PhútTiêu đề là "Tự học Python Cơ Bản trong 10 phút" mà có thể đã quá 10 phút nhiều rồi đấy nhỉ :D. Mình chọn tiêu đề giật gân tý thôi.Nhưng mình nghĩ rằng, đối với người mới bắt đầu tìm hiểu qua về lập trìnhPython cơ bản như bạn, trong 1 bài viết như vậy cũng giúp bạn có được một số nền tảng kha khá để tiếp tục rồi đấy.Chi tiết ra thì có khá nhiều. Tuy nhiên, cứ tạm như thế đã [Đừng đi sâu vội]. NẾU BẠN MUỐN HỌC PYTHON CHUYÊN SÂU HƠN THÌ ĐĂNG KÝ TẠI ĐÂY!
  • Video liên quan

Tự học Python cơ bản trong 10 phút

OK, nếu bạn đã chuẩn bị xong. Hãy bắt đầu cùng mình Tự học Lập trình Python Cơ bản trong 10 phút nào!

Mục lục [*Click vào mục lục để chạy đến từng phần]:

1. Thử chạy trình thông dịch Python

2. Thử chạy tập lệnh Python

3. Các kiểu dữ liệu phổ biến trong Python

4. Tìm hiểu về Biến trong Python

5. Tìm hiểu về Hàm trong Python

6. Tạo hàm tùy chỉnh trong Python

7. Tìm hiểu về biểu thức điều kiện trong Python

8. Tìm hiểu về List trong Python

9. Tìm hiểu về Modules trong Python

Tổng kết Tự học Python Cơ Bản trong 10 Phút

1. Thử chạy trình thông dịch Python Python đi kèm với một trình thông dịch tương tác. Khi bạn gõ python trong shell hoặc command prompt, trình thông dịch python sẽ hoạt động với một dấu nhắc >>> và chờ lệnh của bạn. $ python Python 3.7.4 [v3.7.4:e09359112e, Jul  8 2019, 14:54:52] [Clang 6.0 [clang-600.0.57]] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> Bây giờ bạn có thể gõ bất kỳ biểu thức python hợp lệ tại dấu nhắc lệnh này. Python sẽ đọc biểu thức bạn vừa gõ, đánh giá nó và trả lại kết quả. Ví dụ: >>> 4242>>> 4 + 26 Bài tập 1: Hãy mở trình thông dịch Python mới và sử dụng nó để tìm giá trị của 2 + 3 Lưu ý: Trong các ví dụ, mình sẽ sử dụng command prompt [command line]. Nếu bạn sử dụng Pycharm thì hãy bỏ các dấu >>> và ... . Khi muốn in kết quả thì ném biểu thức vào trong lệnh print[]

Hoặc sử dụng phím tắt Ctrl + Shif + F10

3. Các kiểu dữ liệu phổ biến trong Python Ngôn ngữ lập trình Python có hỗ trợ cho tất cả các kiểu dữ liệu cơ bản và cũng có kiểu dữ liệu kết hợp rất mạnh. Python có kiểu số nguyên: integers print[1+2] Chạy chương trình thì chúng ta có kết quả: 3 Python cũng rất giỏi trong việc xử lý số rất lớn. Ví dụ: Chúng ta hãy thử tính 2^1000. print[2**1000] Kết quả là một con số khá lớn, phải không? Bạn nào đếm được kết quả chính xác có bao nhiêu số liên hệ mình sẽ có quà nhé: ;] Python có hỗ trợ kiểu dữ liệusố dấu phẩy động: float print[1.2+2.3] Chạy chương trình ta có kết quả: 3.5 Python có kiểu dữ liệu chuỗi: String print["helloworld"] print['helloworld'] Chạy chương trình, ta có kết quả: hello world hello world Chuỗi có thể được đặt trong dấu ngoặc đơn '' hoặc dấu ngoặc kép "". Cả hai đều giống hệt nhau. Trong Python, các chuỗi rất linh hoạt và rất dễ dàng để làm việc với chúng. print['hello'+'world'] print["hello"*3] print["="*10] Chạy chương trình, ta có kết quả: helloworld hellohellohello ========== Trong Python, hàm print[] có một chút khác biệt: #Tạomộtbiếntuổi [là một số nguyên] tuoi=18; #Inrathôngbáo print["Tôi"+tuoi+"tuổi"] Thực hiện như thế này sẽ gây ra lỗi bởi vì Python cho rằng cộng một số vào một chuỗi thì không có ý nghĩa. Do đó, để được kết quả mong muốn thì ta phải chuyển đổi kiểu số thành String [chuyển về cùng kiểu dữ liệu], như sau: #Tạomộtbiếntuổi tuoi=18; #Inrathôngbáo print["Tôi"+str[tuoi]+"tuổi"] Kết quả: Tôi 18 tuổi Hàm len tích hợp [built-in function] được sử dụng để tìm độ dài của chuỗi. print[len['helloworld']] Chạy chương trình, ta có kết quả: 10 Python cũng hỗ trợ viết các chuỗi trên nhiều dòng. Chúng được đặt trong ba dấu ngoặc kép hoặc ba dấu ngoặc đơn, như ví dụ sau: text="""Đâylàmộtchuỗinhiềudòng. Dòngthứ2 Dòngthứ3 vànócóthểchứađoạntext"Trongdấunháy"nhưthếnày. """ print[text] Chạy chương trình Python trên ta nhận được kết quả: Đây là một chuỗi nhiều dòng. Dòng thứ 2 Dòng thứ 3 và nó có thể chứa đoạn text "Trong dấu nháy" như thế này. Python cũng hỗ trợ các lệnh tắt. \n là thông báo một dòng mới, \t là thông báo 1 tab ... Ví dụ: print["a\nb\nc"] Kết quả khi chạy chương trình nhận được là: a b c Python có kiểu dữ liệu dạng danh sách [được gọi là List]. List là một trong những loại dữ liệu hữu ích nhất của Python. #KhaibáomộtList x=["a","b","c"] #Inrax print[x] #Inrađộdàicủax print[len[x]] #Truycậpphầntửthứ2 print[x[1]] Chạy chương trình trên, ta nhận được kết quả: ['a', 'b', 'c'] 3 b Để khai báo một List trong Python, chúng ta sử dụng ngoặc vuông []. Python cũng có một kiểu dữ liệu khác gọi là tuple để biểu diễn các bản ghi với chiều rộng cố định. Tuples hành xử giống như List, nhưng chúng là bất biến. #Khaibáomộttuple point=[2,3] #Inratuple print[point] Chạy chương trình, ta nhận được kết quả: [2, 3] Khi khai báo một tuple, bạn có thể bỏ qua dấu ngoặc đơn, như thế này. #Khaibáomộttuple không có ngoặc đơn point=2,3 Bạn cũng có thể gán một tuple với nhiều giá trị cùng một lúc: #Khaibáomộttuple yellow=[255,255,0] #Gántuplevớinhiêugiátrị r,g,b=yellow #Inracácgiátrị print[r,g,b] Chạy chương trình ta nhận được kết quả: 255 255 0 Python có kiểu dữ liệu dictionary để biểu diễn dữ liệu theo các cặp name : value #Khaibáomộtdictionary person={"name":"NIIT","email":""} #Inragiátrịcủaname print[person['name']] #Inragiátrịcủaemail print[person['email']] Chạy chương trình, chúng ta nhận được kết quả là: NIIT Thêm nữa, Python cũng có một kiểu dữ liệu gọi làset. Một set là một tập hợp các phần tử không có thứ tự và duy nhất. #Khaibáomộtset x={1,2,3,2,1} #Inset print[x] Chạy chương trình, chúng ta nhận được kết quả: {1, 2, 3} Python có kiểu boolean. Nó có hai giá trị đặc biệt True và False để đại diện cho Đúng và Sai. #Khaibáomộtbiếnboolean x=True #Inx print[x] Kết quả nhận được là: True Lưu ý: Trong python thì True và False sẽ viết hoa chữ cái đầu, sẽ hơi khác so với các ngôn ngữ khác như Java, PHP. Cuối cùng, Python có một kiểu dữ liệu đặc biệt gọi là None để đại diện cho không có gì. #None:KiểudữliệuđặcbiệttrongPython x=None print[x] Bây giờ bạn đã biết hầu hết các cấu trúc dữ liệu phổ biến của Python. Nhìn thì chúng rất đơn giản, nhưng thành thạo vận dụng các kiểu dữ liệu này cũng cần một chút luyện tập đấy. Và hãy chắc chắn bạn đã hiểu tất cả các ví dụ trên, thử viết và chạy lại xem kết quả vài lần để đảm bảo bạn quen thuộc trước khi chúng ta chuyển sang phần tiếp theo.

4. Tìm hiểu về Biến trong lập trình Python Bạn chưa được học về biến trong Python nhưng bạn học lập trình Python thì đây là kiến thức căn bản không thể thiếu. Và, bạn đã nhìn thấy biến ở phần trước. :D Bây giờ, chúng ta sẽ xem xét kỹ hơn về biến trong Python. Trong Python, biến không có kiểu [hay không cần khai báo kiểu dữ liệu]. Chúng chỉ là tên giữ chỗ đó và có thể giữ bất kỳ giá trị với bất kỳ kiểu dữ liệu nào, hãy xem ví dụ sau: x=5 print[x] x='hello' print[x] Chạy chương trình, ta nhận được kết quả: 5 hello Note: Nếu bạn làm như thế trong Java thì lỗi sấp mặt rồi. Điều quan trọng là bạn có thể nhận thấy sự khác biệt giữa các biến và chuỗi. Thông thường người mới học lập trình sẽ hay bị nhầm lãn. Hãy thử xem bạn có thể nhận ra lỗi nào trong ví dụ sau không? name="NIIT" print["name"] Nếu có thì chúc mừng bạn, biến trong Python cũng không có gì là khó khăn cả. [Thế mà mấy ông cứ bảo học lập trình khó lắm -_-]

5. Tìm hiểu về Hàm trong lập trình Python Hàm - hay còn gọi là function. Trong Python, có nhiều hàm dựng sẵn [built-in functions]. Ví dụ, print một hàm được tích hợp sẵn được sử dụng phổ biến nhất. print['hello'] print['hello',1,2,3] Chạy chương trình, ta có kết quả: hello hello 1 2 3 Chúng ta cũng đã thấy hàm lenở phần trước. Hàm lenđược sử dụng để tính chiều dài của một chuỗi, list hoặc các tập hợp khác. print[len["hello"]] print[len[['a','b','c']]] Chạy chương trình, ta nhận được kết quả: 5 3 Một điều quan trọng về Python là nó không cho phép các hoạt động trên các kiểu dữ liệu không tương thích. Ví dụ, bạn làm như thế này: print[5+"2"] Bạn sẽ nhận được thông báo lỗi tương tự thế này: Traceback[mostrecentcalllast]: File "c:/Users/Admin/Desktop/Hello.py", line1, in print[5 + "2"] TypeError: unsupported operand type[s] for +: 'int' and 'str' Đó là bởi vì không thể cộng số với chuỗi. Chúng ta cần chuyển đổi 5 thành một chuỗi hoặc "2"thành một số. Để làm điều này, chúng ta có hàm dựng sẵn làintsẽchuyển đổi một chuỗi thành một số và hàm strsẽ chuyển đổi bất kỳ giá trị nào thành một chuỗi. Ví dụ như thế này: int['2'] Bây giờ, chúng ta làm lại ví dụ ở bên trên: print[5+int['2']] print[str[5]+"2"] Khi chạy chương trình, ta có kết quả: 7 52 Vì cộng chuỗi với chuỗi nên chúng ta có chuỗi 52 > Đọc thêm: Lập trình hàm trong Python

Ví dụ: Đếm số chữ số trong một số với Python Ở phần trên mình đã đố bạn đếm được số chữ số của kết quả 2^1000 đúng không? Tuy nhiên, đếm bằng tay thì quá khổ. Hãy viết một chương trình để đếm số chữ số trong một số, ví dụ, chúng ta có các số:

  • 2^10
  • 2^100
  • 2^1000
    Chúng ta sẽ sử dụng hàm str để chuyển số về dạng chuỗi.

    Sau đó sử dụng hàm len để tính độ dài của chuỗi đó, cụ thể làm như sau:

    print[len[str[2**10]]] print[len[str[2**100]]] print[len[str[2**1000]]]

    Chạy chương trình trên, ta có kết quả như sau:

    4
    31
    302

    Bạn đã hiểu cách làm chưa?

    > Lưu ý: Đọc đến đoạn này mà mới có đáp án thì không có quà nữa đâu nhé. ;]

6. Tạo hàm tùy chỉnh trong Python Giống như cách gán một giá trị cho một biến, một đoạn logic cũng có thể được liên kết với một tên bằng cách định nghĩa nó là một hàm. Ví dụ hàm tùy chỉnh trong Python: #Khaibáomộthàmtínhbìnhphương defsquare[x]: returnx*x #Inrabìnhphươngcủa5 print[square[5]] Chạy chương trình, ta nhận được kết quả: 25 Trong đó:

  • từ khóa def để định nghĩa một hàm
  • square là tên hàm [tùy bạn đặt]
  • x là tham số của hàm

    Phần thân của hàm được thụt lề [bằng tab]. Thụt lề cũng là để cách phân nhóm các câu lệnh Python.

    Các hàm trong Python có thể được sử dụng trong bất kỳ biểu thức nào:

    print[square[2]+square[3]] print[square[square[3]]]

    Chạy chương trình ta có kết quả là:

    13
    81

    Các hàm hiện có cũng có thể được sử dụng để tạo ra các hàm mới.

    #Tạohàmmớisửdụnghàmhiệncó defsum_of_squares[x,y]: returnsquare[x]+square[y] #Tínhtổngbìnhphươngcủa2và3 print[sum_of_squares[2,3]]

    Chạy chương trình ta có kết quả:

    13

    Các hàm trong Python cũng giống như các giá trị khác, chúng có thể được gán, được chuyển dưới dạng đối số cho các hàm khác.

    Ví dụ gán hàm cho biến:

    #Gánhàmsquarechobiếnf f=square #Tínhbìnhphươngcủa4 f[4]

    Chạy chương trình, ta có kết quả:

    16

    Ví dụ truyền hàm dưới dạng tham số:

    #Vídụtruyềnhàmdướidạngthamsố deffxy[f,x,y]: returnf[x]+f[y] #Sửdụngthửhàmvừatạo print[fxy[square,2,3]]

    Chạy chương trình, ta có kết quả là:

    13

    Điều quan trọng là bạn phải hiểu được phạm vi của các biến được sử dụng trong các hàm.

    Hãy nhìn vào một ví dụ.

    #Khaibáo,khởitạo2biếnxvày x=0 y=0
    #Khaibáohàmincr defincr[x]: y=x+1 returny #Thửsửdụnghàmvừatạo print[incr[5]] #Inragiátrịcủabiếnx,y print[x,y]

    Chạy chương trình, chúng ta có kết quả:

    6
    0 0

    Điều này xảy ra vì các biến được gán trong một hàm, bao gồm các đối số được gọi là các biến cục bộ của hàm[local variables].

    Các biến được định nghĩa ở cấp cao nhất được gọi là biến toàn cục [global variables].

    Nếu bạn thay đổi giá trị của x và y bên trong hàm incrthì nó cũng sẽ không ảnh hưởng những giá trị của biến toàn cục, x và y.

    Nhưng, bên trong hàm, chúng ta lại có thể sử dụng các giá trị của các biến toàn cục:

    #Khaibáomộtbiếntoàncục pi=3.14 #Tạomộthàmtínhchuvihìnhtròn defarea[r]: #Sửdụngbiếntoàncụctronghàm returnpi*r*r #Thửsửdụnghàmvừatạođểtínhtoán print[area[5]]

    Chạy chương trình, ta có kết quả:

    78.5

    Khi Python thấy việc sử dụng một biến không được định nghĩa trong phạm vi cục bộ, nó sẽ cố gắng tìm một biến toàn cục có tên đó.

    Nếu có, nó có thể sử dụng

    Tuy nhiên, bạn phải khai báo rõ ràng một biến là global để có thể sửa đổi nó.

    #Khaibáomộtbiếntoàncục numcalls=0 #Tạomộthàmtínhbìnhphương #Sửdụngbiếntoàncụcđểđếmsốlầnhàm #vừatạođượcsửdụng defsquare[x]: globalnumcalls numcalls=numcalls+1 returnx*x print[square[2]] print[square[5]] print[numcalls]

    Như bạn đã thấy, chúng ta thực thi 2 lần hàm square. Vậy theo như hàm vừa tạo, chúng ta kỳ vọng numcallslúc này sẽ có giá trị là 2 đúng không?

    Chạy chương trình, ta có kết quả:

    25
    2

    Sau đây chúng ta sẽ làm một số bài tập để hiểu hơn về hàm trong Python.

    Bài tập 2: Có bao nhiêu phép nhân được thực hiện khi mỗi đòng code sau đây được thực thi?

    > Lưu ý: Cố gẳng thử tự suy nghĩ đáp án trước khi chạy chương trình trên IDE / Editor

    * Sử dụng hàm square mà chúng ta đã định nghĩa ở trên.

    print[square[5]] print[square[2*5]]

    Bài tập 3: Kết quả của chương trình sau đây là gì?

    x=1 deff[]: returnx print[x] print[f[]]

    Bài tập 4: Kết quả của chương trình sau đây là gì?

    x=1 deff[]: x=2 returnx print[x] print[f[]] print[x]

    Bài tập 5: Kết quả của chương trình sau đây là gì?

    x=1 deff[]: y=x x=2 returnx+y print[x] print[f[]] print[x]

    Bài tập 6: Kết quả của chương trình sau đây là gì?

    x=2 deff[a]: x=a*a returnx y=f[3] print[x,y]

    Hãy chậm lại một chút, giải hết các bài tập trên thì mới tiếp tục bạn nhé.

    Các hàm có thể được gọi với các đối số.

    defdifference[x,y]: returnx-y print[difference[5,2]] print[difference[x=5,y=2]] print[difference[5,y=2]] print[difference[y=2,x=5]]

    Và một tham số có thể có giá trị mặc định:

    defincrement[x,amount=1]: returnx+amount print[increment[10]] print[increment[10,5]] print[increment[10,amount=2]]

    Chúng ta cũng có một cách khác để tạo các hàm, đó là sử dụng toán tử lambda.

    Ví dụ, chúng ta có:

    f=lambdax:x**3 deffxy[f,x,y]: returnf[x]+f[y] print[fxy[f,2,3]]

    Chạy chương trình chúng ta có kết quả:

    35

    Nhưng chúng ta có thể sử dụng như sau:

    deffxy[f,x,y]: returnf[x]+f[y] print[fxy[lambdax:x**3,2,3]]

    Chạy chương trình chúng ta có:

    35

    Lưu ý rằng không giống như định nghĩa hàm, lambda không cần return. Phần thân của lambda là một biểu thức duy nhất.

    Toán tử lambda trở nên cực kỳ tiện dụng khi viết các hàm nhỏ được truyền dưới dạng đối số, v.v.

    Chúng ta sẽ thấy nhiều hơn về cách vận dụng lambda khi giải quyết các vấn đề quan trọng hơn.

    Ngoài ra, Python cung cấp một số hàm tích hợp rất tiện lợi.

    Hàm min tìm giá trị nhỏ nhất, hàm max tìm giá trị lớn nhất:

    #Tìmgiátrịnhỏnhất min[2,3] #Tìmgiátrịlớnnhất max[3,4]

    Hàm len sử dụng để tính độ dài của chuỗi:

    #Tínhđộdàicủachuỗi len["helloworld"]

    Hàm int chuyển đổi chuỗi thành ingeter và hàm dựng sẵn str chuyển đổi các số nguyên và các kiểu đối tượng khác thành string.

    #Chuyểnđổichuỗithànhsố int["50"] #Chuyểnđổisốthànhchuỗi str[123]

    Bây giờ, chúng ta tiếp tục với bài tập nhỏ nào:

    Bài tập 7: Viết hàm count_digits để tìm số chữ số xuất hiện trong số đã cho:

    Ví dụ: Cho số 12336833, viết hàm để tính xem số này có bao nhiêu chữ số. Kết quả là 8

    print[count_digits[5]] print[count_digits[12345]]

    Kết quả cần phải nhận được là:

    1
    5

    Nếu bạn đã viết xong thì chúng ta tiếp tục,

    Phương thức [method] là loại hàm đặc biệt hoạt động trên đối tượng.

    Ví dụ, upper là một phương thức có sẵn trong đối tượng string.

    x="hello" print[x.upper[]]

    Kết quả nhận được là:

    HELLO

    Như đã nói ở trên, phương thức cũng là hàm. Chúng có thể được gán cho các biến khác có thể được gọi riêng.

    x="hello" f=x.upper print[f[]]

    Kết quả nhận được là:

    HELLO

    Hãy tiếp tục với một bài tập nhỏ nào

    Bài tập 8: Hãy viết một hàm istrcmp để so sánh hai chuỗi [bỏ qua vấn đề Hoa - thường] để có kết quả như bên dưới:

    print[istrcmp['python','Python']] print[istrcmp['NiiT','nIIt']] print[istrcmp['a','b']]

    Kết quả nhận được cần phải là:

    True
    True
    False

    Bạn đã xong chưa?

7. Tìm hiểu về biểu thức điều kiện trong Python Python cung cấp các toán tử khác nhau để so sánh các giá trị. Kết quả của một so sánh là một giá trị boolean, True hoặc False. print[23] Kết quả: True False Dưới đây là danh sách các toán tử điều kiện phổ biến nhất.

  • == so sánh bằng
  • != không bằng
  • < nhỏ hơn
  • > lớn hơn
  • = lớn hơn hoặc bằng

    Bạn thậm chí có thể kết hợp những loại toán tử này:

    x=5 print[2

Chủ Đề