python 路飛模塊一考核總結
1. 分別解釋"=","==","+="的含義(口述)
=為賦值語句,把一個變量值賦予另一個值 == 為條件判斷,判斷兩個值是否相等 += 為賦值 a+=1 意思就是a=a+1
2.兩個變量值的關系?(口述)
n1 = 123456
n2 = n1
將123456賦予n1, 然後將n1賦予n2, 意思就是n1 n2指向123456這個地址
3. 請寫出 “路飛學城” 分別用 utf-8 和 gbk 編碼所占的位數(口述)
一個中文用utf-8 表示占3字節 GBK占2字節 所以路飛學城用utf-8表示占12字節 GBK占8字節 其中12字節相當於96位 8字節64位
4. 簡述Python中的幾種數據類型(口述)
數據類型分為:基本類型、數據集。 基本類型包括:數字類型(整形、長整型、浮點型、復數)、字符串類型、布爾類型。 數據集類型包括:列表、元祖、字典、集合。
總體來說,數據類型分為數字,字符串,列表,字典,元祖,布爾,集合
5. 數據類型的可變與不可變分別有哪些?(口述)
可變:字符串、列表、集合、字典value 不可變:數字、字符串、布爾、元祖、字典key
6.元祖,列表,字典有沒有長度的限制?(口述)
沒有,根據內存大小定義。
7. 解釋‘and‘,‘or‘,‘not‘(口述)
和C語音的與或非類似,and,or,not都為邏輯運算符 and表示兩者都為TRUE,則為TRUE or表示兩者有一個判斷為布爾TRUE 則結果為TRUE 反之則False not 表示取反 如x為True,not x 則為False
8. 元組和列表的區別(口述)
元組又叫只讀列表,不可改變,且無序。 列表有序,並且可以修改。
9.列舉一堆布爾值為False的情況(口述)
空列表 [], 空字典{}, 空元祖(), 空字符串“” 0
10.python2和python3對於long(長整形)的區別。
python2中有整形int和long,int 32位系統最多只有32位,超出32位則為long。64位系統為64位。 python3中全部為int。 long在python中沒有指定位寬。
11.變量命名規範 ?(口述)
首字母不能是數字,並且變量名只能含有英文,數字,和下劃線_
1.變量名只能是 字母、數字或下劃線的任意組合。
2.變量名的第一個字符不能是數字。
3.關鍵字不能聲明為變量名。
變量名不要過長,最好不要使用中文和拼音,還有不能亂起變量名,比如名不搭意。
12.闡述一下unicode和utf-8的區別(或者unicode在python3的作用)(口述)
unicode又叫萬國碼,涵蓋全世界的編碼,所有字符和符號最少由16位(2個字節)表示,和別的編碼有對應映射關系。 utf-8對unicode進行了優化,uft-8對於英文只占用1個字節,歐洲字符2個字節,東亞字符3個字節,特殊字符4個字節。 在python3中默認在內存存儲代碼的形式就是unicode,為了方便不同國家的人查看代碼。
13.深淺copy-引用和copy(),deepcopy()的區別(口述)
1.引用賦值的時候,指向同一個列表地址,如果a列表重新賦予別的列表,b還是指向之前的地址,b列表不改變,如果a列表裏的值改變,那麽b也會跟著改變。 2.當使用copy()的時候,相當於整個列表包括裏面的東西一起完整拷貝給你,不是指向同一個地址,a裏面的值改變,b列表不跟著改變。但是如果a列表是嵌套列表,嵌套列表裏的值發生變化,拷貝的列表b裏的嵌套 列表也會跟著改變,因為列表裏的列表是指向同一個地址,相當於1.的情況 3.使用deepcopy()的話,列表裏的數地址也會不一樣,所以改變列表a裏的嵌套列表的數,b也不會跟著改變。
14.python2和python3的默認字符編碼(口述)
python2默認字符編碼是ASCII python3默認編碼是unicode
15.集合的特性(口述)
確定性:元素必須可以hash。互異性:元素不可相同。無序性。
16.列表[‘alex‘,‘egon‘,‘yuan‘,‘wusir‘,‘666‘](編程)
1.把666替換成999
2.獲取"yuan"索引
3.假設不知道前面有幾個元素,分片得到最後的三個元素
16.列表[‘alex‘,‘egon‘,‘yuan‘,‘wusir‘,‘666‘](編程) 1.把666替換成999 2.獲取"yuan"索引 3.假設不知道前面有幾個元素,分片得到最後的三個元素 li =[‘alex‘,‘egon‘,‘yuan‘,‘wusir‘,‘666‘] li[-1] = ‘999‘ print(li) print(li.index(‘yuan‘)) last3 = li[-3:] print(last3)
17.對字典進行增刪改查(編程)
{"Development":"開發小哥","OP":"運維小哥","Operate":"運營小仙女","UI":"UI小仙女"}
dic = {"Development":"開發小哥","OP":"運維小哥","Operate":"運營小仙女","UI":"UI小仙女"} #增 dic[‘manage‘]=‘alex‘ print(dic) #刪 del dic[‘Development‘] print(dic) #改 dic[‘manage‘] = ‘oldboys‘ print(dic) #查看 find = dic.get("UI") print(find)
18.計算1+2+3...+98+99+100 (編程題)
#18.計算1+2+3...+98+99+100 (編程題) # count = 1 # counts =0 # while count<=100: # counts=count+counts # print(counts) # count +=1 count =0 for i in range(1,101): count = count+i print(count)
19. 制作趣味模板程序(編程題)
需求:等待用戶輸入名字、地點、愛好,根據用戶的名字和愛好進行任意現實
如:敬愛可愛的xxx,最喜歡在xxx地方幹xxx
# 19. 制作趣味模板程序(編程題) # 需求:等待用戶輸入名字、地點、愛好,根據用戶的名字和愛好進行任意現實 # 如:敬愛可愛的xxx,最喜歡在xxx地方幹xxx # username = input("請輸入名字>>") userpalce = input("請輸入地點>>") userhobby = input("請輸入愛好>>") print("敬愛可愛的%s,最喜歡在%s地方幹%s"%(username,userpalce,userhobby))
20.寫一個三次認證(編程)
實現用戶輸入用戶名和密碼,當用戶名為 seven 或 alex 且 密碼為 123 時,顯示登陸成功,否則登陸失敗,失敗時允許重復輸入三次
# 20.寫一個三次認證(編程) # 實現用戶輸入用戶名和密碼,當用戶名為 seven 或 alex 且 密碼為 123 時,顯示登陸成功, # 否則登陸失敗,失敗時允許重復輸入三次 # _username1 = ‘seven‘ _username2 = ‘alex‘ _password = ‘123‘ count =0 while count<3: username = input("名字>>") password = input("密碼>>") if (username==_username1 or username==_username2) and password ==_password: print("登陸成功") break else: print("登陸失敗") count+=1
21.切割字符串"luffycity"為"luffy","city"(編程)
# 21.切割字符串"luffycity"為"luffy","city"(編程) info = "luffycity" print(info[0:5]) print(info[5:])
22.猜年齡遊戲(編程題)
# 22.猜年齡遊戲(編程題) age =20 count = 0 while count<3: user_age = input("請輸入年齡>>") if user_age.isdigit() is True: if age == int(user_age): print("恭喜") break elif int(user_age) >age: print("猜大了,請重試") else: print("猜小了,再試試") else: print("請輸入數字") pass count+=1
23.求1~100間所有偶數的和(亦可奇數和,使用while循環寫)(編程題)。
# 23.求1~100間所有偶數的和(亦可奇數和,使用while循環寫)(編程題)。 count =0 sumn=0 while count<=100: if count%2==0: sumn =count+sumn count+=1 print(sumn)
24.從鍵盤接收一百分制成績(0~100),要求輸出其對應的成績等級A~E。其中,90分以上為‘A‘,80~89分為‘B‘,70~79分為‘C‘,60~69分為‘D‘,60分以下為‘E‘。(編程題)
# 24.從鍵盤接收一百分制成績(0~100),要求輸出其對應的成績等級A~E。 # 其中,90分以上為‘A‘,80~89分為‘B‘, # 70~79分為‘C‘,60~69分為‘D‘, # 60分以下為‘E‘。(編程題) usergrade = input("請輸入成績>>") if usergrade.isdigit() is True: if int(usergrade)>=90: print("A") elif int(usergrade)>=80: print("B") elif int(usergrade)>=70: print("C") elif int(usergrade)>=60: print("D") else: print("E") else: print("請輸入數字") pass
25.輸入一年份,判斷該年份是否是閏年並輸出結果。(該程序可以重復使用 使用while True)(編程題)
註:凡符合下面兩個條件之一的年份是閏年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。
# 25.輸入一年份,判斷該年份是否是閏年並輸出結果。(該程序可以重復使用 使用while True)(編程題) # 註:凡符合下面兩個條件之一的年份是閏年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。 # while True: year_input = input("請輸入年份>>") if year_input.isdigit() is True: if (int(year_input)%4 ==0 and int(year_input)%100!=0) or int(year_input)%400==0: print("閏年") else: print("平年") elif year_input == ‘q‘: break else: pass
26.有如下字符串:n = "路飛學城"(編程題)
- 將字符串轉換成utf-8的字符編碼,再將轉換的字節重新轉換為utf-8的字符編碼
- 將字符串轉換成gbk的字符編碼,再將轉換的字節重新轉換為utf-8的字符編碼
# 26.有如下字符串:n = "路飛學城"(編程題) # # - 將字符串轉換成utf-8的字符編碼,再將轉換的字節重新轉換為utf-8的字符編碼 # - 將字符串轉換成gbk的字符編碼,再將轉換的字節重新轉換為utf-8的字符編碼 # n = "路飛學城" n8 = n.encode(encoding=‘utf-8‘) print("轉碼為utf8>>%s"%n8) n9 = n8.decode(encoding=‘utf-8‘) print("解碼為utf8>>%s"%n9) ngbk = n.encode(encoding=‘gbk‘) print(ngbk) ndgbk = ngbk.decode(encoding=‘gbk‘) print(ndgbk)
27.將列表[‘alex‘, ‘steven‘, ‘egon‘] 中的每一個元素使用 ‘\_’ 連接為一個字符串(編程)
# 27.將列表[‘alex‘, ‘steven‘, ‘egon‘] 中的每一個元素使用 ‘\_’ 連接為一個字符串(編程) # li =[‘alex‘, ‘steven‘, ‘egon‘] # a = ("\_").join(li) # print(a) s =‘\_‘ print(s.join(li))
28.自定義兩個,並求交集,合集,差集。(編程)
a1 ={3,4,5,6} a2 ={1,2,3,4} jiao =a1|a2 print(jiao) cha = a1-a2 print(cha) bing = a1&a2 print(bing)
29.求100以內不能被3整除的所有數,並把這些數字放在列表sum3=[]裏,並求出這些數字的總和和平均數。(計算的時候告訴學員,sum是一個關鍵詞,不能當作變量)(編程)
# 29.求100以內不能被3整除的所有數,並把這些數字放在列表sum3=[]裏, # 並求出這些數字的總和和平均數。(計算的時候告訴學員,sum是一個關鍵詞,不能當作變量)(編程) sum3 =[] count =0 sums =0 while count<=100: if count%3!=0: sum3.append(count) sums =sums+count count+=1 print(sums) print(sum3) print(sums/len(sum3))
30.根據字典內容打印出下面的形式(編程)
可以不打印工整對齊的效果,主要是讓學員獲取key和value。
{"Development":"開發小哥","OP":"運維小哥","Operate":"運營小仙女","UI":"UI小仙女"}
效果如下:
1. 刪除了UI
2. 修改了Operate
```
Development --- 開發小哥
OP --- 運維小哥
Operate --- 小仙女
```
# 30.根據字典內容打印出下面的形式(編程) # 可以不打印工整對齊的效果,主要是讓學員獲取key和value。 # {"Development":"開發小哥","OP":"運維小哥","Operate":"運營小仙女","UI":"UI小仙女"} # 效果如下: # 1. 刪除了UI # 2. 修改了Operate # # ``` # Development --- 開發小哥 # OP --- 運維小哥 # Operate --- 小仙女 # ``` info ={"Development":"開發小哥","OP":"運維小哥","Operate":"運營小仙女","UI":"UI小仙女"} del info[‘UI‘] print(info) info["Operate"]=‘小仙女‘ print(info) # for items in info.items(): # print(items) for i in info: print(i+‘----------‘+info[i])
31.假設一年期定期利率為3.25%,計算一下需要過多少年,一萬元的一年定期存款連本帶息能翻番?(編程題)
# 31.假設一年期定期利率為3.25%,計算一下需要過多少年,一萬元的一年定期存款連本帶息能翻番?(編程題) money = 10000 money = 10000 interest = money count = 0 while True: count += 1 interest = interest * (1 + 3.25 / 100) if interest // money == 2: print(count) break money =10000 rate = 0.0324 years =0 while money<20000: years+=1 money =money*(1+rate) print(years)
32.對列表進行增刪改查(查可以是索引,值是否存在列表當中)。(編程)
[‘alex‘, ‘egon‘, ‘wusir‘, ‘wen‘, ‘jing‘]
# 32.對列表進行增刪改查(查可以是索引,值是否存在列表當中)。(編程) # # [‘alex‘, ‘egon‘, ‘wusir‘, ‘wen‘, ‘jing‘] li =[‘alex‘, ‘egon‘, ‘wusir‘, ‘wen‘, ‘jing‘] #增 li.append(‘wang‘) print(li) #刪 li.remove(‘wang‘) print(li) del li[-1] print(li) #改 li[1] =‘eeee‘ print(li) #查 print(li.index(‘alex‘))
33.猜數遊戲。預設一個0~9之間的整數,讓用戶猜一猜並輸入所猜的數,如果大於預設的數,顯示“太大”;小於預設的數,顯示“太小”,如此循環,直至猜中該數,顯示“恭喜!你猜中了!(編程題)
# 33.猜數遊戲。預設一個0~9之間的整數,讓用戶猜一猜並輸入所猜的數, # 如果大於預設的數,顯示“太大”;小於預設的數,顯示“太小”, # 如此循環,直至猜中該數,顯示“恭喜!你猜中了!(編程題) the_number = 9 while 1: user_guess = input("猜猜 年齡》》") if user_guess.isdigit() is True: if the_number ==int(user_guess): print("祝賀") break elif int(user_guess) >the_number: print("太大") else: print("太小 ")
34.編寫一個python程序,輸入兩個數,比較它們的大小並輸出其中較大者。(編程題)
# 34.編寫一個python程序,輸入兩個數,比較它們的大小並輸出其中較大者。(編程題) number1 = input("請輸入一個數字》》") number2 = input("請輸入一個數字》》") if number1.isdigit() is True and number2.isdigit() is True: if number1>number2: print(number1) else: print(number2) else: print("輸入錯誤,請重輸") pass
35.有四個數字:1、2、3、4,能組成多少個互不相同且無重復數字的三位數?各是多少?(編程題)
程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去 掉不滿足條件的排列。
# 35.有四個數字:1、2、3、4,能組成多少個互不相同且無重復數字的三位數?各是多少?(編程題) # 程序分析:可填在百位、十位、個位的數字都是1、2、3、4。 # 組成所有的排列後再去 掉不滿足條件的排列。 nums =[] for index1 in range(1,5): for index2 in range(1,5): for index3 in range(1,5): if index1!=index2 and index2 != index3 and index3 != index1: num = 100*index1 +10*index2 +index3 if num not in nums: nums.append(num) print(nums) print(len(nums))
36.某個公司采用公用電話傳遞數據,數據是四位的整數,在傳遞過程中是加密的,加密規則如下:每位數字都加上5, 然後用和除以10的余數代替該數字,再將第一位和第四位交換,第二位和第三位交換。(編程題)
# 36.某個公司采用公用電話傳遞數據,數據是四位的整數,在傳遞過程中是加密的, # 加密規則如下:每位數字都加上5, 然後用和除以10的余數代替該數字, # 再將第一位和第四位交換,第二位和第三位交換。(編程題) data = input("輸入4個數字>>") data =list(‘‘.join(data)) print(data) for index,i in enumerate(data): print(data[index]) data[index] =(int(i)+5)%10 print(data) data.reverse() print(data)
37.求100以內的素數和。(編程題)
# 37.求100以內的素數和。(編程題) # 素數:素數又稱質數, 質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數的數稱為質數。 # 思路:1.先將1~100的數量進行遍歷,獲得這個數是不是素數 # 2.除以這個小的整數(除了1和本身),獲得余數,根據余數判斷是否是素數 for i in range(1,100): a =1 for j in range(int(i/2)): if (1+i)%(2+j) ==0: a =0 break if a ==1: print(i+1)
38.二進制,十進制,十六進制互相轉換(計算題,讓學員使用計算器,別用編程的內置方法)
十進制轉二進制:bin()
十進制轉十六進制:hex()
十進制轉八進制:oct()
二進制轉10進制:如1010: 相當於8+2=10
十六進制轉二進制:如0x9a:相當於10011010 再轉10進制就是 對應
1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1 10011010=128+16+8+2=154
39.企業發放的獎金根據利潤提成。利潤(I)低於或等於10萬元時,獎金可提10%;
利潤高於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可提成7.5%;
20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於40萬元的部分,可提成3%;
60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於100萬元時,超過100萬元的部分按1%提成,
從鍵盤輸入當月利潤I,求應發放獎金總數?(編程)
while True: money = input(‘利潤:‘) if money.isdigit() == True: if int(money) <= 100000: print("獎金為:%s"%(int(money)*10/100)) elif int(money) <= 200000: print("獎金為:%s"%(((int(money)-100000)*7.5/100)+100000*10/100)) elif int(money) <= 400000: print("獎金為:%s" % (((int(money) - 200000) * 5 / 100))) elif int(money) <= 600000: print("獎金為:%s" % (((int(money) - 400000) * 3/ 100))) elif int(money) <= 1000000: print("獎金為:%s" % (((int(money) - 600000) * 1.5/ 100))) else : print("獎金為:%s" % (((int(money) - 600000) * 1/ 100))) break else: money = input(‘輸入錯誤,請重新輸入:‘)
python 路飛模塊一考核總結