Python基礎知識練習題(二)


1、 有兩個列表

 l1    =  [11,22,33]
l2 = [22,33,44]

a. 獲取內容相同的元素列表

for i in l1:
    if i in l2:
        print(i)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
22
33

 

b.   獲取 l1 中有,l2 中沒有的元素列表

for i in l1:
    if i not in l2:
        print(i)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
11

 

c.   獲取 l2  中有, l1 中沒有的元素列表

for i in l2:
    if i not in l1:
        print(i)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
44

 

d.   獲取 l1  和 l2   中內容都不同的元素

for i in l1:
    if i not in l2:
        print(i)
for i in l2:
    if i not in l1:
        print(i)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
11
44

 

2、 用代碼實現,利用下划線將列表的每一個元素拼接成字符串,li = ['alex','eric','Witharush']

 

li = ['alex','eric','Witharush']
v = "_".join(li)
print(v)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
alex_eric_Witharush

  

  若列表里面有數字

 

li = ['alex','eric','Witharush',123]
li [3] = str(li[3])
print("_".join((li)))

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
alex_eric_Witharush_123

  

  若先定義一個空的字符串,通過for循環拼接

 

s = ""
li = ['alex','eric','Witharush',123]
for i in li:
    s = s +  str(i)
print(s)
print("_".join(s))

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
alexericWitharush123
a_l_e_x_e_r_i_c_W_i_t_h_a_r_u_s_h_1_2_3

 

3、有以下列表:

nums = [2,7,11,15,1,8,7]
請找到列表中任意兩個元素相加能夠等於9的元素組合,如, [(0,1),(4,5)]

way 1:通過printf的性質,輸出樣式為:(x,y)

for i in range(0,len(nums)):
    for j in range(0,len(nums)):
        if nums[i] + nums[j] == 9:
            print("("+str(i) + "," + str(j)+")",end="\t")

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
(0,1) (0,6) (1,0) (4,5) (5,4) (6,0)

 

 way 2:通過先定義一個空的列表,用for循環和append方法將每種組合追加到空列表中

 

a = []
for i in range(0,len(nums)):
    for j in range(0,len(nums)):
        if nums[i] + nums[j] == 9:
            a.append((i,j))
print(a)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
[(0, 1), (0, 6), (1, 0), (4, 5), (5, 4), (6, 0)]

 

4、寫代碼,有如下列表,按照要求實現每一個功能

li = ["Witharush","eric","rain"]
a.計算列表長度並輸出
  print(len(li))
b.列表中追加元素"seven",並輸出添加后的列表
li.append("seven")
print(li)    # 如果用   print(li.append("seven"))      輸出為  None


D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
['Witharush', 'eric', 'rain', 'seven']

 
        
c.請在列表的第1個位li請在列表的第一個位置插入元素"Tony",並輸出添加后的列表
li.insert(0,"Tony")
print(li)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
['Tony', 'Witharush', 'eric', 'rain']

 
        
d.請修改列表的第2個位置插入元素"Kelly",並輸出添加后的列表
li[1] = "Kelly"
print(li)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
['Witharush', 'Kelly', 'rain']

 
        
e.請刪除列表中的元素"eric",並輸出修改后的列表
li.remove("eric")
print(li)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
['Witharush', 'rain']

 
        
f.請刪除列表中的第2個元素,並輸出刪除的元素的值和刪除元素后的列表
v = li.pop(1)
print(v)
print(li)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
eric
['Witharush', 'rain']

 
        
g.請刪除列表中的第3個元素,並輸出刪除元素后的列表
li.pop(2)
print(li)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
['Witharush', 'eric']

 
        
h.請刪除列表中的第2至4個元素,並輸出刪除元素后的列表
del li[1:5]
print(li)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
['Witharush']

 
        
i.請將列表所有的元素反轉,並輸出反轉后的列表
li.reverse()
print(li)   #   入如果用   print(li.reverse())     輸出為     None

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
['rain', 'eric', 'Witharush']

 

 j.請使用for,len,range輸出列表的索引

for i in range(len(li)):
    print(i,li[i])

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
0 Witharush
1 eric
2 rain

 

k.請使用enumrate是輸出列表元素和序號(序號從100開始)
for i , v in enumerate(li, 100):
    print(i,v)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
100 Witharush
101 eric
102 rain

 

l.請使用for循環輸出列表的所有元素
for i in li :
    print(i)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
Witharush
eric
rain

 

5、寫代碼,有如下元祖,按照要求實現每一個功能

 tu = ('alex','eric','Witharush')
a.計算元祖長度並輸出

print(len(tu))

b.獲取元祖的第二個元素,並輸出
  print(tu[1])
c.獲取元祖的第 1-2 個元素,並輸出

 
print(tu[0:2])
d.請使用for輸出元祖的元素
 for i in tu:
 print(i)
e.請使用for,len,range輸出元素的索引
for i in range(0,len(tu)):
    print(i,tu[i])

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
0 alex
1 eric
2 Witharush

 
        
f.請使用enumrate輸出元祖元素和序號(序號從10開始)
for i, v in enumerate(tu, 10):
    print(i,v)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
10 alex
11 eric
12 Witharush

 
        

6、有如下變量,請實現要求的功能

tu = ("Witharush",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])
a.講述元祖的特性
  一級元素不可被修改,不能被增加或者刪除
b.請問tu變量中的第一個元素"Witharush"是否可以被修改?

  不行
c.請問tu變量中的"k2"對應的值是什么類型?是否可以被修改?如果可以,請在其中添加一個元素"Seven"

  列表;可以被修改

 way 1:
