笔者:风起怨江南 出处:https://blog.csdn.net/JackMengJin 原创文章转载请注明出处。如果喜欢请点赞+关注,感谢支持!
《Python实战系列》所有实例训练题都是从Python各个知识点精挑细选出来的,希望能对大家有所帮助。
Python实战系列每周不定时更新,想看上一期实战训练的朋友请点击=>传送门。不多废话,直接上干货!
目录
Python实战10-19例:列表、字典、循环等综合训练
10.删除列表元素
删除列表中的"不明飞行物",写出 2 种或以上方法:
info = ["Carter", 45, "男", "不明飞行物", ["高", "富", "帅"], True, None, "狼的眼睛是啥样的"]
  
   - 
    
     
    
    
     
      #方法1 pop()
     
    
- 
    
     
    
    
     
      info = [
      "Carter", 
      45, 
      "男", 
      "不明飞行物", [
      "高", 
      "富", 
      "帅"], 
      True, 
      None, 
      "狼的眼睛是啥样的"]
     
    
- 
    
     
    
    
     
      print(
      '打印原先列表:\n',info)
     
    
- 
    
     
    
    
     
      info.pop(
      3)
     
    
- 
    
     
    
    
     
      print(
      '方法1 利用pop()函数删除,删除后的列表内容:\n',info)
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #方法2 remove()
     
    
- 
    
     
    
    
     
      info = [
      "Carter", 
      45, 
      "男", 
      "不明飞行物", [
      "高", 
      "富", 
      "帅"], 
      True, 
      None, 
      "狼的眼睛是啥样的"]
     
    
- 
    
     
    
    
     
      info.remove(
      '不明飞行物')
     
    
- 
    
     
    
    
     
      print(
      '方法2 利用remove()函数删除,删除后的列表内容:\n',info)
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #方法3 del语句
     
    
- 
    
     
    
    
     
      info = [
      "Carter", 
      45, 
      "男", 
      "不明飞行物", [
      "高", 
      "富", 
      "帅"], 
      True, 
      None, 
      "狼的眼睛是啥样的"]
     
    
- 
    
     
    
    
     
      del info[
      3]
     
    
- 
    
     
    
    
     
      print(
      '方法3 利用del语句,删除后的列表内容:\n',info)
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #方法4 列表分片
     
    
- 
    
     
    
    
     
      info = [
      "Carter", 
      45, 
      "男", 
      "不明飞行物", [
      "高", 
      "富", 
      "帅"], 
      True, 
      None, 
      "狼的眼睛是啥样的"]
     
    
- 
    
     
    
    
     
      info1 = info[:
      3]
     
    
- 
    
     
    
    
     
      info2 = info[
      4:]
     
    
- 
    
     
    
    
     
      print(
      '方法4 利用列表重新拼接,不包括要删除的元素,删除后的列表内容:\n',info1 + info2)
     
    
  
   - 
    
     
    
    
     
      打印原先列表:
     
    
- 
    
     
    
    
     
       [
      'Carter', 
      45, 
      '男', 
      '不明飞行物', [
      '高', 
      '富', 
      '帅'], 
      True, 
      None, 
      '狼的眼睛是啥样的']
     
    
- 
    
     
    
    
     
      方法
      1 利用pop()函数删除,删除后的列表内容:
     
    
- 
    
     
    
    
     
       [
      'Carter', 
      45, 
      '男', [
      '高', 
      '富', 
      '帅'], 
      True, 
      None, 
      '狼的眼睛是啥样的']
     
    
- 
    
     
    
    
     
      方法
      2 利用remove()函数删除,删除后的列表内容:
     
    
- 
    
     
    
    
     
       [
      'Carter', 
      45, 
      '男', [
      '高', 
      '富', 
      '帅'], 
      True, 
      None, 
      '狼的眼睛是啥样的']
     
    
- 
    
     
    
    
     
      方法
      3 利用
      del语句,删除后的列表内容:
     
    
- 
    
     
    
    
     
       [
      'Carter', 
      45, 
      '男', [
      '高', 
      '富', 
      '帅'], 
      True, 
      None, 
      '狼的眼睛是啥样的']
     
    
- 
    
     
    
    
     
      方法
      4 利用列表重新拼接,不包括要删除的元素,删除后的列表内容:
     
    
- 
    
     
    
    
     
       [
      'Carter', 
      45, 
      '男', [
      '高', 
      '富', 
      '帅'], 
      True, 
      None, 
      '狼的眼睛是啥样的']
     
    
注意,删除元素轻易不要用del语句去删除,太危险。
11.修改列表
现在有一个列表 li2=[1,2,3,4,5]。请通过相关的操作改成li2 = [0,1,2,3,66,4,5,11,22,33]。
  
   - 
    
     
    
    
     
      #方法1 赋值
     
    
- 
    
     
    
    
     
      li2 = [
      1,
      2,
      3,
      4,
      5]
     
    
- 
    
     
    
    
     
      print(
      '原始li2列表内容:',li2)
     
    
- 
    
     
    
    
     
      li3 = [
      0,
      1,
      2,
      3,
      66,
      4,
      5,
      11,
      22,
      33]
     
    
- 
    
     
    
    
     
      li2 = li3[::]
     
    
- 
    
     
    
    
     
      print(
      '方法1 通过最简单的赋值来进行修改,修改后的li2列表内容:\n',li2)
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #方法2 利用insert()
     
    
- 
    
     
    
    
     
      li2 = [
      1,
      2,
      3,
      4,
      5]
     
    
- 
    
     
    
    
     
      li2.insert(
      0,
      0)
     
    
- 
    
     
    
    
     
      li2.insert(
      4,
      66)
     
    
- 
    
     
    
    
     
      li2.insert(
      7,
      11)
     
    
- 
    
     
    
    
     
      li2.insert(
      8,
      22)
     
    
- 
    
     
    
    
     
      li2.insert(
      9,
      33)
     
    
- 
    
     
    
    
     
      print(
      '方法2 只通过insert()添加元素,修改后的li2列表内容:\n',li2)
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #方法3,insert(),append()
     
    
- 
    
     
    
    
     
      li2 = [
      1,
      2,
      3,
      4,
      5]
     
    
- 
    
     
    
    
     
      li2.insert(
      0,
      0)
     
    
- 
    
     
    
    
     
      li2.insert(
      4,
      66)
     
    
- 
    
     
    
    
     
      li2.append(
      11)
     
    
- 
    
     
    
    
     
      li2.append(
      22)
     
    
- 
    
     
    
    
     
      li2.append(
      33)
     
    
- 
    
     
    
    
     
      print(
      '方法3 通过insert()和append()添加元素,修改后的li2列表内容:\n',li2)
     
    
主要考察对列表的添加元素操作,根据具体的需求选择合适的方法。
12.判断可变和不可变的数据类型
请指出下面那些为可变类型的数据,那些为不可变类型的数据
1、 (11)
2、 {11,22}
3、 ([11,22,33])
4、 {"aa":111}
  
   - 
    
     
    
    
     
      print(
      '''分析:(11)是整形,而整形是不可变的数据
     
    
- 
    
     
    
    
     
      {11,22}是集合,可以使用add()函数对集合进行添加元素的操作,所以是可变的数据。
     
    
- 
    
     
    
    
     
      ([11,22,33])是个陷阱,虽然()是元组的表示方式,但当元组只有一个元素时且后面没有用逗号隔开时,只能表示元素本身的数据类型。也就是列表类型。而列表是可变类型,所以这个也是可变类型。
     
    
- 
    
     
    
    
     
      {"aa":111}是字典,字典是可变的类型,所以得出结论。''')
     
    
- 
    
     
    
    
     
      print(
      '总结:编号为1的是不可变类型的数据;编号为2、3、4的是可变的类型数据。')
     
    
各种陷阱,基础知识点。如果不确定可以打印出数据类型,再进行判断是否为可变数据类型。
13.元素去重和删除
当前有一个列表 li = [11,22,33,22,22,44,55,77,88,99,11]。
- 要求一:去除列表中的重复元素
- 要求二:删除 77,88,99这三个元素
  
   - 
    
     
    
    
     
      li = [
      11,
      22,
      33,
      22,
      22,
      44,
      55,
      77,
      88,
      99,
      11]
     
    
- 
    
     
    
    
     
      #去重用集合类型转换,再转换为列表
     
    
- 
    
     
    
    
     
      li_new = 
      list(set(li))
     
    
- 
    
     
    
    
     
      li_new.sort()
     
    
- 
    
     
    
    
     
      print(li_new)
     
    
- 
    
     
    
    
     
      #要求二中利用remove函数删除列表的三个元素
     
    
- 
    
     
    
    
     
      li_new.remove(
      77)
     
    
- 
    
     
    
    
     
      li_new.remove(
      88)
     
    
- 
    
     
    
    
     
      li_new.remove(
      99)
     
    
- 
    
     
    
    
     
      print(li_new)
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #或者用pop()删除三个元素
     
    
- 
    
     
    
    
     
      li = [
      11,
      22,
      33,
      22,
      22,
      44,
      55,
      77,
      88,
      99,
      11]
     
    
