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