1.執行Python腳本的兩種方式
a、 運行cmd,在黑框中輸入編譯器地址及要運行腳本的地址 b、在pycharm中編譯腳本
2.簡述位與字節的關係
1個字節由8個二進制數構成,即1byte=8bit
3.簡述asscii碼、unicode、utf-八、gbk的關係
asscii(8位,未包含其餘國家字符) unicode(16或32位,萬國碼,佔內存) utf-8(8-32位,漢字24位) gbk(16位,主要爲漢字)
4.請寫出「李傑」分別用utf-8和gbk編碼所佔的位數
utf-8佔24位,gbk佔16位
5.python單行註釋與多行註釋分別用什麼?
單行註釋爲:# 多行註釋爲:三個引號包着註釋內容(單引號或者雙引號)
6.聲明變量注意哪些事項?
變量名只能由字母、數字、下劃線組成;且數字不能開頭;變量名不能與特殊字符一致 見名知意原則
7.若有如下變量n1=15,請使用int提供的方法,獲得該變量最少用多少二進制位表示?
n1=15
val=n1.bit_length()
print(val)
8.布爾值分別有什麼?
True和False,其中False主要有:0 none "" [] () {}
9.閱讀代碼,請寫出執行結果
a="alex"
b=a.capitalize()
print(a)
print(b)
輸出結果爲:alex Alex
10.寫代碼,有以下變量,請按照要求實現每一個功能。name=" aleX"
a.移除name變量對應值兩邊的空格,並輸出移除後的內容
name = " aleX"
val=name.strip()
print(val)
b.判斷name變量是否以「al」開頭,並輸出結果
name = "aleX"
if name.startswith('al'):
print("確實以al開頭")
c.判斷變量name對應的值是否以「X」結尾,並輸出結果。
name = "aleX"
if name.endswith('X'):
print("確實以X結尾")
d.將name變量對應值中的「l」替換成「p」,並輸出結果。
name = "aleX"
val=name.replace('l','p')
print(val)
e.將name變量對應的值根據「l」分割,並輸出結果。
name = "aleX"
val=name.split('l')
print(val) #結果爲:['a','eX']
f.請問上一題e中分割後獲得的值是什麼類型?
列表類型
g.將name變量對應的值變大寫,並輸出結果。
name = "aleX"
val=name.upper()
print(val)
h.將name變量對應的值變小寫,並輸出結果。
name = "aleX"
val=name.lower()
print(val)
i.請輸出變量name對應值的第2個字符
name = "aleX"
print(name[1])
j.請輸出變量name對應值的前3個字符
name = "aleX"
print(name[0:3])
k.請輸出name變量對應值的後2個字符。
name = "aleX"
print(name[-2:])
l.獲取子序列,僅不包含最後一個字符,如:oldboy,則獲取oldbo
name = "oldboy"
print(name[0:-1])
11.寫代碼,分別使用whlie和for循環分別打印字符串每一個字符。
name="hello world!"
for i in name:
print(i)
name="hello world!"
i=0
while i<len(name):
print(name[i])
i+=1
12.請用代碼實現:li=['alex','eric','rain'],利用下劃線將列表中的每個元素拼接成字符串:"alex_eric_rain"
#方法一:
li=['alex','eric','rain']
val="_".join(li)
print(val)
#方法二:
li=['alex','eric','rain']
val=""
for i in range(0,len(li)):
if i==0:
val=val+li[i]
else:
val=val+"_"+li[i]
print(val)
#方法三:
li=['alex','eric','rain']
msg = ""
is_first = True
for item in li:
if is_first:
tmp = item
is_first =False
else:
tmp = "_" + item
msg += tmp
print(msg)
13.實現一個整數加法計數器:
如:content=input("請輸入內容:"),如用戶輸入5+9,而後進行分割再計算
#方法一:
sum=0
content=input("請輸入內容:")
msg=content.split('+')
for v in msg:
sum=sum+int(v.strip())
print(sum)
#方法二:
content = input('請輸入表達式:')
a,b = content.split('+',1)
a = int(a.strip())
b = int(b.strip())
print(a+b)
14.計算用戶輸入的內容中有幾個整數?如:content=input("請輸入內容:") #ssfka98374hjf326
content=input("請輸入內容:")
count=0
for v in content:
if v.isdecimal():
count+=1
print(count)
15.簡述int和9等數字,以及str和"xxoo"等字符串的關係?
功能對象
16製做趣味模板程序,需求:等待用戶輸入名字、地點、愛好,根據以上內容任意實現。如:敬愛可親的xx,最喜歡在xx幹xx
#方法一:
name=input("姓名:")
place=input("地點:")
hobby=input("愛好:")
print("敬愛可親的%s,最喜歡在%s幹%s" %(name,place,hobby))
#方法二:
name=input("姓名:")
place=input("地點:")
hobby=input("愛好:")
val="敬愛可親的{0},最喜歡在{1}幹{2}"
val=val.format(name,place,hobby)
print(val)
17.製做隨機驗證碼,不區分大小寫。
流程:
-用戶執行程序
-給用戶顯示輸入的驗證碼
-用戶輸入的值
用戶輸入的的值與顯示的值相同時顯示正確信息;不然繼續生成隨機驗證碼繼續等待用戶輸入,生成隨機驗證碼代碼以下:
def check_code():
import random
checkcode=''
for i in range(4):
current=random.randrange(0,4)
if current!=i:
temp=chr(random.randint(65,90))
else:
temp=random.randint(0,9)
checkcode+=str(temp)
return checkcode
while True:
code=check_code()
print(code)
msg=input("請輸入驗證碼:")
a=code.strip().upper()
b=msg.strip().upper()
if a==b:
print("登錄成功")
break
else:
print("請從新輸入!")
18.開發敏感詞語過濾程序,提示用戶輸入內容,若是用戶輸入的內容中包含特殊的字符,如敏感字符列表爲:li=["蒼老師","東京熱"],則將用戶輸入的任意敏感字符串替換爲***
li=["蒼老師","東京熱"]
msg=input("請輸入內容:")
for v in li:
if v in msg:
msg= msg.replace(v,'***')
print(msg)
19.查找列表中元素,移除每一個元素的空格,而且查找以'a'或者'A'開頭,而且以'c'結尾的全部元素。
li=["alec","aric","Alex","Tony","rain"]
tu=("alec","aric","Alex","Tony","rain")
dic={'k1':"alec",'k2':"aric",'k3':"Alex",'k4':"Tony"}
#列表:
#方案1:
li=["alec","Aric","Alex","Tony","rain"]
for v in li:
v=v.strip()
if (v[0]=='a' or v[0]=='A')and v[-1]=='c':
print(v)
#方案2:
li=["alec","Aric","Alex","Tony","rain"]
for v in li:
if v.strip().lower().startswith('a')and v.strip().endswith('c'):
print(v)
#元組:
tu=("alec","aric","Alex","Tony","rain")
for v in tu:
v=v.strip()
if (v[0]=='a' or v[0]=='A')and v[-1]=='c':
print(v)
#字典:
dic={'k1':"alec",'k2':"Aric",'k3':"Alex",'k4':"Tony"}
for v in dic.values():
if v.strip().lower().startswith('a') and v.strip().endswith('c'):
print(v)
20.寫代碼,有以下列表,按照要求實現每個功能:li=["alex","eric","rain"]
a.計算列表長度並輸出。
li=["alex","eric","rain"]
print(len(li))
b.列表中追加元素"seven",並輸出添加後的列表
li=["alex","eric","rain"]
li.append('seven')
print(li)
c.請在列表的第一個位置添加'tony',並輸出添加後的列表
li=["alex","eric","rain"]
li.insert(0,'tony')
print(li)
d.請修改列表第二個元素爲"lelly",並輸出修改後的列表
li = ["alex", "eric", "rain"]
li[1]="lelly"
print(li)
f.請刪除列表第二個元素,並輸出刪除的元素及刪除後的列表
#方法1.
li = ["alex", "eric", "rain"]
val=li.pop(1)
print(val,li)
#方法2.
li = ["alex", "eric", "rain"]
print(li[1])
del li[1]
print(li)
g.請刪除列表中的第三個元素,並輸出刪除後的列表
li = ["alex", "eric", "rain"]
del li[2]
print(li)
h.請刪除列表中2到4位的元素,並輸出刪除後的列表
li = ["alex", "eric", "rain"]
del li[1:4]
print(li)
i.請將列表中的全部元素反轉,並輸出反轉後的列表
li = ["alex", "eric", "rain"]
li.reverse()
print(li)
j.請使用while及len輸出列表的索引值
li = ["alex", "eric", "rain"]
i=0
while i<len(li):
print(i)
i+=1
l.請使用for循環輸出列表的全部元素
li = ["alex", "eric", "rain"]
for v in li:
print(v)
21.寫代碼,有以下列表,請按照功能要求實現每個功能。
li=['hello','seven',['mon',['h','kelly'],'all'],123,446]
a.請根據索引輸出'kelly'
li=['hello','seven',['mon',['h','kelly'],'all'],123,446]
print(li[2][1][1])
b.請根據索引找到'all'元素,並將其修改成"ALL",如li[0][1][9]...
li=['hello','seven',['mon',['h','kelly'],'all'],123,446]
print(li[2][2])
li[2][2]="ALL"
print(li)
22.寫代碼,有以下元組,按照要求實現每個功能。
tu=('alex','eric','rain')
a.計算元組長度並輸出
tu=('alex','eric','rain')
print(len(tu))
b.獲取元組的第2個元素,並輸出
tu=('alex','eric','rain')
print(tu[1])
c.獲取元組的第1-2個元素,並輸出
tu=('alex','eric','rain')
print(tu[0:2])
d.請使用for循環輸出元組的元素
tu=('alex','eric','rain')
for v in tu:
print(v)
e.請使用whlie、len輸出元組的索引值,如0,1,2....
tu=('alex','eric','rain')
i=0
while i<len(tu):
print(i)
i+=1
23.有以下變量,請按照要求實現功能
tu=('alex',[11,22,{"k1":"v1","k2":['age','name'],"k3":(11,22,33)},44])
a.講述元組的特性
元組中的元素不可變,元素能夠根據數據類型進行變換---即兒子不能夠變,孫子可變
b.請問tu中的第一個元素'alex'是否能夠被修改?
不能夠
c.請問tu變量中"k2"對應的值是什麼類型?是否能夠被修改?若是能夠在其中添加一個元素"seven"
list列表類型,能夠被修改
tu=('alex',[11,22,{"k1":"v1","k2":['age','name'],"k3":(11,22,33)},44])
val=tu[1][2]["k2"]
val.append("seven")
print(val,tu)
d.請問變量tu中"k3"對應的值是什麼類型?是否能夠被修改?若是能夠在其中添加一個元素"seven"
元組tuple類型,不能夠被修改
24字典:dic={"k1":"v1","k2":"v2","k3":[11,22,33]}
a.請循環出全部的key
dic={"k1":"v1","k2":"v2","k3":[11,22,33]}
#狀況一:
for v in dic:
print(v)
#狀況二:
for v in dic.keys():
print(v)
b.請循環出所value的值
dic={"k1":"v1","k2":"v2","k3":[11,22,33]}
# 狀況一:
for v in dic:
print(dic[v])
# 狀況二:
for v in dic.values():
print(v)
c.請循環輸出全部的key和value
#狀況一:
dic={"k1":"v1","k2":"v2","k3":[11,22,33]}
for a,b in dic.items():
print(a,b) #結果爲單個字符:k1 v1 k2 v2 k3 [11, 22, 33]
#狀況二:
dic={"k1":"v1","k2":"v2","k3":[11,22,33]}
for v in dic.items():
print(v) #結果爲元組:('k1', 'v1') ('k2', 'v2') ('k3', [11, 22, 33])
d.請在字典中添加一個鍵值對:"k4":"v4",輸出添加後的字典
dic={"k1":"v1","k2":"v2","k3":[11,22,33]}
dic['k4']="v4"
print(dic)
e.請修改字典中"k1"對應的值爲:"alex",並輸出修改後的字典
dic={"k1":"v1","k2":"v2","k3":[11,22,33]}
dic['k1']="alex"
print(dic)
f.請在k3對應的值中添加一個元素44,並輸出修改後的字典
dic={"k1":"v1","k2":"v2","k3":[11,22,33]}
dic['k3'].append(44)
print(dic)
g.請在字典中k3對應的值的第一個位置插入元素18,並輸出修改後的字典
dic={"k1":"v1","k2":"v2","k3":[11,22,33]}
dic['k3'].insert(0,18)
print(dic)
25.元素分類:有以下值集合li=[11,22,33,44,55,66,77,88,99,90],將全部值大於66的保存在字典"k1'中,將全部值小於66的保存在字典'k2'中。即:{'k1':全部大於66的列表,'k2':全部小於66的列表}
#思路一
li=[11,22,33,44,55,66,77,88,99,90]
dic={}
for v in li:
if v>66:
if 'k1' in dic:
dic['k1'].append(v)
else:
dic['k1']=[v]
elif v<66:
if 'k2' in dic:
dic['k2'].append(v)
else:
dic['k2'] = [v]
print(dic)
#思路二
li=[11,22,33,44,55,66,77,88,99,90]
dic={}
a=[]
b=[]
for v in li:
if v>66:
a.append(v)
elif v<66:
b.append(v)
dic['k1']=a
dic['k2']=b
print(dic)
26.輸出商品列表,用戶輸入序號,顯示用戶選中的商品
商品 li=["手機","電腦","鼠標墊","遊艇"]
要求:頁面顯示 序號+商品名稱,如:
1 手機
2 電腦
...
用戶輸入商品名稱序號,而後打印商品名稱
li=["手機","電腦","鼠標墊","遊艇"]
num=1
for v in li:
print("%d %s" %(num,v))
num+=1
while True:
val=input("選擇商品序號:")
val=int(val)
if val>0 and val<5:
print("商品名稱爲:%s" %li[val-1])
break
else:
print("序號不合法,請從新輸入")
27.列舉字符串、數字中布爾值爲False的全部值
布爾值爲False的值主要有:0 none "" [] () {}
28.有兩個列表:
l1=[11,22,33]
l2=[22,33,44]
a.獲取內容相同的元素列表
l1=[11,22,33]
l2=[22,33,44]
result=[]
for i in l1:
for j in l2:
if i==j:
result.append(i)
print(result)
b.獲取l1中有,l2中沒有的元素的列表
l1=[11,22,33]
l2=[22,33,44]
result=[]
for i in l1:
for j in l2:
if i==j:
break
else:
result.append(i)
print(result)
c.獲取l2中有,l1中沒有的的元素的列表
l1=[11,22,33]
l2=[22,33,44]
result=[]
for i in l2:
for j in l1:
if i==j:
break
else:
result.append(i)
print(result)
d.獲取l1和l2中都不一樣的元素
l1=[11,22,33]
l2=[22,33,44]
result=[]
for i in l1:
for j in l2:
if i==j:
break
else:
result.append(i)
for u in l2:
for v in l1:
if u==v:
break
else:
result.append(u)
print(result)
29.購物車
功能要求:
要求用戶輸入本身的總資產,如:2000
顯示商品列表,讓用戶根據序號選擇商品,加入購物車
購買,若是商品總金額大於資產,提示餘額不足,不然購買成功
goods=[{'name':"電腦",'price':"1999"},
{'name': "鼠標", 'price': "10"},
{'name': "遊艇", 'price': "20"},
{'name': "美女", 'price': "998"}
]
goods=[{'name':"電腦",'price':"1999"},
{'name': "鼠標", 'price': "10"},
{'name': "遊艇", 'price': "20"},
{'name': "美女", 'price': "998"}
]
#1.用戶輸入金額
while True:
total=input("請輸入總金額:")
total=total.strip()
if total.isdigit():
total=int(total)
print("你的總金額爲;%d" %total)
break
else:
print("輸入不合法,請從新輸入")
#2.顯示商品
num=1
for v in goods:
print(num,v['name'],v['price'])
num+=1
#3.購買商品
cost=0
while True:
val=input("請選擇商品(輸入q結算);")
val=val.strip()
if val.lower()=='q':
break
if val.isdigit():
val=int(val)
if val>0 and val<5:
print(goods[val-1]['name'],goods[val-1]['price'])
cost+=int(goods[val-1]['price'])
else:
print("你輸入的商品不存在")
else:
print("輸入不合法,請從新輸入")
if total>=cost:
print("購買成功")
else:
print("餘額不足")
30.分頁顯示內容
a.經過for循環建立301條數據,數據類型以下:
alex-1 alex1@live.com pwd1
alex-2 alex2@live.com pwd2
alex-3 alex3@live.com pwd3
.....
ps:可使用while循環本身建立user_list=[],循環建立字典{"user":'xxx',"email":'xxx',"pwd":""},將建立的字典追加到列表
b.提示用戶,請輸入要查看的頁碼,當用戶輸入指定頁碼,則顯示指定數據
注意:每頁顯示10頁數據;用輸入內容爲非十進制數字時,提示輸入錯誤
u
user_list=[]
i=1
while i<=301:
user_list.append({'user':'alex-%d' %i,'email':'alex%d@live.com' %i,'pwd':'pwd%d' %i})
i+=1
while True:
page=input('請輸入頁碼:')
if page.strip().isdigit():
page=int(page)
if page>0 and page<32:
start=10*(page-1)
end=10*page
current_user_list=user_list[start:end]
for v in current_user_list:
print(v)
else:
print("頁碼不錯在請從新輸入")
else:
print('輸入錯誤,請從新輸入')