繁体   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