Hơn 100 bài tập Python có lời giải(code mẫu ) » Cập nhật tin tức Công Nghệ mới nhất | https://ta-ogilvy.vn

Bài tập Python thực hành với code mẫu

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 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 Python
Mỗi bài tập Python trong trang này sẽ gồm có 3 phần như sau: Mình sẽ để 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 1
Bà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 ý: Sử dụng range(#begin, #end) 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))

Hơn 100 bài tập Python kèm code mẫu được chàng trai zhiwehu san 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 để tương thích với bản Python 3. x giúp những bạn tiện học và rèn luyện 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 hoàn toàn có thể không chạy được code vì trong bản Python mới nhiều lệnh, hàm đã được biến hóa. Số bài tập Python này sẽ được chia thành 3 Lever dành cho cả người mới mở màn 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ó khá đầy đủ những phần là nhu yế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 tìm hiểu thêm. Bây giờ mời bạn đi vào những nội dung đơn cử nhé. 1. Mô tả Lever PythonLevel 1 : Người vừa trải qua khóa học tổng quan về Python, hoàn toàn có thể xử lý một số ít yếu tố với 1, 2 class hoặc hàm Python. Những bài tập thuộc cấp độ này hoàn toàn có thể tìm thấy trong những sách giáo khoa, tài liệu hướng dẫn thường thì. Level 2 : Người mới học Python nhưng đã có nền tảng lập trình tương đối can đảm và mạnh mẽ từ trước, hoàn toàn có thể xử lý những vẫn đề tương 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 để xử lý những yếu tố phức tạp hơn bằng cách sử dụng nhiều hàm, cấu trúc tài liệu và thuật toán nhiều mẫu mã. Ở Lever này bạn hoàn toàn có thể xử lý những yếu tố 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ẽ để nguyên xi dạng gốc như thế này, bạn hoàn toàn có thể xem câu hỏi, gợi ý sau đó tự thực hành thực tế 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ổng thể những 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 ý : Sử dụng range ( # begin, # end ) Code mẫu :

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 tài liệu nguồn vào được cung ứng, 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ư thể số nguyên từ 1 đến n ( gồm có 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 nhu yế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*iprint (d)

Bài 04:

Câu hỏi : Viết chương trình gật đầu một chuỗi số, phân tách bằng dấu phẩy từ giao diện tinh chỉnh và điều khiển, tạo ra một list và một tuple chứa mọi số. Ví dụ : Đầu vào được phân phối 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 nhu yếu nhập vào những giá trị sau đó dùng quy tắc quy đổi kiểu tài 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ối thiểu 2 method : getString : để nhận một chuỗi do người dùng nhập vào từ giao diện tinh chỉnh và điều khiển. printString : in chuỗi vừa nhập sang chữ hoa. Thêm vào những hàm hiểm tra đơn thuầ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__ để thiết kế xây dựng những tham số. Code mẫu :

class InputOutString(object): def __init__(self):  self.s = ""  def getString(self):  self.s = input("Nhập chuỗi:")  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 1 số ít. Gợi ý : Sử dụng toán 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ệndef square(num):  #định nghĩa bình phương của một số return num ** 2print (square(2)) #in bình phương của 2print (square(3)) #in bình phương của 3print (square(x)) #in bình phương của x

Vì đề bài không nhu yếu đơn cử 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 hoàn toà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ố ít 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 ý : Sử dụng __doc__ Code mẫu :

print (abs.__doc__)print (int.__doc__)print (input.__doc__)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 ** 2print (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 ý : Code mẫu :

class Person: # Định nghĩa lớp "name" name = "Person" def __init__(self, name = None): # self.name là biến instance self.name = namejeffrey = 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))

4. Bài tập Python level 2

Bà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 và thắt chặt 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, những giá trị của D được phân làn 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ố ít 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 tài liệu nguồn vào được phân phối cho thắc mắc, nó được giả định là đầu vào do người dùng nhập từ giao diện điều khiển và tinh chỉnh. Code mẫu :

#!/usr/bin/env pythonimport mathc=50h=30value = []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)))))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ị thành phần 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 tinh chỉnh và điều khiển do người dùng nhập vào. Code mẫu :

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)]for row in range(rowNum):  for col in range(colNum): multilist[row][col]= row*colprint (multilist)

Bài 11:

Câu hỏi : Viết một chương trình gật đầu 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 vần âm, phân tách nhau bằng dấu phẩy. Giả sử nguồn 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 tài liệu nguồn vào được nhập vào chương trình nó nên được giả định là tài liệu được người dùng nhập vào từ giao diện tinh chỉnh và điều khiển. Code mẫu :

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

Bài 12:

Câu hỏi : Viết một chương trình đồng ý chuỗi là những dòng được nhập vào, chuyển những dòng này thành chữ in hoa và in ra màn hình hiển thị. Giả sử nguồn 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 tài liệu nguồn vào được nhập vào chương trình nó nên được giả định là tài liệu được người dùng nhập vào từ giao diện tinh chỉnh và điều khiển. Code mẫu :

lines = []while True: s = input() if s: lines.append(s.upper()) else:  break;for sentence in lines:  print (sentence)

Bài 13:

Câu hỏi : Viết một chương trình đồng ý nguồn vào là một chuỗi những từ tách biệt bởi khoảng chừng trắng, vô hiệu những từ trùng lặp, sắp xếp theo thứ tự bảng vần âm, rồi in chúng. Giả sử nguồn 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 tài liệu nguồn vào được nhập vào chương trình nó nên được giả định là tài liệu được người dùng nhập vào từ giao diện tinh chỉnh và điều khiển. Sử dụng set để vô hiệu tài liệu trùng lặp tự động hóa và dùng sorted ( ) để sắp xếp tài liệu. Code mẫu :

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

Bài 14:

Câu hỏi : Viết một chương trình đồng ý nguồn vào là chuỗi những 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 những số chia hết cho 5 thành dãy phân tách bởi dấu phẩy. Ví dụ nguồn vào là : 0100,0011,1010,1001 Đầu ra sẽ là : 1010 Gợi ý : Trong trường hợp tài liệu nguồn vào được nhập vào chương trình nó nên được giả định là tài liệu được người dùng nhập vào từ giao diện tinh chỉnh và điều khiển. Code mẫu :

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)print (','.join(value))

Bài 15:

Câu hỏi : Viết một chương trình tìm toàn bộ những số trong đoạn 1000 và 3000 ( tính cả 2 số này ) sao cho toàn bộ những chữ số trong số đó là số chẵn. In những 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 tài liệu nguồn vào được nhập vào chương trình nó nên được giả định là tài liệu được người dùng nhập vào từ giao diện điều khiển và tinh chỉnh. Code mẫu :

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)print (",".join(values))

Bài 16:

Câu hỏi : Viết một chương trình đồng ý nguồn vào là một câu, đếm số vần âm và chữ số trong câu đó. Giả sử nguồn 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 tài liệu nguồn vào được nhập vào chương trình nó nên được giả định là tài liệu được người dùng nhập vào từ giao diện điều khiển và tinh chỉnh. Code mẫu :

s = input("Nhập câu của bạn: ")d={"DIGITS":0, "LETTERS":0}for c in s: if c.isdigit(): d["DIGITS"]+=1 elif c.isalpha(): d["LETTERS"]+=1 else: passprint ("Số chữ cái là:", d["LETTERS"])print ("Số chữ số là:", d["DIGITS"])

Bài 17:

Câu hỏi : Viết một chương trình đồng ý nguồn vào là một câu, đếm chữ hoa, chữ thường. Giả sử nguồn vào là : Quản Trị Mạng Thì đầu ra là : Chữ hoa : 3 Chữ thường : 8 Gợi ý : Trong trường hợp tài liệu nguồn vào được nhập vào chương trình nó nên được giả định là tài liệu được người dùng nhập vào từ giao diện điều khiển và tinh chỉnh. Code mẫu :

s = input("Nhập câu của bạn: ")d={"UPPER CASE":0, "LOWER CASE":0}for c in s:    if c.isupper():        d["UPPER CASE"]+=1    elif c.islower():        d["LOWER CASE"]+=1    else:        passprint ("Chữ hoa:", d["UPPER CASE"])print ("Chữ thường:", d["LOWER CASE"])

