AI刷题经历与收获2|豆包MarsCode AI刷题

2 阅读3分钟

使用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()函数

    1. 基本用法

      • round()函数用于对数字进行四舍五入。它接受两个参数,第一个参数是要进行操作的数字,第二个参数是要保留的小数位数。
      • 例如,如果你有一个数字num = 3.14159,想要保留两位小数,可以这样做:
      num = 3.14159
      result = round(num, 2)
      print(result)
      
    2. 特殊情况 - 小数部分恰好是.5结尾

      • 当要保留的小数部分恰好是以.5结尾时,round()函数会将数字舍入到最接近的偶数。
      • 例如:
      num1 = 2.15
      num2 = 2.25
      result1 = round(num1, 1)
      result2 = round(num2, 1)
      print(result1)  
      print(result2)
      
    • 输出结果为2.22.2。这是因为2.15被舍入到最接近的偶数2.22.25同样被舍入到2.2

    二、使用字符串格式化

    1. format()方法

      • 字符串的format()方法可以用于格式化数字。在格式化字符串中,{:.2f}表示将对应的数字格式化为保留两位小数的浮点数。
      • 例如:
      num = 3.14159
      result = "{:.2f}".format(num)
      print(result)
      
    • 输出为3.14。这里format()方法会按照指定的格式{:.2f}num进行格式化,其中:表示开始格式化操作,.2表示保留两位小数,f表示格式化的类型是浮点数。

    1. f - strings(格式化字符串字面值)

      • 这是 Python 3.6 及以上版本支持的一种简洁的格式化方式。在f - strings中,可以直接在字符串前面加上f,然后在字符串内部用{}包含变量,并在:后面指定格式。
      • 例如:
      num = 3.14159
      result = f"{num:.2f}"
      print(result)
      
    • 输出同样是3.14。这种方式使得代码更加简洁易读,将格式化操作和字符串拼接结合在一起。

    三、使用decimal模块(适用于高精度计算)

    1. 基本原理

      • decimal模块提供了高精度的十进制算术运算。当需要对数字进行精确的小数位控制,特别是在金融等对精度要求极高的领域时非常有用。

      • 首先需要导入decimal模块:

        from decimal import Decimal

    2. 示例操作

      • 例如,有一个数字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