Python – Sửa Máy Nhanh https://suamaynhanh.vn/danh-muc-phan-mem/python/ Miễn phí hướng dẫn sửa chữa, tháo lắp các thiết bị và cài đặt phần mềm. Fri, 20 Mar 2020 15:32:35 +0000 vi hourly 1 https://wordpress.org/?v=6.1.7 https://suamaynhanh.vn/wp-content/uploads/2018/06/cropped-cropped-cropped-ifix-logo-horiz-32x32.png Python – Sửa Máy Nhanh https://suamaynhanh.vn/danh-muc-phan-mem/python/ 32 32 Regular Expressions trong Python https://suamaynhanh.vn/phan-mem/regular-expressions-trong-python/ https://suamaynhanh.vn/phan-mem/regular-expressions-trong-python/#respond Fri, 20 Mar 2020 15:32:35 +0000 https://suamaynhanh.vn/?post_type=wtg_soft&p=15089 Trong bài này chúng ta sẽ tìm hiểu biểu thức chính quy (regular expression) trong Python. Đây là một module được …

The post Regular Expressions trong Python appeared first on Sửa Máy Nhanh.

]]>
Trong bài này chúng ta sẽ tìm hiểu biểu thức chính quy (regular expression) trong Python. Đây là một module được tích hợp sẵn trong Python nên bạn chỉ việc gọi ra và sử dụng.

Các biểu thức chính quy dùng để định nghĩa cấu trúc của một pattern và tìm kiếm trong một chuỗi dựa vào pattern đó.

I. Module re trong Python

Các mô-đun re cung cấp và hỗ trợ để sử dụng regex trong chương trình python. Mô đun re đưa ra một exception nếu có một số lỗi trong khi sử dụng regular expression.

Lưu ý: Để tiện cho việc thao luận thì chúng ta gọi Regular Expression là Regex.

Để sử dụng được Regex thì ta sẽ import module re vào như sau:

1
import re

Regex functions

Trong module re hỗ trợ 5 functions chính, đó là: matchsearchfindallsplit và cuối cùng là sub.

SN Function Description
1 match Phương thức này khớp với regex pattern trong chuỗi với cờ tùy chọn. Nó trả về true nếu tìm thấy kết quả khớp trong chuỗi nếu không nó trả về false..
2 search Phương thức này trả về đối tượng khớp nếu có một kết quả khớp được tìm thấy trong chuỗi.
3 findall Nó trả về một danh sách chứa tất cả các kết quả khớp của một pattern trong chuỗi.
4 split Trả về một danh sách kết quả khớp trong đó chuỗi đã được phân chia.
5 sub Thay thế một hoặc nhiều kết quả khớp trong chuỗi

II. Quy tắc Regular Expression

Trong Python, các biểu thức regex được hình thành bằng cách sử dụng kết hợp những ký hiệu, ta gọi là Meta-Characters.

Meta-Characters

Metacharacter là những ký hiệu được chỉ định đai diện cho một quy tắc riêng nào đó. Xem ở bảng dưới đây để hiểu rõ hơn.

Metacharacter Description Example
[] Đại diện cho một bộ kí tự trong khoảng. “[a-z]”
\ Đại diện cho một chuỗi đặc biệt. “\r”
. Đại diện một ký tự bất kì “Ja.v.”
^ Khai báo bắt đầu chuỗi “^Java”
$ Khai báo kết thúc chuỗi “point$”
* Đại diện cho không hoặc nhiều lần xuất hiện của một mẫu trong chuỗi. “hello*”
+ Đại diện cho một hoặc nhiều lần xuất hiện của một mẫu trong chuỗi. “hello+”
{} Số lần xuất hiện đã chỉ định của một mẫu chuỗi. “java{2}”
| Đại diện cho cái này này hoặc cái kia “free|tuts”
() Capture and group

Special Sequences

Special Sequences là các chuỗi có chứa dấu \ theo sau là một trong các ký tự dưới đây.

Character Description
\A Khớp nếu các ký tự được chỉ định có mặt ở đầu chuỗi.
\b Khớp nếu các ký tự được chỉ định có mặt ở đầu hoặc cuối chuỗi.
\B Khớp nếu các ký tự được chỉ định có mặt ở đầu chuỗi nhưng không ở cuối chuỗi.
\d Khớp nếu chuỗi chứa các chữ số [0-9].
\D Khớp nếu chuỗi không chứa các chữ số [0-9].
\s Khớp nếu chuỗi chứa bất kỳ ký tự khoảng trắng nào.
\S Khớp nếu chuỗi không chứa bất kỳ ký tự khoảng trắng nào.
\w Khớp nếu chuỗi chứa bất kỳ ký tự từ nào.
\W Khớp nếu chuỗi không chứa bất kỳ từ nào.
\Z Khớp nếu các ký tự được chỉ định ở cuối chuỗi.

Sets

Set là một nhóm các ký tự được đưa ra bên trong một cặp dấu ngoặc vuông []. Nó đại diện cho ý nghĩa đặc biệt.

SN Set Description
1 [arn] Khớp nếu chuỗi chứa bất kỳ ký tự nào được chỉ định trong tập hợp.
2 [a-n] Khớp nếu chuỗi chứa bất kỳ ký tự nào từ a đến n.
3 [^arn] Khớp nếu chuỗi chứa các ký tự ngoại trừ a, r và n.
4 [0123] Khớp nếu chuỗi chứa bất kỳ chữ số nào được chỉ định.
5 [0-9] Khớp nếu chuỗi chứa bất kỳ chữ số nào trong khoảng từ 0 đến 9.
6 [0-5][0-9] Khớp nếu chuỗi chứa bất kỳ chữ số nào trong khoảng từ 00 đến 59.
10 [a-zA-Z] Khớp nếu chuỗi chứa bất kỳ bảng chữ cái nào (chữ thường hoặc chữ hoa).

Trên là danh sách những ký hiệu biểu thức chính quy (regular expression) trong Python. Dựa vào những biểu thức này bạn sẽ kết hợp sử dụng những hàm trong module mà Python đã cung cấp.

Theo:freetuts.net

 

 

 

 

The post Regular Expressions trong Python appeared first on Sửa Máy Nhanh.

]]>
https://suamaynhanh.vn/phan-mem/regular-expressions-trong-python/feed/ 0
Sơ lược Date/Time trong Python https://suamaynhanh.vn/phan-mem/so-luoc-date-time-trong-python/ https://suamaynhanh.vn/phan-mem/so-luoc-date-time-trong-python/#respond Fri, 20 Mar 2020 15:30:12 +0000 https://suamaynhanh.vn/?post_type=wtg_soft&p=15088 Trong bài này chúng ta sẽ tìm hiểu cách xử lý thời gian (date – time) trong Python như: Cách import …

The post Sơ lược Date/Time trong Python appeared first on Sửa Máy Nhanh.

]]>
Trong bài này chúng ta sẽ tìm hiểu cách xử lý thời gian (date – time) trong Python như: Cách import object date, lấy thời gian hiện tai, định dạng thời gian, …

Trong các ứng dụng thực tế, có những lúc chúng ta cần phải làm việc với ngày tháng và thời gian. Ví dụ cần viết một ứng dụng đặt lịch hẹn bằng ngôn ngữ Python thì ta phải biết cách lấy thời gian trên hệ thống để xử lý.

Trong python, date không phải là kiểu dữ liệu, nhưng chúng ta có thể làm việc với các đối tượng này bằng cách import mô-đun có tên là datetime, time và calendar.

I. Mốc thời gian nhỏ nhất trong Python

Cũng như hầu hết các ngôn ngữ lập trình khác, Python lấy ngày1/1/1970 làm mốc nhỏ nhất. Hàm time() sẽ trả về tổng số mili giây đã trôi qua tính từ ngày 1/1/1970.

Xem ví dụ dưới đây để hiểu rõ hơn:

1
2
3
4
5
import time; 
  
#In ra tổng số mili giây kể từ ngày 1/1/1970
  
print(time.time()) 

Kết quả trả về tính đến thời điểm hiện tại:

1545124470.9151752

II. Cách lấy thời gian hiện tại – localtime()

Để lấy thời gian hiện tại trên hệ thống thì ta sử dụng hàm localtime(). Cách sử dụng rất đơn giản, bạn chỉ cần import module time và gọi hàm này một cách bình thường.

Xem ví dụ sau:

1
2
3
4
5
import time; 
  
#returns a time tuple  
  
print(time.localtime(time.time()))

Kết quả nó trả về là một tuple.

time.struct_time(tm_year=2018, tm_mon=12, tm_mday=18, tm_hour=15, tm_min=1, 
tm_sec=32, tm_wday=1, tm_yday=352, tm_isdst=0)

III. Time tuple là gì?

Time tuple là bộ các đơn vị thời gian, gồm 9 thông số như sau:

Index Attribute Values
0 Year 4 số nguyên(for example 2018)
1 Month 1 đến 12
2 Day 1 đến 31
3 Hour 0 đến 23
4 Minute 0 đến 59
5 Second 0 đến 60
6 Day of weak 0 đến 6
7 Day of year 1 đến 366
8 Daylight savings -1, 0, 1 , or -1

IV. Hàm asctime() thay đổi format time

Bạn có thể thay đổi định dạng thời gian bằng cách sử dụng hàm asctime() năm trong module time. Nó sẽ trả về thời gian được định dạng của đối tượng time đang sử dụng hàm này.

1
2
3
4
5
import time; 
  
#Trả về định dạng time
  
print(time.asctime(time.localtime(time.time())))

Kết quả:

Tue Dec 18 15:31:39 2019

V. Hàm sleep() trong Python

Hàm sleep() trong Python được dùng để dừng thực thi chương trình trong một khoảng thời gian nhất định. Số thời gian bị hoãn phụ thuộc vào giá trị mà bạn truyền vào hàm này.

Đơn vị của tham số thời gian đầu vào tính bằng giây, có thể số nguyên hoặt số thực.

Ví dụ: Tạo vòng lặp, mỗi lần lặp cho nghỉ 1 giây.

1
2
3
4
5
import time 
for i in range(0,5): 
    print(i) 
    #Mỗi lần lặp sẽ nghỉ 1 giây, sau đó in kết quả ra màn hình
    time.sleep(1)

VI. Module datetime trong Python

Module datetime cho phép ta tạo đối tượng thời gian và có thể tùy chỉnh theo ý mình. Đối tượng này được sử dụng rất nhiều trong thực tế. Ví dụ bạn làm lịch hẹn giờ thì chắc chắn phải dùng module date để lấy thời gian hiện tai, datetime để lấy thời gian hẹn, sau đó so sánh và xử lý hiển thị kết quả.

Tương tự, ta phải import datetime thì mới sử dụng các phương thức – hàm ở trong module này được.

Ví dụ: In ra thời gian hiện tại

1
2
3
4
5
import datetime; 
  
#Trả về object time hiện tại
  
print(datetime.datetime.now())

Kết quả:

2018-12-18 16:16:45.462778

1. Tạo date object

Ta có thể tạo một date object bằng cách truyền giá trị ngày vào ba tham số của hàm datetime.

Như ví dụ dưới đây mình truyền vào 10/12/2018.

1
2
3
import datetime; 
  
print(datetime.datetime(2018,12,10))

Hoặc truyền nhiều hơn 3 tham số:

1
print(datetime.datetime(2018,12,10,14,15,10))

2. So sánh 2 ngày khác nhau

Để so sánh hai ngày hơn kém nhau thì ta có thể sử dụng các toán tử so sánh (>, >=, <, <=, =).

Xem ví dụ dưới đây để hiểu rõ hơn.

1
2
3
4
5
6
from datetime import datetime as dt 
#So sánh thời gian. Nếu thời gian nằm trong khoảng 8AM và 4PM, thì in ra màn hình thời gian việc, ngược lai là thời gian nghỉ ngơi
if dt(dt.now().year,dt.now().month,dt.now().day,8)<dt.now()<dt(dt.now().year,dt.now().month,dt.now().day,16): 
    print("Thời gian lam việc ...."
else
    print("Thời gian nghỉ ngơi")

VII. Calendar module trong Python

Python cung cấp một module về xử lý lịch (calendar) chứa các phương thức khác nhau để làm việc với lịch.

Hãy xem xét ví dụ sau để in lịch của tháng cuối năm 2018.

Ví dụ
1
2
3
4
import calendar; 
cal = calendar.month(2018,12
#In lịch năm 2018 
print(cal)

Kết quả:

Nếu bạn muốn in ra lịch của cả năm thì làm như sau:

1
2
3
4
import calendar 
  
#In lịch năm 2019 
calendar.prcal(2019)

 

Theo:freetuts.net

 

 

The post Sơ lược Date/Time trong Python appeared first on Sửa Máy Nhanh.

]]>
https://suamaynhanh.vn/phan-mem/so-luoc-date-time-trong-python/feed/ 0
Module trong Python https://suamaynhanh.vn/phan-mem/module-trong-python/ https://suamaynhanh.vn/phan-mem/module-trong-python/#respond Fri, 20 Mar 2020 15:26:59 +0000 https://suamaynhanh.vn/?post_type=wtg_soft&p=15086 Module trong python có thể được xem là một file chương trình python chứa mã python bao gồm các hàm, lớp hoặc …

The post Module trong Python appeared first on Sửa Máy Nhanh.

]]>
Module trong python có thể được xem là một file chương trình python chứa mã python bao gồm các hàm, lớp hoặc biến. Nói cách khác, chúng ta có thể xem module python là một file được lưu với phần mở rộng (.py).

Các module trong Python giúp chúng ta code một cách linh hoạt hơn. Mỗi file sẽ có một chức năng cụ thể, được sắp xếp theo một nguyên tắc nào đó tùy vào mỗi lập trình viên.

Để sử dụng module này trong module khác thì ta phải sử dụng từ khóa import để gọi đến module cần sử dụng đó.

I. Tạo module trong Python

Trong ví dụ dưới đây mình sẽ tao một file có tên là file.py. Trong file này sẽ chứa một đoạn mã Python với nội dung chính là hàm hiển thị thông báo.

file.py
1
2
3
#Hàm displayMsg sẽ hiển thị tên nhập vào.  
def displayMsg(name) 
    print("Hi "+name);

II. Gọi module trong Python

Để sử dụng các đoạn code trong module A vào trong module B thì ta sẽ phải imrport vào bằng một trong hai cách sau.

1. Sử dụng import

Lệnh import sẽ nhập tất cả các chức năng của module A vào trong module B.

1
import module

Nếu bạn muốn import một lúc nhiều module thì hãy ngăn chúng bằng dấu phẩy.

