1、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex', 'eric', 'rain']

  该题目主要是考的字符串的拼接,join方法,
      s = ""
      li = ['alex', 'eric', 'rain']
      s = "_".join(li)

2、查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有元素。

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

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

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

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

  for i in li:
      i = i.strip()
      if i.startswith("a") or i.startswith("A")  and i.endswith("c"):
          print(i)

3、写代码,有如下列表,按照要求实现每一个功能

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

  • 计算列表长度并输出
  • 列表中追加元素“seven”,并输出添加后的列表
  • 请在列表的第1个位置插入元素“Tony”,并输出添加后的列表
  • 请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表
  • 请删除列表中的元素“eric”,并输出修改后的列表
  • 请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
  • 请删除列表中的第3个元素,并输出删除元素后的列表
  • 请删除列表中的第2至4个元素,并输出删除元素后的列表
  • 请将列表所有的元素反转,并输出反转后的列表
  • 请使用for、len、range输出列表的索引
  • 请使用enumrate输出列表元素和序号(序号从100开始)
  • 请使用for循环输出列表的所有元素
li=['alex', 'eric', 'rain']
# 计算列表长度并输出
print(len(li))

# 列表中追加元素“seven”,并输出添加后的列表
li.append("seven")
print(li)

# 请在列表的第1个位置插入元素“Tony”,并输出添加后的列表
li.insert(0, "Tony")
print(li)

# 请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表
li[1] = "Kelly"
print(li)

# 请删除列表中的元素“eric”,并输出修改后的列表
li.remove("eric")  # 指定的是元素
print(li)

# 请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
li_pop = li.pop(1)  # 指定的是下标位置
print(li_pop, li)

# 请删除列表中的第3个元素,并输出删除元素后的列表
del li[2]  # 指定的是下标位置
print(li)

# 请删除列表中的第2至4个元素,并输出删除元素后的列表

# 请将列表所有的元素反转,并输出反转后的列表

# 请使用for、len、range输出列表的索引
for i in range(len(li)):
    print(i)

# 请使用enumrate输出列表元素和序号(序号从100开始)
for index, val in enumerate(li, 100):
    print(index)

# 请使用for循环输出列表的所有元素
for i in li:
    print(i)

4、写代码,有如下列表,请按照功能要求实现每一个功能

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

  • 请根据索引输出“Kelly”
  • 请使用索引找到'all'元素并将其修改为“ALL”,如:li[0][1][9]...
# 请根据索引输出“Kelly”
li[2][1][1]
# 请使用索引找到'all'元素并将其修改为“ALL”,如:li[0][1][9]...
li[2][2].upper()
li[2][2] = "ALL"

5、写代码,有如下元组,请按照功能要求实现每一个功能

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

  • 计算元组长度并输出
  • 获取元组的第2个元素,并输出
  • 获取元组的第1-2个元素,并输出
  • 请使用for输出元组的元素
  • 请使用for、len、range输出元组的索引
  • 请使用enumrate输出元祖元素和序号(序号从10开始)
# 计算元组长度并输出
print(len(t))
# 获取元组的第2个元素,并输出
print(t[1])
# 获取元组的第1-2个元素,并输出
print(t[1:2])
# 请使用for输出元组的元素
for i in t:
    print(i)
# 请使用for、len、range输出元组的索引
for i in range(len(t)):
    print(i)
请使用enumrate输出元祖元素和序号(序号从10开始)
for index, val in enumerate(t, 10):
    print(index)

6、有如下变量,请实现要求的功能

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

  • 讲述元祖的特性
  • 请问tu变量中的第一个元素“alex”是否可被修改?
  • 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
  • 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
# 讲述元祖的特性
1、有序的集合
2、通过偏移来取数据
3、属于不可变的对象,不能在原地修改内容,没有排序,修改等操作。
# 请问tu变量中的第一个元素“alex”是否可被修改?
上题中的元组的第三个特点
# 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
type(tu[1][2]["k2"])  -- list
可以
tu[1][2]["k2"].append("Seven")
# 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
type(tu[1][2]["k3"])
tuple
不可以

7、字典

dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}

  • 请循环输出所有的key
  • 请循环输出所有的value
  • 请循环输出所有的key和value
  • 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
  • 请在修改字典中“k1”对应的值为“alex”,输出修改后的字典
  • 请在k3对应的值中追加一个元素44,输出修改后的字典
  • 请在k3对应的值的第1个位置插入个元素18,输出修改后的字典
# 请循环输出所有的key
dic.keys()
# 请循环输出所有的value
dic.values()
# 请循环输出所有的key和value
dic.items()
# 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
dic["k4"] = "v4"
# 请在修改字典中“k1”对应的值为“alex”,输出修改后的字典
dic["k1"] = "alex"
{'k2': 'v2', 'k1': 'alex', 'k3': [11, 22, 33]}
# 请在k3对应的值中追加一个元素44,输出修改后的字典
dic["k3"].append(44)
{'k2': 'v2', 'k1': 'v1', 'k3': [11, 22, 33, 44]}
# 请在k3对应的值的第1个位置插入个元素18,输出修改后的字典
dic["k3"].insert(1, 18)
{'k2': 'v2', 'k1': 'v1', 'k3': [11, 18, 22, 33]}

8、转换

  • 将字符串s = "alex"转换成列表
  • 将字符串s = "alex"转换成元祖
  • 将列表li = ["alex", "seven"]转换成元组
  • 将元祖tu = ('Alex', "seven")转换成列表
  • 将列表li = ["alex", "seven"]转换成字典且字典的key按照10开始向后递增
# 将字符串s = "alex"转换成列表
list(s)
# 将字符串s = "alex"转换成元祖
tuple(s)
# 将列表li = ["alex", "seven"]转换成元组
tuple(li)
# 将元祖tu = ('Alex', "seven")转换成列表
list(tu)
# 将列表li = ["alex", "seven"]转换成字典且字典的key按照10开始向后递增
dict(zip([i for i in range(10, len(li)+11)], li))

9、元素分类

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

即:{'k1':大于66的所有值, 'k2':小于66的所有值}

li = [11, 22, 33, 44, 55, 66, 77, 88, 99]
dic = {
    "k1": [],
    "k2": [],
}

for i in li:
    if i >= 66:
        dic["k1"].append(i)
    else:
        dic["k2"].append(i)

print(dic)

10、输出商品列表,用户输入序号,显示用户选中的商品

商品li = ["手机", "电脑", '鼠标垫', '游艇']

  • 允许用户添加商品
  • 用户输入序号显示内容
goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998}
]

wages = int(input('请输入工资:'))
shopping_car = []
exit_flag = False
while not exit_flag:
    print('--------商品列表--------')
    for index, i in enumerate(goods):
        print(index, i)
    choice = (input('请输入要购买的商品:'))
    if choice.isdigit():
        if 0 <= int(choice) < len(goods):
            if wages >= goods[int(choice)].get('price'):
                wages -= goods[int(choice)].get('price')
                print('\033[32;1m余额:\033[0m', wages)
                shopping_car.append(goods[int(choice)])
                print("\033[32;1m已将商品:%s 添加进购物车\033[0m" % (goods[int(choice)]))
            else:
                print('\033[31;1m余额不足\033[0m')
        else:
            print('\033[31;1m商品不存在!\033[0m')
    elif choice == "q":
        print('-----您已购买以下商品-----')
        for index, k in enumerate(shopping_car):
            print(index, k)
        print('\033[32;1m账户余额\033[0m', wages)
        exit_flag = True
    elif choice == "a":
        print("----您当前处于商品添加页面----")
        print("当前存在的商品:")
        for index, i in enumerate(goods):
            print(index, i)
        name = input("商品名称:")
        price = input("商品价格:")

        dic = {"name": name, "price": price}

        goods.append(dic)
        print("添加成功:")
        for index, i in enumerate(goods):  # enumerate(枚举)列表的索引值
            print(index, i)

11、用户交互显示类似省市县N级联动的选择

  • 允许用户增加内容
  • 允许用户选择查看某一个级别内容

12、列举布尔值是False的所有值

13、有两个列表

​ l1 = [11,22,33]

​ l2 = [22,33,44]

  • 获取内容相同的元素列表
  • 获取l1中有,l2中没有的元素列表
  • 获取l2中有,l3中没有的元素列表
  • 获取l1和l2中内容都不同的元素

14、利用For循环和range输出

  • For循环从大到小输出1 - 100
  • For循环从小到到输出100 - 1
  • While循环从大到小输出1 - 100
  • While循环从小到到输出100 - 1


15、利用for循环和range输出9 * 9乘法表

