hằng biến trong pyhon
Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (99.67 KB, 23 trang )
Biến, hằng và các kiểu dữ liệu
Th.S Trần Đức Lợi
Pythonvietnam.info
Mục đích bài học
• Tìm hiểu về biến, hằng và các biểu thức trong
python
PythonBeginnerClass @loitd
#pythonvietnam.info
Hằng
• Hằng là các giá trị số, boolean, ký tự hoặc
chuỗi không đổi
• Ví dụ: 123, ‘tôi yêu em’, «Tôi ghét em»
• Số 123 biểu diễn giá trị 123
PythonBeginnerClass @loitd
#pythonvietnam.info
Số trong python
•
•
•
•
•
•
•
Integer: 2 (32bit = long in C)
Long (123L)
Floating point 1.23, 1.2E10 (double in C)
Complex (1.2-3.4j)
.real & .imag
Sys.maxint
12j = ?
PythonBeginnerClass @loitd
#pythonvietnam.info
Số trong python
•
•
•
•
•
•
•
Int()
Long()
Float()
Complex(re,im)
Abs()
Divmod(x,y)
Pow(x,y)
PythonBeginnerClass @loitd
#pythonvietnam.info
Số trong python
•
•
•
•
•
•
Module math
Math.trunc()
Math.ceil()
Math.floor()
Math.round(1.2345,2)
Math.floor(1+2J)?
PythonBeginnerClass @loitd
#pythonvietnam.info
Số trong python
•
•
•
•
•
•
X | y: bitwise or
X & y: bitwise and
X ^ y: bitwise xor
X << n: shift left
X >> n: shift right
~x: invert = -x-1
PythonBeginnerClass @loitd
#pythonvietnam.info
String
•
•
•
•
•
String là một chuỗi các ký tự.
Nháy đơn
Nháy đôi
Nháy ba
Ứng dụng
–
–
–
–
‘I am’
“I’am”
‘’’I
Am’’’
• Escape sequences (in print command)
– \
– \n
PythonBeginnerClass @loitd
#pythonvietnam.info
String
• Raw string (r or R)
– R’new\n’
– Luôn sử dụng raw string với regular expressions
• Unicode
– U’unicode’
• Tính immutable
• String concatenation
PythonBeginnerClass @loitd
#pythonvietnam.info
Biến
• Hằng là immutable
• Biến: là một vị trí trong bộ nhớ mà chương trình
có thể lưu dữ liệu và sau đó đọc ra dựa vào tên
của biến.
• Coder được quyền chọn tên của biến theo quy
tắc.
• Ví dụ: x = 1
• X=2
• Print x?
PythonBeginnerClass @loitd
#pythonvietnam.info
Nguyên tắc đặt tên
•
•
•
•
•
•
•
Phải bắt đầu bằng ký tự chữ hoặc dấu _
Phân biệt hoa thường
Chỉ được bao gồm ký tự, chữ số và _
Tránh các từ dành riêng.
Một số ví dụ:
_a, _A, …
A b, 2a, a-b, …
PythonBeginnerClass @loitd
#pythonvietnam.info
Các từ giành riêng
• and del for is raise assert elif from
lambda return break else global not try
class except if or while continue exec
import pass yield def finally in print as
with
• không được sử dụng để đặt tên biến, hàm
PythonBeginnerClass @loitd
#pythonvietnam.info
Dòng vật lý và dòng logic
• Dòng vật lý?
• Dòng logic?
• Python coi mỗi dòng vật lý là 1 dòng logic
(không tường minh)
• Muốn nhiều dòng logic trên 1 dòng vật lý?
• Khuyến cáo
PythonBeginnerClass @loitd
#pythonvietnam.info
Căn lề
• Vai trò của Dấu cách trong chương trình python
• Ví dụ:
– A=1
• A=2
– B=2
• Căn lề hợp lý:
–
–
–
–
1 tab
4 spaces
2 spaces
Dùng một kiểu
PythonBeginnerClass @loitd
#pythonvietnam.info
Biểu thức
• Một dòng lệnh (logical line) trong python thường chứa
một biểu thức.
• Một biểu thức sẽ bao gồm toán tử (operator) và toán
hạng (operand)
• Toán tử là một chức năng nào đó được biểu diễn bằng
ký tự hoặc từ khóa.
• Ví dụ toán tử: +-*/ **, //, %
• Toán hạng là dữ liệu để cung cấp cho toán tử thực
hiện.
• Ví dụ:
• 2+3: Thì 2,3 là toán hạng, Dấu + là toán tử
PythonBeginnerClass @loitd
#pythonvietnam.info
Phép gán
• Sử dụng dấu bằng (=) cho phép gán với biến
bên trái, giá trị bên phải.
• Bên phải có thể và thường là một biểu thức
(expression)
• Ví dụ:
• X = 2 * (x + 1)
PythonBeginnerClass @loitd
#pythonvietnam.info
Danh sách toán tử và ý nghĩa
• Danh sách cho trong phụ lục I
• Lưu ý: Boolean AND, OR, NOT vs Bitwise AND,
OR
PythonBeginnerClass @loitd
#pythonvietnam.info
Thứ tự thực hiện biểu thức
• Thứ tự thực hiện trong biểu thức toán học thông
thường?
• Thứ tự thực hiện trong python theo các nguyên
tắc cơ bản:
–
–
–
–
–
Dấu ngoặc
Exp
Nhân, chia, lấy dư
Cộng, trừ
Trái sang phải
• Nêu ví dụ đơn giản
PythonBeginnerClass @loitd
#pythonvietnam.info
Thứ tự thực hiện biểu thức
•
•
•
•
(True + 1) ** 2 * 3
(True + 1) ** 2 // 2
1<2 or 2<1 and 3<4 and 1^2>6
Ý nghĩa của dấu ngoặc
PythonBeginnerClass @loitd
#pythonvietnam.info
Ví dụ về biểu thức
• Tính diện tích hình chữ nhật và in ra màn
hình?
PythonBeginnerClass @loitd
#pythonvietnam.info
Kiểu trong python
• Thực hiện trong python phép tính 3/2 kết quả
sẽ bằng 1?
• Giải thích lý do?
• Muốn có kết quả đúng?
• Như vậy kiểu thương số 2 đã được tự động
convert sang kiểu float trước khi thực hiện
phép tính hay sau khi thực hiện phép tính?
PythonBeginnerClass @loitd
#pythonvietnam.info
Khai báo biến
•
•
•
•
Xem xét khai báo biến trong C++
So sánh với khai báo biến trong python
Tự nhận kiểu trong python
Hàm type()
PythonBeginnerClass @loitd
#pythonvietnam.info
Bài tập
• Lưu ý về cách thức ra bài tập
• Viết thuật toán và code chương trình
PythonCalculator:
PythonBeginnerClass @loitd
#pythonvietnam.info
Hằng• Hằng là các giá trị số, boolean, ký tự hoặcchuỗi không đổi• Ví dụ: 123, ‘tôi yêu em’, «Tôi ghét em»• Số 123 biểu diễn giá trị 123PythonBeginnerClass @loitd#pythonvietnam.infoSố trong pythonInteger: 2 (32bit = long in C)Long (123L)Floating point 1.23, 1.2E10 (double in C)Complex (1.2-3.4j).real & .imagSys.maxint12j = ?PythonBeginnerClass @loitd#pythonvietnam.infoSố trong pythonInt()Long()Float()Complex(re,im)Abs()Divmod(x,y)Pow(x,y)PythonBeginnerClass @loitd#pythonvietnam.infoSố trong pythonModule mathMath.trunc()Math.ceil()Math.floor()Math.round(1.2345,2)Math.floor(1+2J)?PythonBeginnerClass @loitd#pythonvietnam.infoSố trong pythonX | y: bitwise orX & y: bitwise andX ^ y: bitwise xorX << n: shift leftX >> n: shift right~x: invert = -x-1PythonBeginnerClass @loitd#pythonvietnam.infoStringString là một chuỗi các ký tự.Nháy đơnNháy đôiNháy baỨng dụng‘I am’“I’am”‘’’IAm’’’• Escape sequences (in print command)– \– \nPythonBeginnerClass @loitd#pythonvietnam.infoString• Raw string (r or R)– R’new\n’– Luôn sử dụng raw string với regular expressions• Unicode– U’unicode’• Tính immutable• String concatenationPythonBeginnerClass @loitd#pythonvietnam.infoBiến• Hằng là immutable• Biến: là một vị trí trong bộ nhớ mà chương trìnhcó thể lưu dữ liệu và sau đó đọc ra dựa vào têncủa biến.• Coder được quyền chọn tên của biến theo quytắc.• Ví dụ: x = 1• X=2• Print x?PythonBeginnerClass @loitd#pythonvietnam.infoNguyên tắc đặt tênPhải bắt đầu bằng ký tự chữ hoặc dấu _Phân biệt hoa thườngChỉ được bao gồm ký tự, chữ số và _Tránh các từ dành riêng.Một số ví dụ:_a, _A, …A b, 2a, a-b, …PythonBeginnerClass @loitd#pythonvietnam.infoCác từ giành riêng• and del for is raise assert elif fromlambda return break else global not tryclass except if or while continue execimport pass yield def finally in print aswith• không được sử dụng để đặt tên biến, hàmPythonBeginnerClass @loitd#pythonvietnam.infoDòng vật lý và dòng logic• Dòng vật lý?• Dòng logic?• Python coi mỗi dòng vật lý là 1 dòng logic(không tường minh)• Muốn nhiều dòng logic trên 1 dòng vật lý?• Khuyến cáoPythonBeginnerClass @loitd#pythonvietnam.infoCăn lề• Vai trò của Dấu cách trong chương trình python• Ví dụ:– A=1• A=2– B=2• Căn lề hợp lý:1 tab4 spaces2 spacesDùng một kiểuPythonBeginnerClass @loitd#pythonvietnam.infoBiểu thức• Một dòng lệnh (logical line) trong python thường chứamột biểu thức.• Một biểu thức sẽ bao gồm toán tử (operator) và toánhạng (operand)• Toán tử là một chức năng nào đó được biểu diễn bằngký tự hoặc từ khóa.• Ví dụ toán tử: +-*/ **, //, %• Toán hạng là dữ liệu để cung cấp cho toán tử thựchiện.• Ví dụ:• 2+3: Thì 2,3 là toán hạng, Dấu + là toán tửPythonBeginnerClass @loitd#pythonvietnam.infoPhép gán• Sử dụng dấu bằng (=) cho phép gán với biếnbên trái, giá trị bên phải.• Bên phải có thể và thường là một biểu thức(expression)• Ví dụ:• X = 2 * (x + 1)PythonBeginnerClass @loitd#pythonvietnam.infoDanh sách toán tử và ý nghĩa• Danh sách cho trong phụ lục I• Lưu ý: Boolean AND, OR, NOT vs Bitwise AND,ORPythonBeginnerClass @loitd#pythonvietnam.infoThứ tự thực hiện biểu thức• Thứ tự thực hiện trong biểu thức toán học thôngthường?• Thứ tự thực hiện trong python theo các nguyêntắc cơ bản:Dấu ngoặcExpNhân, chia, lấy dưCộng, trừTrái sang phải• Nêu ví dụ đơn giảnPythonBeginnerClass @loitd#pythonvietnam.infoThứ tự thực hiện biểu thức(True + 1) ** 2 * 3(True + 1) ** 2 // 21<2 or 2<1 and 3<4 and 1^2>6Ý nghĩa của dấu ngoặcPythonBeginnerClass @loitd#pythonvietnam.infoVí dụ về biểu thức• Tính diện tích hình chữ nhật và in ra mànhình?PythonBeginnerClass @loitd#pythonvietnam.infoKiểu trong python• Thực hiện trong python phép tính 3/2 kết quảsẽ bằng 1?• Giải thích lý do?• Muốn có kết quả đúng?• Như vậy kiểu thương số 2 đã được tự độngconvert sang kiểu float trước khi thực hiệnphép tính hay sau khi thực hiện phép tính?PythonBeginnerClass @loitd#pythonvietnam.infoKhai báo biếnXem xét khai báo biến trong C++So sánh với khai báo biến trong pythonTự nhận kiểu trong pythonHàm type()PythonBeginnerClass @loitd#pythonvietnam.infoBài tập• Lưu ý về cách thức ra bài tập• Viết thuật toán và code chương trìnhPythonCalculator:PythonBeginnerClass @loitd#pythonvietnam.info