1
import module1,module2,........ module n
Ví dụ
1
2
3
import file
name = input("Nhập tên của bạn?"
file.displayMsg(name)

Chạy chương trình này bạn sẽ thu được kết quả như sau:

Nhập tên của bạn?Cường
Hi Cường

2. Sử dụng from-import

Giả sử trong module A bạn định nghĩa 10 function, nhưng trong module B bạn chỉ muốn sử dụng 1 trong 10 funciton đó thôi thì sử dụng from .. import. Vậy sự khác nhau giữa from và from ... import một bên sẽ gọi tất cả các function, còn một bên chỉ gọi một function nào đó thôi.

Cú pháp
1
from < module-name> import <name 1>, <name 2>..,<name n>

Ví dụ: Xem cách sử dụng from-import dưới đây.

calculation.py
1
2
3
4
5
6
7
#Đoạn code trong file calculation.py  
def summation(a,b): 
    return a+
def multiplication(a,b): 
    return a*b; 
def divide(a,b): 
    return a/b;
Main.py
1
2
3
4
5
from calculation import summation   
#Nó sẽ import duy nhất hàm summation() trong file calculation.py 
a = int(input("Enter the first number")) 
b = int(input("Enter the second number")) 
print("Sum = ",summation(a,b))

Chạy lên kết quả sẽ như sau:

Enter the first number10
Enter the second number20
Sum =  30

Lệnh from – import sử dụng trong trường hợp bạn biết chính xác tên function muốn sử dụng trong module. Nó sẽ không khiến chương trình nặng hơn, vì vậy cứ yên tâm mà sử dụng.

Trường hợp bạn muốn import tất cả các function thì sử dụng dấu sao *.

1
from <module> import *  

III. Đổi tên module với AS trong Python

Nếu bạn muốn đổi tên module cho ngắn gọn và dễ hiểu thì có thể sử dụng từ khóa AS. Từ khóa này rất hữu ích vì giúp bạn tiết kiệm được thời gian nhập những module có tên quá dài, thay vao đó chỉ cần một cai tên thật đặc biệt.

Cú pháp như sau:

1
import <module-name> as <specific-name>

Ví dụ: Thay đổi tên module calculation thành cal

1
2
3
4
5
#Tên của module calculation ở ví dụ trước sẽ đổi thành cal.  
import calculation as cal; 
a = int(input("Enter a?")); 
b = int(input("Enter b?")); 
print("Sum = ",cal.summation(a,b))

IV. Hàm dir() trong Python

Hàm dir() có công dụng sắp xếp tên các hàm, biến mà bạn đã định nghĩa trong module đó.

Ví dụ: Xem những tên biến, hàm có sẵn trong module json.

1
2
3
4
5
import json 
  
List = dir(json) 
  
print(List)

Kết quả:

['JSONDecoder', 'JSONEncoder', '__all__', '__author__', '__builtins__', '__cached__', '__doc__',
'__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', 
'_default_decoder', '_default_encoder', 'decoder', 'dump', 'dumps', 'encoder', 'load', 'loads', 'scanner']

V. Hàm reload() trong Python

Trong Phython, khi bạn import một module thì nó sẽ thực hiện một lần duy nhất, cho dù bạn sử dụng đoạn code import bao nhiêu lần đi nữa. Tuy nhiên có một số trường hợp bạn muốn tải lại dữ liệu mới nhất của module đó thì có thể sử dụng hàm reload().

1
reload(<module-name>)

Ví dụ: Tải lại module calculation đã được định nghĩa ở các ví dụ trước.

1
reload(calculation)

VI. Phạm vi của biến trong module

Như tất cả các ngôn ngữ lập trình khác, chúng ta có hai dạng biến như sau:

  • Biến toàn cục: là biến có thể sử dụng ở tất cả các vị trí trong chương trình chính, trừ trong hàm.
  • Biến cục bộ: Là biến chỉ sử dụng được trong một phạm vi nhất định, ví dụ trong hàm.

Vậy khi bạn khai báo một biến trong module thì có thể sử dụng tai mọi vị trí trong module đó. Tuy nhiên trong hàm thì không thể gọi đến biến cục bộ đó.

Hãy xem ví dụ dưới đây, biến name đã được khai báo ở cấp ngoài cùng và trong hàm, đây là 2 biến hoàn toàn khác nhau.

1
2
3
4
5
6
7
# Đây là biến toàn cục
name = "john"
def print_name(name): 
    #Biến này là biến cục bộ, giá trị của nó được truyền vào
    print("Hi",name)
name = input("Enter the name?"
print_name(name)

Kết quả:

Hi David

VII. Cấu trúc module – package

Bây giờ hày tìm hiểu cách phân chia cấu trúc các package và module trong Python thế nào để chương trình tối ưu nhất.

Các package giúp lập trình viên có thể phân chia cấu trúc chương trình thành nhiều thư mục theo cấu trúc cây.

Thường thì sẽ có cấu trúc như sau: package -> sub-package -> module.

Để biết cách tạo package thì chúng ta sẽ làm một ví dụ như sau.

Ví dụ: Xây dựng cấu trúc package cho ứng dụng Employees.

Bước 1: Tao một thư mục Employees nằm trong thư mục home của ứng dụng.

Bước 2: Tao một module ITEmployees.py nằm trong thư mục /home/Employees.

ITEmployees.py
1
2
3
def getITNames(): 
    List = ["John", "David", "Nick",    "Martin"
    return List;

Bước 3: Tương tự, hãy tạo thêm file BPOEmployees.py cũng năm trong thư mục đó, sau đó định nghĩa hàm  getBPONames().

Bây giờ thư mục Employees đã có hai module. Để tao thư mục này thành một package thì bạn hãy tạo file __init__.py với nội dung là import hai module trên.

__init__.py
1
2
from ITEmployees import getITNames 
from BPOEmployees import getBPONames

Bước 4: Để sử dụng module Employees thì chúng ta chỉ việc import nó vào. Hãy tạo một file Test.py nằm ngoài thư mục /home.

Test.py
1
2
import Employees 
print(Employees.getNames())

Chạy lên kết quả sẽ như sau:

['John', 'David', 'Nick', 'Martin']

Trên là 4 bước để tạo một package trong Python đơn giản nhất.

 

Theo:freetuts.net

 

 

The post Module trong Python appeared first on Sửa Máy Nhanh.

]]>
https://suamaynhanh.vn/phan-mem/module-trong-python/feed/ 0
Exceptions trong Python https://suamaynhanh.vn/phan-mem/exceptions-trong-python/ https://suamaynhanh.vn/phan-mem/exceptions-trong-python/#respond Fri, 20 Mar 2020 15:24:29 +0000 https://suamaynhanh.vn/?post_type=wtg_soft&p=15084 Một exception trong Python có thể được định nghĩa là đoạn code bất thường trong một chương trình dẫn đến sự gián đoạn …

The post Exceptions trong Python appeared first on Sửa Máy Nhanh.

]]>
Một exception trong Python có thể được định nghĩa là đoạn code bất thường trong một chương trình dẫn đến sự gián đoạn trong dòng chảy của chương trình đó.

Bất cứ khi nào có exception xảy ra, chương trình sẽ dừng thực thi nên các đoạn mã phía dưới không được biên dịch. Do đó, một exception là lỗi mà trình biên dịch python không thể chạy được.

I. Các exception phổ biến trong Python

Python cung cấp cho chúng ta cách xử lý exception để giúp chương trình không bị gián đoạn. Vì vậy với những đoạn code bạn cảm thấy không an toàn thì hãy đưa nó vào một exception.

Dưới đây là danh sách 5 exception thường được sử dụng trong lập trình Python:

  1. ZeroDivisionError: Xảy ra khi một số được chia cho số không.
  2. NameError: Xảy ra khi tên không tồn tại, có thể là cục bộ hoặc toàn cục.
  3. IndentationError: Xảy ra khi chương trình thụt hàng không đúng.
  4. IOError: Xảy ra khi xử lý nhập xuất bị lỗi.
  5. EOFError: Xảy ra khi kết thúc tập tin mà các thao tác vẫn còn thực hiện trên đó.

Tuy nhiên bạn có thể tự tạo ra các exception trong Python bằng cách sử dụng từ khóa except. Mình sẽ trình bày nó ở phần cuối cùng của bài viết này.

II. Chuyện gì xảy ra nếu không dùng exception?

Như chúng ta đã thảo luận ở trên, exception là một điều kiện bất thường làm dừng quá trình thực thi chương trình. Hãy xem xét ví dụ sau.

1
2
3
4
5
6
7
a = int(input("Enter a:")) 
b = int(input("Enter b:")) 
c = a/b; 
print("a/b = %d"%c) 
  
#other code: 
print("Vị trí khác của chương trình")

Kết quả:

Enter a:10
Enter b:0
Traceback (most recent call last):
  File "exception-test.py", line 3, in <module>
    c = a/b;
ZeroDivisionError: division by zero

Như vậy bạn sẽ nhận được một thông báo lỗi, và chương trình thất bại hoàn toàn.

III. Cách tạo exception trong Python

Nếu chương trình python chứa những đoạn code đáng ngờ thì bạn hãy đặt chúng vào một exception, bằng cách ném chúng vào một khối lệnh try .. except.

Thường trong try là đoạn code nghi ngờ có lỗi, trong except là đoạn code thông báo lỗi hoặc trả về lỗi. Bạn có thể định nghĩa nhiều except.

Cú pháp
1
2
3
4
5
6
7
8
9
10
try
    #block of code  
  
except Exception1: 
    #block of code 
  
except Exception2: 
    #block of code 
  
#other code

Chúng ta cũng có thể sử dụng từ khóa ELSE kết hợp trong try-except để thực thi những đoạn code trong trường hợp except-block không chạy.

1
2
3
4
5
6
7
8
try
    #block of code  
  
except Exception1: 
    #block of code  
  
else
    #Đoạn này sẽ chạy nếu except block không chạy

Ví dụ
1
2
3
4
5
6
7
8
9
try
    a = int(input("Enter a:")) 
    b = int(input("Enter b:")) 
    c = a/b; 
    print("a/b = %d"%c) 
