Skip to content

Latest commit

 

History

History
466 lines (363 loc) · 22 KB

tk_Python.md

File metadata and controls

466 lines (363 loc) · 22 KB

////////////////////////////////////////////// Thư viện ///////////////////

      - import math : thư viện liên quan đến toán và sử dụng như lấy giá trị pi....
      - encodeing='utf-8' : Sử dụng việt mã hóa để utf-8 để đọc được file tiếng việt.
      - with {Hàm}() as {file,seesion,conn...} : Nó cho phép bạn  sử dụng để tự động hóa quản lý tài nguyên.

////////////////////////////////////////////// Các câu gợi ý /////////////////// # : Conment 1 dòng '''{Conment}''' : Conment nhiều dòng \ : tiếp tục nhiều dòng khi hàm quá dài có thể dùng \ để xuống dòng rồi viết tiếp \n : xuống dòng \t tab trắng

       - Trong python cho phép bạn dùng chỉ số âm ( arr[-1])

////////////////////////////////////////////// Các Hàm quan trọng /////////////////// - isinstance(,<kiểu>) : cho phép bạn kiểm tra có phải số cần kiểu không.

               # Kiểm tra xem một số có phải là số nguyên không
               x = 10
               print(isinstance(x, int))  # Output: True
      - enumerate(): Lấy chỉ số và và gía trị trọng For

      - strip() :  Loại bỏ khoảng trắng và xuống dòng
      - rstrip() : xóa một phần tử nào đó trong dòng file
      - index() : Trả về index của một array,ob,list...
      -sum()
                    row_count = sum(1 for _ in reader) # doc file trong dem so dong ,  cung co the tinh tong

https://gemini.google.com/app/055b30eb7b1b185e?hl=vi

//////////////////////////////////////////////String ///////////////// - string( , , ) : Cắt chuỗi - in : Tìm kiếm chuỗi trả về true false

          # string
               a='0123456789'
               print(a[3:6])
          #  in
               a='thanh tung tim kiem'
               a1='tim kiem'
               b= a1 in a
               print(b) # true
      - capitalize() : Viết hoa chữ cái đầu tiên
      - upper() : Viết hoa toàn bộ 
      - lower() : Viết thường toàn bộ


      - split() : Tách các chuỗi thành một chuỗi nhỏ
      - join()  : Thêm chuỗi 
      - replace(): Thay thế chuỗi
      - find() : tìm vị trí xuất hiện đầu tiên trong chuỗi
      - startswith() : Kiểm tra chuỗi có bắt đầu bằng chuỗi con cụ thể không
      - endswith() : Kiểm tra xem chuỗi có kết thúc bằng chuỗi con cụ thể không
      - count() : Đếm số lần
      - 


 
      -isalnum() : True khi string là cả số và chữ
      -isalpha() : True khi string là a-z|False không phải alpha a-z
      -isdigit() : Trả về true khi string đó là số |  False string là số
      -islower() : True khi tất cả string trong chuỗi chữ thường | False là không phải chữ thường
      -isspace() : True khi tất cả string là khoảng trắng | False ngươc lai
      -isupper() : True khi tất cả string trong chuỗi chữ hoa | False là không phải chữ hoa
 
 ----------------------------Ham nang cao ----------------

      -sreach() :  Tìm kiếm chuỗi 
      - map() : Cho phép bạn  chuyển đổi dữ liệu dàn list và kiểu dữ liệu khác ...
      - re.findallP(<CanTim> , <Sring>) : Tìm số lần xuất hiện trong một chuỗi

      - re.finditer(<Cần_tìm> , <String> ) : Tìm kiếm lọc ra các số.....
               #  finditer()
                    import re 
                    a='2004-09-20'
                    c=  re.finditer('-',a)
                    for num in  c :
                         print(num.start())
      -  float('inf')  : Số vô cùng  lớn ===> Dùng trong không cần đặt một giá trị nhất định
      -  float('-inf') : Số vô cùng bé   ===> Dùng trong không cần đặt một giá trị nhất định

////////////////////////////////////////////// Toán học /////////////////// + phép cộng - phép trừ * phép nhân ** phép chia lũy thừa / phéo chia lấy so thap phan // phéo chia nguyên % phép chia lấy phần dư

------------------------------------------Toán tử -------------------------------------- and : sử dụng kết hợp điều kiện cả hai cùng đúng thì đúng. or : Sử dụng kết hợp điều kiện một trong hai đúng là đc not : là điều kiện phủ định (true --> False | False --> True)


 int() : kiểu số nguyên
 float(): kiểu số thực

------------------------------------------Hàm liên quan đến Toán -------------------------

 - pow({Số1},{Số2}) : Cho phép bạn tính số mũ
 - round({số_thập_phân}, {lấy_sau_số_phẩy}) :  cho  phép bạn lấy số thập phân
 - :.2f : Làm tròn sau hai chữ số thập phân(* Lưu ý:  2f chỉ được dùng trực tiếp khi in ra)
 - format() :Định dạng ở 2 số thập phân
           <!-- Vd  format
                     txt = "For only {price:.2f} dollars!"
                     print(txt.format(price = 49))
           -->
          # //////////  pow
               print(pow(2,3))
               # KQ: 8
          # //////////  round
               print(round(23.4756775465,2))
               # KQ: 23.47
          # //////////  :.2f
               num=34345.576576
               print(f'{num:.2f}')
               # KQ: 34345.58

////////////////////////////////////////////// Vòng lặp ///////////////////

 - for x  in  range({Start},{Stop},{step}) : Vòng lặp
 - for x in  y : lặp  trong arr
 - for x  in enumerate(y) :  lấy chỉ số index và lặp lại trong array
     # Lặp vòng lặp khi  biết trước số vòng lặp
          # step
          for x in range(3):
               print(f'Vòng lặp:{x}')
               # ==> KQ: lặp  lại 3 lần
          arr=[2,3,4]
          # ///// start, stop
               for x in range(1,3):
                    print(f'Vòng lặp:{x}')
                    # ==> KQ: lặp  lại 3 lần
               arr=[2,3,4]
          # ///// start, stop,step
               for x in range(1,3,1):
                    print(f'Vòng lặp:{x}')
                    # ==> KQ: lặp  lại 3 lần
               arr=[2,3,4]
     # Lặp vòng lặp không biết vòng lặp nhất định
          for x in arr:
               print(f'Vòng lặp Arr:{x}')
               # ==> KQ: lặp  lại 3 lần in ra lần lượt các số trong mảng

     # lặp  và lấy chỉ số index
          fruits = ['apple', 'banana', 'cherry']
          for index, fruit in enumerate(fruits):
               print(f"Index: {index}, Fruit: {fruit}")


     # ===> Sự khác nhau của for  in và for in range() và for in  enumerate() là:
                         # +For in:  là lặp trong mảng
                         # +For in range() : lặp  đi lặp lại các số chuyền trong range(y)
                         # +For in enumarate : lặp để lấy dữ liệu trong mảng và lấy cả index chỉ số của nó
 - while  : Vòng lặp
          # chạy vòng lặp while
          n= 0
          while n < 8:
               n+=1;
          # chạy vòng lặp true:
          while(True):
               # Vòng lặp chạy cho đến khi =

////////////////////////////////////////////// Câu điều kiện /////////////////// if( a==b):

elif ( a==c):

else:

pass

 ////////////////////////////////////////////// List (array list) /////////////////// 
 
 - list() : Cho phép bạn tạo danh sách trong pythonv (  sử dụng  giống như arr)
 - Khai báo nó  bằng []
           : [<start>:<end>] ==> cho phép bạn lát cắt trong python
           : [<item>] ==> Lấy ví trị trong list
           : [<vitri>::<step>] ==> Cho phép bạn bắt đầu vị trí và lấy trong danh sách 
      - del(<item>) : Xóa phần tử trong list - append(<item>) : Thêm vào trong list 
      - insert(<index>,<item>) : THêm một phần tư vào một vị trí được chỉ định và các chỉ số khác sẽ đc +1 <item> 
      - sort() : Sắp xếp theo thứ tự tăng dần 
      - remove(<giaTriChoTruoc>) : Xóa phần tử được giá trị cho trước 
      - pop(<item>) : Xóa phần tư tại vi tri truyèn vao 
      - reverse() : đảo ngược danh sách list - clear() : Xóa tất cả các phần tử

