• 深浅拷贝


    今日内容:

      1.字符串操作补充:

        join # 遍历列表

        例:

          lst = ['汪峰','吴君如','章子怡']

          s = '*-/@'.join(lst)

          prints(s)

          结果为汪峰*-/@吴君如*-/@章子怡

          即把列表中的每一项用' '里边的东西进行拼接 结果为 字符串

          而lst.split()正好相反 

      2.删除

         例:

          lst = ['渣渣辉',''古天乐'','陈小春','石榴姐']

          # ls.clear() 没问题

          但是用

          for el inlst : 内部有一个变量来记录当前被循环的位置,索引.

          lst.remove(el) # 直接删除,删不干净.原因是每次删除都涉及到元素的移动,索引在变

          总结:

            1.循环迭代过程中不能删除

           2.要想删除可以创建新列表,先把要删除的内容保留到新列表中.循环这个新列表,删                                              除老列表

           3.字典在循环过程中可以修改,但不能新增和删除.

            newlst = []

            for el in lst :

              newlst.append(el)

            for el in newls:

              lst.remove(el)

      3.fromkeys

        字典的fromkeys  # fromkeys 是一个类方法,作用是创建新字典

        原字典没有改变

        dic.fromkeys(k,v)

        把k迭代和value组成k:v字典,所有的key共享一个value

        所有的key用的都是同一个列表,改变其中一个另一个也相应改变 

      4.set集合

       不重复 无序 不可变 (可哈希)

       lst(set(lst))可以用来去除列表中的重复出现的元素

       字典里的key不会重复

       空集合 s = set()

       s = {1,2,3,4,5} # 不重复,必须是可哈希的

       # set其实就是不存在value 的字典 只存在key

       应用 :去重复

          set 无索引 因为无顺序

       set 的增删改查

        1.增:

          s.add('要添加的东西')

          s.update()迭代更新

        2.删:

          item = s.pop()

          s.remove('要删除的对象')指定删除某对象

        

        3.

          先删除再添加 s.remove('要删除的对象')之后 s.add('要添加的对象')

        4.

      • for el in s :
      • print(el)
    • 深浅拷贝
      • 1.赋值 不会产生新对象 和拷贝没关系,多个变量共享同一个对象
      • 2.浅拷贝 只会复制自身.会创建对象新的对象中里面的对象不会被拷贝
      • 3.深拷贝 把内部所有内容都进行拷贝.会创建一个一模一样的完全新的对象.这个对象延伸出来的内容也会跟着复制一份
      • 冒泡排序

    作业

    第一题

    while 1:
      a = input("请随机输入一个三位数").strip()
      if len(a) == 3:

      sum = 0

       for el in a:

         sum += int(el)**3 print (sum)

        if int(a) == sum: print("%s是水仙花数"%(a))

          break

        else:
          print("%s不是水仙花数" % (a))

          break

      else:

       print ("输入不合法请重新输入")
       continue

    2

    a = int(input("请输入一个数"))

    b = int(input("请再输入一个数"))

    print('交换前的数字为a = %s,b = %s'%(a,b))


    c = a

    a = b

    b = c

    print('交换后的数字为a = %s,b = %s'%(a,b))

    3
    a = ['3','2','100','8','6','66','5']

    b = []

    for i in range(len(a)-1):

      if int(a[i]) > int(a[i+1]):

        k = a[i]

        a[i] = a[i+1]

        a[i+1] = k

      print(a)

    a = ['3','2','100','8','6','5','5','66','5']
    count = 0

    while count < len(a)-1:

      for i in range(len(a)-1):

         if int(a[i]) > int(a[i+1]):

          k = a[i]

          a[i] = a[i+1]

          a[i+1] = k

      count += 1

    print(a)

    3 from random import randint

    count = 1

    s = set()

    while count <= 7:

       n = randint(0, 36)

       s.add(n)

      count += 1

    print(s)

    4

    sal = int(input("请输入您的税前工资:").strip())

    if sal <= 2000:

       print("您不用交税")

    elif sal > 2000 and sal <= 4000:

       money = (sal - 2000)*0.97

       print("您到手工资为%s元"%(money))

    elif sal > 4000 and sal <= 6000:

       money = (sal-4000)*0.95 + 2000*0.97+2000

       print("税后收入为%s元"%(money))

    elif sal > 6000 and sal <= 10000:

       money = (sal-6000)*0.92 + 2000*0.95 + 2000*0.97

       print("税后收入为%s元"%(money))

    else:

       money = (sal - 10000) * 0.8 + 4000 * 0.92 + 2000*0.95 + 2000*0.97

       print("税后收入为%s元"%(money))

          

          

          

          

      

  • 相关阅读:
    asp.net mvc异常处理的不同方法
    获取计算机网络信息,包含IP,MAC
    MessageBox页面消息弹出框类
    centos7.4离线安装.NETCore3.1 环境
    .NET Core 3.0 WebApi 使用Swagger
    android隐藏apk方式以及apk之间的启动方式
    react native 更改项目包名
    react native windows下打包apk流程
    CentOS7下安装Redis
    EFCore配置多对多关系
  • 原文地址:https://www.cnblogs.com/f-g-f/p/9630663.html
Copyright © 2020-2023  润新知