except Exception: 
    print("Không thể chia cho 0"
else
    print("Đây là đoạn code ELSE")

Kết quả:

Enter a:10
Enter b:2
a/b = 5
Đây là đoạn code ELSE

Except bị thiếu exception

Như ở các ví dụ trên mình đã xác định rõ lỗi cho các except bằng cách đặt tên lỗi phía sau, lúc này nếu chương trình trong try block bị lỗi nào thì sẽ chạy đoạn code ở except ở lỗi đó.

1
except Exception:

Tuy nhiên bạn hoàn toàn có thể bỏ từ khóa Exception như ở ví dụ dưới đây.

1
2
3
4
5
6
7
8
9
try
    a = int(input("Enter a:")) 
    b = int(input("Enter b:")) 
    c = a/b; 
    print("a/b = %d"%c) 
except
    print("Không thể chia cho 0"
else
    print("Đoạn code trong Else")

Tóm lại bạn cần phải ghi nhớ những điều sau:

  • Python cho phép chúng ta không cần phải chỉ định exception ở lệnh except.
  • Có thể khai báo nhiều except vì khối try có thể ném ra nhiều loại exception khác nhau.
  • Chúng ta cũng có thể chỉ định một khối else cùng với câu lệnh try-except và sẽ được thực thi nếu không có exception nào sinh ra trong khối try.
  • Các câu lệnh không ném exception nên đặt bên trong khối else.
Vi dụ
1
2
3
4
5
6
7
8
try
    #Đoạn này sẽ sinh ra lỗi nếu file không tồn tại.  
    fileptr = open("file.txt","r"
except IOError: 
    print("File không tồn tại"
else
    print("File mở thành công"
    fileptr.close()

Khai báo nhiều exception

Nếu bạn muốn nhiều exception cùng thực hiện chung một đoạn code thì sử dụng cú pháp sau để kai báo.

1
except (<Exception 1>,<Exception 2>,<Exception 3>,...<Exception n>) 
Ví dụ
1
2
3
4
5
6
try:   
    a=10/0;   
except ArithmeticError,StandardError:   
    print "Lỗi tính toán"
else:   
    print "Thành công"

IV. Khối finaly trong Exception

Nếu khối else sẽ được thực hiện nếu không có exception nào được sinh ra thì khối finany sẽ luôn luôn được thực thi vì nó là một khối đặc biệt. Cú pháp của nó như sau:

1
2
3
4
5
6
try
    # Khối chứa đoạn code  
    # có khả năng sinh lỗi 
finally
    # Khối chứa đoạn code
    # luôn luôn thực thi

Ví dụ
1
2
3
4
5
6
7
8
9
try
    fileptr = open("file.txt","r")   
    try
        fileptr.write("Nội dung ghi vào file"
    finally
        fileptr.close() 
        print("Đóng file"
except
    print("Mở file lỗi")

V. Nhảy exception với từ khóa raise

Ở những ví dụ trên sẽ sinh ra những exception mà Python có hỗ trợ. Trường hợp bạn muốn tự định nghĩa exception, hoặc nhảy đến exception nào đó thì có thể sử dụng từ khóa raise.

Cú pháp:

1
raise Exception_class,<value> 

Ví dụ:

1
2
3
4
5
6
7
8
try
    age = int(input("Nhập tuổi của bạn?")) 
    if age<18
        raise ValueError; 
    else
        print("Tuổi không hợp lệ"
except ValueError: 
    print("Tuổi quá nhỏ")

Nếu bạn chạy và nhập tuổi bé hơn 18 thì sẽ xuất hiện lỗi “Tuổi quá nhỏ“.

IV. Tự tạo exception

Python cho phép chúng ta tạo ra các exception bằng cách sử dụng từ khóa except. Tuy nhiên, mình khuyên bạn nên đọc phần này sau khi học xong các đối tượng và lớp Python.

Ví dụ: Tự tạo ra exception ErrorInCode.

1
2
3
4
5
6
7
8
9
10
class ErrorInCode(Exception):   
    def __init__(self, data):   
        self.data = data   
    def __str__(self):   
        return repr(self.data)   
    
try:   
    raise ErrorInCode(2000)   
except ErrorInCode as ae:   
    print("Received error:", ae.data)

Như mình đã nói ở trên, vì trong ví dụ này có sử dụng class để tạo ra một đối tượng exception nên bạn phải hiểu về class-object thì mới hiểu được.

Trên là cách sử dụng exception để xử lý ngoại lệ trong Python. Hy vọng qua bài này bạn sẽ hiểu và vận dụng trong quá trình học tập và làm việc với Python.

Theo:freetuts.net

 

The post Exceptions trong Python appeared first on Sửa Máy Nhanh.

]]>
https://suamaynhanh.vn/phan-mem/exceptions-trong-python/feed/ 0
Chuyển đổi và kép kiểu dữ liệu trong Python https://suamaynhanh.vn/phan-mem/chuyen-doi-va-kep-kieu-du-lieu-trong-python/ https://suamaynhanh.vn/phan-mem/chuyen-doi-va-kep-kieu-du-lieu-trong-python/#respond Tue, 11 Feb 2020 14:19:17 +0000 https://suamaynhanh.vn/?post_type=wtg_soft&p=14578 Trong bài này mình sẽ hướng dẫn các bạn cách chuyển đổi và ép kiểu dữ liệu trong Python, đây là …

The post Chuyển đổi và kép kiểu dữ liệu trong Python appeared first on Sửa Máy Nhanh.

]]>
Trong bài này mình sẽ hướng dẫn các bạn cách chuyển đổi và ép kiểu dữ liệu trong Python, đây là thao tác thường được sử dụng trong thực tế khi làm việc với Python. Trước khi vào bài mới thì bạn hãy quay lại bài cũ để xem các kiểu dữ liệu trong Python đã nhé, sau đó chúng ta sẽ tiếp tục với phần dưới đây.

Để kiểm tra kiểu dữ liệu của một biến thì ta dùng hàm type nhé các bạn, cú pháp như sau:

1
type(variable)

1. Chuyển đổi dữ liệu ngầm

Trong chuyển đổi loại ngầm định, Python tự động chuyển đổi một loại dữ liệu sang loại dữ liệu khác. Quá trình này không cần bất kỳ sự tham gia của lập trình viên.

Chúng ta hãy xem một ví dụ trong đó Python thúc đẩy chuyển đổi kiểu dữ liệu thấp hơn (số nguyên) sang kiểu dữ liệu cao hơn (float) để tránh mất dữ liệu.

1
2
3
4
5
6
7
8
9
10
num_int = 123
num_flo = 1.23
num_new = num_int + num_flo
print("datatype of num_int:",type(num_int))
print("datatype of num_flo:",type(num_flo))
print("Value of num_new:",num_new)
print("datatype of num_new:",type(num_new))

Kết quả của chương trình này như sau:

1
2
3
4
5
datatype of num_int: <class 'int'>
datatype of num_flo: <class 'float'>
Value of num_new: 124.23
datatype of num_new: <class 'float'>

Trong chương trình trên,

  • Mình đã định nghĩa hai biến num_int và num_flo, sau đó tạo một biến num_new để lưu trữ tổng của hai biến đó.
  • Tiếp theo sẽ dùng hàm type để kiểm tra kiểu dữ liệu của cả ba biến, thật bất ngờ vì num_new đã mang kiểu float vì đây là kiểu số lớn hơn kiểu int. Như vậy biến num_new đã được chuyển đổi ngầm.

Bây giờ, hãy thử thêm một chuỗi và một số nguyên và xem Python xử lý thế nào.

Ví dụ: Bổ sung kiểu dữ liệu chuỗi (cao hơn) và kiểu dữ liệu số nguyên (thấp hơn)

1
2
3
4
5
6
7
num_int = 123
num_str = "456"
print("Data type of num_int:",type(num_int))
print("Data type of num_str:",type(num_str))
print(num_int+num_str)

Khi chạy chương trình trên, kết quả sẽ là:

1
2
3
4
5
6
Data type of num_int: <class 'int'>
Data type of num_str: <class 'str'>
Traceback (most recent call last):
  File "python", line 7, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Như vậy mặc định Python không thể tự động chuyển đổi ngầm giữa string và number.

2. Chuyển đổi tường minh

Trong chuyển đổi tường minh, người dùng chuyển đổi loại dữ liệu của một đối tượng thành loại dữ liệu cần thiết. Chúng ta sử dụng các hàm được xác định trước như int()float()str(), v.v để thực hiện chuyển đổi loại rõ ràng.

Chuyển đổi loại này cũng được gọi là typecasting vì người dùng ép (thay đổi) kiểu dữ liệu của các đối tượng. Cú pháp như sau:

1
(required_datatype)(expression)

Ví dụ dưới đây sẽ thể hiện việc ép kiểu từ string sang int tường minh, chương trình sẽ không báo lỗi.

1
2
3
4
5
6
7
8
9
10
11
12
13
num_int = 123
num_str = "456"
print("Data type of num_int:",type(num_int))
print("Data type of num_str before Type Casting:",type(num_str))
num_str = int(num_str)
print("Data type of num_str after Type Casting:",type(num_str))
num_sum = num_int + num_str
print("Sum of num_int and num_str:",num_sum)
print("Data type of the sum:",type(num_sum))

Chạy lên kế quả sẽ như sau:

1
2
3
4
5
6
7
Data type of num_int: <class 'int'>
Data type of num_str before Type Casting: <class 'str'>
Data type of num_str after Type Casting: <class 'int'>
Sum of num_int and num_str: 579
Data type of the sum: <class 'int'>

Trong ví dụ trên thì bạn thấy mình đã sử dụng hàm int() để thực hiện chuyển đổi, ép kiểu một cách rõ ràng.

1
num_str = int(num_str)

3. Lời kết

Như vậy là bạn đã tìm hiểu xong việc chuyển đổi, ép kiểu dữ liệu trong Python, đây là kiến thức căn bản nên bạn cần phải nắm vững để sau này có thể học nâng cao lên nhé. Sau đây là một vài lời tổng kết:

  • Chuyển đổi kiểu dữ liệu là chuyển đổi đối tượng từ một kiểu dữ liệu này sang kiểu dữ liệu khác.
  • Chuyển đổi kiểu ngầm định được trình thông dịch Python thực hiện tự động.
  • Python tự động chọn kiểu dữ liệu cao hơn để tránh mất dữ liệu trong chuyển đổi loại ngầm định.
  • Chuyển đổi loại rõ ràng cũng được gọi là ép kiểu, các loại dữ liệu của đối tượng được chuyển đổi bằng cách sử dụng các hàm của người dùng.
  • Trong ép kiểu việc mất dữ liệu có thể xảy ra khi chúng ta thực thi đối tượng theo kiểu dữ liệu cụ thể.

Theo:https://freetuts.net

 

 

The post Chuyển đổi và kép kiểu dữ liệu trong Python appeared first on Sửa Máy Nhanh.

]]>
https://suamaynhanh.vn/phan-mem/chuyen-doi-va-kep-kieu-du-lieu-trong-python/feed/ 0
Biến – các kiểu dữ liệu – các toán tử trong Python https://suamaynhanh.vn/phan-mem/bien-cac-kieu-du-lieu-cac-toan-tu-trong-python/ https://suamaynhanh.vn/phan-mem/bien-cac-kieu-du-lieu-cac-toan-tu-trong-python/#respond Tue, 11 Feb 2020 14:16:57 +0000 https://suamaynhanh.vn/?post_type=wtg_soft&p=14579 1. Ghi chú (Comment) trong python Như ta biết, phần ghi chú là những đoạn mã mà trình biên dịch sẽ …

The post Biến – các kiểu dữ liệu – các toán tử trong Python appeared first on Sửa Máy Nhanh.

]]>
1. Ghi chú (Comment) trong python

Như ta biết, phần ghi chú là những đoạn mã mà trình biên dịch sẽ bỏ qua trong quá trình biên dịch chương trình, những đoạn mã này nhằm mục đích diễn giải chức năng của đoạn code nào đó và thường được sử dụng rất nhiều để ghi chú lại những phần then chốt của đoạn code.

Trong Python để khai báo là chuỗi ghi chú thì ta có 2 cách:

  • Cách 1: Sử dụng dấu # dành cho ghi chú 1 dòng
  • Cách 2: Sử dụng dấu ''' nội dung ghi chú''' để bao quanh nội dung cần ghi chú lại (có thể 1 hoặc nhiều dòng). Tuy nhiên cách này không phải lúc nào cũng hoạt động (do hệ điều hành hoặc phiên bản) nên không nên sử dụng.

Ví dụ:

 

1
2
3
>>> # This is  comment
>>> print("This is not a comment")
This is not a comment

 

Ở dòng lề thứ nhất tôi sử dụng dấu # nên nó hiểu là comment nên không biên dịch. Ở dòng thứ hai tôi dùng lệnh print để in một chuỗi ra ngoài màn hình (không phải comment nên được biên dịch và xuất hiện ở dòng thứ 3)

2. Các kiểu dữ liệu trong Python

Trong Python có các kiểu dữ liệu căn bản thông dụng sau đây:

  • Kiểu số – Number: 123456789
  • Kiểu chuỗi – String: "Hello"    "It's me"     '"OK"-he replied'
  • Kiểu bộ – Tuple: (1, 2.0, 3)   (1,)    ("Hello",1,())
  • Danh sách – list: [4.8, -6]    ['a','b']
  • Từ điển – dictoinary:
    {"Hanoi":"Vietnam", "Haiphong":"Vietnam", "Hochiminh":"Vietnam", "Netherlands":"Amsterdam", "France":"Paris"}

3. Khai báo biến trong python

Để khao báo biến trong Python ta dùng cú pháp tenbien = giá trị.

Ví dụ:

 

1
>>> name = 'Nguyen Van Cuong'

 

Một số lưu ý khi khai báo biến:

  • Biến không được chứa chữ số đầu tiên
  • Biến không được chứa khoảng trắng
  • Biến không được là chữ có dấu (Tiếng Anh)

3. Các toán tử trong python

Phéo Toán Ký Hiệu Diễn Giải Ví Dụ
Số Mũ ** Dùng để xác định số mũ của một chữ số 5 ** 3 = 125
Chia / Phép chia hai số 10  /5 = 2
Nhân * Phép nhân hai số 7 * 7 = 49
Chia Lấy Nguyên // Chia lấy kêt quả số nguyên 14 // 3 = 4
Chia Lấy Dư % Chia lấy phần dư 14 % 3 = 2
Phép Cộng + Cộng hai số 4 + 9 = 13
Phép Trừ Trừ hai số 20 – 11 = 9

Có một điều lưu ý dành cho bạn là phải phân biệt được hai toán tử chia lấy nguyên (//) và chia bình thường (/):

  • Phép chia lấy nguyên luôn trả về số không dư
  • Phép bình thường kết quả trả về có thể bị lẽ (có dư)

Đối với phép nhân (*) ta có thể lấy chuỗi nhân với một số (n) bất kì và kết quả là chuỗi đó sẽ double n lần. Ví dụ:

 

1
2
3
>>> name = "cuong"
>>> print(name * 3)
cuongcuongcuong

 

4. Bài tập thực hành Python

Đề bài: In ra thông tin cá nhân gồm: Tên, tuổi, địa chỉ, giới tính, chỗ ở hiện tại của bạn

Hướng dẫn: Để giải bài này ta sẽ dùng lệnh print để in giá trị ra màn hình, cú pháp như sau: print(“Nội dung”).

Bài giải:

Bước 1: Bật chương trình Python 3.4.2 Shell lên, giao diện như sau:

giao dien python

Bước 2: Tạo mới một file bằng cách chọn File -> New file (hoặc nhấn Ctrl + N), sau đó bạn lưu lại với tên là ‘chuong_trinh_dau_tien.py’. Giao diện sẽ như sau:

new file python

Bước 3:  Nhập đoạn code sau vào file vừa tạo ở bước 2

 

1
2
3
4
print("Tôi tên là Nguyễn Văn Cường" )
print("Hiện đang sống tại HCM")
print("Tôi sinh năm 1990 và năm nay tôi 24 tuổi")
print("Hiện có 1 vợ và 1 con")

 

Bước 4: Bạn nhấn F5 để chạy chương trình và xem kết quả.

chay chuong trinh python dau tien

5. Lời Kết

Như vậy nhìn chúng ta có thể thấy Python tựa tựa javascript đó là việc khai báo biến kiểu gì thì phụ thuộc vào kiểu giá trị của nó chứ không cần xác định lúc khai báo như C, C++. Ngoài ra các kiểu dữ liệu Dictoinary ta thấy giống chuỗi json (object) trong js, kiểu List giống array, …

Theo:https://freetuts.net

 

The post Biến – các kiểu dữ liệu – các toán tử trong Python appeared first on Sửa Máy Nhanh.

]]>
https://suamaynhanh.vn/phan-mem/bien-cac-kieu-du-lieu-cac-toan-tu-trong-python/feed/ 0
Lệnh break và continue trong Python https://suamaynhanh.vn/phan-mem/lenh-break-va-continue-trong-python/ https://suamaynhanh.vn/phan-mem/lenh-break-va-continue-trong-python/#respond Tue, 11 Feb 2020 14:11:14 +0000 https://suamaynhanh.vn/?post_type=wtg_soft&p=14577 Trong bài viết này mình sẽ giới thiệu với các bạn hai lệnh được sử dụng rất nhiều trong vòng lặp …

The post Lệnh break và continue trong Python appeared first on Sửa Máy Nhanh.

]]>
Trong bài viết này mình sẽ giới thiệu với các bạn hai lệnh được sử dụng rất nhiều trong vòng lặp đó là lệnh break và continue, công dụng của hai lệnh này trong Python là thay đổi luồng xử lý của vòng lặp.

1. Lệnh break trong Python

Lệnh break có công dụng là chấm dứt vòng lặp ngay lập tức, nó không quan tâm đến điều kiện dừng của vòng lặp như thế nào, miễn gặp lệnh này là vòng lặp sẽ kết thúc.

Trường hợp bạn sử dụng nhiều vòng lặp lồng nhau thì phạm vi tác dụng của break là vòng lặp gần nó nhất, tức là vòng lặp trong cùng. Hãy tham khảo lược đồ sau:

Và dưới đây là ví dụ sơ đồ hoạt động của nó ở trong hai vòng lặp for và while.

Ví dụ: Python break