print('\n'.join([ ' '.join([ "%d*%d=%2s" %(y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))

16、求100以内的素数和。(编程题)

#求解思路,loop 100次,每次拿当前的值依次除以比它小的值,比如 当前值 是10, 那就拿10除以9,8,7,6,...2,如果其中任何一个可以被整除,就代表 10不是素数

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 素数又称为质数,它指的是只能被1和它本身整除的整数。其中,1不是素数,任何时候都不用考虑1。

L = [] # 定义一个初始的素数列表
for n in range(2,101): # 循环100以内的素数n,从2开始,0、1不是素数
    flag = True # 设置一个标志位,flag = True代表是素数,flag = Flase代表不是素数
    for i in range(2,n): # 除以比它小的所有数(不包括1和它本身),看它是否还有其他因数
        if n % i == 0:
            flag = False # 出现一次余数为0就代表可以除尽,即代表这个数为素数,就可以设置flag = False
            break # 只要第一次出现flag = False,就不用继续往下循环,直接退出整个循环(第二层)
    if flag == True:
        L.append(n) # 当flag = True时代表n为素数,追加到素数列表中
print("100以内的所有素数:",L)
print(sum(L))
  1. 在不改变列表中数据排列结构的前提下,找出以下列表中最接近最大值和最小值的平均值 的数
# 解题思路,找到最大值 ,找到最小值 ,求平均值 ,找到列表中离这个平均值 最近的值
li = [-100,1,3,2,7,6,120,121,140,23,411,99,243,33,85,56]

max_n = li[0]
min_n = li[0]

for i in li:
    if i > max_n:
        max_n = i
    if i < min_n:
        min_n = i
avg_n = (min_n+max_n)//2
print(min_n,max_n,avg_n)

avg_like = li[0]
for i in li:
    if abs(i - avg_n) < abs(avg_like - avg_n):
        avg_like = i
print('最接近平均值 的是',avg_like)

Python基础练习及答案的更多相关文章

  1. Python基础s14-day1

    2016年7月23日"Python基础s14-Day1" Python是什么? Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种面向对象.直译式 ...

  2. python基础——定制类

    python基础——定制类 看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的. __slots__我们已经知道怎么用了,__len__()方 ...

  3. Python 基础练习

    今天接触了python,了解了一下 python 的基础语法,于是想着手训练一下,在本习题集中,参考代码为提供的参考答案,前面的代码为自己思考的代码,最后每道题给出练习的时间. Python 基础练习 ...

  4. Python基础:新式类的属性访问

    一.概述 二.准备工作 1.讨论对象 2.名词解释 三.实例绑定的属性访问 1.获取属性 一般规则 参考源码 示例验证 2.设置属性 一般规则 参考源码 示例验证 3.删除属性 一般规则 参考源码 示 ...

  5. Python基础教程【读书笔记】 - 2016/7/31

    希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第十波:第10章  充电时刻 Python语言的核心非常强大,同时还提供了更多值得一试的工具.Python的标准安装包括 ...

  6. Python基础教程【读书笔记】 - 2016/7/24

    希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第九波:第9章  魔法方法.属性和迭代器  在Python中,有的名称会在前面和后面都加上两个下划线,这种写法很特别.已 ...

  7. 第一篇:python基础

    python基础   python基础 本节内容 python起源 python的发展史 为什么选择python3 第一个python程序 变量定义 表达式和运算符 用户输入 流程控制 判断 流程控制 ...

  8. Day7 - Python基础7 面向对象编程进阶

    Python之路,Day7 - 面向对象编程进阶   本节内容: 面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个 ...

  9. Python基础-输入输出(IO)

    Python基础-输入输出(IO) 程序会有输入和输出,输入可以从标准输入或是从一个文件读入数据,程序的输出可以以一种友好可读的方式(human-readable)打印出来,或是写进一个文件,而标准输 ...

随机推荐

  1. awk计算最大值,最小值,平均值的脚本

    传入至少三个数字参数到脚本awk_file,并计算出最大,最小,平均值.需要判断传入的数字是否足够,否则输出警告信息.平均值保留两位小数. 如执行bash awk_file 3 4 6 5,脚本输出结 ...

  2. 3.8 C++继承机制下的析构函数

    参考:http://www.weixueyuan.net/view/6365.html 总结: 构造函数的执行顺序是按照继承顺序自顶向下的,从基类到派生类,而析构函数的执行顺序是按照继承顺序自下向上, ...

  3. Spring-data-JPA详细介绍

    Spring-data-JPA学习: 1. https://blog.csdn.net/liujianwd/article/details/75411009 2.http://www.cnblogs. ...

  4. DevExpress WinForms v18.2新版亮点(三)

    行业领先的.NET界面控件2018年第二次重大更新——DevExpress v18.2日前正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress WinForms v1 ...

  5. Ubuntu16.04 安装Tensorflow-CPU

    最近我开始学习深度学习框架Tensorflow,一开始在windows平台下的anaconda下安装,由于anaconda安装几次后navigator打开老是出现闪退的问题,所以决定换个ubuntu下 ...

  6. L309 单音节词读音规则(一)-辅音字母发音规则

    1 字母和音素不是一一对应的 2单词读音规则知识结构全图 二 15个发音不变化的辅音字母:字母发音和音素一致 b / b /   by d / d /   dog f / f /     fish h ...

  7. Linux下Ganglia集群监控安装、配置笔记

    http://www.blogjava.net/henry14/archive/2011/12/17/ganglia.html 枪声依旧 Linux下Ganglia集群监控安装.配置笔记 Gangli ...

  8. zabbix 监控java通用

    监控工具 jstat jstack http://www.blogjava.net/jjshcc/archive/2014/03/05/410655.html https://www.cnblogs. ...

  9. Tomcat jdk 项目搭建问题

    Tomcat 出现log4j未找到  是因为缺少servlet包 出现版本1.5及更高错误 是Java Compiler的版本错误 需重新导包Installed JRES.

  10. excel单元格内容连接

    1.连接符号: & 举例子:C1= A1&B1 2.生成sql: CONCATENATE("(seq_table.nextval,sysdate, 'test',sysdat ...