Đề Xuất 12/2022 # Hơn 100 Bài Tập Python Có Lời Giải (Code Mẫu) / 2023 # Top 15 Like | Comforttinhdauthom.com

Đề Xuất 12/2022 # Hơn 100 Bài Tập Python Có Lời Giải (Code Mẫu) / 2023 # Top 15 Like

Cập nhật nội dung chi tiết về Hơn 100 Bài Tập Python Có Lời Giải (Code Mẫu) / 2023 mới nhất trên website Comforttinhdauthom.com. Hy vọng thông tin trong bài viết sẽ đáp ứng được nhu cầu ngoài mong đợi của bạn, chúng tôi sẽ làm việc thường xuyên để cập nhật nội dung mới nhằm giúp bạn nhận được thông tin nhanh chóng và chính xác nhất.

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.

1. Mô tả cấp độ Python

Level 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 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 Python

Mỗi bài tập Python trong trang này sẽ gồm có 3 phần như sau:

Bài 01:

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.

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:

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.

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.

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:

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}.

Viết lệnh yêu cầu nhập số nguyên n.

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 chúng tôi print (d)

Bài 04:

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’)

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.

values=input("Nhập vào các giá trị:") l=values.split(",") t=tuple(l) print (l) print (t)

Bài 05:

Đị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 hiểm tra đơn giản để kiểm tra method của class.

Ví dụ: Chuỗi nhập vào là chúng tôi thì đầu ra phải là: QUANTRIMANG.COM

Sử dụng __init__ để xây dựng các tham số.

class InputOutString(object): def __init__(self): self.s = "" def getString(self): self.s = input("Nhập chuỗi:") # Code by chúng tôi def printString(self): print (self.s.upper()) strObj = InputOutString() strObj.getString() strObj.printString()

Bài 06:

Viết một method tính giá trị bình phương của một số.

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 chúng tôi 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:

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.

print (abs.__doc__) print (int.__doc__) print (input.__doc__) # Code by chúng tôi 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:

Định nghĩa một lớp gồm có tham số lớp và có cùng tham số instance

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 đó.

class Person: # Định nghĩa lớp "name" name = "Person" # Code by chúng tôi def __init__(self, name = None): # chúng tôi là biến instance chúng tôi = name jeffrey = Person("Jeffrey") print ("%s name is %s" % (Person.name, jeffrey.name)) nico = Person() chúng tôi = "Nico" print ("%s name is %s" % (Person.name, nico.name))

4. Bài tập Python level 2

Bài 09:

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.

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.

#!/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 chúng tôi print (','.join(value))

Bài 10:

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]]

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.

input_str = input("Nhập X, Y: ") dimensions=[int(x) for x in input_str.split(',')] rowNum=dimensions[0] colNum=dimensions[1] multilist = [[0 for col in range(colNum)] for row in range(rowNum)] # Viết bởi chúng tôi for row in range(rowNum): for col in range(colNum): multilist[row][col]= row*col print (multilist)

Bài 11:

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.

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.

items=[x for x in input("Nhập một chuỗi: ").split(',')] items.sort() print (','.join(items))

Bài 12:

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 worldHELLO WORLDPRACTICE MAKES PERFECT Bài 13: Practice makes perfect

Thì đầu ra sẽ là:

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.

lines = [] while True: s = input() if s: lines.append(s.upper()) else: break; # Bài Python 12, Code by chúng tôi for sentence in lines: print (sentence)

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.

Bài 14:

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

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.

s = input("Nhập chuỗi của bạn: ") words = [word for word in s.split(" ")] print (" ".join(sorted(list(set(words)))))

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.

Bài 15:

Ví dụ đầu vào là: 0100,0011,1010,1001

Đầu ra sẽ là: 1010

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.

Bài 16:

value = [] items=[x for x in input("Nhập các số nhị phân: ").split(',')] for p in items: intp = int(p, 2) if not intp%5: value.append(p) # Bài tập Python 14, viết bởi chúng tôi print (','.join(value))

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.

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.

values = [] for i in range(1000, 3001): s = str(i) if (int(s[0])%2==0) and (int(s[1])%2==0) and (int(s[2])%2==0) and (int(s[3])%2==0): values.append(s) # Bài tập Python 15, Code by chúng tôi print (",".join(values))

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

Bài 17:

Thì đầu ra sẽ là:

Số chữ cái là: 10Số chữ số là: 3

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 = input("Nhập câu của bạn: ") # Bài tập Python 16, Code by chúng tôi d={"DIGITS":0, "LETTERS":0} for c in s: if c.isdigit(): d["DIGITS"]+=1 elif c.isalpha(): d["LETTERS"]+=1 else: pass print ("Số chữ cái là:", d["LETTERS"]) print ("Số chữ số là:", d["DIGITS"])

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à:

Bài 18:

Chữ hoa: 3

Chữ thường: 8

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 = input("Nhập câu của bạn: ") d={"UPPER CASE":0, "LOWER CASE":0} # Code by chúng tôi for c in s: if c.isupper(): d["UPPER CASE"]+=1 elif c.islower(): d["LOWER CASE"]+=1 else: pass print ("Chữ hoa:", d["UPPER CASE"]) print ("Chữ thường:", d["LOWER CASE"])

