Bài tập python có bản cho người mới bắt đầu
Mời bạn xem phiên bản đầy đủ tại đây https://divin.dev/python/2022/03/14/20-bai-tap-python.html Bài 1. Viết chương trình tìm tất cả các số chia hết cho j=[] for i in range(2000, 3201): if (i%7==0) and (i%5!=0): j.append(str(i)) print (','.join(j)) Nếu chỉ cần in ra màn hình kết quả, chúng ta có thể không cần sử dụng for i in range(2000, 3201): if (i % 7 == 0) and (i % 5 != 0): print(i, end=' ') Bài 2. 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à n = int(input("Nhập số cần tính giai thừa:")) def fact(n): if n==0: return 1 else: return n*fact(n-1) print(fact(n)) Nếu chỉ sử dụng vòng lặp, không sử dụng hàm và lời gọi đệ quy, ta có thể làm như sau: n = int(input('Enter a number ')) factorial = 1 for i in range(1,n+1): factorial *= i print(factorial) Bài 03. Với số nguyên n = int(input('Enter a number ')) d = dict() for i in range(1, n+1): d[i] = i*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 Ví dụ: Đầu vào được cung cấp là
Chương trình này chỉ đơn giản là sử dụng hàm values=input("Nhập vào các giá trị:") l=values.split(",") t=tuple(l) print (l) print (t) Bài 05. Viết một hàm tính giá trị bình phương của một số. # square of a number x = int(input("Enter a number: ")) def square(x): return x * x Bài 06. Viết chương trình tính số Fibonacci thứ # find fibonacci number n = int(input("Enter a number: ")) def fibonacci(n): if n == 0: return 0 elif n == 1: return 1 else: return fibonacci(n-1) + fibonacci(n-2) Bài 07. Viết một chương trình nhập vào một danh sách các số và tạo một danh sách mới chỉ gồm phần tử đầu tiên và cuối cùng của danh sách đó. Viết chương trình sử dụng hàm. Ví dụ, nhập vào danh sách def list_ends(a_list): return [a_list[0], a_list[len(a_list)-1]] Bài 08. Viết một hàm nhận vào ba số thực và trả về số lớn nhất trong ba số. Lưu ý, không sử dụng hàm # max of three numbers def max_of_three(a, b, c): if a > b: if a > c: return a else: return c else: if b > c: return b else: return c Bài 09. Viết chương
trình yêu cầu người dùng nhập vào một chuỗi và in ra màn hình thông báo chuỗi đó có phải là chuỗi palindrome hay không. (Chuỗi Palindrome là một chuỗi mà đọc xuôi và ngược đều như nhau, ví dụ Cách giải thứ nhất, sử dụng cách đảo ngược xâu: wrd=input("Please enter a word") wrd=str(wrd) rvs=wrd[::-1] print(rvs) if wrd == rvs: print("This word is a palindrome") else: print("This word is not a palindrome") Cách thứ hai, sử dụng vòng lặp def reverse(word): x = '' for i in range(len(word)): x += word[len(word)-1-i] return x word = input('give me a word:\n') x = reverse(word) if x == word: print('This is a Palindrome') else: print('This is NOT a Palindrome') Bài 10. Viết chương trình hỏi người dùng một số tự nhiên n = int(input("Enter a number: ")) for i in range(1, n + 1): if n % i == 0: print(i) Bài
11. Viết một chương trình (sử dụng các hàm) yêu cầu người dùng nhập một chuỗi dài gồm nhiều từ. In lại cho người dùng một chuỗi mới với thứ tự từ ngữ được đảo ngược lại với thứ tự ban đầu. Ví dụ, khi người dùng nhập chuỗi: sentense = input("Enter a sentence: ") words = sentence.split() words.reverse() sentence = " ".join(words) print(sentence) Bài 12. Viết chương trình kiểm tra xem số # check prime number n = int(input("Enter a number: ")) for i in range(2, n): if n % i == 0: print("Not a prime number") break else: print("Prime number") Bài 13. Viết một chương trình nhập vào hai số tự nhiên Ví dụ: Giá trị m, n = map(int, input('Enter two numbers: ').split()) array2 = [[0 for i in range(n)] for j in range(m)] for row in range(m): for col in range(n): array2[row][col] = row * col print(array2) Bài 14. Viết một chương trình 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à: items=[x for x in input("Nhập một chuỗi: ").split(',')] items.sort() print (','.join(items)) Bài
15. Viết chương trình giải phương trình bậc hai $ax^2+bx+c=0$ với a, b, c = map(int, input('Nhập a, b, c cách nhau bằng dấu cách: ').split()) if a == 0: if b == 0: if c == 0: print("Phương trình có vô số nghiệm") else: print("Phương trình vô nghiệm") else: print("Phương trình có một nghiệm x =", -c/b) else: delta = b**2 - 4*a*c if delta < 0: print("Phương trình vô nghiệm") elif delta == 0: print("Phương trình có nghiệm kép x1 = x2 =", -b/(2*a)) else: print("Phương trình có 2 nghiệm phân biệt x1 =", (-b + delta**0.5)/(2*a), "và x2 =", (-b - delta**0.5)/(2*a)) Bài 16. Viết chương trình tính tổng của các chữ số của môt số nguyên dương def totalDigitsOfNumber(n): total = 0; while (n > 0): total = total + n % 10; n = int(n / 10); return total; n = int(input("Nhập số nguyên dương n = ")); print("Tổng các chữ số của", n , "là", totalDigitsOfNumber(n)); Bài 17. Viết chương trình sinh các xâu nhị phân có độ dài Xem lời giải tại đây Thuật toán sinh các dãy nhị phân có độ dài n Bài 18. Viết chương trình giải bài toán Bài toán Tháp Hà Nội (Tower of Hanoi) Bài 19. Viết chương trình phân tích số nguyên dương def phanTichSoNguyen(n): i = 2; listNumbers = []; # phân tích while (n > 1): if (n % i == 0): n = int(n / i); listNumbers.append(i); else: i = i + 1; # nếu listNumbers trống thì add n vào listNumbers if (len(listNumbers) == 0): listNumbers.append(n); return listNumbers; n = int(input("Nhập số nguyên dương n = ")); listNumbers = phanTichSoNguyen(n); size = len(listNumbers); sb = ""; for i in range(0, size - 1): sb = sb + str(listNumbers[i]) + " x "; sb = sb + str(listNumbers[size-1]); # in kết quả ra màn hình print("Kết quả:", n, "=", sb); Bài 20. Định nghĩa một
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à o2.edu.vn thì đầu ra phải là O2.EDU.VN 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() |