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中的幾種數據類型(口述)
數據類型分為:基本類型、數據集。 基本類型包括:數字類型(整形、長整型、浮點型、復數)、字符串類型(文本str,字節bytes)、布爾類型(True/Fals)。 數據集類型包括:列表、元祖、字典、集合。
總體來說,數據類型分為數字,字符串,列表,字典,元祖,布爾,集合
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,文件編碼也是ASCII python3默認字符串編碼是unicode,文件編碼是utf-8
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)
n9 = ndgbk.encode(encoding='utf-8')
print(n9)
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('輸入錯誤,請重新輸入:')