Vd:Su_dung_list

////////////////////////////////////////////// tuple /////////////////// - Sử dụng tuple cho phép bạn không thay đổi được giá trị. - Khai báo nó bằng dấu ()

Vd:Sư dung Hàm_tuple

////////////////////////////////////////////// Array (mảng arr) ///////////////////

 Arr : là kiểu mảng được khai báo.
 len() : kiểm tra độ dài của mảng,  của kí tự....
 append() : Thêm phần tử vào mảng
 insert() : Thêm phần tử vào trong mảng vào một vị trí bất kì
 extend() : Thêm một mảng khác vào cuối danh sách phần tử trong mảng trước đó
 pop() : Xóa phần tử
 remove() : Cũng là xóa phần tử (có thử sử dụng một trong hai  để xóa phần tử)
 clear()  :  Xóa bỏ tất cả trong mảng
 count()  : Đếm số lần xuất hiện trong mảng
 index()  : Đếm chỉ số trong mảng
 reverse(): Đảo ngược mảng trong phần tử
 sort()   : Sắp xếp các phần tử trong mảng

Vd: Sử dụng các thuộc tính trong python link : https://www.w3schools.com/python/python_arrays.asp

===> Sự khác nhau của list và array: + List: cho phép bạn thêm được nhiều kiểu dữ liệu khác nhau trong cùng một list. Chạy chậm hơn + Array: Lưu trữ đc 1 kiểu dữ liệu trong 1 arays. Chạy nhanh hơn list

////////////////////////////////////////////// dicnation (gần như json ) /////////////////// - Sử dụng bằng {} | ngoài ra nó cho phép bạn thay đổi được giá trị của nó - get() : Lấy giá trị trong tử điển - set() : trả về kiểu set (Xem bên dưới ) - update(): - not in : Kiểm tra không tồn tại - in Kiểm tra có tồn tại k. - values() : lấy key - item() : Lấy cả khóa và giá trị - len () : Lấy về số lượng phần tử trong Diacnation - pop(): - popitem() - del() - clear()

               d={
                    1:"Thanhtung",
                    2:"Class"
               }
               print(d[1])# output  "Thanhtung

////////////////////////////////////////////// json (gần như dicnation ) ///////////////////

////////////////////////////////////////////// set /////////////////// - Nó tự động loại bỏ lặp phần tử trong Set - Sử dụng bằng {} + len() : Lấy số phần tử + add() : Thêm phần tử + remove(<Giá_trị>) : Xóa một giá trị nòa đó + discard(<Giá_trị>): Xóa phần tử và không báo lỗi khi k tìm thấy + in : Kiêm tra có tồn tại không ( True | False) + not in : Kiêm tra không tồn tại không ( True | False) - Phép toán trong Set() - Phép giao: chỉ hiện a và b xuất hiện cùng nhau thì hiện ra & <Tập_hợp_A>.intersection(<tập_hợp_B>) - Phép hợp : Cho phép bạn gộp a và b vào một set | : Phép hợp của hai phần tử <Tập_hợp_A>.union(<tập_hợp_B>) : phép hợp của hai phần tử - Phép Trừ : Chỉ thuộc A và không không thuộc b ( có hai cách sử dụng) - : <Tập_hợp_A>.difference(<tập_hợp_B>) - Phép đối xứng : # Phần tử chỉ có trong một trong hai set, không có trong cả hai ^ : Phép đối xứng <tập_hơpA>.symmetric_diference(<Tập_hơpB>)

      == > 
          # VD1
               set1={1,2,1,3,4}
               print(set1)# ouput 1,2,3,4
          # VD2
               list1=[1,2,4,5,1]
               print(set(list1))# ouput {1,2,4,5}
          #  ham hay dung 
               my_set.add(5)  # Thêm phần tử 5 vào set
               
               my_set.remove(3)  # Xóa phần tử 3 khỏi set (nếu không tồn tại sẽ báo lỗi)
               my_set.discard(6)  # Xóa phần tử 6 nếu có, không báo lỗi nếu không tồn tại
     #  Phép toán trong Set()
          # Phép hợp
               set1 = {1, 2, 3}
               set2 = {3, 4, 5}
               union_set = set1.union(set2)  # Kết quả: {1, 2, 3, 4, 5}
          #  phép giao
               intersection_set = set1.intersection(set2)  # Kết quả: {3}
          # phép hiẹu  ( phép trừ)
               difference_set = set1.difference(set2)  # Phần tử có trong set1 nhưng không có trong set2
               # Kết quả: {1, 2}
          # phép đối xứng
               symmetric_difference_set = set1.symmetric_difference(set2)
               # Phần tử chỉ có trong một trong hai set, không có trong cả hai
               # Kết quả: {1, 2, 4, 5}

