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.

Free viết 19:26 ngày 30/09/2018

Sau khi đọc code nhiều lần thì em biết em sai chổ là quên int(raw_input()) ^^!.

Mai Anh Dũng viết 19:29 ngày 30/09/2018

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ơn

Free viết 19:35 ngày 30/09/2018

Cá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.

Mai Anh Dũng viết 19:36 ngày 30/09/2018

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.

Bởi vì khi đó nstring chứ không phải là int. Khi em so sánh while i < bottom thì điều kiện này luôn đúng. Bởi vì intstring 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ên i < bottom với bất kể giá trị nào.

Khi thêm int vào thì raw_input() có nghĩa là chỉ nhập số.

Không phải, khi ta thêm int vào có nghĩa là ta convert giá trị nhập vào thành số.

Free viết 19:29 ngày 30/09/2018

Cám ơn anh rất nhiều.

Tin Ho viết 19:37 ngày 30/09/2018

Một số cách debug trong python khá hay nè.
http://ngochin.com/2013/03/08/debug-python/

Bài liên quan
0