Nếu các bạn đã nắm vững ngôn ngữ lập trình (NNLT) Pascal thì bài viết này sẽ giúp các bạn học NNLT Python một cách dễ dàng và nhanh nhất. Thông qua những so sánh điểm giống và khác nhau của Python và Pascal, các bạn sẽ tự học Python hiệu quả hơn.
PASCAL |
PYTHON |
Không sử dụng dấu nháy kép (”), dấu sổ ngược (\), dấu chấm than (!) |
Sử dụng dấu nháy kép (”), dấu sổ ngược (\), dấu chấm than (!), ba nháy (”’) |
– Tên là một dãy liên tiếp có tối đa 127 kí tự – Tên không phân biệt chữ hoa và chữ thường VD: Ab giống ab giống AB giống aB – Các câu lệnh không phân biệt chữ hoa và chữ thường: write=Write=WRITE |
– Tên là một dãy liên tiếp có số kí tự tùy ý – Tên phân biệt chữ hoa và chữ thường VD: Ab khác ab khác AB khác aB – Các câu lệnh không dùng chữ in hoa: Viết đúng: if, for, print, … Viết sai: If, For, Print, … – Lưu ý viết đúng hằng logic: True, False |
Hằng xâu: đặt trong cặp dấu nháy đơn VD: ‘pascal’ |
Hằng xâu: đặt trong cặp dấu nháy đơn hoặc nháy kép VD: ‘pascal’ hoặc “pascal” |
Chú thích { nội dung chú thích} Hoặc: (* nội dung chú thích *) |
– Chú thích trên một dòng: # nội dung chú thích – Chú thích nhiều dòng: bắt đầu và kết thúc bằng 3 dấu nháy đơn hoặc 3 dấu nháy kép ”’ nội dung chú thích ”’ Hoặc ” ” ” nội dung chú thích ” ” ” |
Khai báo thư viện: Uses <tên thư viện> Vd: uses CRT; |
Khai báo thư viện: import <tên thư viện> Vd: import math |
Kết thúc câu lệnh phải có dấu chấm phẩy (;) |
– Không có ký hiệu kết thúc câu lệnh, mỗi câu lệnh viết trên một dòng – Nếu câu lệnh dài, dùng dấu sổ phải (\) để ngắt |
Phần thân: Begin … End. |
Không phân biệt phần khai báo và phần thân, các dòng lệnh viết liên tiếp |
Phải khai báo biến trước |
– Không cần khai báo biến, gán cho biến giá trị kiểu nào thì biến sẽ có kiểu đó – Biến trong Python được sử dụng cơ động, có thể lúc trước biến x là kiểu nguyên sau đó là kiểu thực vẫn được chấp nhận tùy theo giá trị bạn gán cho nó vào thời điểm hiện tại lúc đó. |
Phép toán: Div (chia nguyên) Mod (lấy phần dư) Không có phép lập phương |
Phép toán: // (chia nguyên) % (lấy phần dư) ** (phép lập phương): x**3 (x3) |
= (so sánh bằng) <> (khác) |
== (so sánh bằng) != (khác) |
x:=1; (gán 1 cho x) |
x=1(gán 1 cho x) |
(-b + sqrt(b**2 – 4*a*c)/(2*a) |
Để dùng các hàm: pow(), sqrt(), log(), log2(), exp(), sin(), cos(), tan() phải có lệnh khai báo nhập khẩu thư viện import math ở đầu chương trình và lời gọi hàm phải có từ math đi trước cùng dấu chấm phân cách. (-b + math.sqrt(b**2 – 4*a*c)/(2*a) |
Tráo đổi a và b cho nhau: t:=a; a:=b; b:=t; |
Tráo đổi a và b cho nhau: a,b=b,a |
a:=1; b:=1; |
a=b=1 (gán cho a và b giá trị 1) |
a:=1; b:=2; |
a,b=1,2 (gán a=1, b=2) |
Write(‘Nhap so nguyen n: ‘); Readln(n); |
Nhập số nguyên n từ bàn phím: n=int(input(‘Nhập số nguyên n: ‘)) |
Write(‘Nhap 3 so nguyen: ‘); Readln(a,b,c); |
Nhập vào ba số nguyên a, b, c từ bàn phím: a, b, c = map(int, input(‘Nhập 3 số nguyên: ‘).split()) |
In kết quả xong con trỏ không xuống dòng: Write(<danh sách kết quả ra>); |
In kết quả xong con trỏ không xuống dòng: print(<danh sách kết quả ra>, end=”) (end=” có tác dụng không đưa con trỏ xuống dòng) |
In kết quả xong và đưa con trỏ xuống dòng: Writeln(<danh sách kết quả ra>); |
In kết quả xong và đưa con trỏ xuống dòng: print(<danh sách kết quả ra>) (Theo mặc định khi in xong con trỏ tự động xuống dòng tiếp theo) |
Kiểu dữ liệu chuẩn – Số nguyên: byte, word, integer, longint – Số thực: real |
Kiểu dữ liệu chuẩn – Số nguyên: int (kiểu nguyên int cho phép thực hiện với số cực lớn – hàng trăm số) – Số thực: float |
Chuỗi định dạng đầu ra: Tính tổng 2 số: Var num1, num2, sum:real; Begin Write(‘Nhap 2 so: ‘); Readln(num1,num2); Sum:=num1+num2; Write(‘Tong cua ‘,num1,’ va ‘,num2,’ la ‘,sum :4 :1) ; End. |
Chuỗi định dạng đầu ra: # Tính tổng 2 số – cách 1 num1 = float(input(‘Nhập số thứ nhất: ‘)) num2 = float(input(‘Nhập số thứ hai: ‘)) sum = num1 + num2 print(‘Tổng của %4.1f và %4.1f là %4.1f’ %(num1, num2, sum)) “%4.1f” cho biết tham số ở vị trí này phải được in như một số thực (chữ “f” – float) với độ rộng là 4 và có 1 chữ số thập phân. ———————————————————- # Tính tổng 2 số – cách 2 num1 = float(input(‘Nhập số thứ nhất: ‘)) num2 = float(input(‘Nhập số thứ hai: ‘)) sum = num1 + num2 print(‘Tổng của {0} và {1} là {2}’.format(num1, num2, sum)) {0} {1} {2} là 3 vị trí tương ứng in ra 3 giá trị num1, num2, num3 Kết quả trên màn hình khi chạy 2 đoạn chương trình trên |
Câu lệnh if – Dạng thiếu: If <điều kiện> then <câu lệnh>; – Dạng đủ: If <điều kiện> then <câu lệnh 1> else <câu lệnh 2>; |
Câu lệnh if – Dạng thiếu: If <điều kiện> : <câu lệnh> – Dạng đủ: If <điều kiện> : <câu lệnh 1> else: <câu lệnh 2> |
Câu lệnh ghép: if D < 0 then write(‘Phuong trinh vo nghiem.’) else begin x1 = (-b – sqrt(b*b – 4*a*c))/(2*a); x2 = -b/a-x1; end; |
Câu lệnh ghép: if D < 0 : print(‘Phuong trinh vo nghiem.’) else: x1 = (-b – math.sqrt(b*b – 4*a*c))/(2*a) x2 = -b/a-x1 (Các lệnh của câu lệnh ghép được viết thụt lề và thẳng lề với nhau) Ví dụ chương trình giải phương trình bậc 2 # Giải phương trình bậc 2 import math a, b, c = map(int, input(‘Nhập a, b, c: ‘).split()) d=b**2-4*a*c if d<0: print(‘Phương trình vô nghiệm’) else: x1=(-b-math.sqrt(d))/(2*a) x2=(-b+math.sqrt(d))/(2*a) print(‘x1={0}, x2={1}’.format(x1,x2)) |
§ Câu lệnh lặp for for <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>; § Ví dụ 1: In ra màn hình các số tự nhiên từ 0 đến 100: For i:=0 to 100 do write(i,’ ‘); § Ví dụ 2: In ra màn hình các số tự nhiên từ 100 đến 0 For i:=100 downto 0 do write(i,’ ‘);
|
§ Câu lệnh lặp for for <biến đếm> in range([giá trị đầu], <giá trị cuối>, [bước nhảy]): <lệnh> • Biến đếm là biến đơn, thường có kiểu nguyên; • Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm; • Nếu bước nhảy > 0 thì giá trị đầu phải nhỏ hơn giá trị cuối (lặp tiến). Nếu giá trị đầu không nhỏ hơn giá trị cuối thì vòng lặp không được thực hiện. Nếu bước nhảy < 0 thì giá trị đầu phải lớn hơn giá trị cuối (lặp lùi). Nếu giá trị đầu không lớn hơn giá trị cuối thì vòng lặp không được thực hiện. Hoạt động của lệnh lặp for trong cú pháp trên: • Câu lệnh sau for được thực hiện tuần tự, với biến đếm lần lượt nhận giá trị trong phạm vi [giá trị đầu, giá trị cuối) (tức là từ giá trị đầu đến giá trị cuối -1) • Sau mỗi lần thực hiện lệnh thì biến đếm được cộng thêm một giá trị là bước nhảy. • Mặc định nếu không nêu tham số bước nhảy thì bước nhảy là 1, và nếu không có tham số giá trị đầu thì giá trị đầu bằng 0. § Ví dụ 1: In ra màn hình các số tự nhiên từ 0 đến 100 for i in range(0,101,1): print(‘{0} ‘.format(i),end=”) hoặc có thể bỏ giá trị đầu và bước nhảy: for i in range(101): print(‘{0} ‘.format(i),end=”) § Ví dụ 2: In ra màn hình các số tự nhiên từ 100 đến 0 for i in range(100,-1,-1): print(‘{0} ‘.format(i),end=”) |
§ Câu lệnh lặp while While <điều kiện> do <câu lệnh>; |
§ Câu lệnh lặp while while <điều kiện>: <câu lệnh> |
Sau khi xem bài viết này, các bạn có thể kiểm tra kiến thức Python cơ bản qua bộ câu hỏi trắc nghiệm này nhé.