lOMoARcPSD| 58490434
T học Python Cơ Bản Trong 10 phút
Python là mt ngôn ng đề cao kh năng dễ đọc, ngn gn là quan trng là LÀM
ĐƯC NHIU TH.
Ngôn ng Python được coi là ngôn ng lp trình d hc nht. Vy, hôm nay mình
s cùng bn th T học Python Cơ Bản trong 10 PHÚT xem nhé.
* Lưu ý: Trưc khi bt đu, bn nên Cài đt Python Cài đt Pycharm
(Nh xem c cách chy th mt tp tin Python trong bài hưng dn cài đt
Pycharm na nhé).
* Bài viết này mình s dng đ giúp các bn hc viên Khóa hc Python
mt chút nn tng đ khi bt đu hc s d hơn.
T học Python cơ bản trong 10 phút
OK, nếu bạn đã chuẩn b xong. Hãy bắt đầu cùng mình T học Python Cơ bản
trong 10 phút nào!
lOMoARcPSD| 58490434
Mc lc (* Click vào mc lục để chạy đến tng phn):
1. Th chy trình thông dch Python
2. Th chy tp lnh Python
3. Các kiu d liu ph biến trong Python
4. Tìm hiu v Biến trong Python
5. Tìm hiu vm trong Python
6. To hàm tùy chnh trong Python
7. Tìm hiu v biu thức điều kin trong Python
8. Tìm hiu v List trong Python
9. Tìm hiu v Modules trong Python
Tng kết T học Python Cơ Bản trong 10 Phút
1. Th chy trình thông dch Python
Python đi kèm với mt trình thông dịch tương tác. Khi bn
python
trong shell hoc command prompt, trình thông dch python s hot
động vi mt du nhc
>>>
và ch lnh ca bn.
$ python
Python 3.7.4 (v3.7.4:e09359112e, Jul 8 2019, 14:54:52)
Clang 6.0 (clang
600.0.57)]
on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
lOMoARcPSD| 58490434
Bây gi bn có th gõ bt k biu thc python hp l ti du nhc lnh này.
Python s đọc biu thc bn vừa gõ, đánh giá nó và trả li kết qu.
Ví d:
Bài tp 1: Hãy m trình thông dch Python mi và s dụng nó đểm giá tr
ca
2 + 3
Lưu ý: Trong các ví dụ, mình s s dng command prompt (command line).
Nếu bn s dng Pycharm thì hãy b các du
>>>
...
. Khi mun in kết
qu thì ném biu thc vào trong lnh
print()
2. Th chy tp lnh Python
>>>
42
42
>>>
lOMoARcPSD| 58490434
Hãy m trình son thảo văn bản / Pycharm ca bn, nhập đoạn code sau
và lưu nó dưới dng hello.py. Lưu ý là phải lưu đúng đuôi .py nhé!
Và đây là kết qu;
$ python hello.py hello,
world!
3. Các kiu d liu ph biến trong Python
Python có h tr cho tt c các kiu d liệu cơ bản và cũng có kiểu d liu ghép rt
mnh.
Python có kiu s nguyên: integers
>>> 1 + 2 3
print
"hello, world!"
python hello.py
lOMoARcPSD| 58490434
Python cũng rất gii trong vic x lý s rt ln.
Ví d: Chúng ta hãy th tính 2^1000.
>>> 2 ** 1000
1071508607186267320948425049060001810561404811705533607443750388370351051124936122
4931983788156958581275946729175531468251871452856923140435984577574698574803934567
7748242309854210746050623711418779541821530464749835819412673987675591655439460770
62914571196477686542167660429831652624386837205668069376
Kết qu là mt con s khá ln, phi không? Bạn nào đếm được kết qu chính xác
có bao nhiêu s liên h mình s có quà nhé: ;)
Python có kiu s du phẩy động: float
>>> 1.2 + 2.3
3.5
Python có kiu d liu chui: String
>>> "hello world"
'hello world'
>>> print("hello world") hello
world
Chui có th được đặt trong du ngoặc đơn '' hoc du ngoc kép "". C hai đều
ging ht nhau.
lOMoARcPSD| 58490434
Trong Python, các chui rt linh hot và rt d dàng để làm vic vi chúng.
>>> 'hello' + 'world'
'helloworld'
>>> "hello" * 3
'hellohellohello'
>>> print("=" * 40)
========================================
Hàm
len
tích hp (built-in function) được s dụng để tìm độ dài ca chui.
Python cũng h tr các chui trên nhiều dòng. Chúng được đặt trong ba du
ngoc kép hoc ba du ngoặc đơn, như ví d sau:
text = """Đây là mt chui nhiu dòng.
Dòng th 2
Dòng th 3
và nó có th chứa đoạn text "Trong dấu nháy" như thế này. """
Kết qu:
>>>
len
'helloworld'
10
lOMoARcPSD| 58490434
Ví d:
Python có kiu d liu dng danh sách (được gi là List). List là mt trong nhng loi
d liu hu ích nht ca Python.
>>>
print
text
Đây là mt chui nhiu dòng.
Dòng th 2
Dòng th 3
và nó có th chứa đoạn tex "Trong du nháy" như thế này.
\
t
>>>
print
"a
c"
>>>
"a"
"b"
"c"
>>>
'a', 'b', 'c'
>>>
len
>>>
'b'
[]
lOMoARcPSD| 58490434
Python cũng có một kiu d liu khác gi là tuple để biu din các bn ghi vi
chiu rng c định.
Tuples hành x giống như List, nhưng chúng là bất biến.
Khi khai báo mt tuple, bn có th b qua du ngoặc đơn.
>>> point = 2, 3
>>> point (2, 3)
Cũng có thể gán mt tuple nhiu giá tr cùng mt lúc:
>>>
point
>>>
point
(2
,
3)
lOMoARcPSD| 58490434
Python cũng có một kiu d liu set. Mt set là mt tp hp các phn t không
th t và duy nht.
>>> x = {1, 2, 3, 2, 1}
>>> x
{1, 2, 3}
* Bn hãy th thc hin li lnh
>>> x
xem. Kết qu nhận được là như thế
nào?
Python có kiu boolean. Nó có hai giá tr đặc bit truefalse để đi din cho
Đúng và Sai.
Cui cùng, Python có mt kiu d liệu đặc bit gi là
None
để đại din cho
không có gì.
>>>
yellow
255
255
>>>
yellow
>>>
print
255 255 0
name : value
>>>
person
"name"
"NIIT"
"email"
"hello@niithanoi.edu.vn"
}
>>>
person
'name'
'NIIT'
>>>
person
'email'
'hello@niithanoi.edu.vn'
lOMoARcPSD| 58490434
>>> x = None
>>> print(x)
None
Bây gi bạn đã biết hu hết các cu trúc d liu ph biến ca Python.
Nhìn thì chúng rất đơn giản, nhưng thành thạo vn dng các kiu d liệu này cũng
cn mt chút luyn tập đấy.
Và hãy chc chn bạn đã hiểu tt c các ví d trên, th viết và chy li xem kết qu
vài lần để đảm bo bn quen thuộc trước khi chúng ta chuyn sang phn tiếp
theo.
4. Tìm hiu v Biến trong Python
Bạn chưa được hc v biến trong Python nhưng bạn đã nhìn thấy biến phn
trước.
Bây gi, chúng ta s xem xét k hơn v biến trong Python.
Trong Python, biến không có kiu. Chúng ch cn gi ch đó có thể gi bt k giá
tr có bt k kiu d liu nào.
lOMoARcPSD| 58490434
>>> x = 5
>>> x
5
>>> x = 'hello'
>>> x
'hello'
Điu quan trng là bn có th nhn thy s khác bit gia các biến chui.
Thông thường người mi hc lp trình s b la bởi điều này. Bn có th nhn ra
bt k li nào trong ví d sau không?
Nếu có thì chúc mng bn, biến trong Python cũng không có gì khó khăn cả.
5. Tìm hiu v Hàm trong Python
Hàm - hay còn gi là function.
Trong Python, có nhiu hàm dng sn (built-in functions). Ví d,
print
mt
hàm được tích hp sẵn đưc s dng ph biến nht.
>>>
name
"NIIT"
>>>
print("name")
lOMoARcPSD| 58490434
Chúng ta cũng đã thấy hàm
len
phần trước. Hàm
len
tính chiu dài ca
mt chui, list hoc các tp hp khác.
>>> len("hello")
5
>>> len(['a', 'b', 'c']) 3
Một điều quan trng v Python là nó không cho phép các hoạt động trên các kiu
d liệu không tương thích. Ví dụ:
Đó là bởi vì không th cng s vi chui.
Chúng ta cn chuyển đổi 5
thành mt chui hoc
'2'
thành mt s.
Để làm điều này, chúng ta có hàm dng sn
int
s chuyển đổi mt chui
>>>
print
'hello'
hello
>>>
print
'hello'
hello 1 2 3
>>>
"2"
Traceback (most recent call last):
File
"<stdin>"
, line
, in
module
>
TypeError
unsupported operand type(s) for +: 'int' and
'str'
lOMoARcPSD| 58490434
thành mt s và hàm
str
s chuyển đổi bt k giá tr nào thành mt chui.
>>> int("5")
5
>>> str(5) '5'
Và:
Ví dụ: Đếm s ch s trong mt s vi Python
phần trên mình đã đố bạn đếm được s ch s ca kết qu 2^1000 đúng
không?
Tuy nhiên, đếm bng tay thì quá kh.
Hãy viết một chương trình để đếm s ch s trong mt s, ví d, chúng ta có các
s:
>>>
int
"2"
>>>
str
"2"
'52'
lOMoARcPSD| 58490434
>>> 2 ** 1000
1071508607186267320948425049060001810561404811705533607443750388370351051124936122
4931983788156958581275946729175531468251871452856923140435984577574698574803934567
7748242309854210746050623711418779541821530464749835819412673987675591655439460770
62914571196477686542167660429831652624386837205668069376
Chúng ta s s dng hàm
str
để chuyn s v dng chui. Sau đó sử dng
hàm len để tính độ dài ca chuỗi đó, c th:
Bạn đã hiểu chưa?
* Đọc đến đoạn này mà mới có đáp án thì không có quà nữa đâu nhé. ;)
>>>
12345
12345
>>>
**
100
1267650600228229401
496703205376
>>>
len
str
12345
))
>>>
len
str
**
100
))
31
>>>
len
str
1000
))
302
lOMoARcPSD| 58490434
6. To hàm tùy chnh trong Python
Giống như cách gán một giá tr cho mt biến, một đoạn logic cũng có thể đưc
liên kết vi mt tên bằng cách định nghĩa nó là một hàm.
Ví d:
>>> def square(x): ...
return x * x ...
>>> square(5)
25
Trong đó:
t khóa def để định nghĩa một hàm
square là tên hàm (tùy bạn đặt)
x là tham s ca hàm
Phn thân của hàm được tht l. Tht l cũng là để cách phân nhóm các câu lnh
Python.
Các du
...
là du nhc lnh th câp mà các thông dch Python s dụng để
lOMoARcPSD| 58490434
biu th rằng nó đang chờ mt s d liệu đưc nhp vào.
Các hàm trong Python có th đưc s dng trong bt k biu thc nào:
>>> square(2) + square(3)
13
>>> square(square(3))
81
Các chức năng hiện có cũng có thể đưc s dụng để to ra các hàm mi.
Các hàm trong Python cũng giống như các giá trị khác, chúng có th đưc gán,
đưc chuyển dưới dạng đối s cho các hàm khác, .... ví d:
>>>
def
sum_of_squares
):
...
return
square
square
...
>>>
sum_of_squares
13
>>>
square
>>>
16
>>>
def
fxy
):
...
return
...
>>>
fxy
square
13
lOMoARcPSD| 58490434
Điu quan trng là phi hiểu được phm vi ca các biến đưc s dng trong các
hàm.
Hãy nhìn vào mt ví d.
Các biến được gán trong mt hàm, bao gm các đối s đưc gi là các biến cc b ca
hàm (local variables).
Các biến được định nghĩa ở cp cao nhất được gi là biến toàn cc (global
variables).
Nếu bạn thay đi giá tr ca
x
y
bên trong hàm
incr
thì nó cũng sẽ không
ảnh hưởng nhng giá tr ca biến toàn cc, xy.
Nhưng, chúng ta có thể s dng các giá tr ca các biến toàn cc:
def
incr
):
return
incr
print
pi
3.14
def
area
):
return
pi
lOMoARcPSD| 58490434
Khi Python thy vic s dng mt biến không được định nghĩa trong phạm vi cc
b, nó s c gng tìm mt biến toàn cục có tên đó.
Tuy nhiên, bn phi khai báo rõ ràng mt biến là global để có th sửa đổi nó.
Sau đây chúng ta sẽ làm mt s bài tập để hiểu hơn về hàm trong Python.
Bài tp 2: Có bao nhiêu phép nhân được thc hin khi mỗi đòng code sau đây
đưc thc thi?
* S dng hàm square mà chúng ta đã định nghĩa ở trên.
Bài tp 3: Kết qu của chương trình sau đây là gì?
x = 1 def
f():
numcalls
def
square
):
global
numcalls
numcalls
numcalls
return
print
square
print
square
lOMoARcPSD| 58490434
return x
print x
print f()
Bài tp 4: Kết qu của chương trình sau đây là gì?
x = 1 def
f(): x =
2 return
x print x
print f()
print x
Bài tp 5: Kết qu của chương trình sau đây là gì?
Bài tp 6: Kết qu của chương trình sau đây là gì?
def
():
return
print
print
()
print
lOMoARcPSD| 58490434
Hãy chm li mt chút, gii hết các bài tp trên thì mi tiếp tc bn nhé.
Các hàm có th đưc gi với các đối s.
Và mt tham s có th có giá tr mặc định:
>>> def increment(x, amount=1):
... return x + amount ...
>>> increment(10)
11
>>> increment(10, 5)
15
>>> increment(10, amount=2) 12
def
):
return
print
>>>
def
difference
):
...
return
...
>>>
difference
>>>
difference
>>>
difference
>>>
difference

