Hơn 100 bài tập Python kèm code mẫu được anh chàng zhiwehu chia sẻ trên Github, tuy nhiên, code mẫu của loạt bài tập này được viết trên phiên bản Python đã cũ. Sau đây Quản Trị Mạng sẽ Việt hóa và chỉnh sửa để phù hợp với bản Python 3.x giúp các bạn tiện học và luyện tập Python. Lưu ý: Các code mẫu trong bài được viết trên Python 3.6.2, nếu bạn đang sử dụng phiên bản Python từ 2.5 trở xuống có thể không chạy được code vì trong bản Python mới nhiều lệnh, hàm đã được thay đổi. Số bài tập Python này sẽ được chia thành 3 cấp độ dành cho cả người mới bắt đầu học lập trình, người đã học lập trình nhưng mới học Python và những người muốn nâng cao trình độ Python. Mỗi bài tập đều có đầy đủ các phần là yêu cầu của bài, gợi ý làm bài và lời giải (code mẫu), chính là code Python mẫu để bạn tham khảo. Bây giờ mời bạn đi vào các nội dung cụ thể nhé. Bài tập Python thực hành với code mẫu- 1. Mô tả cấp độ Python
- 2. Cấu trúc bài tập Python
- 3. Bài tập Python level 1
- 4. Bài tập Python level 2
- 5. Bài tập Python level 3
- 6. Bài tập Python khác
1. Mô tả cấp độ PythonLevel 1: Người vừa trải qua khóa học tổng quan về Python, có thể giải quyết một số vấn đề với 1, 2 class hoặc hàm Python. Những bài tập thuộc cấp độ này có thể tìm thấy trong các sách giáo khoa, tài liệu hướng dẫn thông thường. Level 2: Người mới học Python nhưng đã có nền tảng lập trình tương đối mạnh mẽ từ trước, có thể giải quyết các vấn đề liên quan tới 3 lớp hoặc hàm Python. Những bài tập này thường không tìm thấy trong sách giáo khoa. Level 3: Nâng cao, sử dụng Python để giải quyết những vấn đề phức tạp hơn bằng cách sử dụng nhiều hàm, cấu trúc dữ liệu và thuật toán phong phú. Ở cấp độ này bạn có thể giải quyết các vấn đề sử dụng vài package Python tiêu chuẩn và những kỹ thuật lập trình nâng cao. 2. Cấu trúc bài tập PythonMỗi bài tập Python trong trang này sẽ gồm có 3 phần như sau: Mình sẽ để các Bài tập Python nguyên xi dạng gốc như thế này, bạn có thể xem câu hỏi, gợi ý sau đó tự thực hành trước khi kéo xuống xem code mẫu nhé. 3. Bài tập Python level 1Bài 01:Câu hỏi: Viết chương trình tìm tất cả các số chia hết cho 7 nhưng không phải bội số của 5, nằm trong đoạn 2000 và 3200 (tính cả 2000 và 3200). Các số thu được sẽ được in thành chuỗi trên một dòng, cách nhau bằng dấu phẩy. Gợi ý: Code mẫu: j=[]
for i in range(2000, 3201):
if (i%7==0) and (i%5!=0):
j.append(str(i))
print (','.join(j))
Bài 02:Câu hỏi: Viết một chương trình có thể tính giai thừa của một số cho trước. Kết quả được in thành chuỗi trên một dòng, phân tách bởi dấu phẩy. Ví dụ, số cho trước là 8 thì kết quả đầu ra phải là 40320. Gợi ý: Trong trường hợp dữ liệu đầu vào được cung cấp, bạn hãy chọn cách để người dùng nhập số vào. Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x))
Bài 03:Câu hỏi: Với số nguyên n nhất định, hãy viết chương trình để tạo ra một dictionary chứa (i, i*i) như là số nguyên từ 1 đến n (bao gồm cả 1 và n) sau đó in ra dictionary này. Ví dụ: Giả sử số n là 8 thì đầu ra sẽ là: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}. Gợi ý: - Viết lệnh yêu cầu nhập số nguyên n.
Code mẫu: n=int(input("Nhập vào một số:"))
d=dict()
for i in range(1,n+1):
d[i]=i*i
#Code by Quantrimang.com
print (d)
Bài 04:Câu hỏi: Viết chương trình chấp nhận một chuỗi số, phân tách bằng dấu phẩy từ giao diện điều khiển, tạo ra một danh sách và một tuple chứa mọi số. Ví dụ: Đầu vào được cung cấp là 34,67,55,33,12,98 thì đầu ra là: ['34', '67', '55', '33', '12', '98'] ('34', '67', '55', '33', '12', '98') Gợi ý: - Viết lệnh yêu cầu nhập vào các giá trị sau đó dùng quy tắc chuyển đổi kiểu dữ liệu để hoàn tất.
Code mẫu: values=input("Nhập vào các giá trị:")
l=values.split(",")
t=tuple(l)
print (l)
print (t)
Bài 05:Câu hỏi: Định nghĩa một class có ít nhất 2 method: - getString: để nhận một chuỗi do người dùng nhập vào từ giao diện điều khiển.
- printString: in chuỗi vừa nhập sang chữ hoa.
Thêm vào các hàm kiểm tra đơn giản để kiểm tra method của class. Ví dụ: Chuỗi nhập vào là quantrimang.com thì đầu ra phải là: QUANTRIMANG.COM Gợi ý: - Sử dụng __init__ để xây dựng các tham số.
Code mẫu: class InputOutString(object):
def __init__(self):
self.s = ""
def getString(self):
self.s = input("Nhập chuỗi:")
# Code by Quantrimang.com
def printString(self):
print (self.s.upper())
strObj = InputOutString()
strObj.getString()
strObj.printString()
Bài 06:Câu hỏi: Viết một method tính giá trị bình phương của một số. Gợi ý: Code mẫu: x=int(input("Nhập một số:")) #nhập số cần tính bình phương từ giao diện
def square(num): #định nghĩa bình phương của một số
return num ** 2
# Code by Quantrimang.com
print (square(2)) #in bình phương của 2
print (square(3)) #in bình phương của 3
print (square(x)) #in bình phương của x
Vì đề bài không yêu cầu cụ thể bạn phải tính bình phương số có sẵn hay số nhập vào nên mình dùng cả hai. Bài 07:Câu hỏi: Python có nhiều hàm được tích hợp sẵn, nếu không biết cách sử dụng nó, bạn có thể đọc tài liệu trực tuyến hoặc tìm vài cuốn sách. Nhưng Python cũng có sẵn tài liệu về hàm cho mọi hàm tích hợp trong Python. Yêu cầu của bài tập này là viết một chương trình để in tài liệu về một số hàm Python được tích hợp sẵn như abs(), int(), input() và thêm tài liệu cho hàm bạn tự định nghĩa. Gợi ý: Code mẫu: print (abs.__doc__)
print (int.__doc__)
print (input.__doc__)
# Code by Quantrimang.com
def square(num):
'''Trả lại giá trị bình phương của số được nhập vào.
Số nhập vào phải là số nguyên.
'''
return num ** 2
print (square.__doc__)
Bài 08:Câu hỏi: Định nghĩa một lớp gồm có tham số lớp và có cùng tham số instance Gợi ý: - Khi định nghĩa tham số instance, cần thêm nó vào __init__
- Bạn có thể khởi tạo một đối tượng với tham số bắt đầu hoặc thiết lập giá trị sau đó.
Code mẫu: class Person:
# Định nghĩa lớp "name"
name = "Person"
# Code by Quantrimang.com
def __init__(self, name = None):
# self.name là biến instance
self.name = name
jeffrey = Person("Jeffrey")
print ("%s name is %s" % (Person.name, jeffrey.name))
nico = Person()
nico.name = "Nico"
print ("%s name is %s" % (Person.name, nico.name))
Bài 9:Câu hỏi: Tính tuổi dựa trên ngày tháng năm sinh nhập vào. Ví dụ: Nhập vào ngày tháng năm sinh dạng y/m/d, hãy tính tuổi của người này. Gợi ý: Sử dụng module datetime. Sử dụng datetime, chúng ta có thể tìm tuổi bằng cách trừ năm sinh cho năm hiện tại. Code mẫu: import datetime
print("Mời bạn vui lòng nhập ngày tháng năm sinh để tính tuổi")
birth_day = int(input("Ngày sinh:"))
birth_month = int(input("Tháng sinh:"))
birth_year = int(input("Năm sinh:"))
current_year = datetime.date.today().year
current_month = datetime.date.today().month
current_day = datetime.date.today().day
age_year = current_year - birth_year
age_month = abs(current_month-birth_month)
age_day = abs(current_day-birth_day)
print("### Tuổi của bạn chính xác là:### \n", age_year, " tuổi ", age_month, " tháng và ", age_day, " ngày")
4. Bài tập Python level 2Bài 09:Câu hỏi: Viết chương trình và in giá trị theo công thức cho trước: Q = √([(2 * C * D)/H]) (bằng chữ: Q bằng căn bậc hai của [(2 nhân C nhân D) chia H]. Với giá trị cố định của C là 50, H là 30. D là dãy giá trị tùy biến, được nhập vào từ giao diện người dùng, các giá trị của D được phân cách bằng dấu phẩy. Ví dụ: Giả sử chuỗi giá trị của D nhập vào là 100,150,180 thì đầu ra sẽ là 18,22,24. Gợi ý: - Nếu đầu ra nhận được là một số dạng thập phân, bạn cần làm tròn thành giá trị gần nhất, ví dụ 26.0 sẽ được in là 26.
- Trong trường hợp dữ liệu đầu vào được cung cấp cho câu hỏi, nó được giả định là đầu vào do người dùng nhập từ giao diện điều khiển.
Code mẫu: #!/usr/bin/env python
import math
c=50
h=30
value = []
items=[x for x in input("Nhập giá trị của d: ").split(',')]
for d in items:
value.append(str(int(round(math.sqrt(2*c*float(d)/h)))))
# Code by Quantrimang.com
print (','.join(value))
Bài 10:Câu hỏi: Viết một chương trình có 2 chữ số, X, Y nhận giá trị từ đầu vào và tạo ra một mảng 2 chiều. Giá trị phần tử trong hàng thứ i và cột thứ j của mảng phải là i*j. Lưu ý: i=0,1,...,X-1; j=0,1,...,Y-1. Ví dụ: Giá trị X, Y nhập vào là 3,5 thì đầu ra là: [[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8]] Gợi ý: - Viết lệnh để nhận giá trị X, Y từ giao diện điều khiển do người dùng nhập vào.
Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 0Bài 11:Câu hỏi: Viết một chương trình chấp nhận chuỗi từ do người dùng nhập vào, phân tách nhau bởi dấu phẩy và in những từ đó thành chuỗi theo thứ tự bảng chữ cái, phân tách nhau bằng dấu phẩy. Giả sử đầu vào được nhập là: without,hello,bag,world, thì đầu ra sẽ là: bag,hello,without,world. Gợi ý: Trong trường hợp dữ liệu đầu vào được nhập vào chương trình nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển. Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 1Bài 12:Câu hỏi: Viết một chương trình chấp nhận chuỗi là các dòng được nhập vào, chuyển các dòng này thành chữ in hoa và in ra màn hình. Giả sử đầu vào là: Hello world Practice makes perfect Thì đầu ra sẽ là: HELLO WORLD PRACTICE MAKES PERFECT Gợi ý: Trong trường hợp dữ liệu đầu vào được nhập vào chương trình nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển. Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 2Bài 13:Câu hỏi: Viết một chương trình chấp nhận đầu vào là một chuỗi các từ tách biệt bởi khoảng trắng, loại bỏ các từ trùng lặp, sắp xếp theo thứ tự bảng chữ cái, rồi in chúng. Giả sử đầu vào là: hello world and practice makes perfect and hello world again Thì đầu ra là: again and hello makes perfect practice world Gợi ý: - Trong trường hợp dữ liệu đầu vào được nhập vào chương trình nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển.
- Sử dụng set để loại bỏ dữ liệu trùng lặp tự động và dùng sorted() để sắp xếp dữ liệu.
Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 3Bài 14:Câu hỏi: Viết một chương trình chấp nhận đầu vào là chuỗi các số nhị phân 4 chữ số, phân tách bởi dấu phẩy, kiểm tra xem chúng có chia hết cho 5 không. Sau đó in các số chia hết cho 5 thành dãy phân tách bởi dấu phẩy. Ví dụ đầu vào là: 0100,0011,1010,1001 Đầu ra sẽ là: 1010 Gợi ý: Trong trường hợp dữ liệu đầu vào được nhập vào chương trình nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển. Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 4Bài 15:Câu hỏi: Viết một chương trình tìm tất cả các số trong đoạn 1000 và 3000 (tính cả 2 số này) sao cho tất cả các chữ số trong số đó là số chẵn. In các số tìm được thành chuỗi cách nhau bởi dấu phẩy, trên một dòng. Gợi ý: Trong trường hợp dữ liệu đầu vào được nhập vào chương trình nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển. Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 5Bài 16:Câu hỏi: Viết một chương trình chấp nhận đầu vào là một câu, đếm số chữ cái và chữ số trong câu đó. Giả sử đầu vào sau được cấp cho chương trình: hello world! 123 Thì đầu ra sẽ là: Số chữ cái là: 10 Số chữ số là: 3 Gợi ý: Trong trường hợp dữ liệu đầu vào được nhập vào chương trình nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển. Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 6Bài 17:Câu hỏi: Viết một chương trình chấp nhận đầu vào là một câu, đếm chữ hoa, chữ thường. Giả sử đầu vào là: Quản Trị Mạng Thì đầu ra là: Gợi ý: Trong trường hợp dữ liệu đầu vào được nhập vào chương trình nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển. Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 7Bài 18:Câu hỏi: Viết một chương trình tính giá trị của a+aa+aaa+aaaa với a là số được nhập vào bởi người dùng. Giả sử a được nhập vào là 1 thì đầu ra sẽ là: 1234 Gợi ý: Trong trường hợp dữ liệu đầu vào được nhập vào chương trình nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển. Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 8Bài 19:Câu hỏi: Sử dụng một danh sách để lọc các số lẻ từ danh sách được người dùng nhập vào. Giả sử đầu vào là: 1,2,3,4,5,6,7,8,9 thì đầu ra phải là: 1,3,5,7,9 Gợi ý: Trong trường hợp dữ liệu đầu vào được nhập vào chương trình nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển. Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 9Bài 20:Câu hỏi: Viết chương trình tính số tiền thực của một tài khoản ngân hàng dựa trên nhật ký giao dịch được nhập vào từ giao diện điều khiển. Định dạng nhật ký được hiển thị như sau: n=int(input("Nhập vào một số:"))
d=dict()
for i in range(1,n+1):
d[i]=i*i
#Code by Quantrimang.com
print (d) 0Giả sử đầu vào được cung cấp là: Thì đầu ra sẽ là: 500 Gợi ý: Trong trường hợp dữ liệu đầu vào được nhập vào chương trình nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển. Code mẫu: n=int(input("Nhập vào một số:"))
d=dict()
for i in range(1,n+1):
d[i]=i*i
#Code by Quantrimang.com
print (d) 15. Bài tập Python level 3Bài 21:Câu hỏi: Một website yêu cầu người dùng nhập tên người dùng và mật khẩu để đăng ký. Viết chương trình để kiểm tra tính hợp lệ của mật khẩu mà người dùng nhập vào. Các tiêu chí kiểm tra mật khẩu bao gồm: 1. Ít nhất 1 chữ cái nằm trong [a-z] 2. Ít nhất 1 số nằm trong [0-9] 3. Ít nhất 1 kí tự nằm trong [A-Z] 4. Ít nhất 1 ký tự nằm trong [$ # @] 5. Độ dài mật khẩu tối thiểu: 6 6. Độ dài mật khẩu tối đa: 12 Chương trình phải chấp nhận một chuỗi mật khẩu phân tách nhau bởi dấu phẩy và kiểm tra xem chúng có đáp ứng những tiêu chí trên hay không. Mật khẩu hợp lệ sẽ được in, mỗi mật khẩu cách nhau bởi dấu phẩy. Ví dụ mật khẩu nhập vào chương trình là: ABd1234@1,a F1#,2w3E*,2We3345 Thì đầu ra sẽ là: ABd1234@1 Gợi ý: Trong trường hợp dữ liệu đầu vào được nhập vào chương trình nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển. Code mẫu: n=int(input("Nhập vào một số:"))
d=dict()
for i in range(1,n+1):
d[i]=i*i
#Code by Quantrimang.com
print (d) 2Bài 22:Câu hỏi: Viết chương trình sắp xếp tuple (name, age, score) theo thứ tự tăng dần, name là string, age và height là number. Tuple được nhập vào bởi người dùng. Tiêu chí sắp xếp là: Sắp xếp theo name sau đó sắp xếp theo age, sau đó sắp xếp theo score. Ưu tiên là tên > tuổi > điểm. Nếu đầu vào là: Tom,19,80 John,20,90 Jony,17,91 Jony,17,93 Json,21,85 Thì đầu ra sẽ là: [('John', '20', '90'), ('Jony', '17', '91'), ('Jony', '17', '93'), ('Json', '21', '85'), ('Tom', '19', '80')] Gợi ý: Trong trường hợp dữ liệu đầu vào được nhập vào chương trình nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển. Sử dụng itemgetter để chấp nhận nhiều key sắp xếp. Code mẫu: n=int(input("Nhập vào một số:"))
d=dict()
for i in range(1,n+1):
d[i]=i*i
#Code by Quantrimang.com
print (d) 3Bài 23:Câu hỏi: Xác định một class với generator có thể lặp lại các số nằm trong khoảng 0 và n, và chia hết cho 7. Gợi ý: Sử dụng yield. Code mẫu: n=int(input("Nhập vào một số:"))
d=dict()
for i in range(1,n+1):
d[i]=i*i
#Code by Quantrimang.com
print (d) 4Bài 24:Câu hỏi: Một Robot di chuyển trong mặt phẳng bắt đầu từ điểm đầu tiên (0,0). Robot có thể di chuyển theo hướng UP, DOWN, LEFT và RIGHT với những bước nhất định. Dấu di chuyển của robot được đánh hiển thị như sau: UP 5 DOWN 3 LEFT 3 RIGHT 3 Các con số sau phía sau hướng di chuyển chính là số bước đi. Hãy viết chương trình để tính toán khoảng cách từ vị trí hiện tại đến vị trí đầu tiên, sau khi robot đã di chuyển một quãng đường. Nếu khoảng cách là một số thập phân chỉ cần in só nguyên gần nhất. Ví dụ: Nếu tuple sau đây là input của chương trình: UP 5 DOWN 3 LEFT 3 RIGHT 2 thì đầu ra sẽ là 2. Gợi ý: Trong trường hợp dữ liệu đầu vào được nhập vào chương trình nó nên được giả định là dữ liệu được người dùng nhập vào từ giao diện điều khiển. Code mẫu: n=int(input("Nhập vào một số:"))
d=dict()
for i in range(1,n+1):
d[i]=i*i
#Code by Quantrimang.com
print (d) 5Bài 25:Câu hỏi: Viết chương trình tính tần suất các từ từ input. Output được xuất ra sau khi đã sắp xếp theo bảng chữ cái. Giả sử input là: New to Python or choosing between Python 2 and Python 3? Read Python 2 or Python 3. Thì output phải là: 2:2 3.:1 3?:1 New:1 Python:5 Read:1 and:1 between:1 choosing:1 or:2 to:1 Gợi ý: Trong trường hợp dữ liệu đầu vào được cung cấp cho câu hỏi, nó phải được giả định là một input được nhập từ giao diện điều khiển. Code mẫu: n=int(input("Nhập vào một số:"))
d=dict()
for i in range(1,n+1):
d[i]=i*i
#Code by Quantrimang.com
print (d) 66. Bài tập Python khácBài 26:Câu hỏi: Định nghĩa 1 hàm có thể tính tổng hai số. Gợi ý: Định nghĩa 1 hàm với 2 số là đối số. Bạn có thể tính tổng trong hàm và trả về giá trị. Code mẫu: n=int(input("Nhập vào một số:"))
d=dict()
for i in range(1,n+1):
d[i]=i*i
#Code by Quantrimang.com
print (d) 7Bài 27:Câu hỏi: Định nghĩa một hàm có thể chuyển số nguyên thành chuỗi và in nó ra giao diện điều khiển Gợi ý: Sử dụng str() để chuyển đổi một số thành chuỗi. Code mẫu: n=int(input("Nhập vào một số:"))
d=dict()
for i in range(1,n+1):
d[i]=i*i
#Code by Quantrimang.com
print (d) 8Bài 28:Câu hỏi: Định nghĩa hàm có thể nhận hai số nguyên trong dạng chuỗi và tính tổng của chúng, sau đó in tổng ra giao diện điều khiển. Gợi ý: Sử dụng int() để chuyển đổi một chuỗi thành số nguyên. Code mẫu: n=int(input("Nhập vào một số:"))
d=dict()
for i in range(1,n+1):
d[i]=i*i
#Code by Quantrimang.com
print (d) 9Bài 29:Câu hỏi: Định nghĩa hàm có thể nhận 2 chuỗi từ input và nối chúng sau đó in ra giao diện điều khiển Gợi ý: Sử dụng + để nối các chuỗi. Code mẫu: values=input("Nhập vào các giá trị:")
l=values.split(",")
t=tuple(l)
print (l)
print (t) 0Bài 30:Câu hỏi: Định nghĩa một hàm có input là 2 chuỗi và in chuỗi có độ dài lớn hơn trong giao diện điều khiển. Nếu 2 chuỗi có chiều dài như nhau thì in tất cả các chuỗi theo dòng. Gợi ý: Sử dụng hàm len() để lấy chiều dài của một chuỗi Code mẫu: values=input("Nhập vào các giá trị:")
l=values.split(",")
t=tuple(l)
print (l)
print (t) 1Bài 31:Câu hỏi: Định nghĩa hàm có thể chấp nhận input là số nguyên và in "Đây là một số chẵn" nếu nó chẵn và in "Đây là một số lẻ" nếu là số lẻ. Gợi ý: Sử dụng toán tử % để kiểm tra xem số đó chẵn hay lẻ. Code mẫu: values=input("Nhập vào các giá trị:")
l=values.split(",")
t=tuple(l)
print (l)
print (t) 2Bài 32:Câu hỏi: Định nghĩa một hàm có thể in dictionary chứa key là các số từ 1 đến 3 (bao gồm cả hai số) và các giá trị bình phương của chúng. Gợi ý: - Sử dụng dict[key]=value để nhập mục vào dictionary.
- Sử dụng toán từ ** để lấy bình phương của một số.
Code mẫu: values=input("Nhập vào các giá trị:")
l=values.split(",")
t=tuple(l)
print (l)
print (t) 3Chạy code trên bạn sẽ được kết quả là một dictionary như sau: {1: 1, 2: 4, 3: 9}. Nếu chưa hiểu lắm về kiểu dữ liệu dictionary này bạn hãy đọc lại bài: Kiểu dữ liệu trong Python: chuỗi, số, list, tuple, set và dictionary Bài 33:Câu hỏi: Định nghĩa một hàm có thể in dictionary chứa các key là số từ 1 đến 20 (bao gồm cả 1 và 20) và các giá trị bình phương của chúng. Gợi ý: - Sử dụng dict[key]=value để nhập mục vào dictionary.
- Sử dụng toán từ ** để lấy bình phương của một số.
- Sử dujnng range() cho các vòng lặp.
Code mẫu: values=input("Nhập vào các giá trị:")
l=values.split(",")
t=tuple(l)
print (l)
print (t) 4Kết quả khi chạy code trên là: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361, 20: 400} Bài 34:Câu hỏi: Định nghĩa một hàm có thể tạo dictionary, chứa các key là số từ 1 đến 20 (bao gồm cả 1 và 20) và các giá trị bình phương của chúng. Hàm chỉ in các giá trị mà thôi. Gợi ý: - Sử dụng dict[key]=value để nhập mục vào dictionary.
- Sử dụng toán từ ** để lấy bình phương của một số.
- Sử dụng range() cho các vòng lặp.
- Sử dụng keys() để di lặp các key trong dictionary. Có thể sử dụng item() để nhận cặp key/value.
Code mẫu: values=input("Nhập vào các giá trị:")
l=values.split(",")
t=tuple(l)
print (l)
print (t) 5Kết quả bạn nhận được khi chạy code trên là các giá trị bình phương của số từ 1 đến 20. Bài 35:Câu hỏi: Định nghĩa một hàm có thể tạo ra một dictionary chứa key là những số từ 1 đến 20 (bao gồm cả 1 và 20) và các giá trị bình phương của key. Hàm chỉ cần in các key. Gợi ý: Tương tự như bài 34. Code mẫu: values=input("Nhập vào các giá trị:")
l=values.split(",")
t=tuple(l)
print (l)
print (t) 6Chạy code trên bạn sẽ nhận được các key trong dictionary, chính là các số từ 1 đến 20. Bài 36:Câu hỏi: Định nghĩa một hàm có thể tạo và in list chứa các giá trị bình phương của các số từ 1 đến 20 (tính cả 1 và 20). Gợi ý: - Sử dụng toán tử ** để lấy giá trị bình phương.
- Sử dụng range() cho vòng lặp.
- Sử dụng list.append() để thêm giá trị vào list.
Code mẫu: values=input("Nhập vào các giá trị:")
l=values.split(",")
t=tuple(l)
print (l)
print (t) 7Chạy code trên bạn sẽ nhận được một list chứa các giá trị bình phương của các số từ 1 đến 20. Thụt đầu dòng trong Python rất quan trọng, nếu code trên bạn chỉ cần sửa 1 chút như sau: values=input("Nhập vào các giá trị:")
l=values.split(",")
t=tuple(l)
print (l)
print (t) 8Thì sẽ nhận được output hình tháp khá đẹp như này: Kết quả bài tập Python 36 khi thay đổi thụt đầu dòngBài 37:Câu hỏi: Định nghĩa một hàm có thể tạo list chứa các giá trị bình phương của các số từ 1 đến 20 (bao gồm cả 1 và 20) và in 5 mục đầu tiên trong list. Gợi ý: - Sử dụng toán tử ** để lấy giá trị bình phương.
- Sử dụng range() cho vòng lặp.
- Sử dụng list.append() để thêm giá trị vào list.
- Sử dụng [n1:n2] để cắt list
Code mẫu: values=input("Nhập vào các giá trị:")
l=values.split(",")
t=tuple(l)
print (l)
print (t) 9Chạy code trên bạn sẽ nhận được một list chứa giá trị bình phương của các số từ 1 đến 5. Bài 38:Câu hỏi: Định nghĩa một hàm có thể tạo ra list chứa các giá trị bình phương của các số từ 1 đến 20 (bao gồm cả 1 và 20), rồi in 5 mục cuối cùng trong list. Gợi ý: Tương tự bài 37. Code mẫu: class InputOutString(object):
def __init__(self):
self.s = ""
def getString(self):
self.s = input("Nhập chuỗi:")
# Code by Quantrimang.com
def printString(self):
print (self.s.upper())
strObj = InputOutString()
strObj.getString()
strObj.printString() 0Khi chạy code trên bạn sẽ nhận được list chứa giá trị bình phương của 16, 17, 18, 19, 20. Bài 39:Câu hỏi: Định nghĩa một hàm có thể tạo list chứa giá trị bình phương của các số từ 1 đến 20 (bao gồm cả 1 và 20). Sau đó in tất cả các giá trị của list, trừ 5 mục đầu tiên. Gợi ý: Tương tư bài 37, 38. Code mẫu: class InputOutString(object):
def __init__(self):
self.s = ""
def getString(self):
self.s = input("Nhập chuỗi:")
# Code by Quantrimang.com
def printString(self):
print (self.s.upper())
strObj = InputOutString()
strObj.getString()
strObj.printString() 1Kết quả: class InputOutString(object):
def __init__(self):
self.s = ""
def getString(self):
self.s = input("Nhập chuỗi:")
# Code by Quantrimang.com
def printString(self):
print (self.s.upper())
strObj = InputOutString()
strObj.getString()
strObj.printString() 2Bài 40:Câu hỏi: Định nghĩa 1 hàm có thể tạo và in một tuple chứa các giá trị bình phương của các số từ 1 đến 20 (tính cả 1 và 20). Gợi ý: - Sử dụng toán tử ** để lấy giá trị bình phương.
- Sử dụng range() cho vòng lặp.
- Sử dụng list.append() để thêm giá trị vào list.
- Sử dụng tuple() để lấy giá tuple từ list.
Code mẫu: class InputOutString(object):
def __init__(self):
self.s = ""
def getString(self):
self.s = input("Nhập chuỗi:")
# Code by Quantrimang.com
def printString(self):
print (self.s.upper())
strObj = InputOutString()
strObj.getString()
strObj.printString() 3Kết quả: class InputOutString(object):
def __init__(self):
self.s = ""
def getString(self):
self.s = input("Nhập chuỗi:")
# Code by Quantrimang.com
def printString(self):
print (self.s.upper())
strObj = InputOutString()
strObj.getString()
strObj.printString() 4Bài 41:Câu hỏi: Với tuple (1,2,3,4,5,6,7,8,9,10) cho trước, viết một chương trình in một nửa số giá trị đầu tiên trong 1 dòng và 1 nửa số giá trị cuối trong 1 dòng. Gợi ý: Sử dụng [n1:n2] để lấy một phần từ tuple. Code mẫu: class InputOutString(object):
def __init__(self):
self.s = ""
def getString(self):
self.s = input("Nhập chuỗi:")
# Code by Quantrimang.com
def printString(self):
print (self.s.upper())
strObj = InputOutString()
strObj.getString()
strObj.printString() 5Kết quả: class InputOutString(object):
def __init__(self):
self.s = ""
def getString(self):
self.s = input("Nhập chuỗi:")
# Code by Quantrimang.com
def printString(self):
print (self.s.upper())
strObj = InputOutString()
strObj.getString()
strObj.printString() 6Bài 42:Câu hỏi: Viết một chương trình để tạo tuple khác, chứa các giá trị là số chẵn trong tuple (1,2,3,4,5,6,7,8,9,10) cho trước. Gợi ý: - Sử dụng for để lặp tuple.
- Sử dụng tuple() để tạo tuple từ list.
Code mẫu: class InputOutString(object):
def __init__(self):
self.s = ""
def getString(self):
self.s = input("Nhập chuỗi:")
# Code by Quantrimang.com
def printString(self):
print (self.s.upper())
strObj = InputOutString()
strObj.getString()
strObj.printString() 7Kết quả: class InputOutString(object):
def __init__(self):
self.s = ""
def getString(self):
self.s = input("Nhập chuỗi:")
# Code by Quantrimang.com
def printString(self):
print (self.s.upper())
strObj = InputOutString()
strObj.getString()
strObj.printString() 8Bài 43:Câu hỏi: Viết một chương trình để tạo ra và in tuple chứa các số chẵn được lấy từ tuple (1,2,3,4,5,6,7,8,9,10). Gợi ý: - Sử dụng "for" để lặp lại tuple.
- Sử dụng tuple() để tạo ra một tuple từ một danh sách.
Code mẫu: class InputOutString(object):
def __init__(self):
self.s = ""
def getString(self):
self.s = input("Nhập chuỗi:")
# Code by Quantrimang.com
def printString(self):
print (self.s.upper())
strObj = InputOutString()
strObj.getString()
strObj.printString() 9Kết quả: (2, 4, 6, 8, 10) Bài 44:Yêu cầu: Viết một chương trình Python nhận chuỗi nhập vào bởi người dùng, in "Yes" nếu chuỗi là "yes" hoặc "YES" hoặc "Yes", nếu không in "No". Gợi ý: - Sử dụng lệnh if để kiểm tra điều kiện.
Code mẫu: x=int(input("Nhập một số:")) #nhập số cần tính bình phương từ giao diện
def square(num): #định nghĩa bình phương của một số
return num ** 2
# Code by Quantrimang.com
print (square(2)) #in bình phương của 2
print (square(3)) #in bình phương của 3
print (square(x)) #in bình phương của x 0Bài 45:Yêu cầu: Viết chương trình Python có thể lọc các số chẵn trong danh sách sử dụng hàm filter. Danh sách là [1,2,3,4,5,6,7,8,9,10]. Gợi ý: - Sử dụng filter() để lọc các yếu tố trong một list.
- Sử dụng lambda để định nghĩa hàm chưa biết.
Code mẫu: x=int(input("Nhập một số:")) #nhập số cần tính bình phương từ giao diện
def square(num): #định nghĩa bình phương của một số
return num ** 2
# Code by Quantrimang.com
print (square(2)) #in bình phương của 2
print (square(3)) #in bình phương của 3
print (square(x)) #in bình phương của x 1Kết quả: [2, 4, 6, 8, 10] Lưu ý: Trong các phiên bản Python trước, bạn chỉ cần dùng hàm filter sẽ được trả kết quả đầu ra là một danh sách. Nhưng từ Python 3, phải dùng list(filter()) thì kết quả trả về mới là list. Điều này cũng áp dụng với map(). Bài 46:Yêu cầu: Viết chương trình Python dùng map() để tạo list chứa các giá trị bình phương của các số trong [1,2,3,4,5,6,7,8,9,10]. Gợi ý: - Sử dụng map() để tạo list.
- Sử dụng lambda để định nghĩa hàm chưa biết.
Code mẫu: x=int(input("Nhập một số:")) #nhập số cần tính bình phương từ giao diện
def square(num): #định nghĩa bình phương của một số
return num ** 2
# Code by Quantrimang.com
print (square(2)) #in bình phương của 2
print (square(3)) #in bình phương của 3
print (square(x)) #in bình phương của x 2Kết quả: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] Bài 47:Yêu cầu: Viết chương trình Python dùng map() và filter() để tạo list chứa giá trị bình phương của các số chẵn trong [1,2,3,4,5,6,7,8,9,10]. Gợi ý: - Dùng map() để tạo list.
- Dùng filter() để lọc thành phần trong list.
- Dùng lambda để định nghĩa hàm chưa biết.
Code mẫu: x=int(input("Nhập một số:")) #nhập số cần tính bình phương từ giao diện
def square(num): #định nghĩa bình phương của một số
return num ** 2
# Code by Quantrimang.com
print (square(2)) #in bình phương của 2
print (square(3)) #in bình phương của 3
print (square(x)) #in bình phương của x 3Kết quả: [4, 16, 36, 64, 100] Bài 48:Yêu cầu: Viết chương trình Python dùng filter() để tạo danh sách chứa các số chẵn trong đoạn [1,20]. Gợi ý: Code mẫu: x=int(input("Nhập một số:")) #nhập số cần tính bình phương từ giao diện
def square(num): #định nghĩa bình phương của một số
return num ** 2
# Code by Quantrimang.com
print (square(2)) #in bình phương của 2
print (square(3)) #in bình phương của 3
print (square(x)) #in bình phương của x 4Kết quả: [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] Bài 49:Yêu cầu: Viết chương trình Python sử dụng map() để tạo list chứa giá trị bình phương của các số trong đoạn [1,20]. Gợi ý: Code mẫu: x=int(input("Nhập một số:")) #nhập số cần tính bình phương từ giao diện
def square(num): #định nghĩa bình phương của một số
return num ** 2
# Code by Quantrimang.com
print (square(2)) #in bình phương của 2
print (square(3)) #in bình phương của 3
print (square(x)) #in bình phương của x 5Kết quả: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400] Bài 50:Yêu cầu: Định nghĩa một class có tên là Vietnam, với static method là printNationality. Gợi ý: Sử dụng @staticmethod để định nghĩa class với static method. Code mẫu: x=int(input("Nhập một số:")) #nhập số cần tính bình phương từ giao diện
def square(num): #định nghĩa bình phương của một số
return num ** 2
# Code by Quantrimang.com
print (square(2)) #in bình phương của 2
print (square(3)) #in bình phương của 3
print (square(x)) #in bình phương của x 6Bài 51:Yêu cầu: Định nghĩa một class tên Vietnam và class con của nó là Hanoi. Gợi ý: Code mẫu: x=int(input("Nhập một số:")) #nhập số cần tính bình phương từ giao diện
def square(num): #định nghĩa bình phương của một số
return num ** 2
# Code by Quantrimang.com
print (square(2)) #in bình phương của 2
print (square(3)) #in bình phương của 3
print (square(x)) #in bình phương của x 7Bài 52:Yêu cầu: Định nghĩa một class có tên là Circle có thể được xây dựng từ bán kính. Circle có một method có thể tính diện tích. Gợi ý: Sử dụng x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 23 để định nghĩa method.Code mẫu: x=int(input("Nhập một số:")) #nhập số cần tính bình phương từ giao diện
def square(num): #định nghĩa bình phương của một số
return num ** 2
# Code by Quantrimang.com
print (square(2)) #in bình phương của 2
print (square(3)) #in bình phương của 3
print (square(x)) #in bình phương của x 8Trong code trên, ta thực hiện khai báo lớp Circle, và method tính diện tích cho hình tròn, với bán kính r=2, kết quả khi chạy code sẽ được là: 12.56. Bài 53:Yêu cầu: Định nghĩa class có tên là Hinhchunhat được xây dựng bằng chiều dài và chiều rộng. Class Hinhchunhat có method để tính diện tích. Gợi ý: Code mẫu: x=int(input("Nhập một số:")) #nhập số cần tính bình phương từ giao diện
def square(num): #định nghĩa bình phương của một số
return num ** 2
# Code by Quantrimang.com
print (square(2)) #in bình phương của 2
print (square(3)) #in bình phương của 3
print (square(x)) #in bình phương của x 9Trong code trên chiều dài hình nhữ nhật là 10, chiều rộng là 2. Chạy code ta được kết quả là 20. Bài 54:Yêu cầu: Định nghĩa một class có tên là Shape và class con là Square. Square có hàm init để lấy đối số là chiều dài. Cả 2 class đều có hàm area để in diện tích của hình, diện tích mặc định của Shape là 0. Gợi ý: Để ghi đè một method trong super class, chúng ta có thể định nghĩa một method có cùng tên trong super class. Code mẫu: print (abs.__doc__)
print (int.__doc__)
print (input.__doc__)
# Code by Quantrimang.com
def square(num):
'''Trả lại giá trị bình phương của số được nhập vào.
Số nhập vào phải là số nguyên.
'''
return num ** 2
print (square.__doc__) 0Với chiều dài là 3, khi chạy code trên ta được kết quả là 9. Bài 55:Yêu cầu: Đưa ra một RuntimeError exception. Gợi ý: - Sử dụng raise() để đưa ra exception.
Code mẫu: Code đơn giản: print (abs.__doc__)
print (int.__doc__)
print (input.__doc__)
# Code by Quantrimang.com
def square(num):
'''Trả lại giá trị bình phương của số được nhập vào.
Số nhập vào phải là số nguyên.
'''
return num ** 2
print (square.__doc__) 1Code phức tạp: print (abs.__doc__)
print (int.__doc__)
print (input.__doc__)
# Code by Quantrimang.com
def square(num):
'''Trả lại giá trị bình phương của số được nhập vào.
Số nhập vào phải là số nguyên.
'''
return num ** 2
print (square.__doc__) 2Bài 56:Yêu cầu: Viết hàm để tính 5/0 và sử dụng try/exception để bắt lỗi. Gợi ý: - Sử dụng try/exception để bắt lỗi.
Code mẫu: print (abs.__doc__)
print (int.__doc__)
print (input.__doc__)
# Code by Quantrimang.com
def square(num):
'''Trả lại giá trị bình phương của số được nhập vào.
Số nhập vào phải là số nguyên.
'''
return num ** 2
print (square.__doc__) 3Kết quả khi chạy code trên ta nhận được như sau: Bài 57:Yêu cầu: Định nghĩa một class exception tùy chỉnh, nhận một thông báo là thuộc tính. Gợi ý: - Để định nghĩa một class exception tùy chỉnh, chúng ta phải định nghĩa một class kế thừa từ Exception.
Code mẫu: print (abs.__doc__)
print (int.__doc__)
print (input.__doc__)
# Code by Quantrimang.com
def square(num):
'''Trả lại giá trị bình phương của số được nhập vào.
Số nhập vào phải là số nguyên.
'''
return num ** 2
print (square.__doc__) 4Khi chạy code trên, thông báo "Có gì đó sai sai!" sẽ được in ra màn hình. Bài 58:Yêu cầu: Giả sử rằng chúng ta có vài địa chỉ email dạng [email protected], hãy viết một chương trình để in username của địa chỉ email cụ thể. Cả username và companyname chỉ bao gồm chữ cái. Ví dụ: Nếu cung cấp địa chỉ email [email protected] thì đầu ra sẽ là: QTM. Trong trường hợp dữ liệu đầu vào không có sẵn, ta giả định nó được người dùng nhập vào từ giao diện điều khiển. Gợi ý: Sử dụng \w để kiểm tra chữ cái. Code mẫu: print (abs.__doc__)
print (int.__doc__)
print (input.__doc__)
# Code by Quantrimang.com
def square(num):
'''Trả lại giá trị bình phương của số được nhập vào.
Số nhập vào phải là số nguyên.
'''
return num ** 2
print (square.__doc__) 5Khi chạy code trên, nó sẽ nhận email được nhập vào bởi người dùng và trả về username của email, nếu nhập vào [email protected] bạn sẽ nhận được kết quả là qtm. Bài 59:Yêu cầu: Tương tự như bài 58, nhưng lần này ta sẽ viết hàm để lấy companyname. Gợi ý: Code mẫu: print (abs.__doc__)
print (int.__doc__)
print (input.__doc__)
# Code by Quantrimang.com
def square(num):
'''Trả lại giá trị bình phương của số được nhập vào.
Số nhập vào phải là số nguyên.
'''
return num ** 2
print (square.__doc__) 6Đây là kết quả khi chạy code bài 58 và 59: Bài 60:Yêu cầu: Viết một chương trình chấp nhận chuỗi từ được phân tách bằng khoảng trống và in các từ chỉ gồm chữ số. Ví du: Nếu những từ sau đây là đầu vào của chương trình: 3 quantrimang.com và 2 python. Đầu ra sẽ là ['3', '2'] Gợi ý: Code mẫu: print (abs.__doc__)
print (int.__doc__)
print (input.__doc__)
# Code by Quantrimang.com
def square(num):
'''Trả lại giá trị bình phương của số được nhập vào.
Số nhập vào phải là số nguyên.
'''
return num ** 2
print (square.__doc__) 7Kết quả khi chạy code trên sẽ như sau: Bài 61:Yêu cầu: In chuỗi Unicode "Hello world". Gợi ý: - Sử dụng định dạng u'string' để định nghĩa chuỗi Unicode.
Code mẫu: print (abs.__doc__)
print (int.__doc__)
print (input.__doc__)
# Code by Quantrimang.com
def square(num):
'''Trả lại giá trị bình phương của số được nhập vào.
Số nhập vào phải là số nguyên.
'''
return num ** 2
print (square.__doc__) 8Bài 62:Yêu cầu: Viết chương trình để đọc chuỗi ASCII và chuyển đổi nó sang một chuỗi Unicode được mã hóa bằng UTF-8. Gợi ý: Code mẫu: print (abs.__doc__)
print (int.__doc__)
print (input.__doc__)
# Code by Quantrimang.com
def square(num):
'''Trả lại giá trị bình phương của số được nhập vào.
Số nhập vào phải là số nguyên.
'''
return num ** 2
print (square.__doc__) 9Bài 63:Yêu cầu: Viết comment đặc biệt để chỉ định file code nguồn Python ở Unicode. Code mẫu: class Person:
# Định nghĩa lớp "name"
name = "Person"
# Code by Quantrimang.com
def __init__(self, name = None):
# self.name là biến instance
self.name = name
jeffrey = Person("Jeffrey")
print ("%s name is %s" % (Person.name, jeffrey.name))
nico = Person()
nico.name = "Nico"
print ("%s name is %s" % (Person.name, nico.name)) 0Bài 64:Yêu cầu: Viết một chương trình tính 1/2 + 2/3 + 3/4 + ... + n/(n + 1) với một n là số được nhập vào (n> 0). Ví dụ, nếu n là số sau đây được nhập vào: 5 Thì đầu ra phải là: 3.55 Gợi ý: - Sử dụng float() để chuyển số nguyên sang số thập phân.
Code mẫu: class Person:
# Định nghĩa lớp "name"
name = "Person"
# Code by Quantrimang.com
def __init__(self, name = None):
# self.name là biến instance
self.name = name
jeffrey = Person("Jeffrey")
print ("%s name is %s" % (Person.name, jeffrey.name))
nico = Person()
nico.name = "Nico"
print ("%s name is %s" % (Person.name, nico.name)) 1Bài 65:Yêu cầu: Viết chương trình tính: f(n)=f(n-1)+100 khi n>0 và f(0)=1, với n là số được nhập vào (n>0). Ví dụ: Nếu n được nhập vào là 5 thì đầu ra phải là 500. Gợi ý: - Chúng ta có thể định nghĩa hàm đệ quy trong Python.
Code mẫu: class Person:
# Định nghĩa lớp "name"
name = "Person"
# Code by Quantrimang.com
def __init__(self, name = None):
# self.name là biến instance
self.name = name
jeffrey = Person("Jeffrey")
print ("%s name is %s" % (Person.name, jeffrey.name))
nico = Person()
nico.name = "Nico"
print ("%s name is %s" % (Person.name, nico.name)) 2Bài 66:Yêu cầu: Dãy Fibonacci được tính dựa trên công thức sau: f(n)=0 nếu n=0 f(n)=1 nếu n=1 f(n)=f(n-1)+f(n-2) nếu n>1 Hãy viết chương trình tính giá trị của f(n) với n là số được người dùng nhập vào. Ví dụ: Nếu n được nhập vào là 7 thì đầu ra của chương trình sẽ là 13. Gợi ý: Tương tự như bài 65, ta cũng sử dụng hàm đệ quy trong Python. Code mẫu: class Person:
# Định nghĩa lớp "name"
name = "Person"
# Code by Quantrimang.com
def __init__(self, name = None):
# self.name là biến instance
self.name = name
jeffrey = Person("Jeffrey")
print ("%s name is %s" % (Person.name, jeffrey.name))
nico = Person()
nico.name = "Nico"
print ("%s name is %s" % (Person.name, nico.name)) 3Bài 67:Yêu cầu: Dãy Fibonacci được tính dựa trên công thức sau: - f(n)=0 nếu n=0
- f(n)=1 nếu n=1
- f(n)=f(n-1)+f(n-2) nếu n>1
Hãy viết chương trình sử dụng list comprehension để in dãy Fibonacci dưới dạng tách biệt bằng dấu ",", n được người dùng nhập vào. Ví dụ: Nếu n được nhập vào là 7 thì đầu ra của chương trình sẽ là: 0,1,1,2,3,5,8,13 Gợi ý: - Chúng ta có thể định nghĩa hàm đệ quy trong Python.
- Sử dụng list comprehension để tạo ra list từ list hiện có.
- Sử dụng string.join() để nối danh sách các chuỗi.
Code mẫu: class Person:
# Định nghĩa lớp "name"
name = "Person"
# Code by Quantrimang.com
def __init__(self, name = None):
# self.name là biến instance
self.name = name
jeffrey = Person("Jeffrey")
print ("%s name is %s" % (Person.name, jeffrey.name))
nico = Person()
nico.name = "Nico"
print ("%s name is %s" % (Person.name, nico.name)) 4Bài 68:Yêu cầu: Viết chương trình sử dụng generator để in số chẵn trong khoảng từ 0 đến n, cách nhau bởi dấu phẩy, n là số được nhập vào. Ví dụ nếu n=10 được nhập vào thì đầu ra của chương trình là: 0,2,4,6,8,10 Gợi ý: - Sử dụng yield để tạo ra giá trị kết tiếp trong generator.
Code mẫu: class Person:
# Định nghĩa lớp "name"
name = "Person"
# Code by Quantrimang.com
def __init__(self, name = None):
# self.name là biến instance
self.name = name
jeffrey = Person("Jeffrey")
print ("%s name is %s" % (Person.name, jeffrey.name))
nico = Person()
nico.name = "Nico"
print ("%s name is %s" % (Person.name, nico.name)) 5Bài 69:Yêu cầu: Viết chương trình sử dụng generator để in số chia hết cho 5 và 7 giữa 0 và n, cách nhau bằng dấu phẩy, n được người dùng nhập vào. Ví dụ: Nếu n=100 được nhập vào thì đầu ra của chương trình là: 0,35,70. Gợi ý: Như bài 68. Code mẫu: class Person:
# Định nghĩa lớp "name"
name = "Person"
# Code by Quantrimang.com
def __init__(self, name = None):
# self.name là biến instance
self.name = name
jeffrey = Person("Jeffrey")
print ("%s name is %s" % (Person.name, jeffrey.name))
nico = Person()
nico.name = "Nico"
print ("%s name is %s" % (Person.name, nico.name)) 6Bài 70:Yêu cầu: Viết các lệnh assert để xác minh rằng tất cả các số trong list [2,4,6,8] là chẵn. Gợi ý: - Sử dụng assert để khẳng định.
Code mẫu: class Person:
# Định nghĩa lớp "name"
name = "Person"
# Code by Quantrimang.com
def __init__(self, name = None):
# self.name là biến instance
self.name = name
jeffrey = Person("Jeffrey")
print ("%s name is %s" % (Person.name, jeffrey.name))
nico = Person()
nico.name = "Nico"
print ("%s name is %s" % (Person.name, nico.name)) 7Bài 71:Yêu cầu: Viết chương trình chấp nhận biểu thức toán học cơ bản do người dùng nhập vào từ bảng điều khiển và in kết quả ước lượng ra ngoài màn hình. Ví dụ: Nếu chuỗi sau là đầu vào của chương trình: 35 + 3 thì đầu ra sẽ lả: 38 Gợi ý: - Sử dụng eval() để ước lượng biểu thức
Code mẫu: class Person:
# Định nghĩa lớp "name"
name = "Person"
# Code by Quantrimang.com
def __init__(self, name = None):
# self.name là biến instance
self.name = name
jeffrey = Person("Jeffrey")
print ("%s name is %s" % (Person.name, jeffrey.name))
nico = Person()
nico.name = "Nico"
print ("%s name is %s" % (Person.name, nico.name)) 8Mấy bài này khá đơn giản và kết quả đầu ra cũng dễ hình dung nên mình không chụp kết quả nữa nhé, code thì test trên Python 3.6.2 đảm bảo chạy ngon rồi. Bài 72:Yêu cầu: Viết hàm tìm kiếm nhị phân để tìm các item trong một list đã được sắp xếp. Hàm sẽ trả lại chỉ số của phần tử được tìm thấy trong list. Gợi ý: - Sử dụng if/elif để giải quyết các điều kiện.
Code mẫu: class Person:
# Định nghĩa lớp "name"
name = "Person"
# Code by Quantrimang.com
def __init__(self, name = None):
# self.name là biến instance
self.name = name
jeffrey = Person("Jeffrey")
print ("%s name is %s" % (Person.name, jeffrey.name))
nico = Person()
nico.name = "Nico"
print ("%s name is %s" % (Person.name, nico.name)) 9Khi chạy code trên ta sẽ có kết quả đầu ra là 4 và -1, 4 là vị trí của 11 trong list li, và -1 nói lên rằng không có số 12 trong list li. Bài 73:Yêu cầu: Tạo một số thập phân ngẫu nhiên, có giá trị nằm trong khoảng từ 10 đến 100 bằng cách sử dụng module math của Python. Gợi ý: - Sử dụng random.random() để tạo float ngẫu nhiên trong [0,1].
Code mẫu: import datetime
print("Mời bạn vui lòng nhập ngày tháng năm sinh để tính tuổi")
birth_day = int(input("Ngày sinh:"))
birth_month = int(input("Tháng sinh:"))
birth_year = int(input("Năm sinh:"))
current_year = datetime.date.today().year
current_month = datetime.date.today().month
current_day = datetime.date.today().day
age_year = current_year - birth_year
age_month = abs(current_month-birth_month)
age_day = abs(current_day-birth_day)
print("### Tuổi của bạn chính xác là:### \n", age_year, " tuổi ", age_month, " tháng và ", age_day, " ngày") 0Vì hàm trên được sử dụng để tạo số thập phân ngẫu nhiên, nằm trong khoảng từ 10 đến 100, nên mỗi lần bạn chạy code sẽ cho ra một kết quả khác nhau, là các số thập phân ngẫu nhiên thỏa mãn điều kiện nằm trong khoảng 10 đến 100. Bài 74:Yêu cầu: Tạo một số thập phân ngẫu nhiên, có giá trị nằm trong khoảng 5 đến 95, sử dụng module math của Python. Gợi ý: Code mẫu: import datetime
print("Mời bạn vui lòng nhập ngày tháng năm sinh để tính tuổi")
birth_day = int(input("Ngày sinh:"))
birth_month = int(input("Tháng sinh:"))
birth_year = int(input("Năm sinh:"))
current_year = datetime.date.today().year
current_month = datetime.date.today().month
current_day = datetime.date.today().day
age_year = current_year - birth_year
age_month = abs(current_month-birth_month)
age_day = abs(current_day-birth_day)
print("### Tuổi của bạn chính xác là:### \n", age_year, " tuổi ", age_month, " tháng và ", age_day, " ngày") 1Code bài 73, 74 mình thấy chưa chuẩn lắm, mong nhận được góp ý của các bạn ở phần bình luận nhé! Bài 75:Yêu cầu: Viết chương trình xuất ra một số chẵn ngẫu nhiên trong khoảng 0 đến 10 (bao gồm cả 0 và 10), sử dụng module random và list comprehension. Gợi ý: - Sử dụng random.choice() để tạo một phần tử ngẫu nhiên từ list.
Code mẫu: import datetime
print("Mời bạn vui lòng nhập ngày tháng năm sinh để tính tuổi")
birth_day = int(input("Ngày sinh:"))
birth_month = int(input("Tháng sinh:"))
birth_year = int(input("Năm sinh:"))
current_year = datetime.date.today().year
current_month = datetime.date.today().month
current_day = datetime.date.today().day
age_year = current_year - birth_year
age_month = abs(current_month-birth_month)
age_day = abs(current_day-birth_day)
print("### Tuổi của bạn chính xác là:### \n", age_year, " tuổi ", age_month, " tháng và ", age_day, " ngày") 2Bài 76:Yêu cầu: Vui lòng viết chương trình để xuất một số ngẫu nhiên, chia hết cho 5 và 7, từ 0 đến 200 (gồm cả 0 và 200), sử dụng module random và list comprehension. Gợi ý: Code mẫu: import datetime
print("Mời bạn vui lòng nhập ngày tháng năm sinh để tính tuổi")
birth_day = int(input("Ngày sinh:"))
birth_month = int(input("Tháng sinh:"))
birth_year = int(input("Năm sinh:"))
current_year = datetime.date.today().year
current_month = datetime.date.today().month
current_day = datetime.date.today().day
age_year = current_year - birth_year
age_month = abs(current_month-birth_month)
age_day = abs(current_day-birth_day)
print("### Tuổi của bạn chính xác là:### \n", age_year, " tuổi ", age_month, " tháng và ", age_day, " ngày") 3Khi chạy code trên, bạn sẽ nhận được kết quả đầu ra là số bất kỳ, nằm trong đoạn [0;200] chia hết cho cả 5 và 7. Bài 77:Yêu cầu: Vui lòng viết chương trình để tạo một list với 5 số ngẫu nhiên từ 100 đến 200. Gợi ý: - Sử dụng random.sample() để tạo list chứa các giá trị ngẫu nhiên.
Code mẫu: import datetime
print("Mời bạn vui lòng nhập ngày tháng năm sinh để tính tuổi")
birth_day = int(input("Ngày sinh:"))
birth_month = int(input("Tháng sinh:"))
birth_year = int(input("Năm sinh:"))
current_year = datetime.date.today().year
current_month = datetime.date.today().month
current_day = datetime.date.today().day
age_year = current_year - birth_year
age_month = abs(current_month-birth_month)
age_day = abs(current_day-birth_day)
print("### Tuổi của bạn chính xác là:### \n", age_year, " tuổi ", age_month, " tháng và ", age_day, " ngày") 4Khi chạy code trên bạn sẽ nhận được 1 list, có 5 giá trị ngẫu nhiên, nằm trong đoạn [100;200]. Nếu đề bài yêu cầu số ngẫu nhiên nằm trong đoạn [0;100] thì range() trong đoạn trên bạn chỉ cần viết là range(100). Bài 78:Yêu cầu: Viết chương trình tạo ngẫu nhiên list gồm 5 số chẵn nằm trong đoạn [100;200]. Gợi ý: Code mẫu: import datetime
print("Mời bạn vui lòng nhập ngày tháng năm sinh để tính tuổi")
birth_day = int(input("Ngày sinh:"))
birth_month = int(input("Tháng sinh:"))
birth_year = int(input("Năm sinh:"))
current_year = datetime.date.today().year
current_month = datetime.date.today().month
current_day = datetime.date.today().day
age_year = current_year - birth_year
age_month = abs(current_month-birth_month)
age_day = abs(current_day-birth_day)
print("### Tuổi của bạn chính xác là:### \n", age_year, " tuổi ", age_month, " tháng và ", age_day, " ngày") 5Bài 79:Yêu cầu: Viết chương trình để tạo ngẫu nhiên một list gồm 5 số, chia hết cho 5 và 7, nằm trong đoạn [1;1000]. Gợi ý: Code mẫu: import datetime
print("Mời bạn vui lòng nhập ngày tháng năm sinh để tính tuổi")
birth_day = int(input("Ngày sinh:"))
birth_month = int(input("Tháng sinh:"))
birth_year = int(input("Năm sinh:"))
current_year = datetime.date.today().year
current_month = datetime.date.today().month
current_day = datetime.date.today().day
age_year = current_year - birth_year
age_month = abs(current_month-birth_month)
age_day = abs(current_day-birth_day)
print("### Tuổi của bạn chính xác là:### \n", age_year, " tuổi ", age_month, " tháng và ", age_day, " ngày") 6Bài 80:Yêu cầu: Viết chương trình để in một số nguyên ngẫu nhiên từ 7 đến 15. Gợi ý: - Sử dụng random.randrange() để lấy số nguyên ngẫu nhiên trong một phạm vi nhất định.
Code mẫu: import datetime
print("Mời bạn vui lòng nhập ngày tháng năm sinh để tính tuổi")
birth_day = int(input("Ngày sinh:"))
birth_month = int(input("Tháng sinh:"))
birth_year = int(input("Năm sinh:"))
current_year = datetime.date.today().year
current_month = datetime.date.today().month
current_day = datetime.date.today().day
age_year = current_year - birth_year
age_month = abs(current_month-birth_month)
age_day = abs(current_day-birth_day)
print("### Tuổi của bạn chính xác là:### \n", age_year, " tuổi ", age_month, " tháng và ", age_day, " ngày") 7Bài 81:Yêu cầu: Viết chương trình để nén và giải nén string ""hello world!hello world!hello world!hello world!". Gợi ý: - Sử dụng zlib.compress() và zlib.decompress() để nén và giải nén string.
Code mẫu: Với Python 2, code mẫu sẽ như sau: import datetime
print("Mời bạn vui lòng nhập ngày tháng năm sinh để tính tuổi")
birth_day = int(input("Ngày sinh:"))
birth_month = int(input("Tháng sinh:"))
birth_year = int(input("Năm sinh:"))
current_year = datetime.date.today().year
current_month = datetime.date.today().month
current_day = datetime.date.today().day
age_year = current_year - birth_year
age_month = abs(current_month-birth_month)
age_day = abs(current_day-birth_day)
print("### Tuổi của bạn chính xác là:### \n", age_year, " tuổi ", age_month, " tháng và ", age_day, " ngày") 8Tuy nhiên, trong Python 3, bạn phải gọi encode() và chỉ định kiểu mã hóa, giả sử là utf-8 thì yêu cầu trên sẽ được code như sau: import datetime
print("Mời bạn vui lòng nhập ngày tháng năm sinh để tính tuổi")
birth_day = int(input("Ngày sinh:"))
birth_month = int(input("Tháng sinh:"))
birth_year = int(input("Năm sinh:"))
current_year = datetime.date.today().year
current_month = datetime.date.today().month
current_day = datetime.date.today().day
age_year = current_year - birth_year
age_month = abs(current_month-birth_month)
age_day = abs(current_day-birth_day)
print("### Tuổi của bạn chính xác là:### \n", age_year, " tuổi ", age_month, " tháng và ", age_day, " ngày") 9Bài 82:Yêu cầu: Bạn hãy viết một chương trình để in thời gian thực thi (running time of execution) phép tính "1+1" 100 lần. Gợi ý: - Sử dụng timeit() để đo thời gian chạy
Code mẫu: #!/usr/bin/env python
import math
c=50
h=30
value = []
items=[x for x in input("Nhập giá trị của d: ").split(',')]
for d in items:
value.append(str(int(round(math.sqrt(2*c*float(d)/h)))))
# Code by Quantrimang.com
print (','.join(value)) 0Khi chạy code trên, bạn cần phải đợi để phép tính trên được thực hiện xong rồi chương trình mới in ra thời gian thực thi. Ban đầu khi mới chạy code, cảm giác như không có gì đang được thực thi. Bài 83:Yêu cầu: Viết chương trình để trộn và in list [3,6,7,8]. Gợi ý: - Sử dụng shuffle() để trộn list.
Code mẫu: #!/usr/bin/env python
import math
c=50
h=30
value = []
items=[x for x in input("Nhập giá trị của d: ").split(',')]
for d in items:
value.append(str(int(round(math.sqrt(2*c*float(d)/h)))))
# Code by Quantrimang.com
print (','.join(value)) 1Khi code được thực thi, mỗi lần chạy sẽ cho ra một list với thứ tự các số được trộn ngẫu nhiên. Bài 84:Yêu cầu: Viết một chương trình để tạo tất cả các câu có chủ ngữ nằm trong ["Anh","Em"], động từ nằm trong ["Chơi","Yêu"] và tân ngữ là ["Bóng đá","Xếp hình"]. Gợi ý: - Sử dụng list[index] để lấy phần tử từ list.
Code mẫu: #!/usr/bin/env python
import math
c=50
h=30
value = []
items=[x for x in input("Nhập giá trị của d: ").split(',')]
for d in items:
value.append(str(int(round(math.sqrt(2*c*float(d)/h)))))
# Code by Quantrimang.com
print (','.join(value)) 2Khi chạy code trên ta sẽ có kết quả như sau: #!/usr/bin/env python
import math
c=50
h=30
value = []
items=[x for x in input("Nhập giá trị của d: ").split(',')]
for d in items:
value.append(str(int(round(math.sqrt(2*c*float(d)/h)))))
# Code by Quantrimang.com
print (','.join(value)) 3Bài 85:Yêu cầu: Viết chương trình in list sau khi xóa các số chẵn trong [5,6,77,45,22,12,24]. Gợi ý: - Sử dụng list comprehension để xóa một loạt phần tử của list.
Code mẫu: #!/usr/bin/env python
import math
c=50
h=30
value = []
items=[x for x in input("Nhập giá trị của d: ").split(',')]
for d in items:
value.append(str(int(round(math.sqrt(2*c*float(d)/h)))))
# Code by Quantrimang.com
print (','.join(value)) 4Kết quả khi chạy code trên sẽ là: #!/usr/bin/env python
import math
c=50
h=30
value = []
items=[x for x in input("Nhập giá trị của d: ").split(',')]
for d in items:
value.append(str(int(round(math.sqrt(2*c*float(d)/h)))))
# Code by Quantrimang.com
print (','.join(value)) 5Bài 86:Yêu cầu: Sử dụng list comprehension để viết chương trình in list sau khi đã loại bỏ các số chia hết cho 5 và 7 trong [12,24,35,70,88,120,155]. Gợi ý: Code mẫu: #!/usr/bin/env python
import math
c=50
h=30
value = []
items=[x for x in input("Nhập giá trị của d: ").split(',')]
for d in items:
value.append(str(int(round(math.sqrt(2*c*float(d)/h)))))
# Code by Quantrimang.com
print (','.join(value)) 6Ta sẽ có kết quả như sau: #!/usr/bin/env python
import math
c=50
h=30
value = []
items=[x for x in input("Nhập giá trị của d: ").split(',')]
for d in items:
value.append(str(int(round(math.sqrt(2*c*float(d)/h)))))
# Code by Quantrimang.com
print (','.join(value)) 7Bài 87:Yêu cầu: Viết chương trình in list sau khi đã xóa số thứ 0, thứ 2, thứ 4, thứ 6 trong [12,24,35,70,88,120,155]. Gợi ý: - Sử dụng list comprehension để xóa một loạt phần tử trong list.
- Sử dụng hàm enumerate() để lấy index, value của tuple.
Code mẫu: #!/usr/bin/env python
import math
c=50
h=30
value = []
items=[x for x in input("Nhập giá trị của d: ").split(',')]
for d in items:
value.append(str(int(round(math.sqrt(2*c*float(d)/h)))))
# Code by Quantrimang.com
print (','.join(value)) 8Code trên sẽ trả về kết quả: #!/usr/bin/env python
import math
c=50
h=30
value = []
items=[x for x in input("Nhập giá trị của d: ").split(',')]
for d in items:
value.append(str(int(round(math.sqrt(2*c*float(d)/h)))))
# Code by Quantrimang.com
print (','.join(value)) 9Bài 88:Yêu cầu: Viết chương trình tạo mảng 3D 3*5*8 có mỗi phần tử là 0. Gợi ý: - Sử dụng list comprehension để tạo mảng.
Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 00Kết quả: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 01Bài 89:Yêu cầu: Viết chương trình in list sau khi đã xóa số ở vị trí thứ 0, thứ 5, thứ 5 trong [12,24,35,70,88,120,155]. Gợi ý: Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 02Kết quả: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 03Bài 90:Yêu cầu: Viết chương trình in list sau khi đã xóa giá trị 24 trong [12,24,35,24,88,120,155]. Gợi ý: - Sử dụng phương thức xóa của list để xóa giá trị.
Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 04Kết quả: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 05Bài 91:Yêu cầu: Với 2 list cho trước: [1,3,6,78,35,55] và [12,24,35,24,88,120,155], viết chương trình để tạo list có phần tử là giao của 2 list đã cho. Gợi ý: Sử dụng set() và "&=" để thiết lập điểm giao. Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 06Kết quả: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 07Bài 92:Yêu cầu: Viết chương trình in list từ list [12,24,35,24,88,120,155,88,120,155], sau khi đã xóa hết các giá trị trùng nhau. Gợi ý: - Sử dụng set() để lưu trữ các giá trị không bị trùng lặp.
Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 08Kết quả: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 09Bài 93:Yêu cầu: Định nghĩa class Nguoi và 2 class con của nó: Nam, Nu. Tất cả các class có method "getGender" có thể in "Nam" cho class Nam và "Nữ" cho class Nu. Gợi ý: - Sử dụng Subclass(Parentclass) để định nghĩa 1 class con.
Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 10Kết quả: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 11Bài 94:Yêu cầu: Viết chương trình đếm và in số ký tự của chuỗi do người dùng nhập vào. Ví dụ: Nếu chuỗi nhập vào là quantrimang.com thì đầu ra sẽ là: q,1 u,1 a,2 n,2 t,1 r,1 i,1 m,2 g,1 .,1 c,1 o,1 Gợi ý: - Sử dụng dict để lưu trữ các cặp key/value.
- Sử dụng dict.get() để tra cứu key với giá trị mặc định.
Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 12Kết quả: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 13Bài 95:Yêu cầu: Viết chương trình nhận chuỗi đầu vào từ giao diện điều khiển và in nó theo thứ tự ngược lại. Ví dụ nếu chuỗi nhập vào là: i love you Thì kết quả đầu ra là: uoy evol i Gợi ý: - Sử dụng list[::-1] để lặp list theo thứ tự ngược lại.
Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 14Bài 96:Yêu cầu: Viết chương trình nhận chuỗi do người dùng nhập vào và in các ký tự có chỉ số chẵn. Ví dụ: Nếu chuỗi sau được nhập vào: q1u2a3n4t5r6i7m8a9n4g5.6c7o8m, thì đầu ra sẽ là: quantrimang.com. Gợi ý: - Sử dụng list[::2] để lặp list cách 2 vị trí.
Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 15Kết quả: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 16Bài 97:Yêu cầu: Viết chương trình in tất cả các hoán vị của [1,2,3]. Gợi ý: - Sử dụng itertools.permutations() để lấy hết các hoán vị của list.
Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 17Kết quả: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 18Bài 98:Yêu cầu: Viết chương trình để giải 1 câu đố cổ của Trung Quốc: Một trang trại thỏ và gà có 35 đầu, 94 chân, hỏi số thỏ và gà là bao nhiêu? Gợi ý: - Sử dụng vòng lặp for để lặp qua tất cả các giả thuyết có thể.
Code mẫu: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 19Kết quả: x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
print (fact(x)) 20Tạm thế đã nhé, mình đang tìm thêm nguồn bài, xem có các bài tập Python nâng cao hoặc những yêu cầu chương trình phức tạp hơn không. Bạn bookmark lại để check bài mới thường xuyên nhé, nếu có nguồn bài tập Python hay thì nhớ chia sẻ bằng cách bình luận bên dưới bài viết nhé! Các bài tập trên được tham khảo, trích dẫn lại từ: - github.com/zhiwehu
- practicepython.org
- w3resource.com
Xem thêm: - Bài tập C++ có lời giải (code mẫu)
- Bài tập Java cơ bản, có lời giải code mẫu
- Vòng lặp for trong Python
- Bài tập C++ có giải (code mẫu) về biến, kiểu dữ liệu và toán tử
- Vòng lặp while trong Python
- Từ khóa và định danh trong Python
Thứ Sáu, 23/09/2022 15:40 4,5 ★ 99 👨 628.923 #Python 11 Bình luận Sắp xếp theo Xóa Đăng nhập để Gửi Đạt Phạm bài 21 code mẫu sai mình đã code lại như sau: import re value = [] password = [x for x in input("Enter password: ").split(",")] for i in password: if re.search("[a-z]",i) and re.search("[0-9]", i) and re.search("[$#@]", i) and (not(len(i) < 6) or (len(i) > 12)) and not re.search("\s",i): value.append(i) print(",".join(value))
Thích · Phản hồi · 12 · 15/08/21lazzyphoenix crazy n=int(input()) tong=1 for i in range (1,n+1): tong *= i print(tong) bài 2 cho nó đơn giản Thích · Phản hồi · 5 · 08/08/21Quốc Hưng Đặng có file pdf không bạn ơi cho mình xin với Thích · Phản hồi · 3 · 08/07/21Phát Võ Thành Câu 86 chia hết cho 5 và 7 chỉ có 35 với 70 thôi chứ nếu bỏ 2 số đó thì danh sách còn [12, 24, 88, 120, 155] code đúng phải là dùng or: lst = [12,24,35,70,88,120,155] lst = [i for i in lst if i%5!=0 or i%7!=0] print(lst)
Thích · Phản hồi · 2 · 09/03/21Phát Võ Thành Bài 73 có thể sửa lại như thế này cũng ok: a = random.random()*90 +10 Thích · Phản hồi · 2 · 08/03/21Phát Võ Thành Code bài 73 dùng random.uniform(10,100) là được chứ dùng random.random()*100 thì ra đoạn [0;100) rồi :V
Thích · Phản hồi · 2 · 08/03/21Tân Nek Hay đấy ah bạn :> Thích · Phản hồi · 1 · 27/09/21Cẩm Tú có ai bt viết ct tìm 10 số nhỏ nhất là bội của n(với n nhập từ bàn phím )hong ạ. Thích · Phản hồi · 0 · 20:00 29/1008_Bùi Trung Hiếu Viết năm sinh của em và tính ra số tuổi Thích · Phản hồi · 0 · 14:28 21/12Thanh Phong Cho em hỏi bài 9 chạy thì gặp lỗi could not convert string to float, em phải khắc phục như nào ạ Thích · Phản hồi · 0 · 02/09/21
Tải thêm bình luận Bạn nên đọc - Cách thiết lập LibreOffice Writer chạy giống như Microsoft Word
- Laptop biến hình VAIO Flip 11A chính thức lên kệ
- Nhiều website bị hacker tấn công, đổi nội dung thành quảng cáo cờ bạc
- Pin sạc đầy 98% trong dưới 10 phút
- Nokia Lumia 925 giảm giá hơn 2 triệu đồng
- Yahoo tính mở rộng thị trường sang Ả Rập
Python - Viết chương trình tìm nhãn cột Excel theo số cột cho trước bằng Python
- Hàm reversed() trong Python
- Hàm sorted() trong Python
- Hàm sum() trong Python
- Cách lấy dữ liệu thời tiết trực tiếp bằng Python
- Bài kiểm tra trắc nghiệm về Python - Phần 7
Xem thêmPython 3 - Python cơ bản
- Python là gì? Tại sao nên chọn Python?
- Cách cài đặt Python trên Windows, macOS, Linux
- Từ khóa và định danh
- Cách viết lệnh, thụt lề và chú thích
- Kiểu dữ liệu: chuỗi, số, list, tuple, set và dictionary
- Tìm hiểu chương trình Python đầu tiên
- Mảng trong Python
- Cách sử dụng List comprehension
- Điều khiển luồng và vòng lặp
- Lệnh if, if...else, if...elif...else
- Vòng lặp for
- Vòng lặp while
- Lệnh break và continue
- Lệnh pass
- Các kỹ thuật vòng lặp
- Hàm Python
- Các hàm trong Python
- Các hàm Python tích hợp sẵn
- Hàm Python do người dùng tự định nghĩa
- Tham số hàm Python
- Hàm đệ quy trong Python
- Hàm vô danh, Lambda
- Các loại biến trong Python
- Từ khóa global
- Module
- Pakage
- File trong Python
- Làm việc với File
- Quản lý File và thư mục
- Error (Lỗi) và Exception (Ngoại lệ)
- Xử lý ngoại lệ - Exception Handling
- Class và Object trong Python
- Lập trình hướng đối tượng - OOP
- Tìm hiểu Class và Object
- Kế thừa (Inheritance)
- Đa kế thừa (Multiple Inheritance)
- Nạp chồng toán tử
- Python nâng cao
- Ma trận trong Python
- Đối tượng Iterator trong Python
- Generator trong Python
- Closure trong Python
- Decorator trong Python
- @property trong Python
- RegEx trong Python
- Datetime trong Python
- Datetime trong Python
- Hàm datetime.strftime()
- Hàm datetime.strptime()
- Ngày giờ hiện tại
- Chuyển đổi timestamp
- Module time
- Hàm time.sleep()
- Bài tập Python
- Hơn 100 bài tập Python có lời giải (code mẫu)
- Giải phương trình bậc 2 một ẩn bằng Python
- Trắc nghiệm Python
- Python Quiz - Phần 1
- Python Quiz - Phần 2
- Python Quiz - Phần 3
- Python Quiz - Phần 4
- Python Quiz - Phần 5
- Python Quiz - Phần 6
- Python Quiz - Phần 7
- Python Quiz - Phần 8
- Python Quiz - Phần 9
- Python Quiz - Phần 10
- Python Quiz - Phần 11
- Công nghệ
- Ứng dụng
- Hệ thống
- Game - Trò chơi
- iPhone
- Android
- Linux
- Nền tảng Web
- Đồng hồ thông minh
- Chụp ảnh - Quay phim
- macOS
- Phần cứng
- Thủ thuật SEO
- Kiến thức cơ bản
- Raspberry Pi
- Dịch vụ ngân hàng
- Lập trình
- Dịch vụ công trực tuyến
- Dịch vụ nhà mạng
- Nhà thông minh
- Download
- Ứng dụng văn phòng
- Tải game
- Tiện ích hệ thống
- Ảnh, đồ họa
- Internet
- Bảo mật, Antivirus
- Họp, học trực tuyến
- Video, phim, nhạc
- Mail
- Lưu trữ đám mây
- Giao tiếp, liên lạc, hẹn hò
- Hỗ trợ học tập
- Máy ảo
- Tiện ích
- Khoa học
- Khoa học vui
- Khám phá khoa học
- Bí ẩn - Chuyện lạ
- Chăm sóc Sức khỏe
- Khoa học Vũ trụ
- Khám phá thiên nhiên
- Điện máy
- Tủ lạnh
- Tivi
- Điều hòa
- Máy giặt
- Cuộc sống
- Kỹ năng
- Món ngon mỗi ngày
- Làm đẹp
- Nuôi dạy con
- Chăm sóc Nhà cửa
- Kinh nghiệm Du lịch
- Halloween
- Mẹo vặt
- Giáng sinh - Noel
- Tết 2023
- Quà tặng
- Giải trí
- Là gì?
- Nhà đẹp
- TOP
- Phong thủy
- Video
- Công nghệ
- Cisco Lab
- Microsoft Lab
- Video Khoa học
- Ô tô, Xe máy
- Làng Công nghệ
- Tấn công mạng
- Chuyện công nghệ
- Công nghệ mới
- Trí tuệ nhân tạo (AI)
- Anh tài công nghệ
- Bình luận công nghệ
- Tổng hợp
- Học CNTT
- Quiz công nghệ
- Microsoft Word 2016
- Microsoft Word 2013
- Microsoft Word 2007
- Microsoft Excel 2019
- Microsoft Excel 2016
- Microsoft PowerPoint 2019
- Microsoft PowerPoint 2016
- Google Sheets - Trang tính
- Photoshop CS6
- Photoshop CS5
- HTML
- CSS và CSS3
- Python
- Học SQL
- Lập trình C
- Lập trình C++
- Lập trình C#
- Học HTTP
- Bootstrap
- SQL Server
- JavaScript
- Học PHP
- jQuery
- Học MongoDB
- Unix/Linux
- Học Git
- NodeJS
Giới thiệu | Điều khoản | Bảo mật | Hướng dẫn | Ứng dụng | Liên hệ | Quảng cáo | Facebook | Youtube | DMCA Giấy phép số 362/GP-BTTTT. Bộ Thông tin và Truyền thông cấp ngày 30/06/2016. Cơ quan chủ quản: CÔNG TY CỔ PHẦN MẠNG TRỰC TUYẾN META. Địa chỉ: 56 Duy Tân, Dịch Vọng Hậu, Cầu Giấy, Hà Nội. Điện thoại: 024 2242 6188. Email: [email protected]. Chịu trách nhiệm nội dung: Lê Ngọc Lam. Bản quyền © 2003-2022 QuanTriMang.com. Giữ toàn quyền. Không được sao chép hoặc sử dụng hoặc phát hành lại bất kỳ nội dung nào thuộc QuanTriMang.com khi chưa được phép. |