1. 程式人生 > >第一次考試

第一次考試

一.基礎題
1.簡述變數命名規範
用下劃綫數字英文任意組合,不能以數字開頭

2.位元組和位的關係
1位 = 8個位元組

3.'二哥'使用 utf-8編碼時, 佔的位數和位元組, 是多少? 使用 gbk編碼時,佔的位數
utf-8:6位 48個位元組
gbk:4位 32個位元組

4.默寫字串的12個功能,並描述其作用
1.endswith 檢測以什麼結尾
2.startwith 檢測以什麼開頭
3.len 檢測長度
4.strip 刪除前後空格
5.rstrip 刪除左邊空格
6.lstrip 刪除右邊空格
7.split 用什麼分開
8.center 用來居中
9.isdigit 檢測是否是數字
10.isalpha 檢測是否是字母
11.isalnum 堅持是否是數字和字母
12.fin 尋找字串

5.數字,字串,列表,元祖,字典對應的bool值的False分別是什麼
數字: 0
字串: ''
列表:[]
元祖:()
字典:{}

6.書寫python2 與python3中的三個不同
python2:print abc,xrange(),raw_input
python3:print'abc',range(),input

9.轉化題
int與str之間如何轉化, 轉換的結果是什麼?有沒有條件?
str ----> int
int(str)
int ----> str
str(int)
數字
字串
條件是必須是數字形式的字串

int與bool之間如何轉化, 轉換的結果是什麼?有沒有條件?
int ----> bool
bool(int)
bool ----> int
int(bool)
0是False 其餘的都是True
True是0 False是1
沒有

str與bool之間如何轉化, 轉換的結果是什麼?有沒有條件?
str ----> bool
bool(str)
bool ----> str
str(bool)
''是False 其餘的都是True
False是'False’True是'True'
沒有

str與list之間如何轉化
str ----> list
split
lst ----> str
join
'''
#7.寫程式碼,有如下列表,利用切片實現每一個功能
li = [1, 3, 2, 'a', 4, 'b', 5, 'c']
#1).通過對li列表的切片形成新的列表l3,l3=[1, 2, 4, 5]
l3 = li[0::2]
#2).通過對li列表的切片形成新的列表l4,l4=[3, 'a', 'b']
l4 = li[1:6:2]
#3).通過對li列表的切片形成新的列表l5,l5=['c']
l5 = li[-1]
#4).通過對li列表的切片形成新的列表l6,l6=['b', 'a', 3]
l6 = li[-3::-2]

#8.組合巢狀題
#a.寫程式碼,有如下列表,按照要求實現每一個功能
#(每個都是一行程式碼實現)
lis = [['k', ['qwe', 20, {'k1': ['tt', 3, '1']}, 89], 'ab']]
#1).將列表lis中的'tt'變成大寫
lis[0][1][2]['k1'][0] = 'TT'
lis[0][1][2]['k1'][0].upper()

#2).將列表中的數字3變成字串'100'
lis[0][1][2]['k1'][1] = 100
lis[0][1][2]['k1'][1] = lis[0][1][2]['k1'][1] + 97

#3).將列表中的數字1變成字串'101'
lis[0][1][2]['k1'][2] = '101'
lis[0][1][2]['k1'][2] = str(int(lis[0][1][2]['k1'][2]) + 100)

#b.寫程式碼,有如下字典,按照要求實現每一個功能
dic = {'k1': 'v1', 'k2': ['alex', 'sb'], (1, 2, 3, 4, 5): {'k3': ['2', 100, 'wer']}}
#1).將'k2'對應的值的最後面新增一個元素'23'
dic['k2'].append('23')

#2).將'k2'對應的值的第一個位置插入一個元素'a'
dic['k2'].insert(0, 'a')

#3).將(1, 2, 3, 4, 5)對應的值新增一個鍵值對'k4', 'v4'
dic[(1, 2, 3, 4, 5)].setdefault('k4', 'v4')

#4).將(1, 2, 3, 4, 5)對應的值新增一個鍵值對(1,2,3), 'ok'
dic[(1, 2, 3, 4, 5)].setdefault((1, 2, 3), 'ok')

#5).將'k3'對應的值的'wer'改為'qq'
dic[(1, 2, 3, 4, 5)]['k3'][2] = 'qq'

# 10.實現下列結果
# 1).有列表li = ['alex', 'wusir', 'rain']通過操作該列表構成一個字串
# s = 'alexwusirrain'
li = ['alex', 'wusir', 'rain']
s = ''.join(li)
print(s)

#2).有列表li = ['alex', 'wusir', 'rain']通過操作該列表構成一個字串
# s = 'alex*wusir*rain'
li = ['alex', 'wusir', 'rain']
s = '*'.join(li)
print(s)

#3).有字串s = 'alexwusirrain'通過操作該字串構成一個列表
#li = ['a', 'exwusirlex']
s = 'alexwusirrain'
li = s.replace('rain', 'lex')
print(li)

#4).有字串s = 'alex wusir'通過操作該字串構成一個列表
# li = ['alex', 'wusir']
s = 'alex wusir'
li = s.split()
print(li)

#5).有字串s = 'alex'通過操作該字串構成一個字串
#s1 = 'alex'
s = 'alex'
s1 = s
print(s1)
''' #11.分別使用while迴圈,和for迴圈列印1-2+3-4+5....+99的結果 sum = 0 count = 1 while count < 100: if count % 2 == 1: sum += count else: sum -= count count += 1 print(sum) sum = 0 for i in range(1, 100): if i % 2 == 1: sum += i else: sum -= i print(sum) #12.使用range列印100,98....1,0
for i in range(100, -1, -1): print(i) #13.計算使用者輸入內容,中索引為奇數,並且and,對應的元素為數字的isdigit()個數(沒有個數則為零) count = 0 content = input('>>>') for i in range(len(content)): if i % 2 == 1 and content[i].isdigit(): count += 1 print(count) #14.補充程式碼(從已有的程式碼下面繼續寫): #有如下值li = [11, 22, 33, 44, 55, 77, 88, 99, 90], 將所有大於66的值儲存至字典第一個key中, 將小於66的值儲存至第二個key #的值中。 li = [11, 22, 33, 44, 55, 77, 88, 99, 90] result = {} for row in li: if row > 66: if 'key1' not in result: result['key1'] = [] result['key1'].append(row) else: if 'key2' not in result: result['key2'] = [] result['key2'].append(row) print(result) #15.查詢列表li中的元素,移除每個元素的空格,找出以'A'或者'a'開頭,並以'c'結尾的所有元素,並新增到一個新列表中,最後迴圈列印這個新列表 li = ['taibai', 'alexC', 'AbC', 'egon', 'Ritian', 'Wusir', 'aqc'] new = [] for i in li: if i.strip().upper().startswith('A') and i.strip().upper().endswith('C'): new.append(i) print(i) print(new) #16.實現一個整數加法計算器: # 如:content = input('請輸入內容:')如使用者輸入: 5 + 8 + 7...(最少輸入兩個數相加),然後進行分隔再進行計算,將最後的計算 # 結果新增到此字典中(替換 None:) #dic = {'最終計算結果' : None} content = input('請輸入內容:').strip() content_list = content.split('+') sum = 0 for i in content_list: sum += int(i) print(sum) #17.寫程式:模擬公司hr錄入員工賬號密碼的程式 #1).員工的賬號密碼儲存在這種資料型別中: # user_list = [ # {'username': 'barry', 'password': '1234'}, # {'username': 'alex', 'password': 'asdf'}, # ....... # ] #2).非法字元模板: board =['張三', '李小四', '王二麻子'] #3).Hr輸入使用者名稱, 密碼(可持續輸入, 如果想終止程式, 那就在輸入 Q 或者 q退出程式 break),在Hr輸入使用者名稱時,檢測使用者名稱是 #否有board裡面的非法字元, 如有非法字元, 則將非法字元替換成同數量的*(如王二麻子替換成****),然後新增到user_list中,如 #果沒有非法字元,則直接新增到user_list中, 每次新增成功後, 打印出剛新增的使用者名稱,密碼。 user_list = [] board =['張三', '李小四', '王二麻子'] while 1: username = input('使用者名稱:') if username.upper() == 'Q': break password = input('密碼:') for i in board: if i in username: username = username.replace(i, '*' * len(i)) user_list.append({'username': username, 'password': password}) print({'username': username, 'password': password}) print(user_list)