2017-09-13 53 views
-1

在listRange部分如果我使用[(range(1, num +1)]而不是list(range(1, num+1)),程序不起作用爲什麼?[]和列表之間的區別不運行程序

num = int(input("Please choose a number to divide: ")) 

listRange = list(range(1,num+1)) 

divisorList = [] 

for number in listRange: 
    if num % number == 0: 
     divisorList.append(number) 

print(divisorList) 
+3

您是否嘗試過使用交互模式,並嘗試例如'[範圍(1,5)]'?你得到了什麼?它與'list(range(1,5))'有什麼不同? –

+3

可能重複[mylist = list()vs mylist = \ [\]在Python](https://stackoverflow.com/questions/11780357/mylist-list-vs-mylist-in-python) – Sayse

+0

^查看重複的答案 - 「內建的list()函數對於將其他iterable轉換爲列表非常有用」 – Sayse

回答

1

在Python 3中,range()返回一個範圍對象。

隨着列表(...)你將範圍對象(這是一個迭代)轉換爲列表。 使用[]將範圍對象包裝在列表中,而不是迭代內容。

print([(range(1))]) # [range(0, 1)] 
print(list(range(1))) # [0] 
+0

非常感謝你......我剛加入今天,你們在一分鐘內回覆......這太酷了。 – Gaurav

0

,你可以「解壓」與星/星範圍內的對象(有人稱之爲「圖示」)運營商的附加選項

[*range(7)] 
Out[213]: [0, 1, 2, 3, 4, 5, 6] 
相關問題