Bài 19:

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

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.

a = input("Nhập số a: ") n1 = int( "%s" % a ) n2 = int( "%s%s" % (a,a) ) n3 = int( "%s%s%s" % (a,a,a) ) n4 = int( "%s%s%s%s" % (a,a,a,a) ) # Bài tập Python 18, Code by chúng tôi print ("Tổng cần tính là: ",n1+n2+n3+n4)

Bài 20:

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

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.

values = input("Nhập dãy số của bạn, cách nhau bởi dấu phẩy: ") numbers = [x for x in values.split(",") if int(x)%2!=0] print (",".join(numbers))

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:

(D là tiền gửi, W là tiền rút ra).

Giả sử đầu vào được cung cấp là:

D 300

D 300

W 200

D 100

Thì đầu ra sẽ là:

Bài 21:

500

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.

import sys netAmount = 0 # Bài tập Python 20, Code by chúng tôi while True: s = input("Nhập nhật ký giao dịch: ") if not s: break values = s.split(" ") operation = values[0] amount = int(values[1]) if operation=="D": netAmount+=amount elif operation=="W": netAmount-=amount else: pass print (netAmount)

5. Bài tập Python level 3

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: 66. Độ 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.

Bài 22:

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

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.

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à:

Nếu đầu vào là:

Thì đầu ra sẽ là:

Bài 23:

[(‘John’, ’20’, ’90’), (‘Jony’, ’17’, ’91’), (‘Jony’, ’17’, ’93’), (‘Json’, ’21’, ’85’), (‘Tom’, ’19’, ’80’)]

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.

Bài 24:

from operator import itemgetter, attrgetter # Bài tập Python 22 Code by chúng tôi l = [] while True: s = input() if not s: break l.append(tuple(s.split(","))) print (sorted(l, key=itemgetter(0,1,2)))

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.

Sử dụng yield.

def putNumbers(n): i = 0 while i<n: j=i i=i+1 if j%7==0: yield j # Bài tập Python 23 Code by chúng tôi for i in putNumbers (100): print (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.

Bài 25:

Ví dụ: Nếu tuple sau đây là input của chương trình:

thì đầu ra sẽ là 2.

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.

import math pos = [0,0] while True: s = input() if not s: break movement = s.split(" ") direction = movement[0] steps = int(movement[1]) if direction=="UP": pos[0]+=steps elif direction=="DOWN": pos[0]-=steps elif direction=="LEFT": pos[1]-=steps elif direction=="RIGHT": pos[1]+=steps else: pass # Bài tập Python 24 Code by chúng tôi print (int(round(math.sqrt(pos[1]**2+pos[0]**2))))

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.

Bài 26:

Thì output phải là:

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.

freq = {} # frequency of words in text line = input() for word in line.split(): freq[word] = freq.get(word,0)+1 # Bài tập Python 25 Code by chúng tôi words = sorted(freq.keys()) for w in words: print ("%s:%d" % (w,freq[w]))

Bài 27:

6. Bài tập Python khác

Định nghĩa 1 hàm có thể tính tổng hai số.

Đị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ị.

Bài 28:

def SumFunction(number1, number2): #định nghĩa hàm tính tổng return number1+number2 print (SumFunction(5,7)) #in tổng 2 số 5 và 7

Đị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

Sử dụng str() để chuyển đổi một số thành chuỗi.

Bài 29:

def printValue(n): print (str(n)) printValue(3)

Đị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.

Sử dụng int() để chuyển đổi một chuỗi thành số nguyên.

Bài 30:

def printValue(s1,s2): print (int(s1)+int(s2)) printValue("3","4") #Kết quả là 7

Đị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

Sử dụng + để nối các chuỗi.

Bài 31:

def printValue(s1,s2): print (s1+s2) printValue("3","4") #Kết quả là 34

Đị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.

Sử dụng hàm len() để lấy chiều dài của một chuỗ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ẻ.

Sử dụng toán tử % để kiểm tra xem số đó chẵn hay lẻ.

def checkValue(n): if n%2 == 0: print ("Đây là một số chẵn") else: print ("Đây là một số lẻ") checkValue(7)

Bài 33:

Đị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.

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ố.

def printDict(): d=dict() d[1]=1 d[2]=2**2 d[3]=3**2 print (d) # Bài tập Python 32, Code by chúng tôi printDict()

Chạ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

Đị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.

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.

def printDict(): d=dict() for i in range(1,21): d[i]=i**2 print (d) # Bài tập Python 33, Code by chúng tôi printDict()

Kế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:

Bài 35:

Đị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.

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.

def printDict(): d=dict() for i in range(1,21): d[i]=i**2 for (k,v) in d.items(): print (v) # Bài tập Python 34, Code by chúng tôi printDict()

Kế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 36:

Đị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.

Tương tự như bài 34.

def printDict(): d=dict() for i in range(1,21): d[i]=i**2 for k in d.keys(): print (k) # Bài Python 35, Code by chúng tôi printDict()

Chạ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.

Đị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).

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.

def printList(): li=list() for i in range(1,21): li.append(i**2) print (li) # Bài Python 36, Code by chúng tôi printList()

Chạ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.

