蓝桥杯python总结

考前最后一晚来抱个佛脚
留给自己复习用

  • 常规的判断质数
# 判断一个数是否为质数
def is_prime(n):
   if n == 1 or n == 4:
       return False
   if n == 2 or n == 3:
       return True
   if n % 6 == 1 or n % 6 == 5:
   	# 优化的地方
       for i in range(5, int(math.sqrt(n) + 1)2):
           if n % i == 0:
               return False
       return True
   else:
       return False
————————————————
版权声明:本文为优快云博主「Castle Yeager」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_32740521/article/details/117632550
  • 日期类
import datetime
import math

start = datetime.datetime(year=2001, month=1, day=1)
end = datetime.datetime(year=2021, month=12, day=31)
res = 0
for i in range(1, (end - start).days + 1):
   cur = start + datetime.timedelta(days=i)
   s = str(cur.year) + str(cur.month) + str(cur.day)
   n = sum(list(map(int, s)))
   if pow(int(math.sqrt(n)), 2) == n:
       res += 1
print(res)
  • 转二进制
s=format(i,'b')
s=bin(i)
  • 排列组合
import itertools
a=[1,2,3,4] 
itertools.permutations(a,2)#全排列
import itertools
for i in itertools.combinations(['1','2','3'],2):#组合
	print(i)

记录一下 等明天比完就放弃python转c写算法!!

### 关于蓝桥杯 Python 算法总结及相关资料 #### 一、输入输出常用函数与格式 在 Python 中,处理数据的输入和输出是非常重要的部分。对于蓝桥杯竞赛而言,掌握基本的输入输出方法及其优化技巧至关重要。例如,在读取多行或多列的数据时,`input()` 和 `map()` 是最常使用的工具之一[^1]。 ```python n = int(input()) a = list(map(int, input().split())) print(' '.join(map(str, a))) ``` 上述代码片段展示了如何通过标准输入获取整型列表并将其打印出来。这里的关键在于使用了 `map()` 函数来快速转换类型以及 `' '.join()` 方法用于格式化输出结果。 --- #### 二、经典排序算法实现 针对蓝桥杯中的题目需求,有时需要自行编写高效的排序算法而非依赖内置函数。以下是一个基于桶排序的经典案例: ```python from itertools import chain def Bucket_Sort(a, bucketcount): minvalue, maxvalue = min(a), max(a) bucketsize = (maxvalue - minvalue + 1) // bucketcount res = [[] for _ in range(bucketcount + 1)] for x in a: idx = (x - minvalue) // bucketsize res[idx].append(x) for r in res: r.sort() return list(chain(*res)) n = int(input()) a = list(map(int, input().split())) sorted_a = Bucket_Sort(a, min(n, 10000)) print(' '.join(map(str, sorted_a))) ``` 此代码实现了自定义的桶排序逻辑,并能够适应大规模数组的情况[^2]。 --- #### 三、常见数学运算函数汇总 除了常规的算术操作外,Python 提供了许多便捷的数学计算功能,这些都可以帮助选手更高效地解决问题。以下是几个典型的例子[^3]: | **函数名** | **描述** | |------------|------------------------------| | `abs(x)` | 返回数值的绝对值 | | `complex(real, imag)` | 构建复数对象 | | `round(number[, ndigits])` | 对浮点数进行四舍五入 | | `divmod(a, b)` | 同时返回除法的结果 `(商, 余数)` | | `sum(iterable)` | 求可迭代序列的所有元素之和 | | `eval(expression)` | 执行字符串形式的表达式 | | `max(iterable)` / `min(iterable)` | 获取最大/最小值 | 以上表格列举了一些常见的数学类函数,它们可以直接应用于实际编程场景之中。 --- #### 四、扩展阅读建议 为了更好地准备蓝桥杯比赛,推荐深入研究以下几个方面: - 数据结构基础知识(栈、队列、链表等) - 动态规划原理及应用实例 - 图论基础概念(DFS/BFS遍历) 同时也可以参考历年真题解析文档或者参加线上模拟测试活动进一步巩固所学知识点。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值