使用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