【Python實踐-2】求一個或多個數的乘積


 1 # -*- coding: utf-8 -*-
 2 #定義一個函數,可接收一個或多個數並計算乘積
 3 def product(*numbers):
 4     s=1
 5     for n in numbers:
 6         s=s*n
 7     return s
 8 print('請輸入一個或多個數,以空格分隔')
 9 #將輸入的字符串轉換為數組
10 a=list(map(float,input().strip().split()))
11 #print(a)
12 print(product(*a))

知識點:

  • 可變參數,即傳入的參數個數是可變的,從0個到任意個。輸入參數作為一個list或tuple傳進來,定義可變參數,在參數前面加了一個*號。在函數內部,參數numbers接收到的是一個tuple(或list)。調用一個可變參數,Python允許你在list或tuple前面加一個*號,把list或tuple的元素變成可變參數傳進去。*a表示把a這個list的所有元素作為可變參數傳進去。這種寫法相當有用,而且很常見。
  • a=list(map(float,input().strip().split()))將輸入的字符串轉換為數組,Python內建了map()函數,map()函數接收兩個參數,一個是函數,一個是Iterable, map將傳入的函數依次作用到序列的每個元素,並把結果作為新的Iterator返回。 舉例說明,比如我們有一個函數f(x)=x2,要把這個函數作用在一個list [1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map()實現如下。map()傳入的第一個參數是f,即函數對象本身。由於結果r是一個Iterator,Iterator是惰性序列,因此通過list()函數讓它把整個序列都計算出來並返回一個list。
>>> def f(x): 
...           return x * x
>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> list(r)
[1, 4, 9, 16, 25, 36, 49, 64, 81]
  • Python strip() 方法用於移除字符串頭尾指定的字符(默認為空格或換行符)或字符序列。
  • Python split() 通過指定分隔符對字符串進行切片, 並返回分割后的字符串列表(list),如果參數 num 有指定值,則分隔 num+1 個子字符串。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM