30/09/2018, 20:34

Tìm Min, Max sử dụng while

Mình học python ở learnpythonthehardway.org, mình muốn viết code sử dụng while để tìm min, max theo một list cho trước, mình ghi sai chỗ nào vậy các bạn?

num = [6, 9, 3]

Max = num[0]
i = 2
n = len(set_num)


while i < n:
	if num[i] > Max:
		num[i] = Max
		i = i + 1
		print Max
	else: 
		i = i + 1
	print Max
```
Pham Van Hai viết 22:46 ngày 30/09/2018

num[i] = Max

Phải là Max = num[i];

Maskma viết 22:48 ngày 30/09/2018

thứ nhất: các phần tử trong mảng đánh số từ 0,…,n-1. Bạn gắn max = num[0] rồi i = 2 vậy num[1] đâu?
thứ hai: như bạn ở trên nói phải là gán max = num[i]
thứ ba: nếu bạn viết print thế kia thì mỗi vòng lặp sẽ in ra ít nhất 1 lần số max lúc đó và nếu max thay đổi thì in thêm lần nữa.
Code mẫu:

num = [6, 9, 3]
max = num[0]
i = 1
n = len(num) # chỗ  này mình ko nhớ cách lấy số phần tử trong python 
             # là gì nên chưa chắc đúng đâu

while i < n:
    if num[i] > max:
        max = num[i]
    i = i + 1 # sau mỗi vòng i luôn +1 nên ko cần cho vào đk if .. else

print max # Chú ý là dòng này lùi vào bằng dòng while 
          # vì nó ko thuộc trong vòng lặp while

trong python thì bạn phải chú ý lùi đầu dòng đúng. ví dụ lệnh nào nằm trong vòng lặp thì phải lùi sâu hơn 2 hay 4 khoảng trắng gì đó mình ko rõ!

Bài liên quan
0