Cách tiếp cận này không sử dụng hàm max []
Nếu bạn phải tìm nó mà không sử dụng chức năng tối đa thì bạn có thể làm theo mã dưới đây:
a=[1,2,3,4,6,7,99,88,999] max= 0 for i in a: if i > max: max=i print[max]Ngoài ra nếu bạn muốn tìm chỉ số của max kết quả,
print[a.index[max]]
Hôm nay ta sẽ tìm hiểu vòng lặp for. Trước tiên ta tìm hiểu khái niệm List trong python. List trong python giống như mảng [Array] trong các ngôn ngữ lập trình khác. Thay vì lưu giá trị vào biến, ta có thể lưu giá trị vào List. List có thể lưu nhiều giá trị cùng một lúc, còn biến chỉ lưu được 1 giá trị.
Ta khai báo 1 list và gán giá trị vào list.
myList = [1,2,3]Để truy xuất vào list ta dùng index. Trong list thì index bắt đầu từ 0.
index : 0 1 2 myList = [1,2,3]Để lấy ra giá trị đầu tiên
print[myList[0]] # 1Để lặp qua list này ta dùng for.
for item in myList: print["Value = ",item] # Value = 1 # Value = 2 # Value = 3Vòng lặp sẽ duyệt qua từng phần tử của myList. Từng phần tử đại diện bởi biến item. Ta có thể đặt bất cứ tên gì ta muốn.
Ta có thể viết như sau.
for element in ['cat','dog','lion']: print[element] # cat # dog # lionVòng lặp for sẽ duyệt qua list = ['cat','dog','lion'] và in ra từng phần tử.
Ví dụ ta muốn lặp các giá trị từ 0 tới 10. Thay vì ta phải tạo 1 list.
myList2 = [0,1,2,3,4,5,6,8,9,10]rồi dùng for để lặp. Ta có thể dùng cách sau.
for item in range[0,11]: print[item] # 0 # 1 # 2 # 3 # 4 # 5 # 6 # 7 # 8 # 9 # 10Khi khai báo in range [0,11] thì chỉ lặp đến 10. không bao gồm 11 nhé.
Ta có thể dùng for để tính tổng các giá trị trong list. Ta xem ví dụ sau.
Hoặc tìm số lớn nhất trong list.
my_array = [1,2,3,4] max = 0 for element in my_array: if element > max: max = element print["Max : ", max] # Max: 4Hoặc tìm số nhỏ nhất trong list.
min = 10 my_array = [1,3,4,5,7] for element in my_array: if element < min: min = element print["Min", min] # Min 1Ta có thể loop qua 1 chuỗi string
index 01234 myString = "Hello"Chuỗi cũng có index giống như list. Ta có thể truy xuất vào giá trị đầu tiên của chuỗi.
print[myString[0]] # HTa có thể tính xem chuỗi có bao nhiêu ký tự.
print[len[myString]] # 5Ta có thể truy cập vào ký tự cuối cùng của chuỗi.
length = len[myString] # 5 print[myString[length -1]] # oTa thấy length - 1 = 5 -1 = 4, index 4 có giá trị là "o".
Ta thử loop qua chuỗi nhé.
for element in myString: print[element] # H # e # l # l # oVậy ta đã tìm hiểu xong for loop trong python rồi nhé. [*_+]
Đề bài: Viết chương trình sử dụng ngôn ngữ lập trình Python để nhập vào một danh sách các số nguyên. Tìm và hiển thị ra màn hình phần tử của danh sách có giá trị lớn nhất và nhỏ nhất.
Yêu cầu kiến thức:
- Nắm được cách tổ chức chương trình, phân chia thành các hàm
- Nắm được cách phân tích và thiết kế chương trình, cách sử dụng vòng lặp trong Python
- Cách sử dụng danh sách list trong Python
Code tham khảo dưới viết trên Python ver 3.8:
Kết luận:
- Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
- Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây
Các thẻ: lap trinhlập trình python
Hãy viết một hàm Python dùng để tìm giá trị lớn nhất của ba số được nhập vào từ bàn phím, bạn có thể sử dụng hàm put để nhận dữ liệu từ người dùng.
Bài giải
-------------------- ######## --------------------
Hàm tìm số lớn nhất này cũng khá đơn giản, nhưng qua đó cũng giúp bạn hiểu được cách khai báo hàm và truyền tham số vào hàm.
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
Tham khảo bài giải dưới đây.
""" HỌC PYTHON TẠI FREETUTS.NET AUTHOR: CƯỜNG NGUYỄN """ print["Bài tập Python dùng hàm tìm số lớn nhất trong ba số"] # Hàm tìm số lớn nhất def find_max[a, b, c]: max = a if max < b: max = b if max < c: max = c return max # Chương trình chính print["Nhập vào số thứ nhất: "] a = float[input[]] print["Nhập vào số thứ hai: "] b = float[input[]] print["Nhập vào số thứ ba: "] c = float[input[]] print["Số lớn nhất trong ba số ", a, " ", b, " ", c, " là ", find_max[a, b, c]]
Giả sử mình nhập vào ba số 10, 12, 03 thì kết quả sẽ như hình sau:
Bài viết này được đăng tại [free tuts .net]
Câu hỏi thường gặp liên quan:
Cùng chuyên mục:
Hàm max[] được tích hợp sẵn trong Python trả về phần tử lớn nhất trong một iterable hoặc lớn nhất trong những tham số truyền vào.
Nếu các giá trị là các chuỗi sẽ so sánh theo thứ tự chữ cái alphabet.
Cú pháp hàm max[] trong Python
Hàm max[] trong Python có 2 dạng:
max[iterable, *iterables[,key, default]]Hoặc:
max[item1, item2, *item[, key]]Các tham số của hàm max[]
Hàm max[] làm việc với hai dạng tham số tương ứng với hai cú pháp đã nêu ở trên:
1. max[iterable, *iterables[, key, default]]
- iterable: Bắt buộc. Các tuple, string, set, dictionary hoặc đối tượng iterator mà bạn cần tìm phần tử lớn nhất trong đó.
- *iterables: Tùy chọn. Iterable nào lớn nhất sẽ được trả về.
- key: Tùy chọn. Key function, nơi các iterable đi qua. Phép so sánh được thực hiện dựa trên kết quả trả về sau khi đi qua key function.
- default: Tùy chọn. Giá trị mặc định khi iterable trống.
2. max[item1, item2, *item[, key]]
- item1, item2: Bắt buộc. Đối tượng để so sánh, có thể là number, string...
- *item: Tùy chọn. Các đối tượng khác để so sánh.
→ Cần ít nhất hai đối tượng để thực hiện so sánh với hàm max[]. - key: Tùy chọn. Key function, nơi các item đi qua. Phép so sánh được thực hiện trên kết quả trả về sau khi đi qua key function.
Giá trị trả về từ max[]
Hàm max trả về kết quả khác nhau tương ứng với hai loại như trên:
1. max[iterable, *iterables[, key, default]]
Trường hợp | Key | Default | Giá trị trả về |
Iterable trống | Có hoặc Không | Không có | Sinh ra ngoại lệ ValueError |
Iterable trống | Có | Có | Trả về giá trị Default |
Một iterable [không trống] | Không | Có hoặc Không | Trả về số lớn nhất trong iterable |
Một iterable [không trống] | Có | Có hoặc Không | Truyền từng phần tử trong iterable cho hàm key, kết quả trả về là phần tử lớn nhất dựa trên giá trị trả về từ hàm key |
Nhiều iterable [không trống] | Không | Có hoặc Không | Trả về iterable lớn nhất |
Nhiều iterable [không trống] | Có | Có hoặc Không | Truyền từng iterable cho hàm key. Kết quả trả về là iterable lớn nhất dựa trên giá trị trả về từ hàm key |
2. max[item1, item2, *item[, key]]
Trường hợp | Key | Giá trị trả về |
2 item | Không | Trả về tham số lớn hơn |
2 item | Có | Truyền từng tham số cho hàm key, kết quả trả về là phần tử lớn hơn dựa trên giá trị trả về từ hàm key |
Nhiều item | Không | Trả về tham số lớn nhất |
Nhiều item | Có | Truyền từng tham số cho hàm key, kết quả trả về là phần tử lớn nhất dựa trên giá trị trả về từ hàm key |
Ví dụ 1: Tìm phần tử lớn nhất trong các số truyền vào
# su dung max[item1, item2, *item] print['So lon nhat la:', max[1, 3, 2, 5, 4]] # su dung max[iterable] num = [1, 3, 2, 8, 5, 10, 6] print['So lon nhat la:', max[num]]Chạy chương trình, kết quả trả về là:
So lon nhat la: 5 So lon nhat la: 10Ví dụ 2: Tìm số có tổng các chữ số lớn nhất bằng cách sử dụng key function
def sumDigit[num]: sum = 0 while[num]: sum += num % 10 num = int[num / 10] return sum # su dung max[item1, item2, *item, key] print['Ket qua lon nhat la:', max[100, 321, 267, 59, 40, key=sumDigit]] # su dung max[iterable, key] num = [15, 300, 2700, 821, 52, 10, 6] print['Ket qua lon nhat la:', max[num, key=sumDigit]]Output trả về là:
Ket qua lon nhat la: 267 Ket qua lon nhat la: 821Ở ví dụ này, các tham số hoặc từng phần tử trong tham số iterable được truyền lần lượt vào sumDigit[] để lấy kết quả là số có tổng các chữ số lớn nhất.
Ví dụ 3: Tìm list có độ dài lớn nhất bằng cách sử dụng key function
num = [15, 300, 2700, 821] num1 = [12, 2] num2 = [34, 567, 78] # su dung max[iterable, *iterables, key] print['List dai nhat la:', max[num, num1, num2, key=len]]Kết quả trả về:
List dai nhat la: [15, 300, 2700, 821]Trong chương trình trên, các iterable num, num1 và num2 được truyền vào key function là hàm len[] tích hợp sẵn trong Python. Kết quả trả về là độ dài từng iterable và hàm max sẽ đưa ra iterable có độ dài lớn nhất.
Xem thêm: Các hàm Python tích hợp sẵn