我是一個Python初學者,我有一個任務,我需要創建我自己的函數來查找列表的總和和意思。我試圖使下面的公式:Python:操作數錯誤,當我嘗試運行找到總和和意思
import math
list1 = ['ABC123', 0.00095, 0.00081, 0.0023, 0.00209, 0.0017, 0.00215, 0.00167, 0.00164, 0.00206, 0.00233, 0.00239, 0.00242, 0.0023, 9e-05, 0.00177, 0.001]
def samplesum(my_list):
'''Finds the sum of a list'''
total_sum = 0
for element in my_list:
total_sum += element
return total_sum
def samplemean(my_list):
"""Finds the mean of a list"""
sum_of_num = sum(my_list)
list_mean = sum_of_num/len(my_list)
return list_mean
samplesum(list1)
samplemean(list1)
當我運行該腳本,我得到這個錯誤信息:
File "Task.py", line 136, in <module>
samplesum(list1)
File "Task.py", line 120, in samplesum
total_sum += element
TypeError: unsupported operand type(s) for +: 'int' and 'str'
,或者如果我出靜音使用#
的samplesum(my_list)
功能,我會得到這個錯誤samplemean(my_list)
File "Task.py", line 137, in <module>
samplemean(list1)
File "Task.py", line 125, in samplemean
sum_of_num = sum(my_list)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
我在做什麼錯?
更新:正如幾個意見指出,事實證明,除了整數之外,我有一個單一的字符串在該列表中。我通過重新定義沒有字符串的列表來刪除它,但我認爲這被認爲是硬編碼,而賦值指令不允許硬編碼。如何使Python使用這些公式忽略列表中的字符串?
看起來像'list1'至少有一個元素是一個字符串。如何創建'list1'? – Lucas
歡迎來到StackOverflow。請閱讀並遵守幫助文檔中的發佈準則。 [最小,完整,可驗證的示例](http://stackoverflow.com/help/mcve)適用於此處。在發佈您的MCVE代碼並準確描述問題之前,我們無法爲您提供有效的幫助。特別是,您的發佈代碼不會重現該問題,因爲您的代碼在第一個可執行文件行中死亡。 – Prune
@biocoder你可以發佈list1的內容嗎? –