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]]

请打印出这样的格式:

-----------商品信息 ------------
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 #为真时候结束循环

第2章 Python基础-字符编码&数据类型 列表&元祖 练习题的更多相关文章

  1. 第2章 Python基础-字符编码&数据类型 字符编码&字符串 练习题

    1.简述位.字节的关系 位(bit)是计算机中最小的表示单元,数据传输是以“位”为单位的,1bit缩写为1b 字节(Byte)是计算机中最小的存储单位,1Byte缩写为1B 8bit = 1Byte ...

  2. 第2章 Python基础-字符编码&数据类型 综合 练习题

    1.转换 将字符串s = "alex"转换成列表 s = "alex" s_list = list(s) print(s_list) 将字符串s = " ...

  3. 第2章 Python基础-字符编码&数据类型 购物车&多级菜单 作业

    作业 一.三级菜单 数据结构: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, ...

  4. 第2章 Python基础-字符编码&数据类型 字典 练习题

    1.写代码,有如下字典,按照要求实现每一个功能,dic = {'k1':'v1','k2':'v2','k3':[11,22,33]} 请循环输出所有的 key dic = {'k1':'v1','k ...

  5. Python基础-字符编码与转码

    ***了解计算机的底层原理*** Python全栈开发之Python基础-字符编码与转码 需知: 1.在python2默认编码是ASCII, python3里默认是utf-8 2.unicode 分为 ...

  6. python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍

    目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...

  7. python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍

    目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...

  8. python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍

    目录 python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍. 二丶列表,其它语言称为数组 1.列表的定义,以及语法 2.列表的使用,以及常用方法. 3.列表的常用操作 ...

  9. Python学习day4 数据类型Ⅱ(列表,元祖)

    day4 知识补充&数据类型:列表,元祖 1.知识补充 1.编译型/解释型 编译型:在代码编写完成之后编译器将其变成另外一个文件教给你算计执行. 代表语言:Java,c,c++ ,c#, Go ...

随机推荐

  1. uni-app - 上传图片组件

    2018-12-29 更新1.0  2019-01-08 更新1.1 2019-01-29 更新1.3   重大更新 插件地址: http://ext.dcloud.net.cn/plugin?id= ...

  2. Android原生webview中js交互

    http://www.cnblogs.com/android-blogs/p/4891264.html Html页面和Java代码结合的方式一般用在界面经常被更改 的情况下,可以讲html放在网络中, ...

  3. shell 截取变量的字符串(转)

    来自:http://blog.sina.com.cn/s/blog_7c95e5850100zpch.html 假设有变量 var=http://www.linuxidc.com/test.htm 一 ...

  4. MySQL 批量杀mysql线程

    mysql> SELECT concat('KILL ',id,';') FROM information_schema.processlist WHERE user='root'; +---- ...

  5. 【Zookeeper】源码分析之Watcher机制(二)之WatchManager

    一.前言 前面已经分析了Watcher机制中的第一部分,即在org.apache.zookeeper下的相关类,接着来分析org.apache.zookeeper.server下的WatchManag ...

  6. Android——自定义多击事件

    一:使用场景 Android本身内置了点击.双击事件,但是某些时候,我们可能需要多击事件. 例如:某个秘密入口,为了避免用户误操作点击.双击到了触发开关而进入到不该被用户看到的页面,我们可以为入口控件 ...

  7. 每天五个java相关面试题(7)--线程篇

    首先关于线程能够先看我之前这篇博文熟悉一下线程生命周期的图示以及文字说明 好開始了: 1.java 中有几种方法能够实现一个线程? 答:有两种实现方法.各自是继承 Thread类与实现Runnable ...

  8. 【Linux】特殊符号$$,$#,$?等解释

    在linux系统中有很多的特殊符号,他们具有特殊的意义 $# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell的第一个参数 $2 是传递给该shell的第二个参数 $@ 是传递 ...

  9. 【DB2】建造测试数据

    建表语句 CREATE TABLE     FUND_DAILY_INCOME     (         ID BIGINT NOT NULL GENERATED ALWAYS AS IDENTIT ...

  10. 【转】Appium移动自动化测试(三)--安装Android模拟器

    原文出自:http://www.cnblogs.com/fnng/p/4560298.html?utm_source=tuicool 当Android SDK安装完成之后,并不意味着已经装好了安装模拟 ...