////////////////////////////////////////////// Hàm def(function) + object- class /////////////////// def <dặt_tên_hàm> (<tham_chieu>):

 lambda : Hàm này là cho  phép bạn định nghia def (function) một cách đơn giản hơn, ngan gon(logic cao)

 ----->  Hàm sinh ra để giup ta xay dựng phát triển và tái sử dụng một cách đơn giản hơn!

VD:tham_khao_sudung_def_lambda

////////////////////////////////////////////// Hàm /////////////////// - global : Biến toàn cục sẽ sử dụng cho phép bạn sử dụng. Khi sử dụng biến toàn cầu để thay gán đc giá trị bên trong ra bên ngoài.

          #  Global
               count = 0
               def increment():
                    global count
                    count += 1
               increment()
               increment()
               print(count)  # Output: 2

////////////////////////////////////////////// Class (OPP huong doi tuong) /////////////////// - class <dat_ten> : --> Cho phép bạn lập trình opp

      - super() : Cho phép bạn sử dụng lại các Claas cha trong thằng con

VD: Sử dụng Supertrong python

////////////////////////////////////////////// Module Random /////////////////// - random.randrange(start, stop, step): Tạo số nguyên ngẫu nhiên trong một khoảng với bước nhảy nhất định. - random.random(): Ngẫu nhiên trong khoảng từ 0.0 đến 1.0 (không bao gồm 1.0) - random.uniform(a, b): Tạo số thực ngẫu nhiên trong khoảng (a, b). - random.choice(seq): Chọn ngẫu nhiên một phần tử từ một chuỗi, danh sách, hoặc tuple. - random.randint(a, b): Tạo ra một số nguyên ngẫu nhiên trong khoảng từ a đến b - random.shuffle(x): Trộn ngẫu nhiên các phần tử trong một danh sách. - random.sample(population, k): Chọn ngẫu nhiên k phần tử không trùng lặp từ một tập hợp (population). - random.seed(a): Thiết lập giá trị số ngẫu nhiên. Giúp bạn có thể tái tạo lại cùng một dãy số ngẫu nhiên. - random.gauss(mu, sigma): Tạo số ngẫu nhiên theo phân phối chuẩn.

 ==> Tham khảo: Moldum RanDom() : https://www.w3schools.com/python/module_random.asp
          # random.choice
               import random
               fruits = ["apple", "banana", "cherry"]
               qua_ngau_nhien = random.choice(fruits)
               print(qua_ngau_nhien)  # Output: Ví dụ: "banana"
          # random.shuffle
               import random
               cards = [1, 2, 3, 4, 5]
               random.shuffle(cards)
               print(cards)  # Output: Ví dụ: [3, 5, 1, 4, 2]

////////////////////////////////////////////// Module Math /////////////////// - math.sqrt(x): Tính căn bậc hai của số x.

