下面是一個(gè)例子,用 for 循環(huán)調(diào)用 10 次 test 函數(shù),并把返回值加到 sum 變量中:
創(chuàng)新互聯(lián)公司服務(wù)電話:028-86922220,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),創(chuàng)新互聯(lián)公司網(wǎng)頁制作領(lǐng)域10余年,包括成都會(huì)所設(shè)計(jì)等多個(gè)行業(yè)擁有豐富的網(wǎng)站推廣經(jīng)驗(yàn),選擇創(chuàng)新互聯(lián)公司,為企業(yè)保駕護(hù)航!
#coding=utf-8
def?test(n):
return?n?+?1
sum?=?0
#?使用?for?循環(huán)調(diào)用?10?次?test?函數(shù)
for?i?in?range(10):
#?調(diào)用?test?函數(shù),并將返回值加到?sum?中
sum?=?sum?+?test(i)
print('sum?=?'?+?str(sum))
感覺是你的函數(shù)使用了一個(gè)全局的對象(如list)
然后每次調(diào)用函數(shù)都會(huì)給這個(gè)對象添加一個(gè)值,比如(list.append())
這樣就會(huì)造成每次執(zhí)行都會(huì)添加一個(gè)值
因?yàn)閜ython中對象的作用域是全局的,你在函數(shù)中改變就會(huì)改變這個(gè)對象,而不是像其它語言中函數(shù)內(nèi)并不影響函數(shù)外面的對象
def a():global qq=1+2return q def b():a()c=2+qprint(c) b()5 q3函數(shù)中的變量在外面調(diào)用,需要申明為全局變量
你的函數(shù)是讓原列表每個(gè)元素值+1,這里省略了函數(shù),做的仍然是每個(gè)元素+1
# 2021-05-11 Luke
s=[1, 2, 3, 4, 5, 5, 6, 1, 4, 5, 5, 7, 1, 5, 3, 8, 3, 5, 9, 1]
num = input("請指定需要循環(huán)的次數(shù):")
i = 1
while i = int(num):
new_s = []
for a in s:
a += 1
new_s.append(a)
s = []
s = new_s
用你寫的函數(shù)的話這樣也可以
# 2021-05-11 Luke
s=[1, 2, 3, 4, 5, 5, 6, 1, 4, 5, 5, 7, 1, 5, 3, 8, 3, 5, 9, 1]
def tset(s):
s1 = [x+1 for x in s]
return s1
num = input("請指定需要循環(huán)的次數(shù):")
i = 1
while i = int(num):
new_s = tset(s)
s = new_s
i += 1
print(s)
i += 1
print(s)
print語句print [expression ("," expression)* [","]]print expression [("," expression)+ [","]][]表示可選項(xiàng),*表示零次或多次重復(fù),+表示至少一次重復(fù)。print是一種特殊的語句,它用于在stdout輸出字符串。print有多種使用形式:print xprint x,yprint x,y,print object, x, y第1行是print的最普通的形式。第2行用print一次輸出多個(gè)變量值,print會(huì)在變量之間自動(dòng)加上一個(gè)"空格"。第3行與第2行的不同是在y的后面多了一個(gè)",",這個(gè)逗號用來阻止print在打印出x和y的值后,自動(dòng)附加上一個(gè)“\n”字符。第4行,是一種輸出重定向的形式,也就是說把x和y的值輸出到object的write方法中,這同時(shí)也表明object必須有一個(gè)write方法。在python中,print語句其實(shí)只是一種簡寫形式,是下面這段程序的簡寫:import syssys.stdout.write(str(x) + '\n')上面這兩行合起來就是“print x”這一句??梢钥闯觯琾rint是調(diào)用str()函數(shù)來產(chǎn)生字符串的,并且會(huì)在輸出的字符串后加上一個(gè)'\n'字符。由于print實(shí)際是上調(diào)用了stdout的write方法。程序員也可以把stdout賦為別的值,從面實(shí)現(xiàn)print的輸出重定向的功能。比如:import sysx="I'm here!"fp=file('log.txt','a')sys.stdout=fpprint x第4行改變了stdou的值,而且fp也是一個(gè)文件對象,有一個(gè)write方法。這一小段代碼的功能是把print的輸出全部以appand的模式寫到了文件log.txt中。在第4行之后的print語句,都是這種功能?,F(xiàn)在假設(shè)要恢復(fù)print輸出到標(biāo)準(zhǔn)輸出的功能,那么就需要讓stdout重新指向標(biāo)準(zhǔn)輸出,可以使用如下的方式:sys.stdout=sys.__stdout__在sys.__stdout__中保存有指向標(biāo)準(zhǔn)輸出的信息,通過這行代碼,print可以恢復(fù)為原來的功能。有時(shí)候要在這兩種模式之間換來換去,一會(huì)要輸出到文件中,一會(huì)要輸出到標(biāo)準(zhǔn)輸出中,通過改變sys.stdout的值可以實(shí)現(xiàn),不過太麻煩,python提供了另外一種簡便的print語句形式,來解決這種需求:print object,x,y能過這個(gè)符號,可以實(shí)現(xiàn)輸出重定向到object,當(dāng)然object必須有一個(gè)write方法。否則會(huì)出現(xiàn)AttributeError。注意,在這種print形式中,sys.stdout并沒有改變,也就是說在這之后的print語句,具有的還是標(biāo)準(zhǔn)功能。雖然print語句實(shí)際上sys.stdou.write(),但sys模塊的import工作并不需要程序員操心,python會(huì)自動(dòng)處理。類似于print的輸出,當(dāng)用內(nèi)置函數(shù)raw_input([prompt])進(jìn)行讀取操作時(shí),實(shí)際上用的是sys.stdin.read()方法。也可以通過改變stdin的值來控制入操作。相應(yīng)的也有一個(gè)sys.__stdin__用來保存標(biāo)準(zhǔn)輸入的信息。
解決重復(fù)調(diào)用。
反復(fù)執(zhí)行Python,Python如何使程序重復(fù)運(yùn)行,Python的周期基本1主題=(\u201Clinux系統(tǒng)\u201D、\u201CMysql數(shù)據(jù)庫\u201D,\u201CPython語言\u201D)#定義一個(gè)元組,三個(gè)元素代表三個(gè)課程2=0#和定義變量num作為初始分?jǐn)?shù)3我的主題:#元組中的每個(gè)元素分配給我,總共三次4'Please進(jìn)入打印測試分?jǐn)?shù)%s的%我#提示輸入分?jǐn)?shù),使用格式字符串函數(shù),表示分?jǐn)?shù)的名字我每次獲得的元素名稱,5分=%s意味著字符串輸入()#接收分?jǐn)?shù)由用戶輸入,并將其分配給score6總和+=分?jǐn)?shù)#把分?jǐn)?shù)分配金額相當(dāng)于金額=和+score7avg=和\/len(科目)#后跳出的for循環(huán),計(jì)算平均值。
Python由荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會(huì)的吉多·范羅蘇姆于1990年代初設(shè)計(jì),作為一門叫做ABC語言的替代品Python提供了高效的高級數(shù)據(jù)結(jié)構(gòu),還能簡單有效地面向?qū)ο缶幊獭?/p>
當(dāng)前名稱:重復(fù)調(diào)用函數(shù)python 頻繁調(diào)用的函數(shù)
文章起源:http://weahome.cn/article/dodjsgs.html