python測試題及答案
1. 求一份魚C工作室,python 課後測試題及答案!!
1,使用getopt。getopt()優化當前的功能函數:
[html]
#!/usr/bin/python
# -*- coding: utf-8 -*-
#coding=utf-8
import os,sys
import getopt
print sys.argv
CDROW='/home/zhouqian/test'
def cdWalker(CDROW,cdfile):
result=[]
for root,dirs,files in os.walk(CDROW):
result.append("%s %s %s" %(root,dirs,files))
print root
open(cdfile,'w').write('\n'.join(result))
def usage():
print '''pycdc 使用方式:
python cdays-3-exercise-1.py -d cdc -k 中國火
#檢索cdc中有沒有中國火字樣的目錄,
'''
try:
opts,args=getopt.getopt(sys.argv[1:],'hd:e:k:')
except getopt.GetoptError:
usage()
sys.exit()
if len(opts)==0:
usage()
sys.exit()
c_path=''
name=''
for opt,arg in opts:
if opt in('-h','--help'):
usage()
sys.exit()
elif opt=='-e':
if os.path.exists(arg):#判斷目標路徑是否存在
# cdWalker(CDROW,arg)
print "記錄光碟的位置是 %s" %arg
else:
print "不存在這樣的目錄"
elif opt=='-d':
c_path=arg
print c_path
cdWalker(CDROW,c_path)
elif opt=='-k':
if not c_path:
usage()
sys.exit()
else:
name=arg
for root,dirs,files in os.walk(c_path):
if root=='%s' %name:
print '您要找的文件在%s' %dirs
這是第一個題,大概做了2個小時吧,各種糾結啊,後面兩個正在做。中間遇到的問題總結:
函式的利用,os.path.walk,python字元集,getopt模塊的使用學習,os.path.exists()的利用,列表的對應關系等等
習題2 :關鍵詞-----》序列號問題:
[html]
#!/usr/bin/python
#coding=utf-8
import sys
def collect(file):
result={}
for line in file.readlines():
left,right=line.split()
if result.has_key(right):
result[right].append(left)
else:
result[right]=[left]
return result
if __name__=="__main__":
print sys.argv
if len(sys.argv)==1:
print 'usage:\tpython value_keys.py test.txt'
else:
result=collect(open(sys.argv[1],'r'))
for (right,left) in result.items():
print "%d %s => %s" %(len(left),right,left)
結果顯示:
[html]
root@zhou:/home/zhouqian/python# py value_keys.py test.txt
ssss
2 key3 => ['6', '33']
3 key2 => ['1', '2', '45']
3 key1 => ['4', '5', '13']
遇到的問題總結:
split的用法:line.split()就是分開出左右兩邊的值,在默認的情況下是以一個空格或者多個空格為分割符的,
has_key()的用法:是查看字典數據類型中有沒有這么一個關鍵字。上面可知result={}是初始化了一個字典的數據類型。
字典的一些用法:怎麼定義,怎麼賦值:result[right]=[left]或者result[right]=left,遍歷字典中所用
項,result.items(),遍歷字典的key值:result.keys(),遍歷字典的value值:result.values()
[html]
>>> dict={'chen':25,'zhou':24,'xiao':35}
>>> dict.values()
[25, 35, 24]
>>> dict.keys()
['chen', 'xiao', 'zhou']
>>> dict.items()
[('chen', 25), ('xiao', 35), ('zhou', 24)]
2. 計算機二級python考試題型
計算機二級python的考試題型有單項選擇題、基本編程題、簡單應用題和綜合應用題四個模塊,分值分別為40分,18分,24分和18分,及格分數為60分,每一場考試有3套題,一般為隨機分配。
2、基本編程題
該部分為填空題,考生需要根據給出的程序框架把內容補充完整,並且我們當時考試的時候是可以切換到python編碼頁面進行驗算的,這一模塊只要好好學基本上都能填對。
3、簡單運用題
這一模塊有兩道題,其中一道為turtle(三套題都有考),以補全代碼的形式出現,即在不修改系統給出的代碼的情況下將代碼補齊,另一道不同套卷考察的內容不同,我那時候考察的是函數。
4、綜合應用題
一般是文件管理,分詞排序、文件讀寫等,相比起前面的題目會有些難度。
總結:其實python二級考試內容並不難,總體上通過率還是很高的,通過後會有合格和優秀之分,想要達到優秀會有一定難度。
3. 全國計算機等級考試二級教程2019年版——Python語言程序設計(參考答案)
答案:C B B C A D B A D B
1.獲得用戶輸入的一個整數N,計算並輸出N的32次方。
2.獲得用戶輸入的一段文字,將這段文字進行垂直輸出。
3.獲得用戶輸入的一個合法算式,例如1.2+3.4,輸出運算結果。
4.獲得用戶輸入的一個小數,提取並輸出其整數部分。
5.獲得用戶輸入的一個整數N,計算並輸出1到N相加的和。
答案:C A A A B A C D A C
1.獲得用戶輸入的一個整數,輸出該整數百位及以上的數字。
2.獲得用戶輸入的一個字元串,將字元串按照空格分割,然後逐行列印出來。
3.程序讀入一個表示星期幾的數字(1-7),輸出對應的星期字元串名稱。例如,輸入3,返回「星期三」。
4.設n是一任意自然數,如果n的各位數字反向排列所得自然數與n相等,則n被稱為迴文數。從鍵盤輸入一個5位數字,請編寫程序判斷這個數字是不是迴文數。
5.輸入一個十進制整數,分別輸出其二進制、八進制、十六進制字元串。
答案:B A D C D D C A C D
1.輸入一個年份,輸出是否是閏年。#閏年條件:能被4整除但不能被100整除,或者能被400整除的年份,都是閏年。
2.最大公約數計算。獲得兩個整數,求出這兩個整數的最大公約數和最小公倍數。最大公約數的計算一般使用輾轉相除法,最小公倍數則使用兩個數的乘積除以最大公約數。
3.統計不同字元個數。用戶從鍵盤鍵入一行字元,編寫一個程序,統計並輸出其中英文字元、數字、空格和其他字元的個數。
4.改編題目1中的程序,當用戶輸入出錯時給出「輸入內容必須是整數!」的提示,並讓用戶重新輸入。
5.羊車門問題。有三扇關閉的門,一扇門後面停著汽車,其餘門後是山羊,只有主持人知道每扇門後面是什麼。參賽者可以選擇一扇門。在開啟它之前,主持人會開啟另外一扇門,露出門後的山羊。此時,允許參賽者更換自己的選擇。請問,參賽者更換選擇後能否增加猜中汽車的機會?——這是一個經典問題。請使用random庫對這個隨機事件進行預測,分別輸出參賽者改變選擇和堅持選擇獲勝的概率。
答案:B B B B A D D A D D
Tips:
2.字典類型的key只能是不可變數據類型;
3.Python中以下情況判斷為False:
(1)None–>None值
(2)False–>False值
(3)0 ---> 數值零不管它是int,float還是complex類型
(4)『』,(),[] ---> 任何一個空的序列
(5){} ---> 空的集合。
9.列表類型的pop(i)方法,如果不指定參數 i,則默認取出並刪除列表中最後一個元素
1.英文字元頻率統計。編寫一個程序,對給定字元串中出現的a~z字母頻率進行分析,忽略大小寫,採用降序方式輸出。
2.中文字元頻率統計。編寫一個程序,對給定字元串中出現的全部字元(含中文字元)頻率進行分析,採用降序方式輸出。
3.隨機密碼生成。編寫程序,在26個字母大小寫和9個數字組成的列表中隨機生成10個8位密碼。
4.重復元素判定。編寫一個函數,接受列表作為參數,如果一個元素在列表中出現了不止一次,則返回True,但不要改變原來列表的值。同時編寫調用這個函數和輸出測試結果的程序。
5.重復元素判定續。利用集合的無重復性改編上一個程序,獲得一個更快更簡潔的版本。
4. Python簡單的題
結果為False
當兩者元素個數相同,元素值不同,所有比較結果都為False:
print({1,2,3}=={1,2,4}) # False
print({1,2,3}>{1,2,4}) # False
print({1,2,3}<{1,2,4}) # False
set類型進行比較時,元素多的更大:
print({1,2,3,4}>{1,2,3}) # True
如果兩者個數相同,元素也相同,則為True
print({1,2,3}=={1,2,3}) # True
如果兩者個數相同,元素也相同,只是順序不一樣,結果也為True
print({1,2,3}=={1,3,2}) # True
5. 2022年Python技術類面試題總結(面試題+答案解析)
這是一位有著五年 Python 經驗的好友最近對 Python 崗位面試後的一篇經驗總結,從 Python 就業方向到 Python 面試題。
Python 就業方向 :
下面是 Python 面試知識點,總結了華為、阿里巴巴等互聯網公司 Python 常問面試題。每道題都提供參考答案,希望能夠幫助你在求職面試中脫穎而出,找到一份高薪工作。
這些面試題分為 Python 基礎和 Python高級,內容包含: 基礎語法、文件操作、模塊與包、數據類型、元類、內存管理與垃圾回收機制以及 Python 函數 等知識點。
(一) Python 基礎語法
(二) 文件操作
(三) 模塊與包
(四) 數據類型
(五)企業面試題
(一) 元類
(二)內存管理與垃圾回收機制
(三)函數
(四) 面向對象
由於篇幅有限,這份 Python 面試寶典已經被整理成了PDF文檔,有需要 Python 面試寶典全套完整文檔(面試題+答案解析)的可以 免費領取!
6. Python中基礎練習題
法一:利用set()函數的去重功能,去重後再使用list()函數將集合轉換為我們想要的列表
list1 = [11,22,33]
list2 = [22,33,44]
list3 = list(set(list1 + list2))
list3.sort()
print(list3)
-------------
法二:利用if和for,先遍歷list1所有元素追加到list3中,然後遍歷list2,條件判斷list2中當前元素是否在list3中,如果不在則追加到list3中
list1 = [11,22,33]
list2 = [22,33,44]
list3 = []
for ele1 in list1:
list3.append(ele1)
for ele2 in list2:
if ele2 not in list3:
list3.append(ele2)
print(list3)
7. 幾個Python題目
1.【選擇】下面哪個選項不是定義列表的正確方式?(D)
D.myList4=2,3,4,5
答案解析:這是定義元組的方式,而不是列表
2.【選擇】根據下面表達式,a的值是:(C)
C.loWo
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: est"
------------
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')做鍵。