1. 程式人生 > >python 路飛模塊一考核總結

python 路飛模塊一考核總結

空字符 重試 字符串轉換 for 分析 long n) amp code

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 路飛模塊一考核總結