Lập trình python cơ bản và ứng dụng trong machine learning Lập trình python cơ bản và ứng dụng trong machine learning Lập trình python cơ bản và ứng dụng trong machine learning Lập trình python cơ bản và ứng dụng trong machine learning Lập trình python cơ bản và ứng dụng trong machine learning Lập trình python cơ bản và ứng dụng trong machine learning Lập trình python cơ bản và ứng dụng trong machine learning Lập trình python cơ bản và ứng dụng trong machine learning Lập trình python cơ bản và ứng dụng trong machine learning
Chuyển mã nguồn C sang Python
Nhập vào bán kính hình tròn và in ra chu vi, diện tích
pi = 3.14 r = float input ( ("Nhap ban kinh hinh tron: " )) c = 2 * r * pi s = r * r * pi print ( "Chu vi hinh tron la: " + format (c, ".2f")) print ( "Dien tich hinh tron la: " + format (s, ".2f"))
Python nổi bật với sự đơn giản, không yêu cầu khai báo hàm main() như C hay khai báo class và phương thức main() như Java, giúp người mới bắt đầu dễ tiếp cận Ngôn ngữ này sử dụng cú pháp rõ ràng, dễ hiểu và không cần dấu chấm phẩy ở cuối câu lệnh, mà thay vào đó là xuống dòng Thêm vào đó, biến trong Python được tạo ra tự động khi được gán giá trị mà không cần khai báo trước, và kiểu dữ liệu của biến cũng được xác định tự động theo giá trị gán cho nó.
Python nổi bật với khả năng rút gọn mã lệnh, cho phép người dùng chỉ cần một câu lệnh để yêu cầu nhập dữ liệu, khác với nhiều ngôn ngữ lập trình khác Điều này giúp mã dễ đọc và dễ hiểu hơn Tuy nhiên, cần lưu ý rằng dữ liệu nhập vào từ lệnh input() mặc định là kiểu xâu, vì vậy cần sử dụng hàm float() để ép kiểu phù hợp Đối với việc in ra kết quả, cần định dạng lại các biến kiểu số thành dạng xâu Khác với C++ và Java, Python sử dụng lệnh format với cú pháp ".2f" để in số thực với hai chữ số thập phân.
Trong Python, lệnh print() tự động xuống dòng sau mỗi lần in, khác với nhiều ngôn ngữ lập trình khác yêu cầu ký hiệu “\n” để thực hiện điều này Nếu bạn muốn ngăn chặn việc xuống dòng, có thể sử dụng tham số end trong lệnh print() Các ví dụ dưới đây sẽ giúp minh họa cách sử dụng tham số này hiệu quả.
Tính diện tích hình thang khi nhập vào 2 đáy và chiều cao
print( "Nhap 2 canh day hinh thang: " ) a = float input ( ()) b = float input ( ()) h = float input ( ("Nhap chieu cao hinh thang: " )) s = h * (a + b) / 2 print ( "Dien tich hinh thang la:" + format (s, ".2f"))
Ta nhập vào kích thước 2 đáy và chiều cao sau đó tính toán diện tích hình thang bằng chiều cao nhân tổng 2 đáy chia 2.
In ra bit thứ n của số a
a = int input ( ("Nhap so nguyen duong a: " )) n = int input ( ("Nhap so nguyen duong n: " )) b = (a & ( 1 a): print("Day la 3 canh cua tam giac." ) if (a == b) & (b == c): print("Day la tam giac deu." ) elif (a == b) | (b == c) | (a == c): print("Day la tam giac can." ) if (a * a + b * b == c * c) | (a * a + c * c == b * b) | (b * b + c * c == a * a): print("Day la tam giac vuong." ) else: print("Day khong phai la 3 canh cua tam giac." )
Ba số a, b và c có thể tạo thành ba cạnh của một tam giác nếu và chỉ nếu độ dài của một cạnh bất kỳ nhỏ hơn tổng độ dài của hai cạnh còn lại.
Để xác định tính chất của tam giác, ngoài việc kiểm tra điều kiện có 3 cạnh, ta cần xem xét các đặc điểm đặc biệt như tam giác đều (3 cạnh bằng nhau), tam giác cân (2 cạnh bằng nhau) và tam giác vuông (bình phương một cạnh bằng tổng bình phương 2 cạnh còn lại) Để thực hiện việc kiểm tra này, chúng ta sử dụng toán tử OR, được biểu thị bằng ký hiệu | thay vì || như trong các ngôn ngữ lập trình khác.
Kiểm tra năm nhuận
Để xác định năm nhuận, người dùng cần nhập một số nguyên dương Một năm được coi là năm nhuận nếu nó chia hết cho 4, nhưng không chia hết cho 100 Tuy nhiên, nếu năm đó chia hết cho 400, thì nó vẫn là năm nhuận Nếu không thỏa mãn các điều kiện này, năm đó sẽ không phải là năm nhuận.
100 thì phải chia hết cho 400 (tức là năm 1900 không phải năm nhuận nhưng năm
2000 là năm nhuận) Do đó ta cần kiểm tra rất nhiều điều kiện.
Ví dụ này minh họa trực quan cho chúng ta các dùng lệnh if …else… và elif để kiểm tra liên tiếp các điều kiện.
In ra tam giác hình sao với chiều cao nhập từ bàn phím
# Tam giac vuong trai for i in range(n): s = "" for j in range(i+ ): 1 s += "*" print(s)
# Tam giac vuong phai for i in range(n): s = "" for j in range(n-i- ): 1 s += " " for j in range(n-i-1, n): s += "*" print(s)
# Tam giac can for i in range(n): s = "" for j in range(n-i- ): 1 s += " " for j in range(n-i-1, n+i): s += "*" print(s)
Để in các tam giác, ta cần sử dụng vòng lặp với chiều cao n, tạo ra n hàng Đối với tam giác vuông trái, hàng i sẽ có i dấu * và khoảng trắng bên phải Tam giác vuông phải sẽ có i dấu * ở bên phải, với (n-i) dấu cách ở trước Còn với tam giác cân, hàng i sẽ có 2i+1 dấu * ở giữa, với (n-i) dấu cách ở trước Việc thêm các giá trị cần in ra vào xâu s sẽ được thực hiện bằng cách cộng xâu trong vòng lặp.
Bài viết này trình bày 11 ví dụ minh họa về cách sử dụng vòng lặp for với một hoặc hai tham số, trong khi các tham số còn lại được thiết lập mặc định Việc này giúp câu lệnh trở nên ngắn gọn và dễ đọc hơn.
In ra các số nguyên tố nhỏ hơn n
To find all prime numbers less than a given integer \( n \), first import the square root function from the math module Prompt the user to input an integer \( n \) Then, iterate through numbers starting from 2 up to \( n \) For each number \( i \), check if it is divisible by any number \( j \) from 2 to the square root of \( i \) If \( i \) is not divisible by any of these \( j \) values, it is identified as a prime number and printed This efficient method ensures that only prime numbers less than \( n \) are displayed.
Trong ví dụ này, chúng ta kiểm tra từng số nguyên nhỏ hơn n để xác định xem nó có phải là số nguyên tố hay không, bằng cách xem liệu nó có chia hết cho bất kỳ số nào không vượt quá căn bậc hai của nó Độ phức tạp của phương pháp này là O(N²).
Sàng Eratosthenes là một phương pháp hiệu quả để tìm số nguyên tố với độ phức tạp O(NlogN) Đầu tiên, chúng ta đánh dấu tất cả các số từ 2 đến n là số nguyên tố Sau đó, với mỗi số nhỏ hơn căn bậc hai của n, ta loại bỏ các bội của nó khỏi danh sách số nguyên tố Cuối cùng, các số còn lại sẽ là số nguyên tố Dưới đây là mã Python minh họa cho thuật toán này:```pythonfrom math import sqrtn = int(input("Nhập n: "))print("Các số nguyên tố nhỏ hơn " + str(n) + " là:", end=" ")flag = [1] * nfor i in range(2, int(sqrt(n)) + 1): if flag[i]: for j in range(i * i, n, i): flag[j] = 0for i in range(2, n): if flag[i]: print(i, end=" ")```
In ra BCNN và UCLN của hai số a và b
print( "Nhap a va b: " ) a = int input ( ()) b = int input ( ()) if a > b: min = b max = a else: max = b min = a
# Tim UCLN i = min for i in range(min, , - ): 0 1 if (a % i == ) & (b % i == ): 0 0 break print( "Uoc so chung lon nhat la: {}" format(i))
# Tim BCNN i = max for i in range(max, a*b+ ): 1 if (i % a == ) & (i % b == ): 0 0 break print( "Boi so chung nho nhat la: {}" format(i))
Để tìm UCLN và BCNN của hai số a và b, chúng ta sẽ duyệt toàn bộ các số Đối với UCLN, chúng ta sẽ giảm dần từ số nhỏ hơn đến 1, trong khi để tìm BCNN, chúng ta sẽ tăng dần từ số lớn hơn đến tích ab.
Trong ví dụ này, chúng ta sử dụng hàm s.format() để định dạng chuỗi Số nguyên i sẽ được thay thế vào vị trí {} trong chuỗi s Hàm format cho phép sử dụng nhiều tham số theo thứ tự tương ứng với các cặp ngoặc {} Bên cạnh đó, trong ngoặc {}, chúng ta có thể chỉ định định dạng cho biến, ví dụ như {:.2f} để chèn số thực với 2 chữ số thập phân sau dấu phẩy.
In ra các số Fibonaci nhỏ hơn n
n = int input ( ("Nhap n: " )) print( "Cac so fibonaci nho hon {} la: ".format(n), end = "" ) f1 = 1 f2 = 1 print( "{} {} ".format(f1, f2), end = "" ) while f1 + f2 < n: f = f1+f2 print("{} " format(f), end= "" ) f2 = f1 f1 = f
Các số trong dãy Fibonaci nhỏ hơn 59
Ta sẽ in ra các số Fibonacci theo thứ tự, dừng lại khi số tiếp theo vượt quá n Quá trình này được thực hiện thông qua vòng lặp while.
Dãy Fibonacci được xác định bởi công thức fn = fn-1 + fn-2, vì vậy chúng ta sử dụng hai biến tạm f1 và f2 để lưu trữ các số hạng trước đó Số tiếp theo trong dãy sẽ được tính bằng tổng của f1 và f2.
Mở rộng ví dụ trước, lệnh format() được sử dụng để chèn nhiều tham số vào,tương ứng với các cặp ngoặc {} trong xâu.
Kiểm tra số hoàn hảo
n = int input ( ("Nhap n: " )) s = 0 for i in range (1, int (n/ )): 2 if n % i == : 0 s += i if s == n: print("{} la so hoan hao.".format(n)) else: print("{} khong phai la so hoan hao.".format(n))
Số hoàn hảo là số mà tổng các ước thực sự của nó bằng chính nó Bài viết này yêu cầu kiểm tra xem số 15 có phải là số hoàn hảo hay không Khi thực hiện kiểm tra, chúng ta thấy rằng 15 không phải là số hoàn hảo.
Để xác định một số có phải là số hoàn hảo hay không, cần tính tổng các ước thực sự của nó, lưu ý rằng ước thực sự lớn nhất không được vượt quá nửa giá trị của số đó, vì ước nhỏ nhất ngoài 1 là 2.
Để xác định số hoàn hảo, ta sẽ sử dụng vòng lặp để kiểm tra các số từ 1 đến n/2 Nếu một số là ước của n, ta sẽ cộng nó vào tổng s Cuối cùng, nếu tổng s bằng n, chúng ta có thể khẳng định rằng n là số hoàn hảo.
Tính tổng các số chẵn và số lẻ
The provided code snippet initializes two variables, `s_chan` and `s_le`, to zero and enters a loop that continues until the user inputs zero Inside the loop, it prompts the user to enter an integer `n` If `n` is even, it adds `n` to `s_chan`; if `n` is odd, it adds `n` to `s_le` Finally, the program outputs the total sum of even numbers and the total sum of odd numbers entered by the user.
Chúng ta sẽ nhập các số theo thứ tự và kiểm tra tính chẵn lẻ của từng số, sau đó cộng chúng vào tổng chẵn hoặc tổng lẻ tương ứng Quá trình này được thực hiện thông qua một vòng lặp while và sẽ chỉ dừng lại khi chúng ta nhập số 0.
Tính xấp xỉ số pi
e = float input ( ("Nhap sai so epsilon: " )) sum = 0 i = 0 x = 1 d = 1 while x * d > e:
# Tinh so hang tiep theo i +=1 d = -d x = float (d/ float(2 * i + )) 1 print( "PI = {}" format(sum* )) 4
Thuật toán này tính xấp xỉ số pi với sai số cho trước, sử dụng khai triển Maclaurin kết hợp với hàm lượng giác Kết quả đạt được đảm bảo độ chính xác theo epsilon, khi mà các số hạng của dãy nhỏ hơn giá trị epsilon đã định.
Do đó, ta cần sử dụng vòng lặp while với điều kiện lặp là số hạng cộng vào chưa nhỏ hơn epsilon Số hạng thứ i có dạng x = i (− ) 1 i
2 i + 1 do đó ta cần biến đếm i để tính mẫu, biến d để lưu dấu của số hạng Sau đó tiến hành cộng x vào sum, biến lưu giá trị của pi/4
Kết thúc, ta in ra 4*sum chính là kết quả của số pi.
Tìm phần tử có giá trị tuyệt đối lớn nhất trong mảng n số
To find the element with the highest absolute value in a list, first, initialize an empty list and prompt the user to input the number of elements, n Then, use a loop to append n integer values to the list Next, set a variable to track the maximum absolute value and its index Iterate through the list to compare the absolute values of each element, updating the maximum and its index when a larger value is found Finally, print the element with the highest absolute value.
Khi nhập vào số n, chúng ta thực hiện vòng lặp để nhập n số vào mảng Sử dụng hàm append() để lưu trữ các giá trị này trong mảng a Tiếp theo, ta duyệt từng phần tử để tìm phần tử có trị tuyệt đối lớn nhất, lưu giá trị này vào biến max và chỉ số của nó vào biến imax Bước khởi tạo, ta giả định rằng a[0] là số có trị tuyệt đối lớn nhất và sau đó so sánh để cập nhật giá trị.
Ta sử dụng hàm abs(x) để lấy giá trị tuyệt đối của số x.
Liệt kê các phần tử khác nhau trong mảng
a = [] b = [] n = int input ( ("Nhap so phan tu n: " )) for i in range(n): a.append(int input ( ("a[{}] = ".format(i))))
# Duyet tung phan tu cua mang a
# Kiem tra xem phan tu a[i] co xuat hien trong mang b khong
To add unique elements from array 'a' to array 'b', we initialize 'm' to 0 We then iterate through each element in 'a', checking if it already exists in 'b' If an element from 'a' is not found in 'b', we append it and increment 'm' Finally, we print the unique elements from 'b'.
Ta nhập các phần tử vào mảng a Ta khởi tạo mảng kết quả b rỗng.
Đối với từng phần tử trong mảng a, chúng ta kiểm tra xem nó đã có trong mảng b hay chưa Nếu chưa, chúng ta sẽ thêm phần tử đó vào mảng b vì đây là phần tử mới Sau khi hoàn tất việc duyệt qua tất cả các phần tử của mảng a, mảng b sẽ chứa kết quả cuối cùng.
Xóa các phần tử chẵn khỏi mảng
The following Python code snippet demonstrates how to create a list and remove even numbers from it First, the user is prompted to input the number of elements, 'n' The program then collects 'n' integers into a list After that, it iterates through the list in reverse order, deleting any even numbers found Finally, the modified list, which now contains only odd numbers, is printed to the console.
Ta nhập các phần tử vào mảng a Sau đó duyệt toàn bộ các phần tử của mảng a, nếu là số chẵn sẽ tiến hành xóa phần tử đó.
Để kiểm tra một số có phải là số chẵn hay không, ta sử dụng phép chia lấy dư a[i] % 2 == 0 Để xóa một phần tử trong danh sách, ta áp dụng lệnh del a[i], và các phần tử phía sau sẽ tự động dịch sang trái để lấp vị trí trống Vòng lặp for i in range(n-1, -1, -1) cho phép duyệt danh sách từ dưới lên.
Kiểm tra dãy tăng dần hoặc giảm dần
n = int input ( (“Nhap so phan tu n: “ )) a = [] for i in range(n): a.append( float ( input(“a[{}] = “.format(i))))
# Kiem tra day tang dan flag = 1 for i in range(n- ): 1 if a[i] >a[i+ ] : 1 flag = 0 break if (flag == ): 1 print(“Day la day tang dan.” ) else: print(“Day khong phai la day tang dan.” )
Để kiểm tra xem một dãy số có phải là dãy giảm dần hay không, ta sử dụng một biến cờ với giá trị mặc định là 1 Trong quá trình duyệt dãy, nếu phát hiện bất kỳ cặp số nào mà số sau lớn hơn số trước, ta sẽ đánh dấu cờ là 0 và thoát khỏi vòng lặp bằng lệnh break Sau khi hoàn thành việc kiểm tra, nếu cờ vẫn giữ giá trị 1, ta kết luận rằng dãy là dãy giảm dần; ngược lại, nếu cờ là 0, dãy không phải là dãy giảm dần Lệnh break rất hữu ích trong việc thoát khỏi vòng lặp một cách nhanh chóng khi điều kiện không còn thỏa mãn.
Chuyển số lẻ lên đầu dãy, số chẵn xuống cuối dãy
The provided code snippet prompts the user to input the number of elements, n, and then collects n integer values into a list, a It iterates through the list to identify pairs of even and odd numbers, swapping them to arrange all even numbers on the left and odd numbers on the right Finally, the sorted array is printed This approach effectively organizes the numbers based on their parity, ensuring a clear separation between even and odd integers.
Chúng ta lưu trữ các giá trị của dãy vào mảng a và bắt đầu từ phần tử đầu tiên Sử dụng một vòng lặp con, ta kiểm tra các phần tử bên phải Nếu phần tử hiện tại là số chẵn và phần tử bên trái là số lẻ, chúng ta sẽ thực hiện việc tráo đổi và thoát khỏi vòng lặp con để tiếp tục kiểm tra các phần tử tiếp theo.
Trong câu lệnh in kết quả, tham số end=" " cho phép các số được in ra cách nhau bằng khoảng trắng thay vì mỗi số nằm trên một dòng riêng biệt.
1.23 Sắp xếp các số lẻ tăng dần, các số chẵn tăng dần n= int input ( ("Nhap so phan tu n: " )) a=[] for i in range(n): a.append(int input ( ("a[{}] = ".format(i)))) for i in range(n- ): 1 for j in range(i+ ,n): 1 if ((a[i] % 2 == ) & (a[j] % 0 2 == ) & (a[i] < a[j])) | 0 ((a[i] % 2 == ) & (a[j] % 1 2 == ) & (a[i] > a[j])): 1 tmp = a[i] a[i] = a[j] a[j] = tmp print( "Mang sau khi sap xep:" ) for i in range(n): print str ( (a[i]), end = " " ) Ý tưởng của thuật toán là ứng dựng thuật toán sắp xếp nổi bọt Ta sẽ sử dụng 2 vòng lặp để tìm các cặp số cần tráo đổi: hoặc là 2 số lẻ mà số bên trái lớn hơn số bên phải, hoặc là 2 số chẵn mà số bên trái nhỏ hơn số bên phải.
1.24 Chèn x vào mảng n đã sắp xếp n = int input ( ("Nhap so phan tu n: " )) a = [] for i in range(n): a.append(int input ( ("a[{}] = ".format(i)))) x = int input ( ("Nhap x: " )) i = 0 for i in range(n): if a[i] > x: break if i < n: a.append(a[n- ]) 1 for j in range(n-1 , i, - ): 1 a[j]=a[j- ] 1 a[i] = x else: a.append(x) n += 1 i = 0 print( "Mang sau khi sap xep:" ) for i in range(n): print str ( (a[i]), end=" " )
Để chèn một phần tử x vào mảng a đã được sắp xếp, trước tiên cần duyệt từ đầu đến cuối mảng để xác định vị trí i sao cho a[i-1] < x < a[i] Sau khi xác định vị trí i, ta sẽ dịch chuyển các phần tử từ vị trí i trở đi sang phải và cuối cùng chèn phần tử x vào vị trí i.
Thay vì dịch chuyển từng phần tử một như trên (cách làm trong C) ta có thể sử dụng hàm có sẵn dùng cho array: a.insert(i, x)
1.25 Đếm số kỹ tự chữ hoa, chữ thường và chữ số s= input ( "Nhap xau ky tu: " ) c1 = c2 = c3 = 0 for i in range len ( (s)): if s[i].isupper(): c1 +=1 elif s[i].islower(): c2 +=1 elif s[i].isdigit(): c3 +=1 print( "So ky tu chu hoa: {}" format(c1)) print( "So ky tu chu thuong: {}" format(c2)) print( "So ky tu chu so: {}" format(c3))
Chúng ta sẽ duyệt qua toàn bộ chuỗi để đếm số lượng ký tự chữ hoa, chữ thường và chữ số bằng các biến đếm c1, c2 và c3 Để xác định một ký tự có phải là chữ hoa hay không, ta sử dụng hàm c.isupper() Tương tự, hàm c.islower() được dùng để kiểm tra chữ thường, còn c.isdigit() dùng để kiểm tra ký tự số.
1.26 Đếm số từ có trong xâu s= input ( "Nhap xau ky tu: " ) c = 1 for i in range len ( (s)) : if s[i].isspace(): c+=1 print ( "So tu co trong xau la: " + str (c))
Để xác định số lượng từ trong một xâu, ta có thể dựa vào số dấu cách xuất hiện giữa các từ Cụ thể, số từ sẽ bằng số dấu cách cộng thêm một Bằng cách khởi tạo biến đếm c với giá trị 1, ta sẽ đếm số dấu cách trong xâu để tính toán tổng số từ.
Cần sử dụng hàm c.isspace() để kiểm tra một ký tự có là dấu cách không.
1.27 Chuyển các ký tự đầu mỗi từ thành chữ hoa, còn lại thành chữ thường s= input ( “Nhap xau ky tu: “ ) new=”” if s[ ].islower(): 0 new+=s[ ].upper() 0 for i in range ( , 1 len (s)): if s[i- ].isspace(): 1 new+=s[i].upper() else : new+=s[i].lower() print(“Chuoi moi: “+ new)
Chúng ta cần duyệt qua từng từ trong chuỗi s Đối với mỗi từ, biến đổi chữ cái đầu thành chữ hoa và các chữ còn lại thành chữ thường Sau đó, thêm từng từ đã biến đổi vào mảng new để lưu trữ kết quả.
Sử dụng hàm c.upper() để biến đổi xâu, ký tự thành chữ hoa và hàm lower() để biến thành chữ thường.
1.28 In ra xâu theo chiều ngược lại s = input("Nhap xau ky tu: " ) print( "Xau theo chieu nguoc lai la:", end = " " ) for i in range len ( (s), , - ): 0 1 print(s[i-1 ], end= "" )
Ta chỉ cần xét ngược từ cuối lên trên xâu s nhập vào và in ra từng phần tử.
Sử dụng hàm len(s) để lấy độ dài của xâu s.
1.29 Loại bỏ các dấu cách thừa ở trong xâu s1 = input("Nhap xau ky tu:" ) s2 = "" i = 0
# Tim den ky tu dau tien khong phai dau cach while s1[i].isspace(): i += 1
# Xet tung ky tu cua xau while i < len (s1): if not s1[i].isspace(): s2 += s1[i] elif i < len(s1)- : 2 if not s1[i+ ].isspace(): 1 s2 += s1[i] i += 1 print( "Xau moi:" +s2)
Chúng ta lưu xâu đầu vào vào biến s1 và kết quả sẽ được lưu vào biến s2 Bắt đầu duyệt xâu s1 từ vị trí không phải dấu cách cho đến cuối xâu, mỗi phần tử được xét sẽ được thêm vào xâu s2 Nếu phần tử là dấu cách nhưng sau nó không phải là dấu cách, chúng ta vẫn sẽ thêm vào xâu s2, trừ khi đó là phần tử cuối xâu hoặc sau nó là dấu cách, lúc này sẽ không thêm vào.
1.30 Bài tập về cấu trúc class SINHVIEN: def init (self , hoten, lop, diemTDC): self hoten = hoten self lop = lop self diemTDC = diemTDC
# Vi du bai tap cau truc sv = []
To input student information, first, prompt the user to enter the number of students, ensuring it falls between 5 and 20 If the input is invalid, display an error message and request the input again For each student, collect their name, class, and exam score for a specific subject Create a student object using this information and store it in a list Finally, display the list of entered students in a formatted table, showing their index, name, class, and score.
The code snippet iterates through a list of students, formatting and displaying their ranking, names, classes, and scores It prompts the user to input a floating-point number, then outputs a list of students with scores below that value The output is neatly organized in a table format, enhancing readability.
"Diem")) for i in range(n): if sv[i].diemTDC < x: print("{:>3} {:3} {:3} {:3} {: