第2章 Python基礎-字符編碼&數據類型 列表&元祖 練習題

1.建立一個空列表,命名爲names,往裏面添加old_driver,rain,jack,shanshan,peiqi,black_girl元素

names = ["old_driver","rain","jack","shanshan","peiqi","black_girl"]
print(names)

2.往names列表裏black_girl前面插入一個alex

names.insert(names.index("black_girl"),"alex")
print(names)

3.把shanshan的名字改爲中文,姍姍

names[names.index("shanshan")] = "姍姍"
print(names)

4.往names列表裏rain的後面插入一個子列表,["oldboy","oldgirl"]

names.insert(names.index("rain")+1,["oldboy","oldgirl"])
print(names)

5.返回peiqi的索引值

print(names.index("peiqi"))

6.建立新列表[1,2,3,4,2,5,6,2],合併入names列表

names.extend([1,2,3,4,2,5,6,2])
print(names)

7.取出names列表中索引4-7的元素

print(names[4:7])

8.取出names列表中索引2-10的元素,步長爲2

print(names[2:10:2])

9.取出names列表中最後3個元素

print(names[-3:])

10.循環names列表,打印每一個元素的索引值,和元素

#枚舉
for index,name in enumerate(names):
    print("%s. %s" % (index,name)) 
#計數
index = 0
for name in names:
    print("%s. %s" % (index, name))
    index += 1

11.循環names列表,打印每一個元素的索引值,和元素,當索引值爲偶數時,把對應的元素改成-1

for index,name in enumerate(names):
    if index % 2 == 0:
        names[index] = -1
print(names)

12.names裏有3個2,請返回第2個2的索引值。不要人肉數,要動態找(提示,找到第一個2的位置,在次基礎上再找第2個)

print(names.index(2,names.index(2)+1))

13.查找列表(或元祖或字典)中元素,移除每一個元素的空格,並查找以 a 或 A 開頭 而且以 c 結尾的全部元素

  li = ["alec", " aric", "Alex", "Tony", "rain"]

  tu = ("alec", " aric", "Alex", "Tony", "rain")

  dic = {'k1': "alex", 'k2': ' aric',"k3": "Alex", "k4": "Tony"}

#!/usr/bin/env python
# -*- coding:utf-8 -*-

li = ["alec", " aric", "Alex", "Tony", "rain"]

for S in li:
    S = S.strip()
    prefix_a = S.startswith('a')
    prefix_A = S.startswith('A')
    suffix_c = S.endswith('c')
    if prefix_a or prefix_A and suffix_c:
        print('要查找的元素:%s' % S)

tu = ("alec", " aric", "Alex", "Tony", "rain")

for S in tu:
    S = S.strip()
    prefix_a = S.startswith('a')
    prefix_A = S.startswith('A')
    suffix_c = S.endswith('c')
    if prefix_a or prefix_A and suffix_c:
        print('要查找的元素:%s' % S)


dic = {'k1': "alex", 'k2': ' aric',"k3": "Alex", "k4": "Tony"}

for S in dic.values():
    S = S.strip()
    prefix_a = S.startswith('a')
    prefix_A = S.startswith('A')
    suffix_c = S.endswith('c')
    if prefix_a or prefix_A and suffix_c:
        print('要查找的元素:%s' % S)

14.寫代碼,有以下列表,按照要求實現每個功能

li = ['alex','eric','rain']

  • 計算列表長度並輸出
li = ['alex','eric','rain']
v = len(li)
print(v)
  • 列表中追加元素 「seven」,並輸出添加後的列表
li = ['alex','eric','rain']
li.append('seven')
print(li)
  • 請在列表的第 1 個位置插入元素 「Tony」,並輸出添加後的列表 
li = ['alex','eric','rain']
li.insert(0,'Tony')
print(li)
  • 請修改列表第 2 個位置的元素爲 「Kelly」,並輸出修改後的列表
li = ['alex','eric','rain']
li[1] = 'Kelly'
print(li)
  • 請刪除列表中的元素 「eric」,並輸出修改後的列表
li = ['alex','eric','rain']
li.remove('eric')
print(li)
  • 請刪除列表中的第 2 個元素,並輸出刪除的元素的值和刪除元素後的列表
li = ['alex','eric','rain']
v = li.pop(1)
print(v,li)
  • 請刪除列表中的第 3 個元素,並輸出刪除元素後的列表
li = ['alex','eric','rain']
li.pop(2)
print(li)
  • 請刪除列表中的第 2 至 4 個元素,並輸出刪除元素後的列表
li = ['alex','eric','rain','rain','rain']
del li[1:4]
print(li)
  • 請將列表全部的元素反轉,並輸出反轉後的列表
