你的Python語(yǔ)言程序,有一處錯(cuò)誤,就是function1函數(shù)中的i-=1語(yǔ)句,應(yīng)該移出if語(yǔ)句塊放到while循環(huán)中
成都創(chuàng)新互聯(lián)公司是一家專業(yè)從事網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計(jì)公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,成都創(chuàng)新互聯(lián)公司依托強(qiáng)大的技術(shù)實(shí)力、以及多年的網(wǎng)站運(yùn)營(yíng)經(jīng)驗(yàn),為您提供專業(yè)的成都網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計(jì)開發(fā)服務(wù)!
你的程序我都加了注釋,并且解釋了運(yùn)行結(jié)果,你看看吧.
def?main():?#函數(shù)main
i=0?#i賦初值0
while?i=4:?#當(dāng)i小于等于4時(shí),執(zhí)行下面操作
function1(i)?#調(diào)用function1函數(shù)
i+=1?#i=i+1
print("i?is",i)?#打印i的值
def?function1(i):?#函數(shù)function1?i為傳進(jìn)來的參數(shù)
line="?"?#line賦初值"?"
while?i=1:?#當(dāng)i大于等于1時(shí),執(zhí)行下面操作
if?i%3!=0:?#如果i除以3的余數(shù)不等于0,也就是i不能被3整除,,執(zhí)行下面操作
line+=str(i)+"?"?#line=line+str(i)+"?",line加字符串i加空格
i-=1?#i=i-1
print(line)?#打印line
main()?#調(diào)用main函數(shù)
源代碼(注意源代碼的縮進(jìn))
運(yùn)行結(jié)果分析
#i等于0時(shí),調(diào)用function1(0),i1,所以打印空格
i is 1 #i+=1后i等于1,打印的i的值1
1 ?#i等于1時(shí),調(diào)用function1(1),i==1,while循環(huán)1,(1)不能被3整除,所以打印空格1空格
i is 2? #i+=1后i等于2,打印的i的值2
2 1 ?#i等于2時(shí),調(diào)用function1(2),i=1,while循環(huán)2,1,(2,1)不能被3整除,所以打印空格2空格1空格
i is 3? #i+=1后i等于3,打印的i的值3
2 1 ?#i等于3時(shí),調(diào)用function1(3),i=1,while循環(huán)3,2,1,(2,1)不能被3整除,所以打印空格2空格1空格
i is 4? #i+=1后i等于4,打印的i的值4
4 2 1? #i等于4時(shí),調(diào)用function1(4),i=1,while循環(huán)4,3,2,1,(4,2,1)不能被3整除,所以打印空格4空格2空格1空格
i is 5? #i+=1后i等于5,打印的i的值5,i4,從主函數(shù)main中退出
1 map()函數(shù)的簡(jiǎn)介以及語(yǔ)法:
map是python內(nèi)置函數(shù),會(huì)根據(jù)提供的函數(shù)對(duì)指定的序列做映射。
map()函數(shù)的格式是:
map(function,iterable,...)
第一個(gè)參數(shù)接受一個(gè)函數(shù)名,后面的參數(shù)接受一個(gè)或多個(gè)可迭代的序列,返回的是一個(gè)集合。
把函數(shù)依次作用在list中的每一個(gè)元素上,得到一個(gè)新的list并返回。注意,map不改變?cè)璴ist,而是返回一個(gè)新list。
2 map()函數(shù)實(shí)例:
del square(x):
return x ** 2
map(square,[1,2,3,4,5])? ?---- -要打印結(jié)果需要 print(*map(square,[1,2,3,4,5])),這塊打印了再打印就會(huì)為空
# 結(jié)果如下:
[1,4,9,16,25]
通過使用lambda匿名函數(shù)的方法使用map()函數(shù):
map(lambda x, y: x+y,[1,3,5,7,9],[2,4,6,8,10])
# 結(jié)果如下:
[3,7,11,15,19]
通過lambda函數(shù)使返回值是一個(gè)元組:
map(lambdax, y : (x**y,x+y),[2,4,6],[3,2,1])
# 結(jié)果如下
[(8,5),(16,6),(6,7)]
當(dāng)不傳入function時(shí),map()就等同于zip(),將多個(gè)列表相同位置的元素歸并到一個(gè)元組:
map(None,[2,4,6],[3,2,1])
# 結(jié)果如下
[(2,3),(4,2),(6,1)]
通過map還可以實(shí)現(xiàn)類型轉(zhuǎn)換
將元組轉(zhuǎn)換為list:
map(int,(1,2,3))
# 結(jié)果如下:
[1,2,3]
將字符串轉(zhuǎn)換為list:
map(int,'1234')
# 結(jié)果如下:
[1,2,3,4]
提取字典中的key,并將結(jié)果放在一個(gè)list中:
map(int,{1:2,2:3,3:4})
# 結(jié)果如下
[1,2,3]
原文鏈接:
有
當(dāng)然有,這就是Python函數(shù)圖像工具(EXE)。 本程序運(yùn)用Python中最令人喜愛的數(shù)據(jù)處理工具numpy和超強(qiáng)的圖像庫(kù)matplotlib,實(shí)現(xiàn)13種不同類別函數(shù)的分類圖像整理,展示圖像均可以保存為圖片的形式,具備拖動(dòng)、放大等功能
python的一切數(shù)據(jù)類型都是對(duì)象。但是python的對(duì)象分為不可變對(duì)象和可變對(duì)象。python的變量是引用,對(duì)python變量的賦值是引用去綁定該對(duì)象。
可變對(duì)象的數(shù)據(jù)發(fā)生改變,例如列表和字典,引用不會(huì)更改綁定對(duì)象,畢竟本身就是用于增刪改查的,頻繁地產(chǎn)生新對(duì)象必然導(dǎo)致開銷巨大,只需要該對(duì)象內(nèi)部變化就行;但對(duì)于綁定了不可變對(duì)象的引用,對(duì)象一旦改變就會(huì)使引用綁定新的對(duì)象。
這一點(diǎn)也會(huì)反應(yīng)到函數(shù)的參數(shù)上。python的傳值方式是“傳對(duì)象”引用。python的函數(shù),形參實(shí)際上是引用,實(shí)參便是對(duì)象綁定到該引用上。本質(zhì)是形參會(huì)被作為函數(shù)的局部變量,在開辟的函數(shù)的棧內(nèi)存中被聲明。
簡(jiǎn)要來講:
如果參數(shù)是數(shù),則類似值傳遞,
如果參數(shù)是列表和字典,則類似引用傳遞。
每個(gè)對(duì)象都會(huì)有個(gè)id, 可以用id()驗(yàn)證以上說法:
這個(gè)函數(shù)的參數(shù)是列表,是可變對(duì)象。
查看python內(nèi)置函數(shù)的方法:1、打開Python IDLE編輯器;2、輸入" dir(__builtins__)"命令,按下回車鍵(Enter)得到Python全部?jī)?nèi)置變量和函數(shù)。
如何查看 Python 全部?jī)?nèi)置變量和內(nèi)置函數(shù)?
1 如圖,打開 Python IDLE,我用的 是 Python 3.7 ,界面有個(gè)性定制。你的版本不同,界面有差異,但是操作方法應(yīng)該是一樣的。
2 輸入 dir(__builtins__)
按下回車鍵(Enter)。
3 也可以:
import builtins
dir(builtins)
按下回車鍵(Enter)。
得到的結(jié)果和 dir(__builtins__) 是一樣的。
4 那么這返回的一大堆到底是什么東西?
可以看到,返回的結(jié)果是以 [ 開頭以 ] 結(jié)尾,說明是個(gè)列表,我們看看這列表里一共有多少個(gè)元素?
輸入:
len(dir(__builtins__))
得到一個(gè)數(shù)字,154 ,說明當(dāng)前版本的 Python 內(nèi)置的常量和函數(shù)總數(shù)是 154 。
5 我們?cè)僦匦螺敵鲆幌逻@個(gè)列表,逐個(gè)打印出來,更好看一點(diǎn)。
for item in dir(__builtins__):
print(item)
按下兩次回車鍵(Enter)。按照默認(rèn)的字母順序,先是大寫字母 A-Z,然后是下劃線(_)開頭的,然后是小寫字母 a-z ,為什么是這個(gè)順序?因?yàn)榘凑?ASCII 碼表,表示小寫字母的數(shù)字比表示大寫字母的數(shù)字要大,而表示下劃線(_)的數(shù)字居中,所以如此。
6 print() 就是 Python 3 的默認(rèn)函數(shù)。我們?cè)囋嚕?/p>
print('Hello World')
builtins.print('Hello World')
__builtins__.print('Hello World')
運(yùn)行結(jié)果如下,可以看到,結(jié)果是一樣的。
dir()本身就是 Python 的內(nèi)置函數(shù),利用它,我們可以查看對(duì)象的全部方法和屬性,對(duì)于掌控全局,了解全貌很有用。
課程推薦:Python快速教程之從入門到精通