1
2
3
4
5
6
7
8
# Use of break statement inside loop
for val in "string":
    if val == "i":
        break
    print(val)
print("The end")

Kết quả sẽ như sau:

1
2
3
4
s
t
r
The end

Chương trình này đã lặp qua lặp qua từng ký tự trong chuỗi “string“, sau đó mỗi lần lặp sẽ kiểm tả đã đến kí tự “i” chưa, nếu đến rồi thì thoát khỏi vòng lặp, chưa thì tiếp tục lặp, đấy là lý do tại sao nó không in đủ các ký tự trong chuỗi “string“.

2. Lệnh continue trong Python

Câu lệnh continue được sử dụng để bỏ qua phần còn lại của code bên trong thân vòng lặp và chỉ có tác dụng cho lần lặp hiện tại. Vòng lặp không kết thúc mà tiếp tục với lần lặp tiếp theo.

Lược đồ hoạt động ở trong hai vòng lặp while và for.

Ví dụ: Python continue

1
2
3
4
5
6
7
8
# Program to show the use of continue statement inside loops
for val in "string":
    if val == "i":
        continue
    print(val)
print("The end")

Chạy lên kết quả sẽ như sau:

1
2
3
4
5
6
s
t
r
n
g
The end

Giải thích tương tự như phần continue, chỉ có điểm khác là lần lặp cho ký tự “i” sẽ không chạy đoạn code print(val) nên sẽ không in ra giá trị này.

3. Lời kết

Trên là cách sử dụng lệnh break và continue trong Python, đây là hai lệnh sử dụng khá nhiều nên rất quan trọng. Với lệnh break thì nó có nhiệm vụ là dừng mọi hoạt động của vòng lặp, thoát một cách đột ngột. Còn với lệnh continue thì nó sẽ bỏ qua lần lập hiện tại và nhảy đến lần lặp tiếp theo.

Theo:https://freetuts.net

 

The post Lệnh break và continue trong Python appeared first on Sửa Máy Nhanh.

]]>
https://suamaynhanh.vn/phan-mem/lenh-break-va-continue-trong-python/feed/ 0
Tìm hiểu function trong Python https://suamaynhanh.vn/phan-mem/tim-hieu-function-trong-python/ https://suamaynhanh.vn/phan-mem/tim-hieu-function-trong-python/#respond Tue, 11 Feb 2020 14:08:48 +0000 https://suamaynhanh.vn/?post_type=wtg_soft&p=14576 Trong bài viết này, bạn sẽ tìm hiểu về function, function là gì và cách tạo một function trong Python. Đây …

The post Tìm hiểu function trong Python appeared first on Sửa Máy Nhanh.

]]>
Trong bài viết này, bạn sẽ tìm hiểu về function, function là gì và cách tạo một function trong Python. Đây không phải là kiến thức cao siêu nhưng lại rất quan trọng mà ở hầu hết ngôn ngữ nào cũng phải hỗ trợ, và Python cũng không ngoại lệ.

1. Function là gì?

Function hay còn gọi là hàm, nó là tổng hợp một đoạn code gồm một hoặc nhiều lệnh nhằm giải quyết một bài toán cụ thể nào đó.

Function ra đời giúp lập trình viên dễ dàng tối ưu chương trình hơn, bởi ta có thể sử dụng function nhiều lần mà không cần phải định nghĩa lại, ta gọi đây là hướng lập trình modun. Việc tái sử dụng này giúp code ngắn và gọn hơn rất nhiều.

Cú pháp tạo function:

1
2
3
def function_name(parameters):
    """docstring"""
    statement(s)

Trong đó các thành phần được giải thích như sau:

  • def là từ khóa bắt buộc dùng để tạo function, nó được đặt tại vị trí đầu tiên của function
  • function_name là tên của function mà bạn muốn đặt, ví dụ bạn viết function kiểm tra số lớn nhất thì có thể đặt tên là number_max.
  • docstring là phần mô tả ý nghĩa của function, cái này do bạn tự nhập vào để sau này dễ dàng hiểu ý nghĩa của function mà không cần phải đọc lại toàn bộ code.
  • statement(s) là những dòng lệnh xử lý bên trong function
  • parameters là các tham số truyền vào của function
Ví dụ
1
2
3
4
5
def greet(name):
    """This function greets to
    the person passed in as
    parameter"""
    print("Hello, " + name + ". Good morning!")

2. Cách gọi function

Trong Python để gọi một function thì bạn chỉ việc nhập tên của function, sau đó truyền thêm các tham số nếu có. Bạn có thể gọi đến function ở bất kì đâu, miễn là trong phạm vi tồn tại của function.

Như ở ví dụ trên mình sẽ gọi đến function greet như sau:

1
greet('Paul')

Kết quả:

1
Hello, Paul. Good morning!

4. Ý nghĩa của docstring

Chuỗi đầu tiên sau tên hàm được gọi là docstring và viết tắt của document string. Nó được sử dụng để giải thích ngắn gọn ý nghĩa của function.

Mặc dù bạn có thể nhập docstring hoặc không cần cũng được, tuy nhiên document sẽ giúp bạn hiểu ý nghĩa của function mà không cần phải dò lại code, vì vậy với những lập trình viên có kinh nghiệm thì không bao giờ bỏ qua phần này.

Quay lại ví dụ trên, chúng ta có một docstring bên dưới tiêu đề hàm, và mình sử dụng đoạn code sau để xem ý nghĩa của hàm này.

1
2
3
4
>>> print(greet.__doc__)
This function greets to
    the person passed into the
    name parameter

4. Giá trị trả về của function

Mỗi function có thể có giá trị trả về hoặc không. Câu hỏi đặt ra là khi nào nên sử dụng hàm có giá trị trả về và khi nào thì không? Để trả lời câu hỏi này thì bạn hãy làm một vài ví dụ trước nhé.

Quay lại ví dụ ở phần 1, đó là một function không có giá trị trả về bởi không tồn tại lệnh return bên trong hàm. Nhưng với function dưới đây thì khác:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def absolute_value(num):
    """This function returns the absolute
    value of the entered number"""
    if num >= 0:
        return num
    else:
        return -num
# Output: 2
print(absolute_value(2))
# Output: 4
print(absolute_value(-4))

Function này có nhiệm vụ tính giá trị truyệt đối của một số, sau đó trả kết quả về. Đấy, vấn đề nằm ở câu trả kết quả về, có nghĩa là nếu bạn muốn viết một function mà có trả kết quả về thì sử dụng lệnh return.

Ví dụ bạn cần viết chương trình kiểm tra một số có phải là số nguyên tố hay không thì bạn có sử dụng lệnh return để trả về TRUE hoặc FALSE.

5. Phạm vi của biến trong function

Trong function bạn có thể tạo thêm bao nhiêu biến cũng được, tuy nhiên các biến đó chỉ tồn tại bên trong function mà thôi, bạn không thể sử dụng nó ở bên ngoài.

Hãy xem ví dụ dưới đây, mình đã tạo ra một function và biến x ở cả bên trong function và bên ngoài:

1
2
3
4
5
6
7
def my_func():
    x = 10
    print("Value inside function:",x)
x = 20
my_func()
print("Value outside function:",x)

Tuy nhiên kết quả trong function sẽ trả về giá trị 10 bởi vì phạm vi của function là cục bộ, nó không nhận được biến x ở bên ngoài. Kết quả sẽ như sau:

1
2
Value inside function: 10
Value outside function: 20

6. Lời kết

Như vậy là bạn đã học được sơ lược về cách tạo hàm (function) trong Python. Vẫn còn rất nhiều vấn đề liên quan đến function nhưng mình sẽ viết nó ở một bài khác, việc phân tán bài học như vậy sẽ giúp bạn dễ dàng năm bắt hơn. Chúc bạn học tốt và hẹn gặp lại ở bài tiếp theo.

Theo:https://freetuts.net

 

 

The post Tìm hiểu function trong Python appeared first on Sửa Máy Nhanh.

]]>
https://suamaynhanh.vn/phan-mem/tim-hieu-function-trong-python/feed/ 0
Tham số của function trong Python https://suamaynhanh.vn/phan-mem/tham-so-cua-function-trong-python/ https://suamaynhanh.vn/phan-mem/tham-so-cua-function-trong-python/#respond Tue, 11 Feb 2020 14:03:22 +0000 https://suamaynhanh.vn/?post_type=wtg_soft&p=14575 Trong Python bạn có thể tạo một hàm với nhiều tham số. Khi gọi hàm thì bắt buộc phải nhập giá …

The post Tham số của function trong Python appeared first on Sửa Máy Nhanh.

]]>
Trong Python bạn có thể tạo một hàm với nhiều tham số. Khi gọi hàm thì bắt buộc phải nhập giá trị cho tham số, tuy nhiên với những tham số có giá trị mặc định thì không cần.

