簡體   English   中英

Python 浮動替換多個

[英]Python Float and Replace More Than One

我會直截了當。

首先,我有這樣的考試成績:(分數為字符串)

  1. 學生 A:“550.4”->“。” = 點
  2. 學生 B:"1,098.9" -> ","(coma) = 千位符號,"." = 點
  3. 學生 C: "1,100.00" -> ","(coma) = 千位符號, "." = 點
  4. 學生 D:“999.99”->“。” = 點

標准:

  1. 當分數等於或小於 600.00 時,則顯示“學習更多!”
  2. 分數 <= 600,顯示“多學習!”
  3. 當分數等於或大於 1,000.00(千)時,則顯示“獲得您的獎勵!”
  4. 得分 => 1,000.00,顯示“獲得獎勵!”

我想要的是當其中一名學生的分數滿足其中一個標准時,然后顯示一條特殊消息。 因此,為了將分數與標准進行比較,我使用了這段代碼(下面的代碼):

'''
SA = "550.40"
SB = "1,098.90"
SC = "1,100.00"
SD = "999.99"

SA = float(SA) #return 550.4 (as number)
SB = float((SB[0:8]).replace(',','.')) #return error : 'ValueError: could not convert string to float: 1,098.90'
SC = float((SC[0:8]).replace(',','.')) #return error : 'ValueError: could not convert string to float: 1,100.00'
SD - float(SD) #return 999.99 (as number)
'''

注意:我使用 [0:8] 希望所有分數值(作為字符串)都將轉換為分數(作為數字,浮點數)如果 [0:8] 沒有得到所有分數值,請糾正我

當我使用 "replace(',','.')" 並滿足此條件 "XX,XXX.XX" (XX-coma-XXX-point-XX) 時,我會得到那些錯誤,我不知道為什么.

請幫我。 謝謝你。

您的替換會產生一個包含多個句點的字符串:您只能有一個(十進制)句點。 您需要將逗號替換為空字符串(空字符串)或下划線(為了便於閱讀,但這並不重要,因為未顯示中間結果):

SB = "1,098.90"
SC = "1,100.00"

SB = float(SB[:8].replace(',', ''))
SC = float(SC[:8].replace(',', ''))

您應該將其替換為空字符串而不是“。”。 您也不需要切片SBSC

SB = "1,098.90"
SC = "1,100.00"

SB = float(SB.replace(',',''))
SC = float(SC.replace(',',''))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM