30/09/2018, 17:21
While-loop in Python
Hiện tại em đã xem xong 30 video của anh Đạt và trong khi chờ đợi anh Đạt làm những video tiếp theo thì em có tự tìm hiểu nhưng có 1 lỗi như sau:
Em dùng 1 function để định nghĩa 1 vòng lặp while nhưng khi đưa các biến vào thì cứ bị lặp liên tục và không thể kết thúc. Mấy anh cho em xin hướng giải quyết nha.
Code:
i = 0
numbers = []
n = raw_input("Can you give me a value random: ")
def count(*a):
i , bottom = a
while i < bottom:
print "At the top i is %d" % i
numbers.append(i)
i += 1
print "Numbers now: ", numbers
print "At the bottom i is %d" % i
count(i,n)
print "The numbers: "
for num in numbers:
print num
Cám ơn các anh.
Bài liên quan
Sau khi đọc code nhiều lần thì em biết em sai chổ là quên int(raw_input()) ^^!.
Hahaha anh góp ý nhé, anh chưa đọc code, em thử đặt
print
để xem giá trị của các biến và xem thử chương trình mình chạy tới đâu thì dễ debug hơnCám ơn anh.
Mà anh cho em hỏi 1 vấn đề là:
Tại sao khi em không int( raw_input() ) Tức là chỉ viết raw_input() thì vòng while nó cứ lặp liên tục.
Khi thêm int vào thì raw_input() có nghĩa là chỉ nhập số.
Em vẫn không hiểu là vì sao nó lại lặp không giới hạn như vậy.
Bởi vì khi đó
n
làstring
chứ không phải làint
. Khi em so sánhwhile i < bottom
thì điều kiện này luôn đúng. Bởi vìint
vàstring
là hai kiểu dữ liệu khác nhau, trong Python để so sánh hai kiểu dữ liệu khác nhau thì ta sẽ so sánh tên của hai kiểu dữ liệu này. Mà ta thấy"int" < "string"
, thế nêni < bottom
với bất kể giá trị nào.Không phải, khi ta thêm
int
vào có nghĩa là taconvert
giá trị nhập vào thành số.Cám ơn anh rất nhiều.
Một số cách debug trong python khá hay nè.
http://ngochin.com/2013/03/08/debug-python/