- math.pow(x, y): Tính x mũ y. - math.ceil(x): Làm tròn số x lên thành số nguyên nhỏ nhất lớn hơn hoặc bằng x. - math.floor(x): Làm tròn số x xuống thành số nguyên lớn nhất nhỏ hơn hoặc bằng x. - math.fabs(x): Tính giá trị tuyệt đối của số x. - math.sin(x), math.cos(x), math.tan(x): Tính giá trị sin, cos, tan của góc x (x tính bằng radian). - math.pi: Hằng số pi (π). - math.e: Hằng số Euler (e). - math.log(x): Tính logarit tự nhiên (cơ số e) của x. - math.log10(x): Tính logarit cơ số 10 của x.
 ==> Link_ThamKhao: https://www.w3schools.com/python/module_math.asp

////////////////////////////////////////////// module request /////////////////// ////////////////////////////////////////////// module date /////////////////// ////////////////////////////////////////////// File ///////////////////

      - Mode trong file :
                r : Mở để đọc. Mode mặc định
                r+: Mở để đọc và ghi
                w : Mở để ghi-Xóa hết text cũ-Không tồn tại tự tạo 1 file cùng tên
                w+: Mở để Ghi Đọc -Xóa hết text cũ-Không tồn tại tự tạo 1 file cùng tên
                a : Mở để ghi-Không tồn tại tư tạo file
                a+: Mở để ghi và đọc -Không tồn tại tư tạo file
                x : tạo file mới- Nhưng thất bại khi tồn tại file
                b : Mở file chế độ nhị phân

      - Kiểm tra file:
                exists(path): Kiểm tra xem một file hoặc thư mục có tồn tại hay không (trong module os).
                isdir(path): Kiểm tra xem một đường dẫn có phải là một thư mục hay không (trong module os).
                isfile(path): Kiểm tra xem một đường dẫn có phải là một file hay không (trong module os).
                remove(path): Xóa một file (trong module os).
                rename(src, dst): Đổi tên hoặc di chuyển một file (trong module os).
      - File:
                read()    : Đọc file
                write()   : Viết vào file
                close()   : đóng file

VD:Tham khảo_file

----------------------------------------------- File.csv-------------------------- File sử dụng bằng.csv: - khai báo thư viện: import csv (pip install csv) - THuộc tính: + next() : cho phép bạn bỏ qua dòng tiêu đề: + csv.QUOTE_ALL: Tất cả dấu ngoặc kép, dấu đặc biệt. + csv.QUOTE_MINIMAL: Chỉ bao quanh các trường có chứa dấu phẩy, dấu ngoặc kép hoặc ký tự đặc biệt khác. + csv.QUOTE_NONNUMERIC: Chỉ bao quanh các trường không phải là số. + csv.QUOTE_NONE: Không bao quanh bất kỳ trường nào.

           - Đọc file csv:
                + csv.reader(<ten_file>) :  đọc file trả về array
                + csv.DictReader(<ten_file>)

           - Viết file csv:
                + csv.DictWriter(<tên_file> , <định_dạng>, <thuộc_tính> )

                + writeheader() : Cho phép bạn ghi hàng tiêu đề với cột

                + writerow({<định_dạng>: <chuyền_vào>}) : Cho phép bạn ghi dữ liệu vào hàng song song với tiêu đề
                    # ĐỂ ĐỌC ĐƯỢC TIẾNG VIỆT PHẢI CHUYỂN MÃ HÓA SANG UTF-8
                    # VD: with open('tung.csv', 'w+' , encoding='utf-8')

Vd:Sử_dụng_csv

////////////////////////////////////////////// try + except ///////////////////

 - try excpet ValueError :
           ===>  Sử lý ngoại lệ
 - try suite : 
           ===> đưa ra khả năng ngoại lệ có thể sử lý được nhiều ngoại lệ khác nhau
 -  try  finally

////////////////////////////////////////////// numpy /////////////////// ////////////////////////////////////////////// tkinner /////////////////// ////////////////////////////////////////////// web python ///////////////////