python里數(shù)列相鄰數(shù)相加:
創(chuàng)新互聯(lián)主營建鄴網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā),建鄴h5微信小程序開發(fā)搭建,建鄴網(wǎng)站營銷推廣歡迎建鄴等地區(qū)企業(yè)咨詢
1、使用 for循環(huán),定義一個(gè)累加求和函數(shù)sum2(n),for循環(huán)的作用就是循環(huán)遍歷。def Sum(*args): count = 0 for i in args: count+=ireturn count
2、使用遞歸函數(shù),定義一個(gè)累加求和函數(shù)sum3(n),遞歸函數(shù)一定要設(shè)置遞歸的出口,即當(dāng)函數(shù)滿足一個(gè)條件時(shí),函數(shù)不再執(zhí)行,目的防止出現(xiàn)死循環(huán);設(shè)置當(dāng)n=1時(shí) ,我們讓函數(shù)返回1,return后面的代碼不在執(zhí)行。def sum_numbers(num): # 1.出口 if num == 1: return 1 # 2.數(shù)組累加 temp = sum_numbers(num - 1) return num + temp result = sum_numbers(3)print(result)
使用三種方法實(shí)現(xiàn)0-n累加求和
定義函數(shù)分別使用while循環(huán)、for循環(huán)、遞歸函數(shù)實(shí)現(xiàn)對0-n的累加求和
1、使用while循環(huán)
定義一個(gè)累加求和函數(shù)sum1(n),函數(shù)代碼如下:
20200503163511.jpg
2、使用 for循環(huán)
定義一個(gè)累加求和函數(shù)sum2(n),函數(shù)代碼如下:
20200503163523.jpg
3、使用遞歸函數(shù)
定義一個(gè)累加求和函數(shù)sum3(n),函數(shù)代碼如下:
1、使用while循環(huán)
定義一個(gè)累加求和函數(shù)sum1(n),函數(shù)代碼如下:
?
2、使用 for循環(huán)
定義一個(gè)累加求和函數(shù)sum2(n),函數(shù)代碼如下:
?
3、使用遞歸函數(shù)
定義一個(gè)累加求和函數(shù)sum3(n),函數(shù)代碼如下:
?
二、使用了三種實(shí)現(xiàn)累加求和的方法,分別定義了三個(gè)函數(shù)。
1、對0-100實(shí)現(xiàn)累加求和,令n=100,分別調(diào)用三個(gè)函數(shù),
代碼如下:
?
2、 控制臺的輸出結(jié)果都為:5050
?
3、這里需要注意的是:
1、在while循環(huán)中需要定義初始值和累加變量,防止出現(xiàn)死循環(huán);
# 直接用 sum 函數(shù)求解
list1 = [11, 5, 17, 18, 23]
print("列表元素之和為: ", sum(list1))
程序縮進(jìn)如圖所示
例如上面的例子,實(shí)現(xiàn)一個(gè)整形集合的累加。假設(shè)lst = [1,2,3,4,5],實(shí)現(xiàn)累加的方式有很多:
第一種:用sum函數(shù)。
sum(lst)
第二種:循環(huán)方式。
def customer_sum(lst):
result = 0
for x in lst:
result+=x
return result
def customer_sum(lst):
result = 0
while lst:
temp = lst.pop(0)
result+=temp
return result
if name ==" main ":
lst = [1,2,3,4,5]
print customer_sum(lst)
第三種:遞推求和
def add(lst,result):
if lst:
temp = lst.pop(0)
temp+=result
return add(lst,temp)
else:
return result
if name ==" main ":
lst = [1,2,3,4,5]
print add(lst,0)
第四種:reduce方式
lst = [1,2,3,4,5]
print reduce(lambda x,y:x+y,lst)
lst = [1,2,3,4,5]
print reduce(lambda x,y:x+y,lst,0)
def add(x,y):
return x+y
print reduce(add, lst)
def add(x,y):
return x+y
print reduce(add, lst,0)
有一個(gè)序列集合,例如[1,1,2,3,2,3,3,5,6,7,7,6,5,5,5],統(tǒng)計(jì)這個(gè)集合所有鍵的重復(fù)個(gè)數(shù),例如1出現(xiàn)了兩次,2出現(xiàn)了兩次等。大致的思路就是用字典存儲,元素就是字典的key,出現(xiàn)的次數(shù)就是字典的value。方法依然很多
第一種:for循環(huán)判斷
def statistics(lst):
dic = {}
for k in lst:
if not k in dic:
dic[k] = 1
else:
dic[k] +=1
return dic
lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]
print(statistics(lst))
第二種:比較取巧的,先把列表用set方式去重,然后用列表的count方法
def statistics2(lst):
m = set(lst)
dic = {}
for x in m:
dic[x] = lst.count(x)
lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]
print statistics2(lst)
第三種:用reduce方式
def statistics(dic,k):
if not k in dic:
dic[k] = 1
else:
dic[k] +=1
return dic
lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]
print reduce(statistics,lst,{})
或者
d = {}
d.extend(lst)
print reduce(statistics,d)
通過上面的例子發(fā)現(xiàn),凡是要對一個(gè)集合進(jìn)行操作的,并且要有一個(gè)統(tǒng)計(jì)結(jié)果的,能夠用循環(huán)或者遞歸方式解決的問題,一般情況下都可以用reduce方式實(shí)現(xiàn)。
你可以使用以下代碼從鍵盤輸入五個(gè)數(shù)并顯示累加結(jié)果:
# 首先,讓用戶輸入五個(gè)數(shù)
num1 = input("請輸入第一個(gè)數(shù):")
num2 = input("請輸入第二個(gè)數(shù):")
num3 = input("請輸入第三個(gè)數(shù):")
num4 = input("請輸入第四個(gè)數(shù):")
num5 = input("請輸入第五個(gè)數(shù):")
# 然后,將這五個(gè)數(shù)轉(zhuǎn)換為整數(shù)
num1 = int(num1)
num2 = int(num2)
num3 = int(num3)
num4 = int(num4)
num5 = int(num5)
# 最后,計(jì)算五個(gè)數(shù)的和并輸出結(jié)果
sum = num1 + num2 + num3 + num4 + num5
print("五個(gè)數(shù)的和為:", sum)
在這段代碼中,我們使用了 Python 中的 input() 函數(shù)來從鍵盤輸入五個(gè)數(shù)。然后,我們使用 int() 函數(shù)將這五個(gè)數(shù)轉(zhuǎn)換為整數(shù),最后使用變量 sum 來存儲五個(gè)數(shù)的和,并使用 print() 函數(shù)輸出結(jié)果。
希望這能幫到你!