li = ['alex','eric','rain']
li.reverse()
print(li)
  • 請使用 for、len、range 輸出列表的索引
li = ['alex','eric','rain']
for i in range(len(li)):
    print(i)
  • 請使用 enumrate 輸出列表元素和序號(序號從 100 開始)
li = ['alex','eric','rain']
for i,v in enumerate(li,100):
    print(i,v)
  • 請使用 for 循環輸出列表的全部元素
li = ['alex','eric','rain']
for i in li:
    print(i)

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

li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]

  • 請根據索引輸出「Kelly」

#!/usr/bin/python
# -*- coding:utf-8 -*-

li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
print(li[2][1][1])
  • 請使用索引找到'all'元素並將其修改成「ALL」,如:li[0][1][9]...

#!/usr/bin/python
# -*- coding:utf-8 -*-

li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
li[2][2] = "ALL"
print(li)

16.寫代碼,有以下元祖,請按照功能要求實現每個功能

tu = ('alex','eric','rain')

  • 計算元組長度並輸出
tu = ('alex','eric','rain')
v = len(tu)
print(v)
  • 獲取元組的第 2 個元素,並輸出
tu = ('alex','eric','rain')
v = tu[1]
print(v)
  • 獲取元組的第 1­‐2 個元素,並輸出
tu = ('alex','eric','rain')
v = tu[0:2]
print(v)
  • 請使用 for 輸出元組的元素
tu = ('alex','eric','rain')
for i in tu:
    print(i)
  • 請使用 for、len、range 輸出元組的索引
for i in range(len(tu)):
    print(i)
  • 請使用 enumrate 輸出元祖元素和序號(序號從 10 開始)
tu = ('alex','eric','rain')
for i,v in enumerate(tu,10):
    print(i,v)

17.有以下變量,請實現要求的功能

tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])

  • 講述元祖的特性
元組的一級元素不可被修改增長刪除,有序,可迭代,可切片,可索引,可轉換爲列表。
  • 請問 tu 變量中的第一個元素 「alex」 是否可被修改? 
不可被修改
  • 請問 tu 變量中的"k2"對應的值是什麼類型?是否能夠被修改?若是能夠,請在其中添加一個元素 「Seven」
tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
v = tu[1][2]["k2"]
v.append("Seven")
print(tu)
  • 請問 tu 變量中的"k3"對應的值是什麼類型?是否能夠被修改?若是能夠,請在其中添加一個元素 「Seven」
k3對應的是元組,不可修改

18.現有商品列表以下:

products = [ ['iphone8',6888], ['MacPro', 14800], ['小米6',2499], ['coffee',31],['book',80],['Nike shoes',799]]python

請打印出這樣的格式:

-----------商品信息 ------------
0. iphone8 6888
1. MacPro 14800
2. 小米6 2499
3. coffee 31
4. book 80
5. Nike shoes 799
products = [ ['iphone8',6888], ['MacPro', 14800], ['小米6',2499], ['coffee',31],['book',80],['Nike shoes',799]]
print("商品信息".center(28,"-"))
for index,product in enumerate(products):
    print("%s.%s %s" %(index,product[0],product[1]))
    # print("{0}.{1} {2}".format(index,product[0],product[1]))

19.利用上題中的列表,寫一個循環,不斷的問用戶想買什麼,用戶選擇一個商品標號,就把對應的商品添加到購物車裏,最終用戶輸入q退出時,打印購物車裏的商品列表。

products = [ ['iphone8',6888], ['MacPro', 14800], ['小米6',2499], ['coffee',31],['book',80],['Nike shoes',799]]

shopping_cart = []  # 定義一個空的購物車

exit_flag = False

# while True:
while not exit_flag:
    print("商品信息".center(28, "-"))
    for index,product in enumerate(products):
        print("%s. %s %d" % (index,product[0],product[1]))

    product_choice = input("\n請輸入商品標號:\n")
    if product_choice.isdigit(): #判斷輸入的字符串是否只包含數字
        product_choice = int(product_choice)  # 字符串轉成整型
        if product_choice >= 0 and product_choice < len(products):
            shopping_cart.append(products[product_choice][0]) #增長到購物車列表
            print("\n商品 %s 已添加到購物車\n" % (products[product_choice][0]))
        else:
            print("商品標號有誤,請從新輸入")
    elif product_choice == "q":
        if len(shopping_cart) > 0:
            print("\n您添加到購物車的商品以下:\n")
            for index,product_cart in enumerate(shopping_cart):
                print("%s. %s" % (index,product_cart))
        else:
            print("\n您的購物車爲空!\n")
        # break
        exit_flag = True #爲真時候結束循環
相關文章
相關標籤/搜索