使用AI帮助自己刷题时,我的学习效率与刷题效率得以极大提高,做到练中学。AI可以帮我快速找到代码中的漏洞,分析算法的优劣,优化我的算法,针对我的知识盲区,帮助我进行详细有条理的知识总结,以下是做题过程中利用AI帮助,进行的知识总结
def solution(n: int, x: int, a: list) -> str:
X = 4*x
sum = 0.00
for num in a:
sum += num / X
return "{:.2f}".format(sum)
if __name__ == '__main__':
print(solution(4, 1, [2, 3, 4, 5]) == '3.50')
print(solution(3, 2, [4, 6, 8]) == '2.25')
print(solution(2, 1, [10, 5]) == '3.75')
-
将小数保留规定位数
一、使用
round()
函数-
基本用法
round()
函数用于对数字进行四舍五入。它接受两个参数,第一个参数是要进行操作的数字,第二个参数是要保留的小数位数。- 例如,如果你有一个数字
num = 3.14159
,想要保留两位小数,可以这样做:
num = 3.14159 result = round(num, 2) print(result)
-
特殊情况 - 小数部分恰好是
.5
结尾- 当要保留的小数部分恰好是以
.5
结尾时,round()
函数会将数字舍入到最接近的偶数。 - 例如:
num1 = 2.15 num2 = 2.25 result1 = round(num1, 1) result2 = round(num2, 1) print(result1) print(result2)
- 当要保留的小数部分恰好是以
- 输出结果为
2.2
和2.2
。这是因为2.15
被舍入到最接近的偶数2.2
,2.25
同样被舍入到2.2
。
二、使用字符串格式化
-
format()
方法- 字符串的
format()
方法可以用于格式化数字。在格式化字符串中,{:.2f}
表示将对应的数字格式化为保留两位小数的浮点数。 - 例如:
num = 3.14159 result = "{:.2f}".format(num) print(result)
- 字符串的
-
输出为
3.14
。这里format()
方法会按照指定的格式{:.2f}
对num
进行格式化,其中:
表示开始格式化操作,.2
表示保留两位小数,f
表示格式化的类型是浮点数。
-
f - strings
(格式化字符串字面值)- 这是 Python 3.6 及以上版本支持的一种简洁的格式化方式。在
f - strings
中,可以直接在字符串前面加上f
,然后在字符串内部用{}
包含变量,并在:
后面指定格式。 - 例如:
num = 3.14159 result = f"{num:.2f}" print(result)
- 这是 Python 3.6 及以上版本支持的一种简洁的格式化方式。在
- 输出同样是
3.14
。这种方式使得代码更加简洁易读,将格式化操作和字符串拼接结合在一起。
三、使用
decimal
模块(适用于高精度计算)-
基本原理
-
decimal
模块提供了高精度的十进制算术运算。当需要对数字进行精确的小数位控制,特别是在金融等对精度要求极高的领域时非常有用。 -
首先需要导入
decimal
模块:from decimal import Decimal
-
-
示例操作
- 例如,有一个数字
num = 3.14159
,想要保留两位小数:
from decimal import Decimal num = Decimal("3.14159") result = num.quantize(Decimal("0.01")) print(result)
- 例如,有一个数字
- 输出为
3.14
。这里quantize()
方法用于对Decimal
对象进行舍入操作,参数Decimal("0.01")
表示将数字舍入到百分位(两位小数)。这种方法可以精确地控制数字的精度和舍入方式,避免了浮点数运算可能带来的精度损失。
-
以下代码可用来判断列表中的元素是否相同
def all_same_characters(s):
unique_chars = set(s)
return len(unique_chars) == 1