Bà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 tài liệu nguồn vào được nhập vào chương trình nó nên được giả định là tài liệu được người dùng nhập vào từ giao diện tinh chỉnh và điều khiển. Code mẫu :

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) )print ("Tổng cần tính là: ",n1+n2+n3+n4)

Bài 19:

Câu hỏi : Sử dụng một list để lọc những số lẻ từ list được người dùng nhập vào. Giả sử nguồn 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 tài liệu nguồn vào được nhập vào chương trình nó nên được giả định là tài liệu được người dùng nhập vào từ giao diện điều khiển và tinh chỉnh. Code mẫu :

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

Bài 20:

Câu hỏi : Viết chương trình tính số tiền thực của một thông tin tài khoản ngân hàng nhà nước dựa trên nhật ký thanh toán giao dịch được nhập vào từ giao diện điều khiển và tinh chỉnh. Định dạng nhật ký được hiển thị như sau :

D 100
W 200

( D là tiền gửi, W là tiền rút ra ). Giả sử nguồn vào được phân phối là : D 300 D 300 W 200 D 100 Thì đầu ra sẽ là : 500 Gợi ý : Trong trường hợp tài liệu nguồn vào được nhập vào chương trình nó nên được giả định là tài liệu được người dùng nhập vào từ giao diện điều khiển và tinh chỉnh. Code mẫu :

import sysnetAmount = 0while 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:        passprint (netAmount)

5. Bài tập Python level 3

Bài 21:

Câu hỏi:

Một website nhu yếu người dùng nhập tên người dùng và mật khẩu để Đ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 chuẩn kiểm tra mật khẩu gồm có :

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 đồng ý 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ó cung ứng những tiêu chuẩn 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 #, 2 w3E *, 2W e3345 Thì đầu ra sẽ là : ABd1234 @ 1 Gợi ý : Trong trường hợp tài liệu nguồn vào được nhập vào chương trình nó nên được giả định là tài liệu được người dùng nhập vào từ giao diện tinh chỉnh và điều khiển. Code mẫu :

import revalue = []items=[x for x in input("Nhập mật khẩu: ").split(',')]for p in items:    if len(p)<6 or len(p)>12:        continue    else:        pass    if not re.search("[a-z]",p):       continue    elif not re.search("[0-9]",p):       continue    elif not re.search("[A-Z]",p):       continue    elif not re.search("[$#@]",p):       continue    elif re.search("s",p):       continue    else:       pass    value.append(p)print (",".join(value))

Bà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 nguồn 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 tài liệu nguồn vào được nhập vào chương trình nó nên được giả định là tài liệu được người dùng nhập vào từ giao diện điều khiển và tinh chỉnh. Sử dụng itemgetter để đồng ý nhiều key sắp xếp. Code mẫu :

from operator import itemgetter, attrgetterl = []while True:    s = input()    if not s:       break    l.append(tuple(s.split(",")))print (sorted(l, key=itemgetter(0,1,2)))

Bài 23:

Câu hỏi : Xác định một class với generator hoàn toàn có thể lặp lại những số nằm trong khoảng chừng 0 và n, và chia hết cho 7. Gợi ý : Sử dụng yield. Code mẫu :

def putNumbers(n):    i = 0    while i        j=i        i=i+1        if j%7==0:            yield jfor i in putNumbers (100):     print (i)

Bài 24:

Câu hỏi : Một Robot chuyển dời trong mặt phẳng mở màn từ điểm tiên phong ( 0,0 ). Robot hoàn toàn có thể vận động và di chuyển theo hướng UP, DOWN, LEFT và RIGHT với những bước nhất định. Dấu vận động và di chuyển của robot được đánh hiển thị như sau : UP 5 DOWN 3 LEFT 3 RIGHT 3 Các số lượng sau phía sau hướng vận động và di chuyển chính là số bước tiến. Hãy viết chương trình để giám sát khoảng cách từ vị trí hiện tại đến vị trí tiên phong, sau khi robot đã vận động và di chuyển một quãng đường. Nếu khoảng cách là 1 số ít 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 tài liệu nguồn vào được nhập vào chương trình nó nên được giả định là tài liệu được người dùng nhập vào từ giao diện điều khiển và tinh chỉnh. Code mẫu :

import mathpos = [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: passprint (int(round(math.sqrt(pos[1]**2+pos[0]**2))))

Bài 25:

Câu hỏi : Viết chương trình tính tần suất những từ từ input. Output được xuất ra sau khi đã sắp xếp theo bảng vần âm. 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 tài liệu nguồn vào được cung ứng cho thắc mắc, nó phải được giả định là một input được nhập từ giao diện điều khiển và tinh chỉnh. Code mẫu :

freq = {} # frequency of words in text
line = input()
for word in line.split():
freq[word] = freq.get(word,0)+1

words = sorted(freq.keys())

for w in words:
print ('%s:%d' % (w,freq[w]))

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

Bài 26:

Câu hỏi : Định nghĩa 1 hàm hoàn toàn 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 hoàn toàn có thể tính tổng trong hàm và trả về giá trị. Code mẫu :

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

Bài 27:

Câu hỏi : Định nghĩa một hàm hoàn toàn có thể chuyển số nguyên thành chuỗi và in nó ra giao diện tinh chỉnh và điều khiển Gợi ý : Sử dụng str ( ) để quy đổi một số ít thành chuỗi. Code mẫu :

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

Bài 28:

Câu hỏi : Định nghĩa hàm hoàn toàn 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 và tinh chỉnh. Gợi ý : Sử dụng int ( ) để quy đổi một chuỗi thành số nguyên. Code mẫu :

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

Bài 29:

Câu hỏi : Định nghĩa hàm hoàn toàn có thể nhận 2 chuỗi từ input và nối chúng sau đó in ra giao diện điều khiển và tinh chỉnh Gợi ý : Sử dụng + để nối những chuỗi. Code mẫu :

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

Bà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 và tinh chỉnh. Nếu 2 chuỗi có chiều dài như nhau thì in tổng thể những 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 :

def printValue(s1,s2):   len1 = len(s1) len2 = len(s2) if len1>len2: print (s1) elif len2>len1: print (s2) else: print(s1) print (s2) printValue("one","three")

Bài 31:

Câu hỏi : Định nghĩa hàm hoàn toàn có thể gật đầu 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 :

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

Câu hỏi : Định nghĩa một hàm hoàn toàn có thể in dictionary chứa key là những số từ 1 đến 3 ( gồm có cả hai số ) và những giá trị bình phương của chúng. Gợi ý : Code mẫu :

def printDict():d=dict() d[1]=1 d[2]=2**2 d[3]=3**2 print (d) printDict()

Chạy code trên bạn sẽ được tác dụng là một dictionary như sau : { 1 : 1, 2 : 4, 3 : 9 }. Nếu chưa hiểu lắm về kiểu tài liệu dictionary này bạn hãy đọc lại bài : Kiểu tài 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 hoàn toàn có thể in dictionary chứa những key là số từ 1 đến 20 ( gồm có cả 1 và 20 ) và những giá trị bình phương của chúng. Gợi ý : Code mẫu :

def printDict():  d=dict()   for i in range(1,21):   d[i]=i**2   print (d) 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 : Câu hỏi : Định nghĩa một hàm hoàn toàn có thể tạo dictionary, chứa những key là số từ 1 đến 20 ( gồm có cả 1 và 20 ) và những giá trị bình phương của chúng. Hàm chỉ in những giá trị mà thôi. Gợi ý : Code mẫu :

def printDict():  d=dict()   for i in range(1,21):   d[i]=i**2 for (k,v) in d.items():   print (v) printDict()

Kết quả bạn nhận được khi chạy code trên là những 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 hoàn toàn có thể tạo ra một dictionary chứa key là những số từ 1 đến 20 ( gồm có cả 1 và 20 ) và những giá trị bình phương của key. Hàm chỉ cần in những key. Gợi ý : Tương tự như bài 34. Code mẫu :

def printDict():d=dict() for i in range(1,21): d[i]=i**2 for k in d.keys(): print (k) printDict() 

Chạy code trên bạn sẽ nhận được những key trong dictionary, chính là những số từ 1 đến 20.

Bài 36:

Câu hỏi : Định nghĩa một hàm hoàn toàn có thể tạo và in list chứa những giá trị bình phương của những số từ 1 đến 20 ( tính cả 1 và 20 ). Gợi ý : Code mẫu :

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

Chạy code trên bạn sẽ nhận được một list chứa những giá trị bình phương của những số từ 1 đến 20.

Bài 37:

Câu hỏi : Định nghĩa một hàm hoàn toàn có thể tạo list chứa những giá trị bình phương của những số từ 1 đến 20 ( gồm có cả 1 và 20 ) và in 5 mục tiên phong trong list. Gợi ý : Code mẫu :

def printList():  li=list()   for i in range(1,21):   li.append(i**2) print (li[:5]) 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 những số từ 1 đến 5.

Bài 38:

Câu hỏi : Định nghĩa một hàm hoàn toàn có thể tạo ra list chứa những giá trị bình phương của những số từ 1 đến 20 ( gồm có cả 1 và 20 ), rồi in 5 mục ở đầu cuối trong list. Gợi ý : Tương tự bài 37. Code mẫu :

def printList():li=list() for i in range(1,21): li.append(i**2) print li[-5:] 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.

Bài 39:

Câu hỏi : Định nghĩa một hàm hoàn toàn có thể tạo list chứa giá trị bình phương của những số từ 1 đến 20 ( gồm có cả 1 và 20 ). Sau đó in tổng thể những giá trị của list, trừ 5 mục tiên phong. Gợi ý : Tương tư bài 37, 38. Code mẫu :

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]

Bài 40:

Câu hỏi : Định nghĩa 1 hàm hoàn toàn có thể tạo và in một tuple chứa những giá trị bình phương của những số từ 1 đến 20 ( tính cả 1 và 20 ). Gợi ý : Code mẫu :

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)

Bà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 50% số giá trị tiên phong 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 :

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

Kết quả :

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

Bà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 ý: Code mẫu:   Tạm thế đã nhé, dài lắm, lại vừa dịch vừa fix code nên hơi lâu, mình sẽ cố gắng dịch xong sớm để các bạn có bài thực hành. Bạn bookmark lại để check bài mới thường xuyên nhé.

Nguồn : http://quantrimang.com/hon-100-bai-tap-python-co-loi-giai-code-mau-142456

Bài 42 : Câu hỏi : Viết một chương trình để tạo tuple khác, chứa những giá trị là số chẵn trong tuple ( 1,2,3,4,5,6,7,8,9,10 ) cho trước. Gợi ý : Code mẫu : Tạm thế đã nhé, dài lắm, lại vừa dịch vừa fix code nên hơi lâu, mình sẽ cố gắng nỗ lực dịch xong sớm để những bạn có bài thực hành thực tế. Bạn bookmark lại để check bài mới tiếp tục nhé .

Source: https://mix166.vn
Category: Hỏi Đáp

Xổ số miền Bắc