1.Giá trị mặc định của tham số

Giá trị mặc định tức là nếu bạn không nhập giá trị lúc gọi hàm thì tham số sẽ lấy giá trị mặc định đó. Để tạo giá trị mặc định thì bạn dùng toán tử = và gán ngay lúc tạo hàm.

Ví dụ
1
def greet(msg = "Good morning!"):

Biến msg sẽ có giá trị mặc định là ‘Good morning!“. Hãy xem ví dụ đầy đủ sau để hiểu rõ hơn.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def greet(name, msg = "Good morning!"):
   """
   This function greets to
   the person with the
   provided message.
   If message is not provided,
   it defaults to "Good
   morning!"
   """
   print("Hello",name + ', ' + msg)
greet("Kate")
greet("Bruce","How do you do?")

Ở đoạn gọi hàm mình đã gọi với hai cách khác nhau,

  • greet("Kate") là cách gọi chỉ truyền vào một tham số nên function sẽ lấy giá trị mặc định cho tham số thứ hai.
  • greet("Bruce","How do you do?") là các gọi  đầy đủ nên giá trị mặc định không được sử dụng.

Chạy chương trình này thì kết quả sẽ như sau:

1
2
Hello Kate, Good morning!
Hello Bruce, How do you do?

Lưu ý: Bạn không thể tạo một tham số có giá trị mặc định đằng trước những tham số không có giá trị mặc định, như ví dụ dưới đây là sai.

1
def greet(msg = "Good morning!", name):

2. Truyền tham số theo key name

Truyền tham số theo key name tức là lúc gọi hàm và truyền tham số bạn sẽ nhập thêm tên của tham số, cách này có ưu điểm ở chỗ là bạn không cần phải nhớ chính xác thứ tự của các tham số, nhưng bù lại bạn phải nhớ tên của tham số.

Như ở ví dụ trên mình có thể gọi các cách như sau:

1
2
3
4
5
6
7
8
>>> # 2 keyword arguments
>>> greet(name = "Bruce",msg = "How do you do?")
>>> # 2 keyword arguments (out of order)
>>> greet(msg = "How do you do?",name = "Bruce")
>>> # 1 positional, 1 keyword argument
>>> greet("Bruce",msg = "How do you do?")

3. Tham số không giới hạn

Tham số không giới hạn hay còn gọi là tham số Arbitrary. Khi sử dụng tham số này thì bạn có thể truyền bao nhiêu cũng được lúc gọi hàm.

Để tạo một tham số không giới hạn thì bạn thêm ký tự * đằng trước tham số đó. Hãy xem ví dụ dưới đây.

1
2
3
4
5
6
7
8
9
def greet(*names):
   """This function greets all
   the person in the names tuple."""
   # names is a tuple with arguments
   for name in names:
       print("Hello",name)
greet("Monica","Luke","Steve","John")

Như bạn thấy, mình phải sử dụng vòng lặp để lặp qua từng tham số, và lúc gọi hàm thì nhập bao nhiêu cũng được.

Chạy lên thì kết quả chương trình sẽ là:

1
2
3
4
Hello Monica
Hello Luke
Hello Steve
Hello John

Đây là cách gọi hàm với nhiều đối số, khi bạn truyền vào thì nó sẽ tạo thành một Tuple nên bắt buộc phải sử dụng vòng lặp để lặp qua từng giá trị.

Lời kết: Như vậy là bạn đã học xong các trường hợp và cách sử dụng tham số trong function, hy vọng bài viết sẽ hữu ích với bạn, hẹn gặp lại các bạn ở bài tiếp theo nhé.

Theo:https://freetuts.net

 

The post Tham số của function trong Python appeared first on Sửa Máy Nhanh.

]]>
https://suamaynhanh.vn/phan-mem/tham-so-cua-function-trong-python/feed/ 0
Hàm đệ quy trong Python https://suamaynhanh.vn/phan-mem/ham-de-quy-trong-python/ https://suamaynhanh.vn/phan-mem/ham-de-quy-trong-python/#respond Tue, 11 Feb 2020 14:00:55 +0000 https://suamaynhanh.vn/?post_type=wtg_soft&p=14574 1. Hàm đệ quy là gì? Nói về toán học thì đệ quy là thuật toán giải quyết bài toán bằng …

The post Hàm đệ quy trong Python appeared first on Sửa Máy Nhanh.

]]>
1. Hàm đệ quy là gì?

Nói về toán học thì đệ quy là thuật toán giải quyết bài toán bằng cách gọi lại chính thuật toán đó, thao tác này sẽ thực hiện liên tục cho đến khi gặp điều kiện dừng.

Đệ quy được thể hiện tốt khi áp dụng với hàm trong Python. Hàm đệ quy là chương trình sẽ gọi lại chính hàm đó và ngưng gọi khi gặp điều kiện dừng. Nếu quay lại kiến thức về vòng lặp thì bản chất đây cũng là một loại vòng lặp đặc biệt phải không các bạn.

Hãy làm một ví dụ đơn giản đó là tính giai thừa của một số. Ví dụ giai thừa của 6 thì sẽ là 1*2*3*4*5*6 = 720.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# An example of a recursive function to
# find the factorial of a number
def calc_factorial(x):
    """This is a recursive function
    to find the factorial of an integer"""
    if x == 1:
        return 1
    else:
        return (x * calc_factorial(x-1))
num = 4
print("The factorial of", num, "is", calc_factorial(num))  

Bạn hãy để ý bên trong phần thân của hàm calc_factorial nhé, điều kiện để dừng đệ quy là x == 1, ngược lại chương trình sẽ thực hiện lặp đệ quy bởi đoạn code return (x * calc_factorial(x-1)).

Quy trình hoạt động của nó như sau:

1
2
3
4
5
calc_factorial(4)              # 1st call with 4
4 * calc_factorial(3)          # 2nd call with 3
4 * 3 * calc_factorial(2)      # 3rd call with 2
4 * 3 * 2 * calc_factorial(1)  # 4th call with 1
4 * 3 * 2 * 1                  # return from 4th call as number=1

Lần gọi đệ quy cuối cùng vì giá trị tham số x truyền vào là 1 nên sẽ không thực hiện đệ quy nữa, sau đó trả kết quả là 24.

2. Ưu điểm và nhược điểm của đệ quy

Sau đây là một vài ưu điểm và nhược điểm của đệ quy trong lập trình Python.

Ưu điểm:

  • Các hàm đệ quy làm cho mã trông sạch sẽ
  • Một tác vụ phức tạp có thể được chia thành các vấn đề phụ đơn giản hơn bằng cách sử dụng đệ quy.
  • Tạo trình tự dễ dàng với đệ quy hơn là sử dụng một số lần lặp lồng nhau.

Nhược điểm:

  • Đôi khi logic đằng sau đệ quy rất khó theo dõi.
  • Chi phí gọi đệ quy rất tốn kém (không hiệu quả) vì chúng chiếm rất nhiều bộ nhớ và thời gian.
  • Các hàm đệ quy khó gỡ lỗi.

3. Lời kết

Khi đi làm thực tế thì người ta rất ít khi chọn giải pháp đệ quy, trừ khi bắt buộc, bởi mất khá nhiều tài nguyên về bộ nhớ và thời gian để chạy một ứng dụng đệ quy, điều này là không tốt cho những ứng dụng trong thực tế. Bạn thử nghĩ xem nếu một website hoạt động quá chậm thì sẽ giảm đi phần trải nghiệm của người dùng một cách nghiêm trọng.

Có khá nhiều loại đệ quy như đệ quy tuyến tính, đệ quy hỗ tương, .. nhưng mình không đề cập đến trong bài viết, bạn tự tìm hiểu nhé.

Theo:https://freetuts.net

 

 

The post Hàm đệ quy trong Python appeared first on Sửa Máy Nhanh.

]]>
https://suamaynhanh.vn/phan-mem/ham-de-quy-trong-python/feed/ 0
Anonymous/Lambda Function trong Python https://suamaynhanh.vn/phan-mem/anonymous-lambda-function-trong-python/ https://suamaynhanh.vn/phan-mem/anonymous-lambda-function-trong-python/#respond Tue, 11 Feb 2020 13:56:45 +0000 https://suamaynhanh.vn/?post_type=wtg_soft&p=14573 Trong bài viết này, bạn sẽ tìm hiểu về hàm ẩn danh, còn được gọi là hàm lambda. Bạn sẽ tìm hiểu …

The post Anonymous/Lambda Function trong Python appeared first on Sửa Máy Nhanh.

]]>
Trong bài viết này, bạn sẽ tìm hiểu về hàm ẩn danh, còn được gọi là hàm lambda. Bạn sẽ tìm hiểu lambda là gì, cú pháp và cách sử dụng thông qua các ví dụ.