Bài 37:

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:

def printList(): li=list() for i in range(1,21): li.append(i**2) print (li) # Bài Python 36, Code by chúng tôi printList()

Thì 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òng

Bài 38:

Đị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.

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

def printList(): li=list() for i in range(1,21): li.append(i**2) print (li[:5]) # Bài Python 37, Code by chúng tôi printList()

Chạ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 39:

Đị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.

Tương tự bài 37.

def printList(): li=list() for i in range(1,21): li.append(i**2) print (li[-5:]) # Bài Python 38, Code by chúng tôi printList()

Khi 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.

Đị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.

Bài 40:

Tương tư bài 37, 38.

def printList(): li=list() for i in range(1,21): li.append(i**2) print (li[5:]) printList()

Kết quả:

[36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400]

Đị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).

Bài 41:

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.

def printTuple(): li=list() for i in range(1,21): li.append(i**2) print (tuple(li)) printTuple()

Kết quả:

(1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400)

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.

Bài 42:

Sử dụng [n1:n2] để lấy một phần từ tuple.

tp=(1,2,3,4,5,6,7,8,9,10) tp1=tp[:5] tp2=tp[5:] print (tp1) print (tp2)

Kết quả:

Bài 43:

(1, 2, 3, 4, 5) (6, 7, 8, 9, 10)

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.

Sử dụng for để lặp tuple.

Sử dụng tuple() để tạo tuple từ list.

tp=(1,2,3,4,5,6,7,8,9,10) li=list() for i in tp: if tp[-i]%2==0: li.append(tp[i]) tp2=tuple(li) print (tp2)

Bài 44:

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).

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.

tp=(1,2,3,4,5,6,7,8,9,10) li=list() for i in tp: if tp[i-1]%2==0: li.append(tp[i-1]) tp2=tuple(li) print (tp2)

Bài 45:

(2, 4, 6, 8, 10)

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”.

Sử dụng lệnh if để kiểm tra điều kiện.

s = input ("Nhập chuỗi: ") if s == "yes" or s == "YES" or s == "Yes": print ("Yes") else: print ("No")

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].

Bài 46:

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.

li = [1,2,3,4,5,6,7,8,9,10] evenNumbers = list(filter (lambda x: x% 2 == 0, li)) print (evenNumbers)

[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 47:

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].

Sử dụng map() để tạo list.

Sử dụng lambda để định nghĩa hàm chưa biết.

li = [1,2,3,4,5,6,7,8,9,10] squaredNumbers = list(map (lambda x: x ** 2, li)) print (squaredNumbers)

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Bài 48:

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].

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.

li = [1,2,3,4,5,6,7,8,9,10] squareOfEvenNumbers = list (map (lambda x: x ** 2, filter (lambda x: x% 2 == 0, li))) print (squareOfEvenNumbers)

Bài 49:

[4, 16, 36, 64, 100]

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].

evenNumbers = list(filter (lambda x: x% 2 == 0, range (1,21))) print (evenNumbers)

Bài 50:

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

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].

squaredNumbers = list(map(lambda x: x ** 2, range (1,21))) print (squaredNumbers)

Bài 51:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400]

Định nghĩa một class có tên là Vietnam, với static method là printNationality.

Sử dụng @staticmethod để định nghĩa class với static method.

Bài 52:

class Vietnam (object): @staticmethod def printNationality (): print ("Vietnam") # Bài Python 50, Code by chúng tôi VietnamVodich = Vietnam () VietnamVodich.printNationality () Vietnam.printNationality ()

Định nghĩa một class tên Vietnam và class con của nó là Hanoi.

Sử dụng Subclass(ParentClass) để định nghĩa một class con.

class Vietnam(object): pass class Hanoi(Vietnam): pass # Bài Python 51, Code by chúng tôi VietnamVodich = Vietnam() NguoiHanoi = Hanoi() print (VietnamVodich) print (NguoiHanoi)

Bài 53:

Đị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.

Sử dụng def methodName(self) để định nghĩa method.

class Circle(object): def __init__(self, r): self.radius = r # Bài Python 52, Code by chúng tôi def area(self): return self.radius**2*3.14 aCircle = Circle(2) print (aCircle.area())

Bài 54:

Trong 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.

Đị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.

class Hinhchunhat(object): def __init__(self, l, w): chúng tôi = l chúng tôi = w # Bài Python 53, Code by chúng tôi def area(self): return self.dai*self.rong aHinhchunhat = Hinhchunhat(10,2) print (aHinhchunhat.area())

Trong 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 55:

Đị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.

Để 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 đơn giản:

class Shape(object): def __init__(self): pass def area(self): return 0 # Bài Python 54, Code by chúng tôi class Square(Shape): def __init__(self, l): Shape.__init__(self) self.length = l def area(self): return self.length*self.length aSquare= Square(3) print (aSquare.area())

Code phức tạp:

Với chiều dài là 3, khi chạy code trên ta được kết quả là 9.

Bài 56:

Đưa ra một RuntimeError exception.

Sử dụng raise() để đưa ra exception.

raise RuntimeError('something wrong') # Bài Python 55, Code by chúng tôi class RuntimeError(Exception): def __init__(self, mismatch): Exception.__init__(self, mismatch) try: print ("And now, the Vocational Guidance Counsellor Sketch.") raise RuntimeError("Does not have proper hat") print ("This print statement will not be reached.") except RuntimeError as problem: print ("Vocation problem: {0}".format(problem))

Bài 57:

Viết hàm để tính 5/0 và sử dụng try/exception để bắt lỗi.

Sử dụng try/exception để bắt lỗi.

def throws(): return 5/0 # Bài Python 56, Code by chúng tôi try: throws() except ZeroDivisionError: print ("Chia một số cho 0!") except Exception as problem: print ('Bắt được một exception') finally: print ('Phép tính bị hủy')

Kết quả khi chạy code trên ta nhận được như sau:

Bài 58:

Định nghĩa một class exception tùy chỉnh, nhận một thông báo là thuộc tính.

Để đị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.

class MyError(Exception): """My own exception class # Bài Python 57, Code by chúng tôi Attributes: msg -- explanation of the error """ def __init__(self, msg): chúng tôi = msg error = MyError("Có gì đó sai sai!") print (error)

Khi chạy code trên, thông báo “Có gì đó sai sai!” sẽ được in ra màn hình.

Giả sử rằng chúng ta có vài địa chỉ email dạng username@companyname.com, 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 QTM@quantrimang.com thì đầu ra sẽ là: QTM.

Bài 59:

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.

Sử dụng w để kiểm tra chữ cái.

# Bài Python 58, Code by chúng tôi import re emailAddress = input() pat2 = "(w+)@((w+.)+(com))" re2 = re.match(pat2,emailAddress) print (re2.group(1))

Bài 60:

Khi 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 qtm@quantrimang.com bạn sẽ nhận được kết quả là qtm.

Tương tự như bài 58, nhưng lần này ta sẽ viết hàm để lấy companyname.

# Bài Python 59, Code by chúng tôi import re emailAddress = input() pat2 = "(w+)@(w+).(com)" r2 = re.match(pat2,emailAddress) print (r2.group(2))

Đây là kết quả khi chạy code bài 58 và 59:

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ố.

Bài 61:

Ví du: Nếu những từ sau đây là đầu vào của chương trình: 3 chúng tôi và 2 python. Đầu ra sẽ là [‘3’, ‘2’]

Sử dụng re.findall() để tìm tất cả chuỗi con sử dụng regex (biểu thức tiêu chuẩn).

# Bài Python 60, Code by chúng tôi import re s = input() print (re.findall("d+",s))

Bài 62:

Kết quả khi chạy code trên sẽ như sau:

In chuỗi Unicode “Hello world”.

Bài 63:

Sử dụng định dạng u’string’ để định nghĩa chuỗi Unicode.

# Bài Python 61, Code by chúng tôi unicodeString = u"Hello world!" print (unicodeString)

Bài 64:

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.

# Bài Python 62, Code by chúng tôi s = input() v = s.encode() # có thể dùng v=s.encode('utf-8') print (v) # -*- coding: utf-8 -*- #Bài Python 63, Code by Quantrimang.com

Ví dụ, nếu n là số sau đây được nhập vào:

5

Bài 65:

Thì đầu ra phải là:

3.55

Sử dụng float() để chuyển số nguyên sang số thập phân.

Ví dụ: Nếu n được nhập vào là 5 thì đầu ra phải là 500.

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

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.

Tương tự như bài 65, ta cũng sử dụng hàm đệ quy trong Python.

def f(n): if n == 0: return 0 elif n == 1: return 1 else: return f(n-1)+f(n-2) #Bài Python 66, Code by chúng tôi n=int(input("Nhập số n: ")) print (f(n))

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

Bài 68:

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

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.

def f(n): if n == 0: return 0 elif n == 1: return 1 else: return f(n-1)+f(n-2) #Bài Python 67, Code by chúng tôi n=int(input("Nhập số n: ")) values = [str(f(x)) for x in range(0, n+1)] print (",".join(values))

Bài 69:

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

Sử dụng yield để tạo ra giá trị kết tiếp trong generator.

def EvenGenerator(n): i=0 while i<=n: if i%2==0: yield i i+=1 # Bài tập Python 68, Code by chúng tôi n=int(input("Nhập n: ")) values = [] for i in EvenGenerator(n): values.append(str(i)) print ("Các số chẵn trong khoảng 0 và n là: ",",".join(values))

Bài 70:

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.

Như bài 68.

Bài 71:

def NumGenerator(n): for i in range(n+1): if i%5==0 and i%7==0: yield i # Bài tập Python 69, Code by chúng tôi n=int(input("Nhập n: ")) values = [] for i in NumGenerator(n): values.append(str(i)) print ("Các số chia hết cho 5 và 7 trong khoảng 0 và n là: ",",".join(values))

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.

Sử dụng assert để khẳng định.

li = [2,4,6,8] for i in li: assert i%2==0 # Code by Quantrimang.com

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ả:

Bài 72:

38

Sử dụng eval() để ước lượng biểu thức

expression = input("Nhập biểu thức cần tính: ") # Code by chúng tôi print (eval(expression))

Bài 73:

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.

Sử dụng if/elif để giải quyết các điều kiện.

