pythonforif一行
⑴ python循環語句for是什麼
python循環語句for是一種代碼上實現循環的語法。
Python 有兩種類型的循環:for 循環和 while 循環。for 循環用來遍歷可迭代對象。可迭代對象是每次可以返回其中一個元素的對象, 包括字元串、列表和元組等序列類型。
python循環語句內容:
類似if語句的語法,如果你的while循環體中只有一條語句,你可以將該語句與while寫在同一行中。Python for 循環可以遍歷任何可迭代對象,如一個列表或者一個字元串。for 實例中使用了 break 語句,break 語句用於跳出當前循環體。
⑵ python中循環語句
1、if語句
Python中的if子句由三部分組成:關鍵字本身、用於判斷結果真假的條件表達式以及當表達式為真或者非零時執行的代碼塊。if 語句的語法如下:
if expression:
expr_true_suite
if 語句的expr_true_suite代碼塊只有在條件表達式的結果的布爾值為真時才執行,否則將繼續執行緊跟在該代碼塊後面的語句。
(1)多重條件表達式
單個if語句可以通過使用布爾操作符and、or和not,實現多重判斷條件或是否定判斷條件。
(2)單一語句的代碼塊
如果一個復合語句(例如if子句、while或for循環)的代碼塊僅僅包含一行代碼,那麼它可以和前面的語句寫在同一行上。如if make_hard_: send_data_to_printer(),這樣的單行語句是合法的, 盡管它可能方便,但這樣會使得代碼更難閱讀, 所以推薦將這行代碼移到下一行並合理地縮進。另外一個原因就是如果你需要添加新的代碼, 你還是得把它移到下一行。
2、else語句
Python提供了與if語句搭配使用的else語句,如果if語句的條件表達式的結果布爾值為假,那麼程序將執行 else 語句後的代碼。其語法如下:
if expression:
expr_true_suite
else:
expr_false_suite
在C語言中,不會在條件語句范圍外發現else語句, 但Python不同,可以在while和for循環中使用else語句,在循環中使用時,else子句只在循環完成後執行,也就是說break語句也會跳過else塊。
例:顯示出10到20中的數字的最大約數
在CODE上查看代碼片派生到我的代碼片
#!/usr/bin/env python
def showMaxFactor(num):
count = num / 2
while count > 1:
if (num % count == 0):
print 'largest factor of %d is %d' % (num, count)
break
count = count - 1
else:
pr
⑶ python中for循環放在後面要怎麼理解
i因為閉包,lambda生成之後i引用的就是for循環中的i
建議你看一下python的列表生成器,
f = [(lambda n : i + n) for i in range(10)] 等同於
f=[]
for i in range(10)
f.append(lambda n : i + n)
下面是相關內容
列表生成式即List Comprehensions,是Python內置的非常簡單卻強大的可以用來創建list的生成式。
舉個例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用range(1, 11):
>>> range(1, 11)[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎麼做?方法一是循環:
>>> L = []>>> for x in range(1, 11):... L.append(x * x)
...>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
但是循環太繁瑣,而列表生成式則可以用一行語句代替循環生成上面的list:
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
寫列表生成式時,把要生成的元素x * x放到前面,後面跟for循環,就可以把list創建出來,十分有用,多寫幾次,很快就可以熟悉這種語法。
for循環後面還可以加上if判斷,這樣我們就可以篩選出僅偶數的平方:
>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]
還可以使用兩層循環,可以生成全排列:
>>> [m + n for m in 'ABC' for n in 'XYZ']
['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
三層和三層以上的循環就很少用到了。
運用列表生成式,可以寫出非常簡潔的代碼。例如,列出當前目錄下的所有文件和目錄名,可以通過一行代碼實現:
>>> import os # 導入os模塊,模塊的概念後面講到>>> [d for d in os.listdir('.')] # os.listdir可以列出文件和目錄['.emacs.d', '.ssh', '.Trash', 'Adlm', 'Applications', 'Desktop', 'Documents', 'Downloads', 'Library', 'Movies', 'Music', 'Pictures', 'Public', 'VirtualBox VMs', 'Workspace', 'XCode']
for循環其實可以同時使用兩個甚至多個變數,比如dict的iteritems()可以同時迭代key和value:
>>> d = {'x': 'A', 'y': 'B', 'z': 'C' }>>> for k, v in d.iteritems():... print k, '=', v... y = B
x = A
z = C
因此,列表生成式也可以使用兩個變數來生成list:
>>> d = {'x': 'A', 'y': 'B', 'z': 'C' }>>> [k + '=' + v for k, v in d.iteritems()]
['y=B', 'x=A', 'z=C']
最後把一個list中所有的字元串變成小寫:
>>> L = ['Hello', 'World', 'IBM', 'Apple']>>> [s.lower() for s in L]
['hello', 'world', 'ibm', 'apple']
小結
運用列表生成式,可以快速生成list,可以通過一個list推導出另一個list,而代碼卻十分簡潔。
思考:如果list中既包含字元串,又包含整數,由於非字元串類型沒有lower()方法,所以列表生成式會報錯:
>>> L = ['Hello', 'World', 18, 'Apple', None]
>>> [s.lower() for s in L]
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>AttributeError: 'int' object has no attribute 'lower'
使用內建的isinstance函數可以判斷一個變數是不是字元串:
>>> x = 'abc'>>> y = 123>>> isinstance(x, str)True>>> isinstance(y, str)False
請修改列表生成式,通過添加if語句保證列表生成式能正確地執行。
⑷ Python For+If寫成一行
首先程序最重要的是容易理解和維護,不要盲目追求炫酷的寫法。
其次你的代碼有bug,假如字元串的第一位是X,你試試你的結果還正確嗎?需求還需要澄清。
⑸ 這個是哪裡出錯了 python的列表推導式
題主你好,
你的問題出在不了解列表推導的語法.
先說一下你寫的代碼問題出在哪, 因為列表推導是一種語法糖, 語法糖這東西我的理解就是代碼精簡式的寫法, 你可以簡單的理解為正常的寫法可能要10行, 用語法糖可能1行就搞定了. 優點是可以減少代碼量, 缺點也顯而易見,就是相對於常規寫法一開始學起來理解要困難一些.
列表推導寫法: n = [ j if j*5==10 ]
把你的這個1行的列表推導轉化為常規寫法要3行:
上面代碼就形成了一個完整的閉環了.
所以學習列表推導很關鍵的一點是題主能否在常規代碼與列表推導之間進行轉換, 如果可以的話,題主寫完列表推導後可以將其轉化為常規代碼去看, 如果常規代碼沒問題, 則列表推導自然也就是對的.
-----
擴展閱讀:
網頁鏈接該鏈接中有一些簡單的例子,裡面既給出了列表推導的寫法也給出了相對應的常規寫法,題主可以研究一下這二者是怎麼轉換的, 不難.
=====
希望可以幫到題主, 歡迎追問.
⑹ python for 語句怎麼寫
Python for循環控制語句一般格式及方法 for循環語句是python中的一個循環控制語句,任何有序的序列對象內的元素都可以遍歷,比如字元串、列表List、元組等可迭代對像。之前講過的if語句雖然和for語句用法不同,但可以用在for語句下做條件語句使用。
for語句的基本格式 python for循環的一般格式:第一行是要先定義一個賦值目標(迭代變數),和要遍歷(迭代)的對像;首行後面是要執行的語句塊。 for 目標 in 對像: print 賦值目標 for循環一個字元串操作方法
>>>a='iplaypython.com'>>>foriina:>>>printiiplaypython.com
如果想讓目標在一行輸出,可以這樣寫 >>>print i, i p l a y p y t h o n . c o m 案例中的 i 相當於目標,字元串變數a是遍歷(迭代)對像。當運行for循環語句時,每一次迭代時,i 都會從遍歷(迭代)對像a中接收一個新值輸出。
結束循環後,目標(迭代變數)會保留最後一個值,這里可以先忽略理解,會在else語句中詳細來講解。 for循環列表操作方法
>>>a=[1,2,3,4]>>>foriina:
>>>printi,1234for循環元組賦值
>>>x=[('hello','python'),('very','good')]
>>>for(a,b)inx:
>>>print(a,b)('hello','python')('very','good')
Python for循環控制語句基本組成部分還有break、continue、else
learning=input('DoyouwanttolearnPythonnow(YesorNo):')
a=str(learning)
ifa=='Yes':
print('QQ1129834903')
else:
print('Thanks!!')