01/10/2018, 09:59
Tại sao hàm tìm giá trị nhỏ nhất luôn trả về None
Em có 1 đoạn code sau
# chuong trinh yeu cau nhap 1 loat so sau do tra ve
# so lon nhat, so nho nhat
n = raw_input("Enter a number: ")
count = 0
total = 0
lon = None
nho = None
while n != "done":
try:
kiemtra = int(n)
if kiemtra > lon: # đoạn này kiếm số lớn nhất, chạy được
lon = kiemtra
elif kiemtra < nho: # đoạn này kiếm số nhỏ nhất, luôn trả giá trị là None
nho = kiemtra
n = raw_input("Enter a number: ")
except:
print "Wrong number"
n = raw_input("Enter a number: ")
print lon, nho
Đoạn code dùng để kiếm số lớn nhất và nhỏ nhất trong các số đã nhập, với số lớn nhất thì đã làm ra nhưng không hiểu sao số nhỏ nhất thì lúc nào nó cũng hiện là None, em không biết mình đã sai ở đâu nữa.
Đây là màn hình lúc chạy code
Bài liên quan
Bạn phải gán lon, nho bằng 1 số nào đó chứ.
Chắc bị lỗi so sánh với None, bạn thử bỏ phần khởi tạo giá trị ban đầu cho nó thử xem. bỏ phần
lon = None
nho = None
sang python3 là Exception luôn nha…
Lỗi ở đó. Phải gán nho bằng 1 số cực to chứ.
Cũng không hẳn trong py không có số lớn với nhỏ nhất nên phải viết lặp code vậy
Nhưng tốt nhất là gán lon và nho ban đầu là số đầu tiên đọc được thì đâu đến nỗi khổ thế này >.<
Vậy còn nhỏ hơn thì sao bạn?
chuyển thành số âm thôi
Nếu bỏ đi thì cái bước if kia làm sao so sánh được hả bạn
None là nhỏ nhất à, sao em đọc trong các tài liệu None là trạng thái trống, kiểu như không có gì nhưng vẫn đánh dấu để đó ấy
Theo em nghĩ nếu đã gán thì phải gán số lớn nhất hoặc số nhỏ nhất thì mới được, chứ gán số bất kỳ nào cũng bỏ sót cả, nhưng em không biết cách viết số lớn nhất hay nhỏ nhất trong python
A được rồi bác ơi, chỉ cần gán biên nho là số đầu tiên nhập vào là được, tks bác nhiều