Khi 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 74:

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.

Sử dụng random.random() để tạo float ngẫu nhiên trong [0,1].

import random print (random.random()*100) # Code by Quantrimang.com

Bài 75:

Vì 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.

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.

import random print (random.random()*100-5) # Code by Quantrimang.com

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.

Sử dụng random.choice() để tạo một phần tử ngẫu nhiên từ list.

Bài 77:

import random print (random.choice([i for i in range(11) if i%2==0])) # Code by Quantrimang.com

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.

import random print (random.choice([i for i in range(201) if i%5==0 and i%7==0])) #Code by Quantrimang.com

Khi 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 78:

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.

Sử dụng random.sample() để tạo list chứa các giá trị ngẫu nhiên.

Bài 79:

import random print (random.sample(range(100,201), 5)) #Code by Quantrimang.com

Khi 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 80:

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].

import random print (random.sample([i for i in range(100,201) if i%2==0], 5)) #Code by Quantrimang.com

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].

Bài 81:

import random print (random.sample([i for i in range(1,1001) if i%5==0 and i%7==0], 5)) #Code by Quantrimang.com

Viết chương trình để in một số nguyên ngẫu nhiên từ 7 đến 15.

Sử dụng random.randrange() để lấy số nguyên ngẫu nhiên trong một phạm vi nhất định.

import random print (random.randrange(7,16)) #Code by Quantrimang.com

Viết chương trình để nén và giải nén string “”hello world!hello world!hello world!hello world!”.

Sử dụng zlib.compress() và zlib.decompress() để nén và giải nén string.

Bài 82:

Với Python 2, code mẫu sẽ như sau:

import zlib s = "hello world!hello world!hello world!hello world!" t = zlib.compress(s) print t print zlib.decompress(t)

Tuy 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 zlib s = "hello world!hello world!hello world!hello world!" t = zlib.compress(s.encode("utf-8")) print (t) print (zlib.decompress(t)) #Code by Quantrimang.com

Bài 83:

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.

Sử dụng timeit() để đo thời gian chạy

from timeit import Timer t = Timer("for i in range(100):1+1") print (t.timeit())

Khi 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 84:

Viết chương trình để trộn và in list [3,6,7,8].

Sử dụng shuffle() để trộn list.

from random import shuffle li = [3,6,7,8] #Code by chúng tôi shuffle(li) print (li)

Khi 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.

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”].

Bài 85:

Sử dụng list[index] để lấy phần tử từ list.

chu_ngu=["Anh","Em"] dong_tu=["Chơi","Yêu"] tan_ngu=["Bóng đá","Xếp hình"] # Code by chúng tôi for i in range(len(chu_ngu)): for j in range(len(dong_tu)): for k in range(len(tan_ngu)): cau = "%s %s %s." % (chu_ngu[i], dong_tu[j], tan_ngu[k]) print (cau)

Khi chạy code trên ta sẽ có kết quả như sau:

Bài 86:

Anh Chơi Bóng đá. Anh Chơi Xếp hình. Anh Yêu Bóng đá. Anh Yêu Xếp hình. Em Chơi Bóng đá. Em Chơi Xếp hình. Em Yêu Bóng đá. Em Yêu Xếp hình.

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].

li = [5,6,77,45,22,12,24] # Code by chúng tôi li = [x for x in li if x%2!=0] print (li)

Bài 87:

Kết quả khi chạy code trên sẽ là:

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].

li = [12,24,35,70,88,120,155] # Code by chúng tôi li = [i for i in li if i%5!=0 and i%7!=0] print (li)

Ta sẽ có kết quả như sau:

Bài 88:

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].

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.

li = [12,24,35,70,88,120,155] # Code by chúng tôi a= [x for i,x in enumerate(li)if i%2!=0] print (a)

Code trên sẽ trả về kết quả:

Bài 89:

Viết chương trình tạo mảng 3D 3*5*8 có mỗi phần tử là 0.

Sử dụng list comprehension để tạo mảng.

Bài 90:

array = [[ [0 for col in range(8)] for col in range(5)] for row in range(3)] print (array) [[[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]]]

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].

li = [12,24,35,70,88,120,155] li = [x for (i,x) in enumerate(li) if i not in (0,4,5)] print (li)

Bài 91:

Viết chương trình in list sau khi đã xóa giá trị 24 trong [12,24,35,24,88,120,155].

Sử dụng phương thức xóa của list để xóa giá trị.

li = [12,24,35,24,88,120,155] #Code by chúng tôi li = [x for x in li if x!=24] print (li)

Bài 92:

[12, 35, 88, 120, 155]

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.

Sử dụng set() và “&=” để thiết lập điểm giao.

list1=set([12,3,6,78,35,55,120]) list2=set([12,24,35,24,88,120,155]) # Code by chúng tôi list1 &= list2 li=list(list1) print (li)

Bài 93:

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.

Sử dụng set() để lưu trữ các giá trị không bị trùng lặp.

def xoaTrung( li ): list_moi=[] xem = set() for i in li: if i not in xem: chúng tôi i ) list_moi.append(i) # Code by chúng tôi return list_moi li=[12,12,15,24,35,35,24,88,120,155,88,120,155] print ("List sau khi xóa giá trị trùng là:",xoaTrung(li))

