我在資料科學領域找到了立足點,但遇到了一個問題,我正在創建一個函式,為一家假設的移動訂閱公司執行一些計算
我創建了一個字典,如下所示:
mobile_sub = {'minutes_used': 200,
'minutes_included': 200,
'texts_used': 200,
'texts_included': 200,
'monthly_plan': 10,
'cost_per_minute': 0.03,
'cost_per_sms': 0.001,
'vat_tax': 0.14}
那么計算函式:
def evaluateCharges(input_data=[]):
minutes_used = input_data['minutes_used']
texts_used = input_data['texts_used']
# Performing different actions based on the conditions indicated in the question.
if minutes_used > 200:
aditional_minutes = minutes_used-minutes_included
basecharge = monthly_plan (aditional_minutes * 0.03)
if texts_used > 200 :
aditional_texts = texts_used - texts_included
basecharge = monthly_plan (aditional_texts * 0.001)
VAT_TAX = basecharge * vat_tax
basecharge = VAT_TAX
# We can choose to format our basecharg 2dp
finalCharges = round(basecharge, 2)
# We then create a string with
output_string = "Dear Customer, below are the charges on your account : \n Minutes Used: ' str(minutes_used) '\n Texts Used: ' str(texts_used) '\n Additional Minutes: ' str(aditional_minutes) '\n Additional Texts: ' str(aditional_texts) '\n Basecharge: $' str(basecharge) '\n Tax Applied: 14% \n Total Charges: $' str(taxApplied)"
# the returning our output string
return print(output_string)
然后呼叫我們的函式并傳遞我們的字典
evaluateCharges(input_data=[ 250, 185])
這是我收到錯誤的地方:TypeError:串列索引必須是整數或切片,而不是 str,我該如何避免它?
TypeError Traceback (most recent call last)
<ipython-input-25-a618d565246b> in <module>()
36 # Then calling our function and passing our dictionary
37
---> 38 evaluateCharges(input_data=[ 250, 185])
<ipython-input-25-a618d565246b> in evaluateCharges(input_data)
7 based on the values received.
8 '''
----> 9 minutes_used = input_data['minutes_used']
10 texts_used = input_data['texts_used']
11
TypeError: list indices must be integers or slices, not str
uj5u.com熱心網友回復:
輸入資料應該是地圖,但您傳入的是 [250, 185]。然后,當你用 索引它時minutes_used = input_data['minutes_used'],它告訴你你不能用字串索引它。
uj5u.com熱心網友回復:
您將兩個元素串列傳遞給evaluateCharges 函式,這就是發生錯誤的原因。在 python 中,您可以使用mylist[index]index 是整數的語法訪問串列索引。在這里,您試圖將字串minutes_used和texts_used作為索引傳遞給名為input_data. 我認為你打算input_data成為一本字典而不是一個串列。看起來您可以通過傳入您的字典來獲得所需的行為:
mobile_sub = {'minutes_used': 200, 'minutes_included': 200, 'texts_used': 200, 'texts_included' : 200, 'monthly_plan': 10, 'cost_per_minute': 0.03 , 'cost_per_sms': 0.001, 'vat_tax': 0.14 }
evaluateCharges(input_data=mobile_sub)
在此之后,您的默認值input_data應該是字典而不是串列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/343233.html
標籤:Python
上一篇:如何使用re.search在'response.text'中的html中獲取腳本值?
下一篇:d3svg陰影差異
