Python蓝桥杯易错点整理和心得总结【一】-1

简介: Python蓝桥杯易错点整理和心得总结【一】

1.当输入包括数字且需要根据数字大小进行排序时,一定要加上int,否则就是字符串类型的数字比较了——来自蓝桥杯算法训练:预备爷的悲剧

image.png


这张图表示的是某个字符出现在第几页,页数是数字类型,比方说你要创建字典,key为页数,最后按照key升序,那就必须在添加键值对的时候把key转化为int类型。


2.gcd(最大公约数)和lcm(最小公倍数)关系及板子


关系:若a,b>0 那么a*b=gcd(a,b)*lcm(a,b)


gcd板子(太常用了):

image.png


def gcd(a,b):
    while b:
        a,b=b,a%b
    return a


那么lcm的板子可以由gcd推得


image.png


def lcm(a,b):
    t=a*b
    while b:
        a,b=b,a%b
    return t//a

#因为到最后a,b的值都不是原来的了,需要一开始用t存a*b

掌握了这两个还需要再掌握一个:求N个数字的gcd(最大公约数)


板子思想:递归(不难,好理解的,前N//2个数字与后N//2个数字的最大公约数就是N个数字的最大公约数)


image.png


def gcd(a,b):
    while b:
        a,b=b,a%b
    return a
def super_gcd(nums):#把你要处理的N个数字放到列表nums里
    #基线条件列表长度为1或2
    l=len(nums)
    if l==1:
        return nums[0]
    elif l==2:
        return gcd(nums[0],nums[1])
    else:
        return gcd(super_gcd(nums[:l//2]),super_gcd(nums[l//2:]))


3.唯一分解定理和质因数分解关系和板子


唯一分解定理:对于n>1,n=(2^a)*(3^b)*(5^c)....*(x^y)


其中y>=0,x为质数,简单来说就是一个数一定可以分解为多个质数的连乘积。


推论:n的约数个数=(a+1)(b+1)...(y+1)


那么我们该如何分解,即如何展开质因数分解 (短除法)

image.png


#为了灵活使用,我写一个函数,并把分解出来的质数存到列表里并输出
#怎么加工利用看自己需要
def f(x):
    i=2
    l=[]
    while i<=x:
        if x%i==0:
            l.append(i)
            x//=i
        else:
            i+=1
    return l


4.判断质数(最基本的)和埃筛法板子(很多题用到)


判断质数:


#由于一个数n的因子是成对出现的 故只需要枚举到int(n**0.5)
def judge(x):
    for i in range(2,int(x**0.5)+1):
        if x%i==0:
            return False
    return True

埃筛板子:


maxn=10000#这个范围自己依据要查找数据范围内的质数设定

is_prime=[True for i in range(maxn+1)]
prime=[]
for i in range(2,maxn):
    if is_prime[i]:
        prime.append(i)
        j=i
        while j<=maxn:
            is_prime[j]=False
            j+=i

5.当输入的字符串需要跨行 需要用到"""   """ 三引号


image.png


6.二分板子(这个不同人有不同的习惯 小郑觉得自己的这个方法不容易出错)


l=0
r=N
while l+1!=r
    mid=(l+r)//2
    if #符合条件:
        r=mid
    else:
        l=mid

#划分红蓝区域

 详细内容可以看我这篇二分博客!Py小郑的博客-CSDN博客

image.png


7. 重要模块,函数


itertools模块(排列组合常用)
import itertools
s=[1,2,3]#序列
#l为排列组合的长度:从序列里面取几个出来
l=2
x=itertools.permutations(s,l)
y=itertools.combinations(s,l)
#如果要查看x,y的内容,转化为列表
 阶乘函数:
import math
math.factorial(n)
#求n!
 提一下数学知识:不妨令n>=m,A(n,m)=n!/(n-m)!
C(n,m)=A(n,m)/m!=n!/[(n-m)!*m!]


手写组合数函数,通常会比直接调factorial来直接表达组合数快很多倍


def C(n,m):#计算组合数
    t=1
    i,j=n,1
    while j<=m:
        t*=i/j
        i-=1
        j+=1
    return int(t)


目录
相关文章
|
1月前
|
Python
蓝桥杯练习题(一):Python组之入门训练题
这篇文章是关于蓝桥杯Python组的入门训练题,包括Fibonacci数列、圆的面积、序列求和和A+B问题的具体代码实现和样例输出。
128 0
|
1月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
63 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
1月前
|
人工智能 Python
蓝桥杯练习题(四):Python组之历届试题三十题
关于蓝桥杯Python组历届试题的三十个练习题的总结,包括题目描述、输入输出格式、样例输入输出以及部分题目的解题思路和代码实现。
32 0
蓝桥杯练习题(四):Python组之历届试题三十题
|
1月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(二):Python组之基础练习三十题
蓝桥杯Python编程练习题的集合,包含了三十个不同难度的编程题目,覆盖了基础语法、数据结构和算法等领域。
34 0
|
6月前
|
索引 Python 容器
【备战蓝桥杯】探索Python内置标准库collections的使用
【备战蓝桥杯】探索Python内置标准库collections的使用
93 1
|
6月前
|
开发者 Python
【备战蓝桥杯】如何使用Python 内置模块datetime去计算我与CSDN相遇的天数
【备战蓝桥杯】如何使用Python 内置模块datetime去计算我与CSDN相遇的天数
71 1
|
6月前
|
算法 测试技术 编译器
蓝桥杯-02-python组考点与14届真题
蓝桥杯-02-python组考点与14届真题
|
4天前
|
存储 数据挖掘 开发者
Python编程入门:从零到英雄
在这篇文章中,我们将一起踏上Python编程的奇幻之旅。无论你是编程新手,还是希望拓展技能的开发者,本教程都将为你提供一条清晰的道路,引导你从基础语法走向实际应用。通过精心设计的代码示例和练习,你将学会如何用Python解决实际问题,并准备好迎接更复杂的编程挑战。让我们一起探索这个强大的语言,开启你的编程生涯吧!
|
Python
对Python中一些“坑”的总结及技巧
一.赋值即定义 1.运行以下代码会出现报错 #!/usr/bin/env python #_*_conding:utf-8_*_ x = 100 def outer(): def inner(): x += 100    #其实这里等效于"x = x + 100",我们直到这是一个赋值语句,会优先计算右边的等式,即"x + 100".而在此时由于x变量赋值即定义,即此时的x和全局作用域的x并非同一个对象。
760 0
|
10天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
下一篇
无影云桌面