- 
    
     
    
    
     
      li_new = 
      list(set(li))
     
    
- 
    
     
    
    
     
      li_new.sort()
     
    
- 
    
     
    
    
     
      #pop()删除元素,由于已经排序,所以默认删除最后一个
     
    
- 
    
     
    
    
     
      li_new.pop()
     
    
- 
    
     
    
    
     
      li_new.pop()
     
    
- 
    
     
    
    
     
      li_new.pop()
     
    
- 
    
     
    
    
     
      print(li_new)
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #或者用切片删除
     
    
- 
    
     
    
    
     
      li = [
      11,
      22,
      33,
      22,
      22,
      44,
      55,
      77,
      88,
      99,
      11]
     
    
- 
    
     
    
    
     
      li_new = 
      list(set(li))
     
    
- 
    
     
    
    
     
      li_new.sort()
     
    
- 
    
     
    
    
     
      n=len(li_new)
     
    
- 
    
     
    
    
     
      lst = li_new[:n
      -3]
     
    
- 
    
     
    
    
     
      print(lst)
     
    
  
   - 
    
     
    
    
     
      [
      11, 
      22, 
      33, 
      44, 
      55, 
      77, 
      88, 
      99]
     
    
- 
    
     
    
    
     
      [
      11, 
      22, 
      33, 
      44, 
      55]
     
    
- 
    
     
    
    
     
      [
      11, 
      22, 
      33, 
      44, 
      55]
     
    
- 
    
     
    
    
     
      [
      11, 
      22, 
      33, 
      44, 
      55]
     
    
这道题考察的知识点:集合用来去重。
14.数据类型转换字典
有下面几个数据 :
t1 = ("aa",11)
t2= (''bb'',22)
li1 = [("cc",11)]
请通过学过的知识点,进行相关操作变为如下字典: {"aa":11,"cc":11,"bb":22}:
  
   - 
    
     
    
    
     
      #方法1 extend()
     
    
- 
    
     
    
    
     
      a,b,c = t1,li1[
      0],t2
     
    
- 
    
     
    
    
     
      list = []
     
    
- 
    
     
    
    
     
      list.extend([a,b,c])
     
    
- 
    
     
    
    
     
      print(dict(
      list))
     
    
{'aa': 11, 'cc': 11, 'bb': 22}
  
   - 
    
     
    
    
     
      #方法2
     
    
- 
    
     
    
    
     
      t1 = (
      'aa',
      11)
     
    
- 
    
     
    
    
     
      t2 = (
      'bb',
      22)
     
    
- 
    
     
    
    
     
      li1 = [(
      'cc',
      11)]
     
    
- 
    
     
    
    
     
      li1.insert(
      0,t1)
     
    
- 
    
     
    
    
     
      li1.insert(
      2,t2)
     
    
- 
    
     
    
    
     
      print(dict(li1))
     
    
{'aa': 11, 'cc': 11, 'bb': 22}
  
   - 
    
     
    
    
     
      #方法3
     
    
- 
    
     
    
    
     
      ti = (
      "aa",
      11)
     
    
- 
    
     
    
    
     
      t2 = (
      "bb",
      22)
     
    
- 
    
     
    
    
     
      li1 = [(
      "cc",
      11)]
     
    
- 
    
     
    
    
     
      new_dict = {}
     
    
- 
    
     
    
    
     
      new_dict[t1[
      0]] = t1[
      1]
     
    
- 
    
     
    
    
     
      new_dict[t2[
      0]] = t2[
      1]
     
    
- 
    
     
    
    
     
      new_dict[li1[
      0][
      0]] = li1[
      1]
     
    
{'aa': 11, 'cc': 11, 'bb': 22}每种方法都要掌握!
15.利用判断计算价格
一家商场在降价促销,所有原价都是整数(不需要考虑浮点情况),如果购买金额50-100元(包含50元和100元)之间,会给
10%的折扣,如果购买金额大于100元会给20%折扣。编写一程序,询问购买价格,再显示出折扣(%10或20%)和最终价格。
  
   - 
    
     
    
    
     
      price = int(input(
      '请输入购买金额:'))
     
    
- 
    
     
    
    
     
      if price >= 
      50 
      and price <= 
      100:
     
    
- 
    
     
    
    
     
          price_sale = price * (
      1 - 
      0.1)
     
    
- 
    
     
    
    
         
      #利用format(price_sale,'.2f')函数,取小数点后两位
     
    
- 
    
     
    
    
     
          print(
      '折扣为:10%,最终价格为:{}元。'.format(format(price_sale,
      '.2f')))
     
    
