python列表、元組、字典練習題


1.元素分類

有如下值集合[11,22,33,44,55,66,77,88,99,90], 將所有大於66的值保存至字典的第一個key中,將小於66值保存至第二個key的值中。

li = [11,22,33,44,55,66,77,88,99,90]
dic = {}
n = []
m = []
for i in li:
    if i > 66:
        n.append(i)
    if i < 66:
        m.append(i)
dic.update(k1 = m, k2 = n)
print(dic)

2.輸出商品列表,用戶輸入序號,顯示用戶選中的商品。

商品   li = ["手機", "電腦", "鼠標墊", "游艇" ]

a. 允許用戶添加商品

b. 用戶輸入序號顯示內容

li = ["手機", "電腦", "鼠標墊", "游艇" ]
mer = input("請輸入您想加入的商品:")
li.append(mer)
print("商品現有",li)
wan = int(input("請輸入序號:"))
print(li[wan])

3. 用戶交互顯示類似省市縣N級聯動的選擇

a. 允許用戶增加內容

b. 允許用戶選擇查看某一個級別內容

4.列舉布爾值是False的所有值

0   None   ""  ()  {}  []

5. 有兩個列表

l1 = [11, 22, 33]

l2 = [22, 33, 44]

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

l1 = [11, 22, 33]
l2 = [22, 33, 44]
for i1 in l1:
    for i2 in l2:
        if i1 == i2:
            print(i1)

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

l1 = [11, 22, 33]
l2 = [22, 33, 44]
for i1 in l1:
    if i1 not in l2:
        print(i1)

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

l1 = [11, 22, 33]
l2 = [22, 33, 44]
for i2 in l2:
    if i2 not in l1:
        print(i2)

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

l1 = [11, 22, 33]
l2 = [22, 33, 44]
for i2 in l2:
    if i2 not in l1:
        print(i2)
for i1 in l1:
    if i1 not in l2:
        print(i1)

6.轉換

a. 將字符串 s = "alex"轉換為列表

s = "alex"
li = list(s)
print(li)

b. 將字符串s = "alex"轉換為元組

s = "alex"
li = tuple(s)
print(li)

c. 將列表li = ["alex", "seven"]轉換為元組

li = ["alex", "seven"]
tu = tuple(li)
print(tu)

d. 將元組 tu = ("Alex", "seven")轉換為列表

tu = ("Alex", "seven")
li = list(tu)
print(li)

7.利用 for 循環和range輸出

a. for循環從大到小輸出1-100

for i in range(100, 0, -1):
    print(i, end = " ")

.....1    后面省略

b. for 循環從小到大輸出100 -1

for i in range(1, 101):
    print(i, end = " ")

.....100

c. while 循環從大到小輸出1-100

i = 100
while i >= 1:
    print(i, end = " ")
    i -= 1

.....1

d.while 循環從小到大輸出100-1

i = 1
while i <= 100:
    print(i, end = " ")
    i += 1

......100

8.購物車

功能要求:

要求用戶輸入總資產,例如:2000

顯示商品列表,讓用戶根據序號選擇商品,加入購物車購買,如果商品總額大於總資產,提示余額不足,否則,購買成功。

goods = [
    {"name": "電腦", "price": 1999},
    {"name": "鼠標", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998}
]
ass = int(input("請輸入你的總資產:"))
dic = {}
num =1
for i in goods:
    n = i["name"]
    dic.update({num : n})
    num +=1
print(dic)
zm = 0
while True:
    wan = int(input("請輸入你想要的商品序號(按數字0結束;"))
    if wan == 0:
        break
    if wan > 4:
        print("請重新輸入")
        continue
    v = dic.get(wan)
    print("你想要購買的是:", v)
    li = [0,1999, 10, 20, 998]
    print("它的價格為:%d"%li[wan])
    p = int(li[wan])
    zm = zm + p

if zm > ass:
    print("余額不足,請滾去充值")
else:
    print("購買成功!")

  

9. 有1,2,3,4,5,6,7,8  8個數字,能組成多少個互不相同且重復數字的兩位數

count = 0
for i in range(1,9):
    n = str(i)
    for j in range(1,9):
        m = str(j)
        if m != n:
            count += 1
            v = m + n
            print(int(v))
print("一共%d個"%count)

10.99乘法表

for i in range(1, 10):
    for j in range(1, i+1):
        n = i* j
        print(j,"x",i,"=",n,"\t", end = "")  #內循環之間不換行
    print(end = "\n")                        #內循環結束換行一次

11.有以下列表

nums = [2, 7, 11, 15, 1, 8]

請找到列表中任意相加等於9的元素集合,如:[(0, 1), (4, 5)]

nums = [2, 7, 11, 15, 1, 8]
l1 = []
l = len(nums)
for i in range(0, l-1):
    for j in range(i+1,l):
        if nums[i] + nums[j] == 9:
            n = (nums[i], nums[j])
            l1.append(n)
print(l1)

12.用Python開發程序自動計算方案

公雞5文錢一只, 母雞3文錢一只,小雞3只一文錢,用100文錢買100只雞,其中公雞,母雞,小雞都必須要有,問公雞,母雞,小雞要買多少只剛好湊足100文錢?

gj = 5
mj = 3
xj = 1/3
for x in range(1,100//5):
for y in range(1,100//3):
for z in range(100):
if gj * x + mj * y + xj * z == 100 and x + y + z == 100:
print(x,y,z)

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

li = ['alex', 'eric', 'rain']
for i in li:
   n =  "_".join(i)
   print(n)

14.查找列表元素,移除每個元素的空格,並查找以a 或A開頭 並且以c 結尾的所有元素。

li = ["alex", " aric", "Alex", "Tony", "rain"]
for i in li:
    v = i.strip()
    if   v.endswith('c') :
        if v.startswith('a') or v.endswith('A'):
             print(v)

tu = ('alexc', ' Aric', 'Tony', 'rain')
v = list(tu)
for i in v:
    n = i.strip()
    if n.endswith('c'):
        if n.startswith('a') or n.startswith('A'):
            print(n)

dic = {"k1": "alex", "k2": " aric", "k3": "Tony", "k4": "Arainc"}
for v in dic.values():
    n = v.strip()
    if n.endswith('c'):
        if n.startswith('a') or n.startswith('A'):
            print(n)

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

a.計算列表長度並輸出

li = ['alex', 'eric', 'arin']
print(len(li))

b. 列表中追加元素"seven",並輸出添加后的列表

li = ['alex', 'eric', 'arin']
li.append('seven')
print(li)

16. 類似13題,如果列表里有數字:

li = ['alex', 'eric', 123]
l2 = []
for i in li:
    n = str(i)
    l2.append(n)
v = "_".join(l2)
print(v)

17. 分頁顯示內容

a. 通過for循環創建301條數據,數據類型不限,如:

user1   email-1   pwd1

user2   email-2   pwd2

.........

b.提示用戶 請輸入要查看的頁碼,當用戶輸入指定頁碼時,顯示指定數據

注意:

  - 每頁顯示10條數據

  - 用戶輸入頁碼是非十進制數字,則提示輸入內容格式錯誤

li = []
for i in range(1,302):
    dic = {"user": "user" + str(i), "email": "dabai@qq" + str(i), "pwd": "52" + str(i)}
    li.append(dic)
while True:
    s = input("請輸入頁碼:")
    if  s.isdecimal():
        s = int(s)
    else:
        print("請重新輸入10進制數")
        continue
# 輸入1,查看0-10頁 s-1 *10
#輸入2,查看11-20頁  s * 10
    start = (s - 1) * 10
    end = s * 10
    n = li[start:end]
    for item in n:
        print(item)


免責聲明!

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



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