Bài 94:

List sau khi xóa giá trị trùng là: [12, 15, 24, 35, 88, 120, 155]

Đị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.

Sử dụng Subclass(Parentclass) để định nghĩa 1 class con.

class Nguoi(object): def getGender(self): return "Unknown" class Nam(Nguoi): def getGender(self): return "Nam" # Code by chúng tôi class Nu(Nguoi): def getGender(self): return "Nữ" aNam = Nam() aNu= Nu() print (aNam.getGender()) print (aNu.getGender())

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ụ:

Bài 95:

Nếu chuỗi nhập vào là chúng tôi thì đầu ra sẽ là:

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.

dic = {} chuoi=input("Nhập chuỗi cần đếm ký tự: ") # Code by chúng tôi for c in chuoi: dic[c] = dic.get(c,0)+1 print ('n'.join(['%s,%s' % (k, v) for k, v in dic.items()])) Nhập chuỗi cần đếm ký tự: chúng tôi q,1 u,1 a,2 n,2 t,1 r,1 i,1 m,2 g,1 .,1 c,1 o,1

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.

Bài 96:

Ví dụ nếu chuỗi nhập vào là:

Thì kết quả đầu ra là:

Sử dụng list[::-1] để lặp list theo thứ tự ngược lại.

chuoi=input("Nhập chuỗi vào đây: ") # Code by chúng tôi chuoi = chuoi[::-1] print (chuoi)

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.

Bài 97:

Ví dụ: Nếu chuỗi sau được nhập vào: q1u2a3n4t5r6i7m8a9n4g5.6c7o8m, thì đầu ra sẽ là: quantrimang.com.

Sử dụng list[::2] để lặp list cách 2 vị trí.

chuoi=input("Nhập chuỗi vào đây: ") # Code by chúng tôi chuoi = chuoi[::2] print (chuoi) Nhập chuỗi vào đây: q1u2a3n4t5r6i7m8a9n4g5.6c7o8m quantrimang.com

Bài 98:

Viết chương trình in tất cả các hoán vị của [1,2,3].

Sử dụng itertools.permutations() để lấy hết các hoán vị của list.

import itertools print (list(itertools.permutations([1,2,3]))) # Code by Quantrimang.com [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]

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?

Sử dụng vòng lặp for để lặp qua tất cả các giả thuyết có thể.

def giai(dau,chan): klg='Không có dáp án phù hợp!' for i in range(dau+1): j=dau-i if 2*i+4*j==chan: return i,j return klg,klg # Code by chúng tôi dau=35 chan=94 dap_an=giai(dau,chan) print (dap_an)

Bài Tập So Sánh Gấp Nhiều Lần Cực Hay Có Lời Giải. / 2023

Đó là dạng so sánh về số lần: một nửa(half), gấp đôi (twice), gấp ba (three times)…

Ở dạng so sánh này, chúng ta sẽ sử dụng so sánh bằng và phải xác định được danh từ là đếm được hay không đếm được.

Ví dụ: The bicycle costs three times as much as the other one.

Lưu ý: twice that many/twice that much = gấp đôi ngần ấy… chỉ được dùng trong văn nói, không được dùng trong văn viết.

Ví dụ: We have expected 80 people at that rally, but twice that many showned up. (twice as many as that number).

PHẦN II. BÀI TẬP ÁP DỤNG

Task 1. Hoàn thành câu bằng dạng so sánh đúng của động từ trong ngoặc

1. Her daughter is chúng tôi (beautiful).

2. Summer is………………..season of the year (hot)

3. That dog isn’t chúng tôi looks (dangerous)

4. In the past, people were chúng tôi today (polite)

5. It is ………..today than it was yesterday (cold)

6. Our hotel was chúng tôi all the others in the town (cheap)

7. What’s ………………..river in the world (long)

8. It was an awful day. It was chúng tôi of my life (bad)

9. Everest is……………………mountain in the world. It is chúng tôi any other mountain (high)

10. I prefer this chair to the other one. It’s ………………(comfortable)

Task 2. Chọn đáp án đúng

a. as many twice as

b. as much twice as

c. twice as much as

d. twice as many as

a. three time as many as

b. three times as much as

c. three time as much as

d. three times as many as

a. 60% as much salary as

b. 60% as many salary as

c. 60% salary as much as

d. 60% salary as many as

a. four times as fastly as

b. four time as fastly as

c. four time as fast as

d. four times as fast as

a. Twice time as many recorders as

b. Twice as many recorder as

c. Two times as many recorders as

d. Two time as many recorder as

Task 3. Chọn đáp án đúng

a. Half as many employees as

b. Half as many employees as

c. Half as many employee as

d. Half times as many employees as

a.70% as many fuel as

b. 70% as much fuel as

c. 70% as much fuels as

d.70% as many fuels as

a. 46% as many milk bottle as

b. 46% as much milk bottle as

c. 46% as many milk bottles as

d. 46% as much milk bottles as

a. More customers, more staff

b. The more customers, the more staff

c. Many customers, many staff

d. Many customers, a lot of staff

a. The depresseder, the higher possibility

b. The more depressed, the more high possibility

c. More depressed, higher

d. The more depressed, the higher possibility

Task 4. Chọn đáp án đúng

a. the easier, the more effective

b. easily, effectively

c. easier, more effective

d. the more easily, the more effectively

a. careful,little

b. more careful, less

c. the more careful, the less

d. the most careful, the least

a. earlier, better

b. the earlier, the better

c. the early, the well

d. the earliest, the best

a. good and good

b. the better and the better

c. better and better

d. the best

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng….miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Follow https://www.facebook.com/hoc.cung.vietjack/ để tiếp tục theo dõi các loạt bài mới nhất về ngữ pháp tiếng Anh, luyện thi TOEIC, Java,C,C++,Javascript,HTML,Python,Database,Mobile…. mới nhất của chúng tôi.

Bài Tập Câu Bị Động Thì Hiện Tại Đơn Cực Hay Có Lời Giải. / 2023

1. Phân biệt câu chủ động – bị động

Câu chủ động là câu được sử dụng khi bản thân chủ thể được nhắc đến tự thực hiện hành động.

Câu bị động được sử dụng khi bản thân chủ thể không tự thực hiện được hành động

2. Cấu trúc biến đổi từ câu chủ động sang câu bị động thì hiện tại đơn

Chủ động: S + V(s/es) + O

Ví dụ: Mary studies English every day.

Bị động: S+ is/am/are + Vp II + (by + O)

Ví dụ: English is studied by Mary everyday.

Phần II. BÀI TẬP ÁP DỤNG

Task 1. Write “A” for active sentences and “P” for passive sentences.

1. They grow coffee in more than 50 countries around the world.

2. The book was bought yesterday.

3. Tim was invited to Kate’s birthday party.

4. She feeds her dogs twice a day.

5. My keys were lost yesterday.

6. The photos were taken by my dad yesterday.

7. They don’t open the bank during the weekend.

8. The letter was sent two days ago.

Task 2. Đổi những câu sau đây từ bị động sang chủ động.

1. This book is bought by my mother.

2. The export division is managed by Mr. Sam.

3. English is spoken.

4. The bike is ridden by Nina every evening.

5. Information technology is studied everyday.

Task 3. Decide whether the following sentences are Correct or Incorrect in terms of grammar.

1. The result of the exam is always announce in June.

Correct Incorrect

2. Is English spoken in Canada?

Correct Incorrect

3. Yesterday, my wallet is taken by a thief.

Correct Incorrect

4. When was the tests marked by the teacher?

Correct Incorrect

5. Tim was offer some cookies by his classmate.

Correct Incorrect

Task 4. Điền am, is hoặc are.

1. This cake………….. eaten by Nina.

2. His exercises…………..corrected by teacher.

3. The chúng tôi by Tom everyday.

4. My room ……………..cleaned by my sister every morning.

5. A report………………written by Sam.

6. The class……………taught by Mr. Henry.

7. Books chúng tôi by my father every day.

8. This pencil case……………….bought.

9. Spiders ……………. eaten by Tommy.

10. Sandwiches………………eaten by Sam every morning.

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng….miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Follow https://www.facebook.com/hoc.cung.vietjack/ để tiếp tục theo dõi các loạt bài mới nhất về ngữ pháp tiếng Anh, luyện thi TOEIC, Java,C,C++,Javascript,HTML,Python,Database,Mobile…. mới nhất của chúng tôi.

Bài Luyện Tập Về Câu Ước Với Wish Hay Có Lời Giải Chi Tiết / 2023

BÀI TẬP VỀ CÂU ƯỚC VỚI WISH

Bài 1: Cho dạng đúng của động từ trong ngoặc:

1. I wish he ……………. here now. (be)

2. She wishes you ……………. better. (feel)

3. I wish that you ……………. here yesterday. (be)

4. I wish he ……………. he work tonight. (finish)

5. We wish you ……………. tomorrow. (come)

6. She wishes she ……………. the window last night. (open)

7. I wish you ……………. earlier yesterday. (leave)

8. We wish they ……………. with us last weekend. (come)

9. They wish he ……………. with them the next day. (come)

10. They wish we ……………. them some food yesterday. (give)

11. We wish you ……………. yesterday. (arrive)

12. I wish I ……………. the answers. (not lose)

13. You wish you ……………. what to do last year. (know)

14. I wish that he ……………. us next year. (visit)

15. She wishes that she ……………. at home now. (be)

16. I wish I ……………. the news. (hear)

17. You wish that he ……………. you last week. (help)

18. I wish I ……………. the subject more interesting. (find)

19. He always wishes he ……………. rich. (be)

20. The boy wishes that he ……………. the competition the next day. (win)

21. I wish the weather ……………. warmer now. (be)

22. They wish he ……………. them next week. (telephone)

23. He wishes you ……………. him in the future. (help)

24. She wishes the mail ……………. soon. (come)

25. They wish she ……………. the arrangements for the meeting next week. (make)

26. We wish they ……………. or we will miss the bus. (hurry)

27. You wish the door …………….. (open)

28. He wishes he ……………. us the book. (show)

29. They wish we ……………. for them. (wait)

30. I wish you ……………. to me. (to write)