- 
    
     
    
    
     
      elif price > 
      100:
     
    
- 
    
     
    
    
     
          price_sale = price * (
      1 - 
      0.2)
     
    
- 
    
     
    
    
     
          print(
      '折扣为:20%,最终价格为:{}元。'.format(format(price_sale,
      '.1f')))
     
    
- 
    
     
    
    
     
      else:
     
    
- 
    
     
    
    
     
          print(
      '没有折扣,最终价格为:{}元。'.format(price))
     
    
  
   - 
    
     
    
    
     
      请输入购买金额:
      111
     
    
- 
    
     
    
    
     
      折扣为:
      20%,最终价格为:
      88.8元。
     
    
需要注意取小数点。
16.判断是否为闰年
-  输入一个有效的年份(如:2019),判断是否为闰年(不需要考虑非数字的情况) 
-  如果是闰年,则打印“2019年是闰年”;否则打印“2019年不是闰年” 
  
   - 
    
     
    
    
     
      year = int(input(
      '输入一个有效的年份(如:2019):'))
     
    
- 
    
     
    
    
     
      #闰年判断条件:首先保证年数能被4整除
     
    
- 
    
     
    
    
     
      if year % 
      4 == 
      0:
     
    
- 
    
     
    
    
         
      #年份能被100整除,但不能被400整除时,是平年
     
    
- 
    
     
    
    
         
      if year % 
      100 == 
      0 
      and year % 
      400 != 
      0:
     
    
- 
    
     
    
    
     
              print(
      '公元{}年不是闰年。'.format(year))
     
    
- 
    
     
    
    
         
      else:
     
    
- 
    
     
    
    
     
              print(
      '公元{}年是闰年。'.format(year))
     
    
- 
    
     
    
    
     
      else:
     
    
- 
    
     
    
    
     
          print(
      '公元{}年不是闰年。'.format(year))
     
    
  
   - 
    
     
    
    
     
      请输入第
      1个整数:
      190
     
    
- 
    
     
    
    
     
      请输入第
      2个整数:
      210
     
    
- 
    
     
    
    
     
      请输入第
      3个整数:
      65
     
    
- 
    
     
    
    
     
      最大值为:
      210
     
    
  
   - 
    
     
    
    
     
      #方法2
     
    
- 
    
     
    
    
     
      year = int(input(
      "请输入需要查询的年份:"))
     
    
- 
    
     
    
    
     
      if year % 
      4 == 
      0:
     
    
- 
    
     
    
    
         
      if year % 
      100 == 
      0:
     
    
- 
    
     
    
    
             
      if year % 
      400 == 
      0:
     
    
- 
    
     
    
    
     
                  print(
      "是闰年")
     
    
- 
    
     
    
    
             
      else:
     
    
- 
    
     
    
    
     
                  print(
      "不是闰年")
     
    
- 
    
     
    
    
         
      else:
     
    
- 
    
     
    
    
     
              print(
      "是闰年")
     
    
- 
    
     
    
    
     
      else:
     
    
- 
    
     
    
    
     
          print(
      "不是闰年")
     
    
闰年的两个判断条件:年数能被4整除,年份能被100整除,同时要被400整除。方法很多,这里只列举一个。
17.求数字最大值
求三个整数中的最大值,提示:定义 3 个变量。
  
   - 
    
     
    
    
     
      a = int(input(
      "请输入第1个整数:"))
     
    
- 
    
     
    
    
     
      b = int(input(
      "请输入第2个整数:"))
     
    
- 
    
     
    
    
     
      c = int(input(
      "请输入第3个整数:"))
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      if a >= b 
      and a >= c:
     
    
- 
    
     
    
    
     
          print(
      "最大值为:{}".format(a))
     
    
- 
    
     
    
    
     
      elif b >= a 
      and b >= c:
     
    
- 
    
     
    
    
     
          print(
      "最大值为:{}".format(b))
     
    
- 
    
     
    
    
     
      else:
     
    
- 
    
     
    
    
     
          print(
      "最大值为:{}".format(c))
     
    
  
   - 
    
     
    
    
     
      请输入第
      1个整数:
      190
     
    
- 
    
     
    
    
     
      请输入第
      2个整数:
      210
     
    
- 
    
     
    
    
     
      请输入第
      3个整数:
      65
     
    
- 
    
     
    
    
     
      最大值为:
      210
     
    
当然这里可以用max函数,更简单。
  
   - 
    
     
    
    
     
      a = int(input(
      "请输入第1个整数:"))
     
    
- 
    
     
    
    
     
      b = int(input(
      "请输入第2个整数:"))
     
    
