2011-11-14 35 views
14

Tôi đang sử dụng python 3.2.2 trên windows 7 và tôi đang cố tạo chương trình chấp nhận 7 số và sau đó cho người dùng biết số lượng là số dương, số lượng âm và bao nhiêu là số không. đây là những gì tôi đã có cho đến nay:TypeError: đối tượng 'float' không thể lặp lại

count=7 
for i in count: 
    num = float(input("Type a number, any number:")) 
    if num == 0: 
     zero+=1 
    elif num > 0: 
     positive+=1 
    elif num < 0: 
     negative+=1 

print (positive) 
print (negative) 
print (zero) 

Nhưng khi tôi chạy mã tôi nhận được

TypeError: 'float' object is not iterable 

Nếu tôi thay phao trong dòng 3 với int tôi nhận được cùng một vấn đề ngoại trừ nó nói rằng Đối tượng 'int' không thể lặp lại được. Tôi cũng đã thử thay đổi giá trị đếm từ 7 đến 7.0

Bây giờ tôi đã thử thách này từ sách hướng dẫn python và họ không có câu trả lời, và từ những gì tôi có thể nói tôi đã làm mọi thứ trong cú pháp đưa ra.

The tutorial is here (PDF)

+1

'for i in count' không có trong hướng dẫn mà bạn đã đính kèm. – cwallenpoole

+1

Vui lòng thực hiện 'print (...)' thay vì 'print (...)'. Trong Python 3 'print' là một hàm, vì vậy hãy xử lý nó giống như bất kỳ hàm nào khác trong cách bạn định dạng nó. (PEP 8 cũng muốn bạn thay đổi 'a = b' và' a + = b' thành 'a = b' và' a + = b'.) –

+2

Bạn cũng cần phải khởi tạo ba biến mà bạn đang cố gắng print: tức là đặt 'zero = positive = negative = 0' trước vòng lặp. – ekhumoro

Trả lời

20

for i in count: nghĩa for i in 7:, mà sẽ không hoạt động. Bit sau in phải thuộc loại có thể lặp lại, không phải là số. Hãy thử điều này:

for i in range(count): 
+0

tôi không thể tin rằng tôi đã bỏ lỡ điều đó, cảm ơn bạn – hamsolo474

3

sử dụng

range(count)

int và float không iterable

Các vấn đề liên quan