Python (P1)

Trần Đức Lĩnh

1) Comment

Ghi chú 1 dòng.

# print('comment')

Ghi chú nhiều dòng.

'''
print('comments')
'''

2) Biến

Không được trùng lặp với từ khoá:

and as assert break class
continue def del elif else
except exec finally for
from global if import
in is lambda not
or pass print
raise return try while
with yield

Quy định đặt tên biến: Không được bắt đầu bằng số. Chỉ chứa các ký tự, số và dấu gạch dưới (_). Có phân biệt chữ hoa và chữ thường.

Khởi tạo biến:

Khởi tạo một biến

<variable> = <value>

Khởi tạo nhiều biến

<variable_1>, <variable_2>, <variable_3>,... = <value_1>, <value_2>, <value_3>,...

Kiểm tra kiểu dữ liệu

type(<variable>)

3) Kiểu dữ liệu số

Số nguyên <class 'int'>: Chứa các số nguyên âm và các số nguyên dương

num = 1

Số thực <class 'float'>: Chứa các số nguyên và cã các số chấn động (.), có thể sử dụng hàm Decimal() sẽ lấy nhiều phân số hơn

Decimal(10) / Decimal(3)

Phân số <class 'fractions.Fraction'>: Chứa các phân số bao gồm tử số và mẫu số, sử dụng hàm Fraction()

Ký hiệu: Fraction(<Tử.số>, <Mẫu.số>)

Fraction(1,4) == 1/4

Số phức <class 'complex'>: Trong số phức sẽ bao gồm phần thực và phần ảo.

Ký hiệu: <vari.able> = <Phần.thực> + <Phần.Ảo>j hoặc complex(<Phần.thực>,<Phần.ảo>)

  • Trong đó:

    • Lấy phân thực sẽ là <vari.able>.real
    • Lấy phần ảo sẽ là .imag
    • Còn j và đơn vị ảo với j^2 = -1

3.1) Biểu thức toán tử

  • Tổng: +
  • Hiệu: -
  • Tích: *
  • Thương: /
  • Thương nguyên (Kết quả luôn nhỏ hơn hoặc bằng chính phép toán): //
  • Dư: %
  • Luỹ thừa số mũ: **

3.2) Ép kiểu dữ liệu số

  • int('value')
  • float('value')

3.3) Thư viện Math

Cần import <ten.thu.vien>

  • Trả về một số nguyên là phần nguyên của số (x): .trunc(x)
  • Trả về một số nguyên được làm tròn từ số (x), kết quả luôn nhỏ hơn hoặc bằng (x): .floor(x)
  • Trả về một số nguyên được làm tròn từ số (x), kết quả luôn lớn hơn hoặc bằng (x): .ceil(x)
  • Trả về một số thực là giá trị tuyệt đối của số (x): .fabs(x)
  • Trả về một số thực là căn bậc hai của số (x): .fqrt(x)
  • Trả về một số nguyên là ước chung lớn nhất của hai số (x) và (y): .gcd(x,y)

4) Kiểu dữ liệu chuỗi

Chuỗi được đặt trong dấu ngoặc đơn '' hoặc dấu ngoặc kép ""

4.1) Khái niệm Docstring

Liên quan đến ghi chú nhiều dòng

'''
comments
'''

4.2) Escape Sequence

Là một chuỗi các ký tự đặc biệt trong Python bắt đầu bằng dấu \

Một số Escape Sequence cơ bản

Alert - Phát ra tiếng bíp: \a
BackSpace - Đưa con trỏ về lại một khoảng trắng: \b
NewLine - Đưa con trỏ xuống dòng tiếp theo: \n
Horizotal Tab - In ra một Horizotal Tab: \t
Single Quote - In ra dấu ngoặc đơn: \'
Souble Quote - In ra dấu ngoặc kép: \"
Blackslash - In ra ký tự \: \\

4.3) Chuỗi trần

Chuỗi trần sẽ xử lý các đường dẫn có chứa dấu \

Sử dụng ký tự (r) trước String