- 
    
     
    
    
     
      c = int(input(
      "请输入第3个整数:"))
     
    
- 
    
     
    
    
     
      print(max(a,b,c))
     
    
  
   - 
    
     
    
    
     
      请输入第
      1个整数:
      3
     
    
- 
    
     
    
    
     
      请输入第
      2个整数:
      2
     
    
- 
    
     
    
    
     
      请输入第
      3个整数:
      1
     
    
- 
    
     
    
    
     
      3
     
    
18.使用for打印九九乘法表
输出九九乘法表,格式如下:(每项数据之间空一个Tab键,可以使用"\t")
  
   - 
    
     
    
    
     
      #x是被乘数
     
    
- 
    
     
    
    
     
      for x 
      in range(
      1,
      10):
     
    
- 
    
     
    
    
         
      #y是乘数
     
    
- 
    
     
    
    
         
      for y 
      in range(
      1,x + 
      1):
     
    
- 
    
     
    
    
     
              print(y, 
      'x' ,x ,
      '=',x*y,end=
      '\t')
     
    
- 
    
     
    
    
     
          print(
      '')
     
    
  
   - 
    
     
    
    
     
      1 x 
      1 = 
      1	
     
    
- 
    
     
    
    
     
      1 x 
      2 = 
      2	
      2 x 
      2 = 
      4	
     
    
- 
    
     
    
    
     
      1 x 
      3 = 
      3	
      2 x 
      3 = 
      6	
      3 x 
      3 = 
      9	
     
    
- 
    
     
    
    
     
      1 x 
      4 = 
      4	
      2 x 
      4 = 
      8	
      3 x 
      4 = 
      12	
      4 x 
      4 = 
      16	
     
    
- 
    
     
    
    
     
      1 x 
      5 = 
      5	
      2 x 
      5 = 
      10	
      3 x 
      5 = 
      15	
      4 x 
      5 = 
      20	
      5 x 
      5 = 
      25	
     
    
- 
    
     
    
    
     
      1 x 
      6 = 
      6	
      2 x 
      6 = 
      12	
      3 x 
      6 = 
      18	
      4 x 
      6 = 
      24	
      5 x 
      6 = 
      30	
      6 x 
      6 = 
      36	
     
    
- 
    
     
    
    
     
      1 x 
      7 = 
      7	
      2 x 
      7 = 
      14	
      3 x 
      7 = 
      21	
      4 x 
      7 = 
      28	
      5 x 
      7 = 
      35	
      6 x 
      7 = 
      42	
      7 x 
      7 = 
      49	
     
    
- 
    
     
    
    
     
      1 x 
      8 = 
      8	
      2 x 
      8 = 
      16	
      3 x 
      8 = 
      24	
      4 x 
      8 = 
      32	
      5 x 
      8 = 
      40	
      6 x 
      8 = 
      48	
      7 x 
      8 = 
      56	
      8 x 
      8 = 
      64	
     
    
- 
    
     
    
    
     
      1 x 
      9 = 
      9	
      2 x 
      9 = 
      18	
      3 x 
      9 = 
      27	
      4 x 
      9 = 
      36	
      5 x 
      9 = 
      45	
      6 x 
      9 = 
      54	
      7 x 
      9 = 
      63	
      8 x 
      9 = 
      72	
      9 x 
      9 = 
      81	
     
    
乘法表就不多叙述了,面试必备!
19.循环删除元素
你的微信好友当中有 5 个推销的,他们存在一个列表 black_list=['卖茶叶', '卖面膜', '卖保险', '卖花生', '卖手机']
请依次把这 5 个人分别从 black_list 当中删除,最后 black_list 为空。
  
   - 
    
     
    
    
     
      black_list = [
      '卖茶叶', 
      '卖面膜', 
      '卖保险', 
      '卖花生', 
      '卖手机']
     
    
- 
    
     
    
    
     
      print(black_list)
     
    
- 
    
     
    
    
     
      length = len(black_list)
     
    
- 
    
     
    
    
     
      for i 
      in range(length):
     
    
- 
    
     
    
    
     
          black_list.pop()
     
    
- 
    
     
    
    
     
      print(black_list)
     
    
  
   - 
    
     
    
    
     
      [
      '卖茶叶', 
      '卖面膜', 
      '卖保险', 
      '卖花生', 
      '卖手机']
     
    
- 
    
     
    
    
     
      []
     
    
以上便是《Python实战10-19例》的所有内容,本系列持续更新,每道都是精挑细选的质量题。
原创不易,转载请注明原作者。如果喜欢请点赞和关注,谢谢大家的支持!
转载:https://blog.csdn.net/JackMengJin/article/details/105948903