Preview text:

lOMoAR cPSD| 58490434
Tự học Python Cơ Bản Trong 10 phút
Python là một ngôn ngữ đề cao khả năng dễ đọc, ngắn gọn là quan trọng là LÀM ĐƯỢC NHIỀU THỨ.
Ngôn ngữ Python được coi là ngôn ngữ lập trình dễ học nhất. Vậy, hôm nay mình
sẽ cùng bạn thử Tự học Python Cơ Bản trong 10 PHÚT xem nhé. *
Lưu ý: Trước khi bắt đầu, bạn nên Cài đặt PythonCài đặt Pycharm
(Nhớ xem cả cách chạy thử một tập tin Python trong bài hướng dẫn cài đặt Pycharm nữa nhé). *
Bài viết này mình sử dụng để giúp các bạn học viên Khóa học Python
một chút nền tảng đề khi bắt đầu học sẽ dễ hơn.
Tự học Python cơ bản trong 10 phút
OK, nếu bạn đã chuẩn bị xong. Hãy bắt đầu cùng mình Tự học Python Cơ bản trong 10 phút nào! lOMoAR cPSD| 58490434
Mục lục (* Click vào mục lục để chạy đến từng phần):
1. Thử chạy trình thông dịch Python
2. Thử chạy tập lệnh Python
3. Các kiểu dữ liệu phổ biến trong Python
4. Tìm hiểu về Biến trong Python
5. Tìm hiểu về Hàm trong Python
6. Tạo hàm tùy chỉnh trong Python
7. Tìm hiểu về biểu thức điều kiện trong Python
8. Tìm hiểu về List trong Python
9. Tìm hiểu về Modules trong Python
Tổng kết Tự học Python Cơ Bản trong 10 Phút
1. Thử chạy trình thông dịch Python
Python đi kèm với một trình thông dịch tương tác. Khi bạn
gõ python trong shell hoặc command prompt, trình thông dịch python sẽ hoạt
động với một dấu nhắc >>> và chờ lệnh của bạn. $ python
Python 3.7.4 (v3.7.4:e09359112e, Jul 8 2019, 14:54:52)
[ Clang 6.0 (clang - 600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information. >>> lOMoAR cPSD| 58490434
Bây giờ bạn có thể gõ bất kỳ biểu thức python hợp lệ tại dấu nhắc lệnh này.
Python sẽ đọc biểu thức bạn vừa gõ, đánh giá nó và trả lại kết quả. Ví dụ: >>> 42 42
>>> 4 + 2 6
Bài tập 1: Hãy mở trình thông dịch Python mới và sử dụng nó để tìm giá trị của 2 + 3
Lưu ý: Trong các ví dụ, mình sẽ sử dụng command prompt (command line).
Nếu bạn sử dụng Pycharm thì hãy bỏ các dấu
>>> và ... . Khi muốn in kết
quả thì ném biểu thức vào trong lệnh print()
2. Thử chạy tập lệnh Python lOMoAR cPSD| 58490434
Hãy mở trình soạn thảo văn bản / Pycharm của bạn, nhập đoạn code sau
print ( "hello, world!" ) python hello.py
và lưu nó dưới dạng hello.py. Lưu ý là phải lưu đúng đuôi .py nhé! Và đây là kết quả; $ python hello.py hello, world!
3. Các kiểu dữ liệu phổ biến trong Python
Python có hỗ trợ cho tất cả các kiểu dữ liệu cơ bản và cũng có kiểu dữ liệu ghép rất mạnh.
Python có kiểu số nguyên: integers >>> 1 + 2 3 lOMoAR cPSD| 58490434
Python cũng rất giỏi trong việc xử lý số rất lớn.
Ví dụ: Chúng ta hãy thử tính 2^1000. >>> 2 ** 1000
1071508607186267320948425049060001810561404811705533607443750388370351051124936122
4931983788156958581275946729175531468251871452856923140435984577574698574803934567
7748242309854210746050623711418779541821530464749835819412673987675591655439460770
62914571196477686542167660429831652624386837205668069376
Kết quả là một con số khá lớn, phải không? Bạn nào đếm được kết quả chính xác
có bao nhiêu số liên hệ mình sẽ có quà nhé: ;)
Python có kiểu số dấu phẩy động: float >>> 1.2 + 2.3 3.5
Python có kiểu dữ liệu chuỗi: String
>>> "hello world" 'hello world'
>>> print("hello world") hello world
Chuỗi có thể được đặt trong dấu ngoặc đơn '' hoặc dấu ngoặc kép "". Cả hai đều giống hệt nhau. lOMoAR cPSD| 58490434
Trong Python, các chuỗi rất linh hoạt và rất dễ dàng để làm việc với chúng.
>>> 'hello' + 'world' 'helloworld'
>>> "hello" * 3 'hellohellohello'
>>> print("=" * 40)
========================================
Hàm len tích hợp (built-in function) được sử dụng để tìm độ dài của chuỗi.
>>> len ( 'helloworld' ) 10
Python cũng hỗ trợ các chuỗi trên nhiều dòng. Chúng được đặt trong ba dấu
ngoặc kép hoặc ba dấu ngoặc đơn, như ví dụ sau:
text = """Đây là một chuỗi nhiều dòng. Dòng thứ 2 Dòng thứ 3
và nó có thể chứa đoạn text "Trong dấu nháy" như thế này. """ Kết quả: lOMoAR cPSD| 58490434
>>> print ( text )
Đây là một chuỗi nhiều dòng. Dòng thứ 2 Dòng thứ 3
và nó có thể chứa đoạn tex "Trong dấu nháy" như thế này. \ n \ t Ví dụ:
>>> print "a \ n b \ n c" a b c
Python có kiểu dữ liệu dạng danh sách (được gọi là List). List là một trong những loại
dữ liệu hữu ích nhất của Python.
>>> x = [ "a" , "b" , "c" ] >>> x [ 'a', 'b', 'c' ]
>>> len ( x ) 3
>>> x [ 1 ] 'b' [] lOMoAR cPSD| 58490434
Python cũng có một kiểu dữ liệu khác gọi là tuple để biểu diễn các bản ghi với chiều rộng cố định.
Tuples hành xử giống như List, nhưng chúng là bất biến.
>>> point = ( 2 , 3 )
>>> point (2 , 3)
Khi khai báo một tuple, bạn có thể bỏ qua dấu ngoặc đơn.
>>> point = 2, 3
>>> point (2, 3)
Cũng có thể gán một tuple nhiều giá trị cùng một lúc: lOMoAR cPSD| 58490434
>>> yellow = ( 255 , 255 , 0 )
>>> r , g , b = yellow
>>> print ( r , g , b ) 255 255 0 name : value
>>> person = { "name" : "NIIT" , "email" : "hello@niithanoi.edu.vn" }
>>> person [ 'name' ] 'NIIT'
>>> person [ 'email' ] 'hello@niithanoi.edu.vn'
Python cũng có một kiểu dữ liệu set. Một set là một tập hợp các phần tử không có thứ tự và duy nhất.
>>> x = {1, 2, 3, 2, 1} >>> x {1, 2, 3}
* Bạn hãy thử thực hiện lại lệnh >>> x xem. Kết quả nhận được là như thế nào?
Python có kiểu boolean. Nó có hai giá trị đặc biệt true và false để đại diện cho Đúng và Sai.
Cuối cùng, Python có một kiểu dữ liệu đặc biệt gọi là None để đại diện cho không có gì. lOMoAR cPSD| 58490434
>>> x = None >>> print(x) None
Bây giờ bạn đã biết hầu hết các cấu trúc dữ liệu phổ biến của Python.
Nhìn thì chúng rất đơn giản, nhưng thành thạo vận dụng các kiểu dữ liệu này cũng
cần một chút luyện tập đấy.
Và hãy chắc chắn bạn đã hiểu tất cả các ví dụ trên, thử viết và chạy lại xem kết quả
vài lần để đảm bảo bạn quen thuộc trước khi chúng ta chuyển sang phần tiếp theo.
4. Tìm hiểu về Biến trong Python
Bạn chưa được học về biến trong Python nhưng bạn đã nhìn thấy biến ở phần trước.
Bây giờ, chúng ta sẽ xem xét kỹ hơn về biến trong Python.
Trong Python, biến không có kiểu. Chúng chỉ cần giữ chỗ đó có thể giữ bất kỳ giá
trị có bất kỳ kiểu dữ liệu nào. lOMoAR cPSD| 58490434 >>> x = 5 >>> x 5
>>> x = 'hello' >>> x 'hello'
Điều quan trọng là bạn có thể nhận thấy sự khác biệt giữa các biếnchuỗi.
Thông thường người mới học lập trình sẽ bị lừa bởi điều này. Bạn có thể nhận ra
bất kỳ lỗi nào trong ví dụ sau không?
>>> name = "NIIT"
>>> print("name")
Nếu có thì chúc mừng bạn, biến trong Python cũng không có gì khó khăn cả.
5. Tìm hiểu về Hàm trong Python
Hàm - hay còn gọi là function.
Trong Python, có nhiều hàm dựng sẵn (built-in functions). Ví dụ, print một
hàm được tích hợp sẵn được sử dụng phổ biến nhất. lOMoAR cPSD| 58490434
>>> print ( 'hello' ) hello
>>> print ( 'hello' , 1 , 2 , 3 ) hello 1 2 3
Chúng ta cũng đã thấy hàm len ở phần trước. Hàm len tính chiều dài của
một chuỗi, list hoặc các tập hợp khác.
>>> len("hello") 5
>>> len(['a', 'b', 'c']) 3
Một điều quan trọng về Python là nó không cho phép các hoạt động trên các kiểu
dữ liệu không tương thích. Ví dụ:
>>> 5 + "2"
Traceback (most recent call last):
File "" , line 1 , in < module >
TypeError : unsupported operand type(s) for +: 'int' and 'str'
Đó là bởi vì không thể cộng số với chuỗi.
Chúng ta cần chuyển đổi 5 thành một chuỗi hoặc '2' thành một số.
Để làm điều này, chúng ta có hàm dựng sẵn
int sẽ chuyển đổi một chuỗi lOMoAR cPSD| 58490434
thành một số và hàm str sẽ chuyển đổi bất kỳ giá trị nào thành một chuỗi. >>> int("5") 5
>>> str(5) '5' Và:
>>> 5 + int ( "2" ) 7
>>> str ( 5 ) + "2" '52'
Ví dụ: Đếm số chữ số trong một số với Python
Ở phần trên mình đã đố bạn đếm được số chữ số của kết quả 2^1000 đúng không?
Tuy nhiên, đếm bằng tay thì quá khổ.
Hãy viết một chương trình để đếm số chữ số trong một số, ví dụ, chúng ta có các số: lOMoAR cPSD| 58490434 >>> 12345 12345
>>> 2 ** 100
1267650600228229401 496703205376 >>> 2 ** 1000
1071508607186267320948425049060001810561404811705533607443750388370351051124936122
4931983788156958581275946729175531468251871452856923140435984577574698574803934567
7748242309854210746050623711418779541821530464749835819412673987675591655439460770
62914571196477686542167660429831652624386837205668069376
Chúng ta sẽ sử dụng hàm str để chuyển số về dạng chuỗi. Sau đó sử dụng
hàm len để tính độ dài của chuỗi đó, cụ thể:
>>> len ( str ( 12345 )) 5
>>> len ( str ( 2 ** 100 )) 31
>>> len ( str ( 2 * 1000 )) 302 Bạn đã hiểu chưa?
* Đọc đến đoạn này mà mới có đáp án thì không có quà nữa đâu nhé. ;) lOMoAR cPSD| 58490434
6. Tạo hàm tùy chỉnh trong Python
Giống như cách gán một giá trị cho một biến, một đoạn logic cũng có thể được
liên kết với một tên bằng cách định nghĩa nó là một hàm. Ví dụ:
>>> def square(x): ...
return x * x ... >>> square(5) 25 Trong đó: •
từ khóa def để định nghĩa một hàm •
square là tên hàm (tùy bạn đặt) • x là tham số của hàm
Phần thân của hàm được thụt lề. Thụt lề cũng là để cách phân nhóm các câu lệnh Python.
Các dấu ... là dấu nhắc lệnh thứ câp mà các thông dịch Python sử dụng để lOMoAR cPSD| 58490434
biểu thị rằng nó đang chờ một số dữ liệu được nhập vào.
Các hàm trong Python có thể được sử dụng trong bất kỳ biểu thức nào:
>>> square(2) + square(3) 13
>>> square(square(3)) 81
Các chức năng hiện có cũng có thể được sử dụng để tạo ra các hàm mới.
>>> def sum_of_squares ( x , y ):
... return square ( x ) + square ( y ) ...
>>> sum_of_squares ( 2 , 3 ) 13
Các hàm trong Python cũng giống như các giá trị khác, chúng có thể được gán,
được chuyển dưới dạng đối số cho các hàm khác, .... ví dụ:
>>> f = square
>>> f ( 4 ) 16
>>> def fxy ( f , x , y ):
... return f ( x ) + f ( y ) ...
>>> fxy ( square , 2 , 3 ) 13 lOMoAR cPSD| 58490434
Điều quan trọng là phải hiểu được phạm vi của các biến được sử dụng trong các hàm.
Hãy nhìn vào một ví dụ. x = 0 y = 0 def incr ( x ): y = x + 1 return y incr ( 5 ) print x , y
Các biến được gán trong một hàm, bao gồm các đối số được gọi là các biến cục bộ của
hàm (local variables).
Các biến được định nghĩa ở cấp cao nhất được gọi là biến toàn cục (global variables).
Nếu bạn thay đổi giá trị của x và bên trong hàm incr thì nó cũng sẽ không y
ảnh hưởng những giá trị của biến toàn cục, x và y.
Nhưng, chúng ta có thể sử dụng các giá trị của các biến toàn cục: pi = 3.14 def area ( r ): return pi * r * r lOMoAR cPSD| 58490434
Khi Python thấy việc sử dụng một biến không được định nghĩa trong phạm vi cục
bộ, nó sẽ cố gắng tìm một biến toàn cục có tên đó.
Tuy nhiên, bạn phải khai báo rõ ràng một biến là global để có thể sửa đổi nó. numcalls = 0 def square ( x ): global numcalls numcalls = numcalls + 1 return x * x
Sau đây chúng ta sẽ làm một số bài tập để hiểu hơn về hàm trong Python.
Bài tập 2: Có bao nhiêu phép nhân được thực hiện khi mỗi đòng code sau đây được thực thi?
* Sử dụng hàm square mà chúng ta đã định nghĩa ở trên. print square ( 5 ) print square ( 2 * 5 )
Bài tập 3: Kết quả của chương trình sau đây là gì? x = 1 def f(): lOMoAR cPSD| 58490434 return x print x print f()
Bài tập 4: Kết quả của chương trình sau đây là gì? x = 1 def f(): x = 2 return x print x print f() print x
Bài tập 5: Kết quả của chương trình sau đây là gì? x = 1 def f (): y = x x = 2 return x + y print x print f () print x
Bài tập 6: Kết quả của chương trình sau đây là gì? lOMoAR cPSD| 58490434 x = 2 def f ( a ): x = a * a return x y = f ( 3 ) print x , y
Hãy chậm lại một chút, giải hết các bài tập trên thì mới tiếp tục bạn nhé.
Các hàm có thể được gọi với các đối số.
>>> def difference ( x , y ):
... return x - y ...
>>> difference ( 5 , 2 ) 3
>>> difference ( x = 5 , y = 2 ) 3
>>> difference ( 5 , y = 2 ) 3
>>> difference ( y = 2 , x = 5 ) 3
Và một tham số có thể có giá trị mặc định:
>>> def increment(x, amount=1):
... return x + amount ...
>>> increment(10) 11
>>> increment(10, 5) 15
>>> increment(10, amount=2) 12