tu[1][2]["k2"]="age","name","Seven"
print(tu)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
('Witharush', [11, 22, {'k1': 'v1', 'k2': ('age', 'name', 'Seven'), 'k3': (11, 22, 33)}, 44])

  way 2:

tu[1][2]["k2"].append("Seven")
print(tu)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
('Witharush', [11, 22, {'k1': 'v1', 'k2': ['age', 'name', 'Seven'], 'k3': (11, 22, 33)}, 44])

 

d.請問tu變量中的"k3"對應的值是什么類型?是否可以被修改?如果可以,請在其中添加一個元素"Seven"

  元祖; 元祖不能修改,但是可以將元祖里的值重新用字符串來替換
tu[1][2]["k3"] =(11,22,33,"Seven")
print(tu)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
('Witharush', [11, 22, {'k1': 'v1', 'k2': ['age', 'name'], 'k3': (11, 22, 33, 'Seven')}, 44])

  若用append,報錯

tu[1][2]["k3"].append("Seven") print(tu)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
Traceback (most recent call last):
File "D:/PyProject/day13_homework/text.py", line 152, in <module>
tu[1][2]["k3"].append("Seven")
AttributeError: 'tuple' object has no attribute 'append'

 

7、用1,2,3,4,5,6,7,8 ,8個數,能組成多少個互不相同且無重復的兩位數?

  way 1 :

count = 0
for i in range(1, 9):
    for v in range(2,9):      #每次一大循環都有一個重復的兩位數,可以直接讓第二輪循環比第一輪少循環一次  (野路子)
      count += 1
print(count)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
56

  way 2 :

count = 0
for i in range(1, 9):         #都從1到8開始  如果兩位數一樣了就不加    (常規)
    for v in range(1,9):
      if i != v:
          count += 1
print(count)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
56

  way 3:

count = 0                 #比較死板,不靈活
for i in range(1, 9):
    for i in range(1,9):
        count += 1
count = count -8
print(count)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
56


8、九九乘法表

for i in range(1,10):
    for v in range(1,i+1):
        print(str(i) +  '*' + str(v) + '=' + str(i*v),end="\t")
    print("\n",end="")

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

 

9、print用法中的“sep” 、"end"

print("Witharush","","")
print("Witharush","","",sep='',end="\t")     # sep:一次性輸出多個時,默認分隔為空格,不用end的話,默認執行print("\n")
print("Witharush","","",sep='')

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
Witharush 真 帥
Witharush帥真帥帥 Witharush帥真帥帥

 

10、分頁實現內容

a.通過for循環創建301條數據,數據類型不限,如:
Witharush-1 Witharush1@live.com pwd1
Witharush-2 Witharush2@live.com pwd2
Witharush-3 Witharush3@live.com pwd3
...
提示用戶 請輸入要查看的頁碼,當用戶輸出指定頁碼,也顯示指定數據
注意:
每頁顯示10條數據
用戶輸出頁碼是非十進制數字,也提示輸入內容格式錯誤
while True:
    user_list = [
    ]
    for i in range(1,302):
        temp = {"name":"Witharush"+str(i),"email":"Witharush"+str(i)+"@live.com","password":"pwd"+str(i)    }
        user_list.append(temp)
    s = input("請輸入要查看的頁碼:")
    s = int(s)
    #1 >>> (0,10)
    #2 >>>(10,20)
    #3 >>>(20,30)
    start = (s-1) * 10
    end = s * 10
    result = user_list[start:end]
    for item in result:
         print(item,type(item))

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
請輸入要查看的頁碼:1
{'name': 'Witharush1', 'email': 'Witharush1@live.com', 'password': 'pwd1'} <class 'dict'>
{'name': 'Witharush2', 'email': 'Witharush2@live.com', 'password': 'pwd2'} <class 'dict'>
{'name': 'Witharush3', 'email': 'Witharush3@live.com', 'password': 'pwd3'} <class 'dict'>
{'name': 'Witharush4', 'email': 'Witharush4@live.com', 'password': 'pwd4'} <class 'dict'>
{'name': 'Witharush5', 'email': 'Witharush5@live.com', 'password': 'pwd5'} <class 'dict'>
{'name': 'Witharush6', 'email': 'Witharush6@live.com', 'password': 'pwd6'} <class 'dict'>
{'name': 'Witharush7', 'email': 'Witharush7@live.com', 'password': 'pwd7'} <class 'dict'>
{'name': 'Witharush8', 'email': 'Witharush8@live.com', 'password': 'pwd8'} <class 'dict'>
{'name': 'Witharush9', 'email': 'Witharush9@live.com', 'password': 'pwd9'} <class 'dict'>
{'name': 'Witharush10', 'email': 'Witharush10@live.com', 'password': 'pwd10'} <class 'dict'>

 

11、用python開發程序自動計算方案

公雞5文錢一只,母雞3文錢一只,小雞3只一文錢,用100文錢買100只雞,其
中公雞,母雞,小雞都必須要有,問公雞,母雞,小雞要買多少只剛好湊足100問錢?
for gj in range(1,21):
    for mj in range(1,100//3):
        for xj in range(1,101):
            if gj + mj + xj == 100 and 5 * gj + 3 * mj + xj/3 ==100:
                print(gj,mj,xj)

D:\PyProject\day13_homework\venv\Scripts\python.exe D:/PyProject/day13_homework/text.py
4 18 78
8 11 81
12 4 84

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM