pythonforin語句
A. python for 循環中 in 關鍵字含義是什麼
就是固定的一個格式 for...in循環
Python的循環有兩種,一種是for...in循環,依次把list或tuple中的每個元素迭代出來,看例子:
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print name
執行這段代碼,會依次列印names的每一個元素:
Michael
Bob
Tracy
所以for x in ...循環就是把每個元素代入變數x,然後執行縮進塊的語句。
第二種循環是while循環,只要條件滿足,就不斷循環,條件不滿足時退出循環。比如我們要計算100以內所有奇數之和,可以用while循環實現:
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print sum
在循環內部變數n不斷自減,直到變為-1時,不再滿足while條件,循環退出。
B. python中if和for語句的使用
while是Python中的循環語句,if屬於條件選擇語句,而for in屬於迭代語句。
while 用於重復執行操作,重復的條件不一定是特定的次數,只要條件滿足即可:
12345
# 列印1-5的平方x = 1while x <= 5: print(x ** 2) x = x + 1
if 與 循環迭代無關,在默認順序執行代碼的情況下,滿意某個條件要以執行分支語句:
123
score = 66if score >= 60: print('及格')
for in用於遍歷一個可迭代對象(如列表,元組,range等)的每一個元素,將迭代出的每個元素放入臨時變數備用:
123
# 遍歷1-5的序列元素,並列印平方for x in range(1,6): print(x ** 2)
C. python for in原理
怎麼給你說呢?
這些牽涉到Iterables和Generator的定義.
先講Iterables吧, 在Python中很多東西都可以使用for...in...來iterable,比如list, strings, 和files.這些iterables是方便,你可多次經行處理,因為你在內存中存儲的所有值.
下面是個例子:
>>>mylist=[1,2,3]>>>foriinmylist:
..print(i)
1
2
3
>>>mylist=[x*xforxinrange(3)]
>>>foriinmylist:
...print(i)
0
1
4
然後是Generator. 廣義上將Generator也是個Iterator, 但是你不能reset, 也就是說你只能歷遍一次.因為內存存儲的問題,當你使用yield的之前, 內存中存儲的是你需要的值,當你調用完之後內存中存儲的是你的下一個需要的值. 換句話說你如果用Generator內存的使用比較少.是一個常量.
下面是個例子:
>>>mygenerator=(x*xforxinrange(3))
>>>foriinmygenerator:
...print(i)
0
1
4
兩個例子請注意括弧的不同.
yield關鍵字工作原理與上面所說的Generator類似. 原理也一樣,這也就是為什麼當你得到最後一個值後,嘗試著調用next()會出錯的問題. 或者說長度為0, 因為此時內存中沒有存值.
如果你想處理完,再次歷遍輸入內容. 給你介紹個比較簡潔的方法.
y=FunctionWithYield()
y,y_backup=tee(y)
forxiny:
print(x)
forxiny_backup:
print(x)
tee() 函數,生成了一個列表,存儲了所有的輸入值.
題外話: 如果你學過Python相比你可能知道range和xrange兩個不同的關鍵字. 例如在Python 2.x 中, 代碼:
foriinrange(1000):pass
會導致生成一個 1000 個元素的 List,而代碼:
foriinxrange(1000):pass
則不會生成一個 1000 個元素的 List,而是在每次迭代中返回下一個數值,內存空間佔用很小。因為 xrange 不返回 List,而是返回一個類似的iterable 對象。
網上曾經有人嘗嘗著模擬range和xrange, 猜測xrange中包含yield的函數.實現結果也符合猜想.
結合上面所說的 這也就是為什麼xrange更加高效.
至於yield內存使用方法, 確實沒有深究. 所以不能給你提供更多信息. 但想必也已經解決了你的部分疑問.
D. 請問Python中 for in是怎麼用的
for..in語句是另一個循環語句,它迭代一個對象的序列,例如經歷序列中的第一項。在後面的章節,我們將會看到更多關於序列的細節。現在,你需要知道的是一個序列只是一個有序的項目的集合。
例如 (保存為 for.py):
for i in range(1, 5): print(i)else: print('for循環結束')
輸出:
1
2
3
4
for循環結束
它是如何工作的:
列印一個數字序列。我們使用內置的range函數生成這個數字序列。
我們在這里所做的是提供兩個數字,range返回一個從第一個數字到第二個數字的一個數字序列。例如,range(1,5)給出序列[1, 2, 3, 4]。默認情況下,range 步距取為1。如果我們提供第三個數字,range那麼它變成了步距。例如range(1,5,2)得到[1,3]。請記住,范圍擴展到第二號碼,即它不包括第二個數字。
注意,range()生成一個數字序列,當for循環請求下一個項目時,它一次只生成一個數字。如果你想立刻看到完整的數字序列,使用list(range())。list(列表)將在[數據結構章]中解釋。
for循環然後遍歷這個范圍,for i in range(1,5)相當於 for i in [1, 2, 3, 4],這就像把序列中的每一個數(或對象)分配給i,一次一個,然後為每個i值執行該語句塊。在本例中,在語句塊中我們只是列印它的值。
記住,else部分是可選的。當包括它時,除非遇到[break][#中斷)語句,當for循環結束時,它執行一次。
記住,for..in循環可以作用於任何序列。在這里,我們對一個由內建的range函數生成的一個數字列表,但是一般來說,我們可以使用任何種類對象的任何類型的序列!在後面的章節,我們將詳細探討這個想法。
C/C++/Java/C#程序要注意:
Python的for循環完全不同於C/c++的for循環。c#程序員會注意到,在Python中for循環類似於c中的foreach循環c#。Java程序員會注意到,同樣類似於在Java 1.5中的to for (int i : IntArray)。
在C/c++中,如果你想寫for (int i = 0; i < 5; i++),那麼在Python中你只要寫 for i in range(0,5)。正如您可以看到的,在Python中for循環更簡單,更富有表現力且不易出錯。
E. python中 for 循環的in 是一定要的么
這是python的語法,
for example in examples: ....如果你學過C語言,你會發現python的這個for語句是包含了賦值、判斷和自加這三部分,因為在c中for循環是:
for(i = 0;i<=10;i++){...}in在python中是判斷當前example是否在examples中的意思,構成整個python的for循環,不能去掉。
F. 誰能給我講講,python里for in中的in究竟是什麼意思(最好大白話)
意思是: 如果 i 在 什麽之中
for i in range(1,10):#這條語句的意思是 如果 i 在 1 到 10 之間時(不包括10)
相當於 其他常見編程語言的寫法
for(i = 1 ;i<10;i++)
{
//do things
}
G. python中的for i in range怎麼用
for in range是循環的意思。
示例:for i in range(1,5):
print(i)
上述語句的意思就是從1到5的循環,每循環一次列印一次i的值,1到5,共5回,列印五次i的值,即循環5次。
(7)pythonforin語句擴展閱讀:
for循環是編程語言中一種開界的循環語句,而循環語句是由循環體及循環的終止條件兩部分組成,for循環其在各種編程語言中的實現與表達有所出入,但基本為以C語言和pascal語言代表的兩種形式。
for循環中的變數可以是一個也可以是多個,不要局限於一個變數處理到底,那樣有時會很單調,當程序適合把多個變數組成循環時,用多個for語句來表示就是有些浪費了!
在C語言中,for循環中的"單次表達式"、"條件表達式"和"循環體語句"都是選擇項, 即可以預設成只剩下「;」的空語句, ";"不能預設的原因是編譯格式如此,預設了編譯器不認識而會報錯。
省略了用來初始化的單次表達式時, 表示不對循環控制變數賦初值。
省略了條件表達式, 若不做其它處理則成為死循環。
省略了所有循環體, 則for語句不被其它形式處理時不產生任何作用。
H. Python for in 循環
你打開的是交互模式,這個模式只能調試代碼塊。第二個print和for循環不屬於同一個代碼塊。
方法一,第一個print按兩下回車,結束for代碼塊,再輸入第二個print執行。
方法二,創建py文件,把代碼輸入的py文件中,然後直接運行py文件。