31. She wishes you ……………. her. (to join)

32. He wishes he ……………. ready. (to be)

33. She wishes she ……………. how to sing. (to know)

34. They wish it ……………. warmer. (to be)

35. Does he wish he ……………. younger? (to be)

36. She wishes she ……………. the arrangements earlier. (make)

37. They wish they ……………. the appointment. (not forget)

38. We wish it ……………. yesterday. (not snow)

39. We always wish we ……………. fluent in other languages. (be)

40. I wish I ……………. near my school. ( live)

41. I wish I ……………. her address. ( know)

42. I wish I ……………. taller. (be )

43. I wish I chúng tôi now. (meet)

44. I wish he chúng tôi tomorrow. (not leave)

45. She wishes she chúng tôi homework last night. (finish)

46. I wish they chúng tôi last Sunday. (come)

47. I wish they chúng tôi last week. (visit)

48. She wishes she …………… her holiday at the seaside last weekend. ( spend)

49. I wish the weather chúng tôi yesterday. (be not)

50. I wish I …………………a doctor when I grow up. ( be )

51. They wish it …………………..tomorrow. (not rain)

52. We wish we ……………….. a test next Tuesday. (not have)

53. I wish it ………………….. fine on the party next week. (be)

54. I wish tomorrow ………………a beautiful day. (be)

Bài 2: Chọn đáp án đúng để hoàn thành câu sau.

1. I wish I (have/ has/ had) a lot of interesting book.

2. I wish I (would meet/ met/ meet ) her tomorrow.

3. I wish I (was/ were/ am) your sister.

4. I wish they ( won/ had won/ would win) the match last Sunday

5. I wish they ( played/ playing/ play) soccer well.

6. She wishes she (will/ would/ can) come here to visit us.

7. I wish yesterday ( were /was/had been ) a better day.

8. I wish I ( can speak/ could speak/ will speak) many languages

9. I wish tomorrow ( were/ will be/ would be) Sunday.

10. I wish I ( am/ was/ were) a movie star .

Bài 3: Tìm và sửa lỗi sai trong các câu sau.

1. She wish she could speak English well.

2. I wish it didn’t rained now.

3. I wish I was a doctor to save people.

4. I wish I have more time to look after my family.

5. He wishes it didn’t rain yesterday.

6. I wish my father gives up smoking in the near future.

7. I wish I studied very well last year.

8. I wish you will come to my party next week.

9. I wish it stops raining now.

10. I wish you are my sister.

11. She wishes she is the most beautiful girl in the world.

12. I wish Miss Brown will come here and stay with us next week.

13. I wish I am at home with my family now.

14. I wish I could been there with you.

15. She wish she could go home now.

2. We had a lot of homework yesterday.

3. It is raining heavily.

4. It was cold last night. .

5. They work slowly.

5. She doesn’t join in the trip.

6. I am not good at English.

7. He studies badly.

8. He doesn’t like playing sports.

9. I don’t have a computer.

10. Today isn’t a holiday.

11. I can’t sing this song.

12. He was punished by his mother.

13. They won’t come here again.

14. He won’t go swimming with me.

15. We didn’t understand them.

16. I will be late for school.

17. The bus was late today.

18. She doesn’t like this place.

19. These students talked too much in class.

20. I can’t play basketball.

1. were 2. felt 3. had been 4. would finish

5. would come 6. had 7. had left 8. had come

9. would come 10. had given 11. had arrived 12. had not lost

13. had known 14. would visit 15. were 16. had heard

17. had helped 18. found 19. were 20. would win

21. were 22. would telephone 23. would help 24. would come

25. would make 26. would hurry 27. would open 28. had shown

29. would wait 30. would write 31. would join 32. were

33. knew 34. were 35. were 36. had made

37. had not forgotten 38. hadn’t snowed chúng tôi 40. Lived

41. knew 42. were 43. met 44. wouldn’t leave

45. had finished 46. had come 47. had visit 48. had spent

49. weren’t hot 50. were 51. wouldn’t rain 52. wouldn’t have

53. would be 54. would be

2. would meet

8. could speak

1. I wish I didn’t have to study.

2. I wish we hadn’t had a lot of homework yesterday.

3. I wish it didn’t rain heavily.

4. I wish it hadn’t been cold last night.

5. I wish they didn’t work slowly.

5.I wish she joined in the trip.

6. I wish I were good at English.

7. I wish he didn’t studied badly.

8. I wish he liked playing sports.

9.I wish I had a computer.

10. I wish today were a holiday.

11. I wish I could sing this song.

12.I wish he hadn’t been punished by his mother.

13.I wish they would come here again.

14. I wish I he would go swimming with me.

15. We wish we had understood them.

16.I wish I wouldn’t be late for school.

17. I wish the bus hadn’t been late today.

18. I wish she liked this place.

19. I wish these students hadn’t talked too much in class.

20. I wish I could play basketball.

Bạn đang đọc nội dung bài viết Hơn 100 Bài Tập Python Có Lời Giải (Code Mẫu) / 2023 trên website Comforttinhdauthom.com. Hy vọng một phần nào đó những thông tin mà chúng tôi đã cung cấp là rất hữu ích với bạn. Nếu nội dung bài viết hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!