Ký hiệu: r'Noi.dung'

print(r'D:\Thu_muc\Thu_muc')

4.4) Toán tử với chuỗi

  • Tổng (+): Dùng để nối chuỗi - 'A' + 'B'
  • Tích (*): Tạo ra một chuỗi và lặp lại với số lần là một số nguyên - 'A' * 3
  • in: Tìm kiến trong chuỗi, kết quả trả về dưới dạng Boolean - 'A' in 'ABCD'

4.5) Indexing

  • Từng ký tự trong Python

    • Được đánh số từ 0 đến (n-1) nếu tính từ trái qua phải.
    • Được đánh số từ -1 đến (-n) nếu tính từ phải qua trái.
  • Drop String

    • Dựa vào vị trí đánh số từ Indexing.

      • Cắt được chuỗi từ trái sang phải.

      Cú pháp: [start:stop]

      s= 'abc def'
      print(s[1:5])
      # 'bc d'
      • Cắt được chuỗi từ phải trang trái.

      Cú pháp: [start:stop:step] khi đó step != 0

      s= 'abc def'
      print(s[2:5:1])
      # 'c d'

4.6) Thay đổi nội dung của chuỗi.

Không thể thay đổi trực tiếp bằng cách gán giá trị của từng Indexing.

Chỉ có thể thay đổi gián tiếp bằng cách sử dụng Drop String và Toán tử nối chuỗi.

s= 'abc def'
s = 'k' + s[1:]
# 'kbc def'

4.7) Định dạng chuỗi.

  • Định dạng chuỗi bằng toán tử (%)

    • Thay thế dưới dạng

      • Thay thế giá trị của phương thức (str) tạo nên đối tượng đó, bao gồm cã ký tự

        • (str) bằng %s
      • Thay thế phương thức (repr), bao gồm cã ký tự

        • (repr) bằng %r
    • Cú pháp: '<String <%s/%d/%r..>....>' %(<value...>) khi đó các giá trị lần lượt thay thế theo thứ tự từ trái sang phải
    a = '%s and %d' %('String_', 102)
    print(a)
    # String_ and 102
  • Định dạng bằng chuỗi f (f-string)

    • Thay thê dưới dạng

      • Thay thế một số chỗ trong chuỗi bằng giá trị của biến đã khởi tạo trước đó
    • Cú pháp: Định dạng theo (variable = key) f'<string...{variable}>'
  • Định dạng bằng phương thức format

    • Thay thế các giá trị bằng hàm .format() theo thứ tự từ trái sang phải
    • Cú pháp: '<String...{} {}>'.format(value1, value2)
    • Căn lề

      • Ký tự

        • Thay thế ký tự vào chỗ trống, nếu để trống sẽ là khoảng trắng (c)
        • Số ký tự dùng để căn lề (n)
      • Vị trí

        • Lề trái

          • Cú pháp: {:(c)<n}
          '{:-<10}'.format('aaaa')
          # 'aaaa-----'
        • Lề giữa

          • Cú pháp: {:(c)^n}
          '{:-^10}'.format('aaaa')
          # '-----aaaa-----'
        • Lề phải

          • Cú pháp: {:(c)>n}
          '{:->10}'.format('aaaa')
          # '------aaaa'

4.8) Phương thức.

  • Phương thức biến đổi

    • capitalize()

      • Công dụng: Viết hoa chữ cái đầu tiên trong một chuỗi.
      • Cú pháp: .capitalize()
    • upper()

      • Công dụng: Viết hoa tất cả các chữ cái
      • Cú pháp: .upper()
    • lower()

      • Công dụng: Viết thường tất cả các chữ cái
      • Cú pháp: .lower()
    • swapcase()

      • Công dụng: Chữ hoa thành chữ thường và ngược lại
      • Cú pháp: .swapcase()
    • title()

      • Công dụng: Viết hoa mỗi chữ cái đầu tiên trong chuỗi dưới dạng tiêu đề
      • Cú pháp: .title()
  • Phương pháp định dạng

(Đang cập nhật ... )