1. Lambda function là gì trong Python?

Trong Python, hàm ẩn danh là một hàm được định nghĩa mà không có tên.

Mặc dù các hàm bình thường được xác định bằng từ khóa def, nhưng trong các hàm ẩn danh Python được xác định bằng từ khóa lambda. Do đó, các hàm ẩn danh cũng được gọi là các hàm lambda.

Cú pháp tạo hàm lambda như sau:

1
lambda arguments: expression

Lambda function có thể có nhiều tham số, tuy nhiên nội dung bên trong của nó chỉ có một biểu thức mà thôi. Mỗi hàm lambda đều có giá trị trả về bởi biểu thức bên trong mà không cần từ khóa return.

Hãy xem ví dụ dưới đây:

1
2
3
4
5
# Program to show the use of lambda functions
double = lambda x: x * 2
# Output: 10
print(double(5))

Trong ví dụ này mình đã tạo một lambda function có tên gọi là double, biểu thức bên trong của nó nhân hai giá trị của tham số truyên vào x * 2.

Nếu viết theo hàm thông thường thì lambda function trên sẽ tương đương với hàm sau:

1
2
def double(x):
   return x * 2

2. Ví dụ với lambda function trong Python

Chúng ta sử dụng lambda function trong trường hợp cần một function trong thời gian ngắn, và thường được kết hợp với các hàm ở bậc cao hơn, chính xác hơn thì thường được sử dụng như một tham số.

Bây giờ hãy làm hai ví dụ thường thấy nhất khi sử dụng lambda function nhé, đó là kết hợp với filter và map.

Kết hợp với filter()

Hàm filter có công dụng là lọc dữ liệu theo tham số truyên vào, tham số đầu tiên là hàm kiểm tra điều kiện lọc, tham số thứ hai là dữ liệu cần lọc. Hãy xem ví dụ lọc các số chẵn trong list dưới đây:

1
2
3
4
5
6
# Program to filter out only the even items from a list
my_list = [1, 5, 4, 6, 8, 11, 3, 12]
new_list = list(filter(lambda x: (x%2 == 0) , my_list))
# Output: [4, 6, 8, 12]
print(new_list)

Kết quả:

1
[4, 6, 8, 12]

Kết hợp với map()

Hàm map có công dụng là lặp qua từng phần tử và thay đổi giá trị của nó dựa vào hai tham số, tham số đầu tiên là một hàm dùng để xử lý dữ liệu và trả kết quả về, tham số thứ hai là dữ liệu cần lặp.

Hãy xem ví dụ dưới đây, ví dụ này sẽ nhân đôi giá trị của các phần tử trong list.

1
2
3
4
5
6
# Program to double each item in a list using map()
my_list = [1, 5, 4, 6, 8, 11, 3, 12]
new_list = list(map(lambda x: x * 2 , my_list))
# Output: [2, 10, 8, 12, 16, 22, 6, 24]
print(new_list)

Chạy lên kết quả sẽ như sau:

1
[2, 10, 8, 12, 16, 22, 6, 24]

3. Lời kết

Như vậy là mình đã giới thiệu sơ lược về lambda function trong Python. Ban phải hiểu rằng bản chất lambda function là một hàm ẩn danh, hoạt động trong một thời gian ngắn và tự mất đi khi phạm vi hoạt động của nó không còn nữa.

Trong thực tế chúng ta rất hay sử dụng lambda function, không chỉ ở Python mà ở hầu hết các ngôn ngữ hiện nay như PHP, Javascript đều hỗ trợ lambda function.

Nguồn:https://freetuts.net

 

The post Anonymous/Lambda Function trong Python appeared first on Sửa Máy Nhanh.

]]>
https://suamaynhanh.vn/phan-mem/anonymous-lambda-function-trong-python/feed/ 0
Biến toàn cục và biến cục bộ trong Python https://suamaynhanh.vn/phan-mem/bien-toan-cuc-va-bien-cuc-bo-trong-python/ https://suamaynhanh.vn/phan-mem/bien-toan-cuc-va-bien-cuc-bo-trong-python/#respond Tue, 11 Feb 2020 13:52:40 +0000 https://suamaynhanh.vn/?post_type=wtg_soft&p=14572 Bài này sẽ giải thích một chút về biến toàn cục và biến cục bộ trong Python để bạn hiểu phạm …

The post Biến toàn cục và biến cục bộ trong Python appeared first on Sửa Máy Nhanh.

]]>
Bài này sẽ giải thích một chút về biến toàn cục và biến cục bộ trong Python để bạn hiểu phạm vi hoạt động của chúng, tránh được những lỗi ngớ ngẩn không hiểu tại sao có khai báo biến mà vẫn bị lỗi.

1. Biến toàn cục là gì?

Trong Python, một biến được khai báo bên ngoài hàm hoặc trong phạm vi toàn cục được gọi là biến toàn cục. Điều này có nghĩa, biến toàn cục có thể được truy cập bên trong hoặc bên ngoài hàm.

Biến toàn cục có tên gọi là Global Variable.

Hãy xem một ví dụ về cách tạo một biến toàn cục trong Python.

Global Variable
1
2
3
4
5
6
7
x = "global"
def foo():
    print("x inside :", x)
foo()
print("x outside:", x)

Khi chạy chương trình này thì kết quả sẽ như sau:

1
2
x inside : global
x outside: global

Trong đoạn code trên thì biến x là biến toàn cục bởi nó được khai báo bên ngoài hàm, nằm tại vị trí cấp cao nhất của ứng dụng.  Giống như Javascript, trong hàm có thể sử dụng biến cục bộ mà không cần phải thông qua việc truyền tham số.

Chuyện gì sảy ra nếu bạn cố tình thay đổi giá trị của x bên trong hàm foo()?

1
2
3
4
5
6
x = "global"
def foo():
    x = x * 2
    print(x)
foo()

Khi chạy chương trình thì sẽ bị lỗi như sau:

1
UnboundLocalError: local variable 'x' referenced before assignment

Lý do tại sao? Tại vì bên trong hàm foo() bạn đã thay đổi giá trị cho biến x nên mặc nhiên nó sẽ hiểu biến x là biến cục bổ, mà biến cục bộ thì đoạn code x = x * 2 sẽ sai vì biến x chưa được khai báo.

2. Biến cục bộ là gì?

Trong Python biến cục bộ được hiểu là biến được khai báo bên trong hàm hoặc phạm vi cục bộ, những biến này gọi là biến cục bộ.

Biến cục bộ có tên gọi là Local Variable.

Hãy xem ví dụ dưới đây:

1
2
3
4
5
def foo():
    y = "local"
foo()
print(y)

Do biến y là biến cục bộ nằm bên trong hàm foo() nên đoạn codeprint(y) là sai, bạn không thể sử dụng biến cục bộ ở bên ngoài hàm được.

Chạy lên kết quả sẽ như sau:

1
NameError: name 'y' is not defined

3. Từ khóa global

Để tường minh trong việc sử dụng biến cục bộ ở trong hàm thì Python cung cấp từ khóa global, khi khai báo từ khóa nào cho một biến bất kì thì trình biên dịch sẽ tự hiểu biến đó sẽ trỏ tới một biến cục bộ nằm bên ngoài hàm.

Ví dụ: Sử dụng từ khóa global

1
2
3
4
5
6
7
8
9
10
x = "global"
def foo():
    global x
    y = "local"
    x = x * 2
    print(x)
    print(y)
    
foo()

Chạy lên kết quả sẽ như sau:

1
2
global global
local

Nếu ở ví dụ ở phần 1 bị sai vì ta đã thay đổi giá trị cho biến x thì trong ví dụ này lại đúng, tại sao? Tại vì ta đã sử dụng từ khóa global để trỏ đến biến cục bộ bên ngoài.

4. Lời kết

Khó khăn nhất là việc khai báo trùng tên ở biến toàn cục và biến cục bộ, vì vậy lời khuyên bạn nên sử dụng biến một cách khoa học, khai báo bằng tham số truyền vào nếu muốn sử dụng biến toàn cục ở bên trong hàm.

Như vậy là mình đã giới thiệu xong khái niệm về biến cục bộ và biến toàn cục trong Python, hy vọng bạn sẽ hiểu ý nghĩa của từng loại biến để sử dụng cho đúng mục đích.

Nguồn:https://freetuts.net

 

 

The post Biến toàn cục và biến cục bộ trong Python appeared first on Sửa Máy Nhanh.

]]>
https://suamaynhanh.vn/phan-mem/bien-toan-cuc-va-bien-cuc-bo-trong-python/feed/ 0