Tai sao phải dùng hàm str() trước khi append

l=[]
for i in range(2000, 3201):
    if (i%7==0) and (i%5!=0):
        l.append(str(i))       
print (','.join(l))

Em có 2 câu hỏi mong các bác giải thích hộ:
_ Tại sao trong hàm append bắt buộc phải có thêm str thay vì chỉ ghi là append (i) thôi. Em đã thử với append(i) nhưng chương trình báo lỗi
_ Tại sao trong vòng lặp đã có append rồi lúc print ra phải thêm joint vào làm gì nhỉ

bạn biết mục đích của đoạn code trên là gì không?
lý do gì khiến bạn đặt 2 câu hỏi như thế này? append(i) để làm gì? istr(i) đâu có giống nhau?
lệnh print để làm gì, tại sao bạn lại nghĩ không cần join?

2 Likes

đoạn code ý nói là mình sẽ in các số thoả 2 điều kiện chia hết cho 7 và không chia hết cho 5 trong khoảng 2000 đến 3201. Mình biết là append() dùng để thêm phần từ vào sau 1 list nhưng cái mình không hiểu là tại sao phải thêm str vào thì cú pháp mới chính xác

join chỉ join các string thôi bạn.

2100 chia hết cho 7, vậy 2000 chia 7 dư 5 nên dùng range(2002,3001,7)

1 Like

Vì method join của str yêu cầu mọi phần tử của l phải là string

str. join ( iterable )

Return a string which is the concatenation of the strings in iterable . A TypeError will be raised if there are any non-string values in iterable , including bytes objects. The separator between elements is the string providing this method.

https://docs.python.org/3/library/stdtypes.html#str.join

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?