蓝桥杯python组如何准备

孤街醉人 提交于 2020-02-16 03:50:09

在蓝桥杯的程序设计比赛里新增加了python组,这是一个全新的组别,目前蓝桥杯官网已经开通了python的练习平台,链接http://dasai.lanqiao.cn/

如何准备2020年蓝桥杯python程序设计呢,我分为四个部分讲解,了解这四个部分,将有助于备战此次比赛

一、python基本的语法

学到面向对象就差不多了,不需要太深入学习面向对象后面的内容。因为这是程序设计比赛,很少会涉及到python的高阶知识,因此我建议学完基本的面向对象即可,后面的不必深入。当然,python在人工智能等领域是有很大用武之地的,因此想走这些方向的同学可以深入的学下去。

二、掌握python标准库

蓝桥杯是不支持第三方库的,后面注意事项里面我会讲到,但是python的标准库就已经琳琅满目了,学好python标准库,将是一个事半功倍的过程。

三、找一本大纲开始刷题和学习

推荐《算法竞赛入门经典》,虽然是c++的,但是非常适合作为大纲,题目也完全符合蓝桥杯难度,你需要做的,就是学会这些思想,然后用python实现。

四、注意事项

1.不支持第三方库

蓝桥杯python组,不支持第三方库,仅能使用python的标准库,这就需要知道python的常用标准库有哪些,哪些在算法比赛中比较常见,学会一些常用的标准库,对于我们解题是十分有帮助的,方便且快速。

对于蓝桥杯中可能用到python的标准库,我会更新给大家,关注我,不迷路,这里先将整个思路讲一遍。

如果觉得有用的话请关注我的公众号吧 “一个直男的救赎之路”:

mark

2.只有python自带的IDE

所有,还在使用pycharm的同学,请赶紧适应过来,否则在比赛的时候肯定会吃大亏,这个ide不是很好用

mark

3.python版本为Python 3.6.5

请务必按照这个版本,这里推荐使用Anaconda,这里就不详细介绍了

4.刷题

推荐《算法竞赛入门经典》,这是c++的,可以当做一本大纲来使用,主要理解其中的思想,自己用python实现

ps:python的算法书,好的是真没有什么呀

mark

5.用python刷算法题中的小技巧

我们需要知道python的一些常用小技巧:

下面列出一些在蓝桥杯python编程需要用到的小技巧:

学习过python的同学一定知道,学习python语法是很简单的一件事情。相比于c,c++,再简单不过了,我相信稍微有一点编程基础的同学,用上一天就能把python的基础语法差不多掌握。但是,在实际写代码的时候,总是会遇到各种各样的“坑”,让初出茅庐的我们经常“卡死”在某一个小环节上,然后开始怀疑人生。

我将一些比较实用的坑给大家罗列一下,让代码之路更加平坦一些吧!

列表怎么转化为字符串

一个列表存储了一段字符

ls = ["1","2","3"]

我们怎么样把这个列表变成一个字符串 “123”呢?

也许你有很多的想法,但是下面这一句代码可以很好的解决这个问题:

"".join(ls)

这样就将ls转化为字符串了,它的返回值时:“123”

字符串可以看做可迭代对象

众所周知,列表是可以迭代的:

ls = ["a","b","c"]
for i in ls:
    print(i)

a
b
c

字符串也可以这样操作:

s = "abc"
for i in s:
    print(i)

a
b
c

字符串是不可变对象

我们有时候会想改变字符串里的某一个字符,例如将“abc”变成“abd”,于是有了下面的代码:

s = "abc"
s[2] = "d"

看上去非常合理,运行一些,哦豁,报错了,鲜红的字体:

TypeError: ‘str’ object does not support item assignment

这是为啥呢?真相就是,在python中,字符串是不可变的,在python中,像这样的例子还有这些:

  • 数字
  • 字符串
  • 元组
  • 不可变集合

他们都不支持原处修改的,切记

那么,怎么样去修改固定的某一个字符呢?

可以先将字符串转化为列表,修改完之后再转化为字符串

s = "abc"
temp = list(s)
temp[2] = "d"
s = "".join(temp)
print(s)

太长了,有没有更好一点的办法呢,有,使用replace函数:

s = "abc"
s = s.replace("c","d")
print(s)

当然还有其他的办法,但是你要记住的就是,字符串是不可变的!

怎么样接收由空格分开的多个数据

这个在算法题里面是很常见的,

我们有时候想会接受多个数据,但是是用空格分割的,怎么样去接收呢?很简单,用split函数:

ls = input().split()

split()函数括号里填写的是分割符,不填默认的就是空格,这样,假如你输入 1 2 3:

ls就等于 [1,2,3],接下来你就可以随意取用了

同时改变列表中所有元素的类型

比如说你有一个列表,里面的列表元素全部都是字符型,你需要将这些字符全部转化为int型,这个时候你可以写一个循环来实现,但是更加简洁的方法是使用map函数

ls = input().split()
ls2 = list(map(int,ls))

map函数说白了,就是对可迭代对象里面的每一个元素,进行同一种映射,上面的代码就是将ls里的每一个元素,都用int()函数映射为int型,将返回的对象再用list()函数转换为列表

假如ls1 = [“1”,“2”,“3”]

那么ls2 = [1,2,3]

今天就先码到这,后面再更新吧。期待给个关注呗!

t(map(int,ls))


map函数说白了,就是对可迭代对象里面的每一个元素,进行同一种映射,上面的代码就是将ls里的每一个元素,都用int()函数映射为int型,将返回的对象再用list()函数转换为列表

假如ls1 = ["1","2","3"]

那么ls2 = [1,2,3]





今天就先码到这,后面再更新吧。期待给个关注呗!

![mark](https://imgconvert.csdnimg.cn/aHR0cDovL21hcmtkb3duc2F2ZS5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vbWFya2Rvd24vMjAyMDAyMTQvMDAwMjE5Mzg1LmpwZw?x-oss-process=image/format,png)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!