藍橋杯python組如何準備

在藍橋杯的程序設計比賽裏新增加了python組,這是一個全新的組別,目前藍橋杯官網已經開通了python的練習平臺,鏈接http://dasai.lanqiao.cn/

藍橋杯資源領取:
關注“文化人愛讀水許傳”,回覆關鍵詞,獲取海量學習資源:

mark
mark

如何準備2020年藍橋杯python程序設計呢,我分爲四個部分講解,瞭解這四個部分,將有助於備戰此次比賽

一、python基本的語法

學到面向對象就差不多了,不需要太深入學習面向對象後面的內容。因爲這是程序設計比賽,很少會涉及到python的高階知識,因此我建議學完基本的面向對象即可,後面的不必深入。當然,python在人工智能等領域是有很大用武之地的,因此想走這些方向的同學可以深入的學下去。

二、掌握python標準庫

藍橋杯是不支持第三方庫的,後面注意事項裏面我會講到,但是python的標準庫就已經琳琅滿目了,學好python標準庫,將是一個事半功倍的過程。

三、找一本大綱開始刷題和學習

推薦《算法競賽入門經典》,雖然是c++的,但是非常適合作爲大綱,題目也完全符合藍橋杯難度,你需要做的,就是學會這些思想,然後用python實現。

四、注意事項

1.不支持第三方庫

藍橋杯python組,不支持第三方庫,僅能使用python的標準庫,這就需要知道python的常用標準庫有哪些,哪些在算法比賽中比較常見,學會一些常用的標準庫,對於我們解題是十分有幫助的,方便且快速。

對於藍橋杯中可能用到python的標準庫,我會更新給大家,關注我,不迷路,這裏先將整個思路講一遍。

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]

點開這裏的朋友不妨關注一下公衆號“一個直男的救贖之路”,獲取更多實用諮詢。

公衆號主要分享的知識包括:人工智能,計算機視覺,算法,編程語言學習(python,java,c/c++),大學生競賽,學習方法心得,好書推薦等,歡迎您一起交流和學習。

公衆號也會經常分享一些優質資源和教學視頻,電子書等。

搜索“文化人愛讀水許傳”,也可以掃描下方的二維碼添加:

mark

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章