本文目錄一覽:
- 1、不符合python語言變量命名規則的是?
- 2、以下關於python程序語法元素的描述,錯誤的選項是()?
- 3、Python 運行報錯NameError出現原因,怎麼解決
- 4、幾個Python題目?
- 5、40道python二級考試真題火爆互聯網,完整版答案解析為你保駕護航
- 6、算法不紮實的程序員,每一個都很慌
不符合python語言變量命名規則的是?
變量命名注意事項
1、變量名的長度不受限制,但其中的字符必須是字母、數字、或者下劃線(_),而不能使用空格、連字符、標點符號、引號或其他字符。
2、變量名的第一個字符不能是數字,必須是字母或下劃線。
3、Python區分大小寫。
4、不能將Python關鍵字用作變量名。
例如:
提示:
代碼中有紅色波浪線表明有語法錯誤,綠色的表明不推薦,最好『見名知意 』
多個單詞用下劃線連接;
避免用單個字符定義變量名,單個字母一般用在循環的時候,控制次數。
Python的關鍵字:help(“keywords”)
變量名的命名規則
1、變量命名推薦使用小寫字母
2、變量的名字要有意義,進來用對應的英文命名,具有「見名知意」的作用。
如學生姓名 變量取名為name或者student_name
3、避免使用單個字符作為變量名(除了在循環裏面定義的變量)
4、當使用多個單詞組成變量名時,應該使用(word_word_word)命名法。
如 學生人數:student_number
學生總人數:student_total
變量的簡單寫法
以下關於python程序語法元素的描述,錯誤的選項是()?
正確的選項是C。
A選項是對的,python是區分大小寫的,True才是python的保留字。
B選項是對的,中文格式的變量名會導致兼容性和可讀性等問題。
D選項是對的,代碼分行分段寫,比一行寫到低,肯定是容易閱讀和維護。
C選項中,只要是用這四個關鍵字開頭的語句都必須用冒號結尾,否則會提示語法錯誤。
Python 運行報錯NameError出現原因,怎麼解決
python程序,報錯NameError: name XX is not defined 是沒有聲明造成的,需要在文件的前兩行進行聲明編碼,聲明方法為:
1、寫一個python文件,文件中有中文字符,且未聲明編碼。
2、當程序文件中,存在中文字符時候,文件未聲明編碼格式就會出現報錯信息: File “encode.py”, line 1SyntaxError:
Non-ASCII character ‘\xe7’ in file encode.py on line 1, but no encoding
declared; see //..python…/dev/peps/pep-0263/ for details for details。
3、根據錯誤提示,在python官網得到如下幫助信息。
4、所以,按照幫助文檔的提示以及例子,在Python文件中加入一個編碼聲明。
5、保存之後,再次運行,運行成功。
幾個Python題目?
1.【選擇】 下面哪個選項不是定義列表的正確方式?( D)
D.myList4 = 2,3,4,5
答案解析:這是定義元組的方式,而不是列表
2.【選擇】根據下面表達式,a的值是:( C)
C.lo Wo
3.【填空】請寫出如何切片myList[]的倒數第3~5位。
myList[-3:-5]
4.【判斷】列表內元素的下標是從0開始的。( √)
5.【選擇】下列Python表達式可以將列表反向並改變原列表值的是:( D)
D.myList.reverse()
答案解析:切片會生成新的列表;reversed只是生成新的迭代器;只有 list.reverse()會對原表的值進行改變
———–
1.【判斷】Python語句「x = “a”,”b”,”c”」中,x是一個元組。(√ )
2.【選擇】執行下列Python語句會報錯的是:( A)
A.myTuple[3] = 30
答案解析:元組是immutable(不可變)的,所以不能改變元組的值
3.【填空】使用Python內置函數,計算元組myTuple的語句是:
sum(myTuple)
4.【選擇】下列關於Python的描述錯誤的是:( C)
C.對元組內部元素進行排序使用的是sort()
答案解析:元組不可變,所以不能對元素進行排序
————
1.【選擇】下列關於Python中字符串說法錯誤的是:( D)
D.Python中字符類型是char,字符串的類型是str
答案解析:python字符和字符串類型都是str
3.【填空】請寫出用空格「 」合併字符串「Jane」、「Doe」的Python語句:
“Jane” + ” ” + “Doe”
4.【選擇】下列不是Python3中解決路徑中特殊字符問題的選項是:( C)
C.s = u”D:\test”
————
1.【選擇】下列不是序列的是:(C )
C.集合
3.【選擇】下面哪些操作是序列都具有的?( D)
D.以上都是
—–
1.【判斷】Python中符號{}僅用在集合這一數據類型中。(B.× )
3.【填空】語句set(“datascience”)的結果是:
集合 {‘d’, ‘a’, ‘t’, ‘s’, ‘c’, ‘i’, ‘e’, ‘n’}
4.【選擇】下列關於集合的說法錯誤的是:(A )
A.集合具有互異性,定義集合時不允許出現相同的元素
答案解析:出現了重複也沒事,會自動去重的。
7.【選擇】在Python中對數據進行去重處理,一般會藉助下列哪種數據類型?( C)
C.集合
———
1.【填空】有兩個列表 a = [“name”,”age”,”sex”],b = [“jonh”,”23″,”M”],請用一個語句將這兩個列錶轉換成字典,其中列表a中的元素為「鍵」,列表b中的元素為「值」。
dict(zip(a, b))
2.【填空】定義一個新字典如下,用print輸出dict1的結果是:
{1: 3, 2: ‘a’}
4.【判斷】下面對字典d的定義是正確的。(B.× )
答案解析:列表不能用做鍵。應該用元組(‘a’,’b’)做鍵 。
40道python二級考試真題火爆互聯網,完整版答案解析為你保駕護航
1.以下關於程序設計語言的描述,錯誤的選項是:
A Python語言是一種腳本編程語言
B 彙編語言是直接操作計算機硬件的編程語言
C 程序設計語言經歷了機器語言、彙編語言、腳本語言三個階段
D 編譯和解釋的區別是一次性翻譯程序還是每次執行時都要翻譯程序
正確答案: C
2.表達式 1001 == 0x3e7 的結果是:
A false
B False
C true
D True
正確答案: B
3.以下選項,不是Python保留字的選項是:
A del
B pass
C not
D string
正確答案: D
4.表達式 eval(『500/10』) 的結果是:
A 『500/10』
B 500/10
C 50
D 50.0
正確答案: D
5.表達式 type(eval(『45』)) 的結果是:
A
B
C None
D
正確答案: D
6.表達式 pmod(20,3) 的結果是:
A 6, 2
B 6
C 2
D (6, 2)
正確答案: D
7.以下關於字符串類型的操作的描述,錯誤的是:
A str.replace(x,y)方法把字符串str中所有的x子串都替換成y
B 想把一個字符串str所有的字符都大寫,用str.upper()
C 想獲取字符串str的長度,用字符串處理函數 str.len()
D 設 x = 』aa』 ,則執行x*3的結果是『aaaaaa』
正確答案: C
8.設 str = 『python』,想把字符串的第一個字母大寫,其他字母還是小寫,正確的選項是:
A print(str[0].upper()+str[1:])
B print(str[1].upper()+str[-1:1])
C print(str[0].upper()+str[1:-1])
D print(str[1].upper()+str[2:])
正確答案: A
9.以下選項,不屬於程序流程圖基本元素的是:
A 循環框
B 連接點
C 判斷框
D 起始框
正確答案: A
10.以下關於循環結構的描述,錯誤的是:
A 遍歷循環使用for in 語句,其中循環結構不能是文件
B 使用range()函數可以指定for循環的次數
C for i in range(5)表示循環5次,i的值是從0到4
D 用字符串做循環結構的時候,循環的次數是字符串的長度
正確答案: A
11.執行以下程序,輸入」93python22」,輸出結果是:
A python9322
B python
C 93python22
D 9322
正確答案: C
A la
B 請輸入整數
C pythonpython
D python
正確答案: C
A 2
B 請輸入q退出:
C 3
D 1
正確答案: A
14.以下程序的輸出結果是:
A 0
B 2
C UnboundLocalError
D 5
正確答案: A
A 18 None
B 10 18
C UnboundLocalError
D 18 18
正確答案: B
def test( b = 2, a = 4):
global z
z += a * b
return z
z = 10
print(test(),z)
18,18
17.以下程序的輸出結果是:
A 22.0 None
B 10 None
C 22 None
D 10.0 22.0
正確答案: B
18.以下表達式,正確定義了一個集合數據對象的是:
A x = { 200, 』flg』, 20.3}
B x = ( 200, 』flg』, 20.3)
C x = [ 200, 』flg』, 20.3 ]
D x = {『flg』 : 20.3}
正確答案: A
19.以下程序的輸出結果是:
A [『z』, 『j』, 『s』, 『y』]
B [『j』, 『s』, 『y』, 『z』]
C [『j』, 『z』, 『z』, 『s』, 『z』, 『y』, 『j』]
D [『j』, 『j』, 『s』, 『y』, 『z』, 『z』, 『z』]
正確答案: B
20.以下程序的輸出結果是:
A htslbht
B hlbst
C tsblh
D hhlstt
正確答案: B
21.已知id(ls1) = 4404896968,以下程序的輸出結果是:
A 4404896968 4404896904
B 4404896904 4404896968
C 4404896968 4404896968
D 4404896904 4404896904
正確答案: A
A [『300』,『200』,『400』]
B [『shandong』, 『hebei』, 『beijing』]
C [300,200,400]
D 『shandong』, 『hebei』, 『beijing』
正確答案: B
23.以下關於文件的描述,錯誤的是:
A 二進制文件和文本文件的操作步驟都是「打開-操作-關閉」
B open() 打開文件之後,文件的內容並沒有在內存中
C open()只能打開一個已經存在的文件
D 文件讀寫之後,要調用close()才能確保文件被保存在磁盤中了
正確答案: C
24.以下程序輸出到文件text.csv里的結果是:
A [90,87,93]
B 90,87,93
C 『[90,87,93]』
D 『90,87,93』
正確答案: B
25.以下程序的輸出結果是:
A ( [1,2,3,4,5])
B [12, 34, 56, 78]
C ([12, 34, 56, 78])
D [1,2,3,4,5]
正確答案: B
26.以下關於數據維度的描述,錯誤的是:
A 採用列表表示一維數據,不同數據類型的元素是可以的
B JSON格式可以表示比二維數據還複雜的高維數據
C 二維數據可以看成是一維數據的組合形式
D 字典不可以表示二維以上的高維數據
正確答案: D
27.以下不屬於Python的pip工具命令的選項是:
A show
B install
C download
D get
正確答案: D
29.以下不是程序輸出結果的選項是:
A [12, 78, 56, 34]
B [56, 12, 78, 34]
C [12, 34, 56, 78]
D [12, 78, 34, 56]
正確答案: C
30.以下關於turtle庫的描述,正確的是:
A 在import turtle之後就可以用circle()語句,來畫一個圓圈
B 要用from turtle import turtle來導入所有的庫函數
C home() 函數設置當前畫筆位置到原點,朝向東
D seth(x) 是setheading(x)函數的別名,讓畫筆向前移動x
正確答案: C
31.一些重要的程序語言(如C語言和Pascal語言)允許過程的遞歸調用。而實現遞歸調用中的存儲分配通常用
A 棧
B 堆
C 鏈表
D 數組
正確答案: A
因為函數調用是能過將關鍵寄存器壓棧保護現場;在函數返回時,彈棧恢復現場來完成的。
而遞歸調用說白了就是自已調用自己。也就是不停的上演pop, push的棧操作。
系統為什麼選用棧來實現函數間的調用呢?我覺的主要原因如下:
對於頻繁的調用操作過程中,棧的pop,push操作最簡潔,快速。硬件級(或者理解成彙編級也行)支持棧操作。所以用棧最高效,快速。如果用堆、數組、鏈表,不光要維護很多功能輔助性數據,算法也很麻煩。這樣會大大降低計算機的使用效率。
32.下列敘述中正確的是
A 一個算法的空間複雜度大,則其時間複雜度必定小
B 一個算法的空間複雜度大,則其時間複雜度也必定大
C 算法的時間複雜度與空間複雜度沒有直接關係
D 一個算法的時間複雜度大,則其空間複雜度必定小
正確答案: C
34.軟件開發離不開系統環境資源的支持,其中必要的測試數據屬於
A 輔助資源
B 硬件資源
C 通信資源
D 支持軟件
正確答案: A
35.完全不考慮程序的內部結構和內部特徵,而只是根據程序功能導出測試用例的測試方法是
A 錯誤推測法
B 白箱測試法
C 黑箱測試法
D 安裝測試法
正確答案: C
37.下列有關數據庫的描述,正確的是
A 數據庫是一個關係
B 數據庫是一個DBF文件
C 數據庫是一個結構化的數據集合
D 數據庫是一組文件
正確答案: C
38.相對於數據庫系統,文件系統的主要缺陷有數據關聯差、數據不一致性和
A 可重用性差
B 冗餘性
C 非持久性
D 安全性差
正確答案: B
39.軟件開發的結構化生命周期方法將軟件生命周期劃分成
A 定義、開發、運行維護
B 設計階段、編程階段、測試階段
C 總體設計、詳細設計、編程調試
D 需求分析、功能定義、系統設計
正確答案: A
40.下列不屬於結構化分析的常用工具的是
A 判定樹
B 數據字典
C 數據流圖
D PAD圖
正確答案: C
算法不紮實的程序員,每一個都很慌
初學者經常問這樣的問題,然而這些其實是錯誤的問題。
對於初學者而言,你最應該優先考慮的是,哪些東西構成了程序的基礎?
最經典的一句話: 程序 = 數據結構 + 算法 。
如果說編程語言是程序的血肉,那麼算法就是程序的靈魂。
人不能沒有血肉之軀,但是沒有靈魂的人依然只是一個死人。
不能單純依靠算法衡量一個程序員的好壞,但是面試的時候考算法絕對是簡單高效的篩選手段。近些年大廠的面試幾乎必考算法也是這個原因。每一個算法學的不紮實的程序員,在面試的時候都很慌。
下面這些書籍應該是算法方面最常見的經典書籍。我有幸都讀過,有些讀完了,有些半途而廢,不過基本上也都算是熟悉。順序上由易到難,從薄到厚,每本書下面我會簡單的介紹一番,希望能對你的學習有所幫助。
首先是兩本算法入門書籍,也可以當做算法讀物:
《啊哈!算法》
用他的自我介紹的來講:「這不過是一本有趣的算法書而已,和別的算法書比較,如果硬要說它有什麼特點的話,那就是你能看懂它。」
圖文並茂,而且畫風有趣,適合新手入門,但是代碼是C的,看着比較累,文字也略顯冗長。
圖是非常棒的,啟蒙用,非教科書
《算法圖解》
和《啊哈》類似,他的介紹是:「像小說一樣有趣的算法入門書。」
書裏面講的很好,Python代碼也很容易讀懂,比之《啊哈!算法》,書中的例子沒有那麼有趣,但是圖很清晰,文字和代碼不冗雜。
缺點同樣是非教科書,非常淺顯,三四個小時就看完了。有一種剛剛熱身的感覺。
接下來這幾本都是最常見的書了:
《數據結構與算法分析C語言描述》
這本書的作者幾乎不浪費筆墨在一些簡單的地方。書很薄,但是覆蓋面很廣很深,作者實在是非常厲害。
不過反過來說,就是有些地方講的語焉不詳……
這本書還有Java語言版本的,但是相比之下C的更好一些。
挺好的一本書。
還有一點是翻譯不是很給力,好多人都沒堅持看完。
《數據結構與算法Python語言實現》
英文版評分非常高,中文版評分非常低……
據說是也翻譯的不好。另外就是本書自身錯誤也不少……幾版過後依然很多沒有改過來。
書中數學證明和介紹比較簡單。因為採用Python語言的原因,比較易讀。
淺顯易懂,內容上循序漸進,環環相扣。相比於上一本,我會更推薦一些。厚度也不算厚。
《數據結構與算法 Python語言描述》
北大教授裘宗燕的書,這本書前面寫的挺好的,尤其是在面向對象還有ADT等思想的闡述,都很不錯。
但是讀到後來給我一種虎頭蛇尾的感覺,前面氣勢如虹緒論就寫了很長,最後三章感覺有點草草收尾的意思。就像編輯在催稿,而作者很忙的樣子……
另外就是這本書的編排順序我個人也不是特別喜歡。
接下來是兩本大部頭,都是非常厚的書。
他們最大的特點就是:出現率遠大於看完率
《算法導論》
算法書中的權威,MIT的6.046J就是按照這個來講的。
公認最好的算法書,組織結構合理,內容詳盡。引導讀者從思維方式上對算法進行領悟。
書中對算法的數學結構進行了詳盡的闡述。有非常多的數學證明。
這本書我說不出什麼缺點,只能說有些內容是因為我還沒到大牛的境界,暫時還無法體會理解。
我個人的觀點是:不要糾結於詳細的偽代碼,不用糾結於連篇累牘的講解。體會其中算法的精髓就好。
《算法》第四版
如果說,《算法導論》是學術上最好書,那這本應該是實際應用最好的書。
它對數學的要求比《算法導論》低很多,摒棄了算法的證明。
書中具體給出了每位程序員應知應會的50個算法,深入淺出,大量圖解。非常棒。
java基礎的話你能擼出來Hello World基本上就可以開始看這本書了,這本書最大的不友好之處在於它的第一章非常長,沒看過的人又不知道哪裡可以跳過。
這本書後面的翻譯感覺不如前邊了,不知道是換人了還是DDL了……
翻開書就會看到很多的圖,配套作者在coursera上面的課程學的話事半功倍!
接下來的幾本我看的比較少,簡單介紹一下,希望大家自己去發現和了解,不要漏下這些好書:
《編程珠璣》
很薄一本啊,但是我放在那還沒看完……
這本書被稱為: 歷史 上最偉大的計算機科學著作之一
融深邃思想、實戰技術與趣味軼事於一爐的奇書。
內容不深,但是不是一個知識點一個知識點的給你講解算法原理的。
這本書的核心思想是讓你了解如何正確選擇和高效地實現算法。書中還有一些趣聞軼事,看着倒是很有意思~
有興趣的同學可以看看~
《算法競賽入門經典》系列
算法競賽入門經典書,ACM必備書籍吧算是。書中題目對於競賽來說比較簡單,但是對於一般我們平時工程來說偏難。語言用的是C/C++,請好好做例題好好做作業,讀書的時候好好思考和複習~
反正我是沒讀過,捂臉……
《劍指Offer》
這個書很有意思,對於在校生來說我個人覺得是必看的書。沒有任何工作經驗的同學在面試的時候真的會被問懵的。這本書可以讓你了解如何應付考官日常問題,在解答面試問題的時候,書中很多方法和思路會讓考官覺得你思考的很全面,給你加不少分。
我面試的時候也曾快速掃過一遍這本書,讓我在回答問題的時候條理更清晰。書中代碼是C的,emmm,於是代碼部分我就沒太看……
《用Python解決數據結構與算法問題》
最後給大家推薦一本在線的 免費 的算法書。
不是大部頭,也不是讀物,新手入門足夠用,書中介紹了大多數日常需要的算法,並且講的比較淺顯~轉行的新手基本可以通過這本書來快速掌握常用基本算法了~
反正免費,是否適合自己看兩頁也就get了~
如果需要PDF版,可以在「程序員必修課」公眾號後台回復:「Python算法書」獲取。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/245541.html