Kiến thức Python cơ bản cho người mới

Python là một ngôn ngữ lập trình thông dịch đa mục đích, hiện đã ghi dấu ấn rất tốt trong thế giới Khoa học Máy tính và quan trọng nhất là đối với an ninh mạng.

Đây không phải là một bài viết độc lập chỉ giải thích python là gì và giới thiệu một số lệnh cơ bản. Bài viết này sẽ là phần khởi đầu cho các bài python về an ninh mạng khác. Lưu ý là trong suốt quá trình này mình sẽ sử dụng Python3 trên Ubuntu 18.04 nhé.

Bước đầu tiên khi học python

Python có thể được cài đặt từ kho lưu trữ apt tiêu chuẩn của linux bằng cách nhập lệnh sudo apt-get install python3 để cài đặt python3 trong máy của bạn. Để sử dụng python, bạn chỉ cần nhập python trong Terminal của mình, nó sẽ đưa bạn đến shell của python.

robin@python:~$ python3
Python 3.6.8 (default, Jan 14 2019, 11:02:34) 
[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Đối với Windows, bạn tải Python For Windows, khi cài đặt ở màn hình đầu tiên nhớ chọn Add Path…. Sau khi cài xong thì mở CMD lên gõ lệnh python xem chạy không nhé.

Các khái niệm cơ bản

Bắt đầu với những điều cơ bản, mình sẽ giải thích các khái niệm khác nhau sẽ được sử dụng để hiểu những gì bạn đang làm và cũng sẽ giúp bạn gỡ lỗi chương trình.

Biến

Một biến trỏ đến dữ liệu được lưu trữ trong một vị trí bộ nhớ. Một bộ nhớ thường có thể chứa các chuỗi, số thực, giá trị Boolean, số nguyên hoặc các kiểu dữ liệu phức tạp hơn như sets, list, và dictionary.

Lưu ý: Trong Python, bạn không phải xác định rõ ràng kiểu dữ liệu như C / C ++. Chuỗi của Python có thể đặt ở trong dấu nháy đơn cũng như dấu ngoặc kép, không khác nhau như PHP/Perl.

Python 3.6.8 (default, Jan 14 2019, 11:02:34) 
[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a_string = "Hello" # A string in duble quotations
>>> a_string
'Hello'
>>> a_string = 'Hello' # A string in single quotations
>>> a_string
'Hello'
>>> num = 5 # A integer value
>>> num
5
>>> float = 1.34 # A float value
>>> float
1.34
>>> Boolean = True # A boolean value
>>> Boolean
True
>>>

Ở trên, mình đã khai báo các loại biến khác nhau mà không cần phải xác định giống như C++.

Chuỗi

Chuỗi là một đối tượng bất biến trong python có nghĩa là sau khi được tạo, bạn không thể thay đổi nội dung của nó (anh em nào không hiểu chỗ này thì đọc bài này và bài này nữa nhé). Như đã nói trước đây, không quan trọng nếu bạn sử dụng dấu nháy đơn hay dấu nháy kép. Hàm len được sử dụng để lấy độ dài của chuỗi.

>>> var = "Hello, this is a string"
>>> var
'Hello, this is a string'
>>> new_var = 'Hello, this is a string'
>>>new_var
'Hello, this is a string'

Số nguyên và Số thực

Một số nguyên trong python có thể ở dạng âm hoặc dương vì nó không yêu cầu bất kỳ quy định nào về kiểu dữ liệu biến như số nguyên không dấu và có dấu trong C.

>>> a_int = 5
>>> a_int
5
>>> a_float = 1.43
>>> a_float
1.43

Như bạn thấy, không cần khai báo biến, chúng ta có thể tiết kiệm rất nhiều thời gian và nhanh chóng sử dụng các đối tượng mới.

List, Set và Dictionary

List

List là một tập hợp các kiểu dữ liệu đồng nhất hoặc không đồng nhất có nghĩa là chúng ta có thể lưu trữ các kiểu dữ liệu khác nhau trong cùng một list. Một list có thể chứa cá dữ liệu trùng lặp. Để truy cập dữ liệu trong list, bạn có thể sử dụng chỉ mục (index), tức là vị trí của phần tử trong list.

>>> lists
["A","B","C","D"]
>>> lists[0] # value atposition zero
'A'

Set

Mặt khác, set là một kiểu dữ liệu có thể thay đổi, có thể được sử dụng để lưu trữ các kiểu dữ liệu khác nhau nhưng không chứa các dữ liệu bị trùng lặp.

>>> lists = ["A","B","C","D","A","B"]
>>> set(lists)
["A","B","C","D"]

Dictionary

Dictionary là một bảng băm chứa các khóa và các giá trị tương ứng của chúng. Nó có thời gian truy cập O(1) có nghĩa là mất một khoảng thời gian không đổi để truy xuất dữ liệu. Một giá trị trong dictionary có thể được truy cập từ các keys (khóa).

>>> dictionary
{'Foo': 'Bar', 'Bacon': 'Fish'}
>>> dictionary['Foo']
'Bar'
>>> dictionary['Bacon']
'Fish'

Input

Cú pháp input được sử dụng để lấy dữ liệu đầu vào từ người dùng trong Terminal. Theo mặc định, giá trị đầu vào sẽ là chuỗi. Nhưng bạn cũng có thể ép kiểu dữ liệu từ chuỗi sang số bằng cách thêm các hàm như int(), float() ở ngoài hàm input().

#!/usr/bin/env python3

name = input("Enter Name: ")
age = int(input("Enter age:" )) # Chuyển chuỗi sang số nguyên
height = float(input("Enter height: ") #Chuyển chuỗi sang số thực

Đầu tiên, biến name sẽ nhận đầu vào là một chuỗi và age sẽ nhận đầu vào là một số nguyên trong khi biến height sẽ nhận đầu vào là số thực. Nếu bất kỳ loại đối tượng nào khác được nhập, nó sẽ dẫn đến lỗi ngoại lệ (Exception).

Toán tử

Điều khiển luồng lệnh

Câu lệnh if, elif và else

Các câu lệnh này được gọi là câu lệnh điều kiện. Được sử dụng để kiểm tra một điều kiện sau đó thực hiện xử lý dữ liệu.Ví dụ:

user = input("Enter Username: ")
password = input("Enter Password: ")

if user == "admin" and password == "123":
    print("Welcome Admin")
elif user == "guest" and password == "guest":
    print("Welcome Guest")
else:             
    print("Wrong credentials")

userpassword đều là biến và nhận đầu vào từ người dùng bằng hàm input. Ở dòng số 6, chúng ta có lệnh if để kiểm tra xem user có bằng với chuỗi “admin” và password bằng với chuỗi “123” hay không. Câu lệnh and được sử dụng để đảm bảo 2 điều kiện trên đều True. Trên dòng số 8, chúng ta đang kiểm tra xem userpassword có bằng “guest” hay không. Trên dòng số 10, lệnh printsẽ được chạy nếu hai điều kiện trên đều không được thỏa mãn.

Vòng lặp for

Câu lệnh for..in là một câu lệnh vòng lặp, lặp lại lệnh theo số lần mà người dùng muốn.

num = 5
for i in range(num):
    print(i) # Will print 0,1,2,3,4

Ở dòng 2, có một câu lệnh for..in sử dụng hàm rangeđể lặp lại từ 0 cho đến 4. Vòng lặp for có thể được sử dụng để duyệt các loại dữ liệu khác nhau như list, string,…

Vòng lặp while

Câu lệnh while cho phép bạn lặp lại một khối lệnh miễn là một điều kiện đúng. Ví dụ:

num = 0
while num < 10:
    num += 1
print(num)

Trên dòng 1, chúng ta có biến num được gán giá trị 0. Dòng 2 có lệnh while sẽ được chạy cho đến khi giá trị num bằng hoặc lớn hơn 10 thì dừng. Trên dòng 3, chúng ta lệnh tăng num lên 1 sau mỗi lần lặp. Do đó ở dòng 4, chúng ta sẽ nhận được giá trị là 10.

Hàm

Hàm (function) là những phần chương trình có thể tái sử dụng. Chúng cho phép bạn đặt tên cho một khối câu lệnh, cho phép bạn chạy khối đó bằng cách gọi tên được chỉ định ở bất kỳ đâu trong chương trình của bạn và không giới hạn số lần gọi.

Cấu trúc của hàm:

def func_name(arg):
   -- your code --
return result

Từ khóadef ở đầu để xác định một hàm. func_name sẽ là tên của hàm. arg là tham số và return cho kết quả cuối cùng. Trong python, hàm không nhất thiết phải có return.

Exceptions Ngoại lệ

Các trường hợp ngoại lệ xảy ra khi các tình huống đặc biệt xảy ra trong chương trình của bạn. Ví dụ, điều gì sẽ xảy ra nếu bạn đang đọc một tệp và tệp đó không tồn tại? Hoặc nếu bạn vô tình xóa nó khi chương trình đang chạy thì sao? Những tình huống như vậy được xử lý bằng cách sử dụng các ngoại lệ (Exceptions).

Ví dụ một lệnh gọi hàm print đơn giản. Điều gì sẽ xảy ra nếu chúng ta viết sai thành Print? Trong trường hợp này, Python sẽ báo lỗi cú pháp.

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'Print' is not defined
>>> print("Hello World")
Hello World

Xử lý các trường hợp ngoại lệ

Chúng ta có thể xử lý các ngoại lệ bằng cách sử dụng câu lệnh try..except. Về cơ bản, chúng ta đặt các câu lệnh thông thường trong khối try và đặt tất cả các trường hợp xử lý lỗi vào khối except.

try:
    text = input('Enter something --> ')
except EOFError:
    print('Why did you do an EOF on me?')
except KeyboardInterrupt:
    print('You cancelled the operation.')
else:
    print('You entered {}'.format(text))

Chúng ta đặt tất cả các câu lệnh có thể tạo ra các ngoại lệ/lỗi bên trong khối try và sau đó đặt các lệnh xử lý cho các lỗi/ngoại lệ trong except. Exceptcó thể xử lý một lỗi hoặc ngoại lệ được chỉ định hoặc một danh sách các lỗi/ngoại lệ được đặt trong ngoặc đơn. Nếu không có tên lỗi hoặc ngoại lệ nào được cung cấp, nó sẽ xử lý tất cả các lỗi và ngoại lệ.

Module thư viện

Cũng như cách bạn sử dụng lại code như trong hàm. Bạn cũng có thể sử dụng lại code của một chương trình khác trong 1 file khác nữa. Đó gọi là module thư viện.

Một module thư viện có thể được sử dụng bởi một chương trình khác để sử dụng chức năng của nó. Đây là cách chúng ta có thể sử dụng thư viện chuẩn Python. Đầu tiên, chúng ta sẽ xem cách sử dụng các module thư viện tiêu chuẩn.

import sys

print('The command line arguments are:')
for i in sys.argv:
    print(i)

print('nnThe PYTHONPATH is', sys.path, 'n')

Truy cập thư viện sys bằng cách sử dụng lệnh import. Về cơ bản, điều này có nghĩa là chúng ta nói với Python rằng chúng ta muốn sử dụng module này. Module sys chứa các hàm liên quan đến trình thông dịch Python và môi trường, hệ thống.

Khi Python thực thi câu lệnh import sys, nó sẽ tìm kiếm module sys. Trong trường hợp này, nó là một trong những mô-đun được tích hợp sẵn và do đó Python biết phải tìm ở đâu.

Tổng kết

Python là một trong những ngôn ngữ được yêu thích và phổ biến nhất. Nó cũng được sử dụng trong nhiều mảng khác nhau như web, app, bảo mật. Bạn có thể đọc thêm nhiều bài python tại đây. Ngoài ra, để viết code Python, mình khuyên bạn nên sử dụng Sublime Text 3 hoặc Visual Studio Code.

Đánh giá post
Exit mobile version