深浅拷贝相关

  1. 判断一个数是否是水仙花数, 水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数, 例如: 153 = 1**3 + 5**3 + 3**3  

   

# sum = 0
# count = input("请输入一个数:").strip()
# for el in count :
#     sum = sum +int(el)**3
# if int(count) ==sum:
#     print("%s是水仙花水"%count)
# else:
#     print("%s不是一个水仙花数"%count)

 

  1. 给出一个纯数字列表. 请对列表进行排序(升级题).

思路:

  1. 完成a和b的数据交换. 例如, a = 10, b = 24 交换之后, a = 24, b = 10
  2. # a = 10
    # b = 24
    # a, b = b, a
    # print(a, b)  # 解构
    #
    # # c 的思想
    # a = 10
    # b = 24
    # x = a
    # a = b
    # b = x
    # print(a, b)

     

  3. 循环列表. 判断a[i]和a[i+1]之间的大小关系, 如果a[i]比a[i+1]大. 则进行互换. 循环结束的时候. 当前列表中最大的数据就会被移动到最右端.
  4. # lst = [33, 3, 22, 5, 15, 4]
    # i = 0
    # while i < len(lst) - 1:  # 把最大的值移动到右端
    #     if lst[i] > lst[i + 1]:  # 比较
    #         lst[i], lst[i + 1] = lst[i + 1], lst[i]
    #     i += 1
    # print(lst)

     

  5. 想一想, 如果再次执行一次上面的操作. 最终第二大的数据就移动到了右端. 以此类推. 如果反复的进行执行相应的操作. 那这个列表就变成了一个有序列表.

 

lst = [33,2,22,5,15,4]
for a in range(len(lst)):
    i = 0
    while i <len(lst) -1 :   #把最大值移动到右端
        if lst[i] >lst[i+1]:  # 比较
            lst[i],lst[i+1]=lst[i+1],lst[i]  # 交换解刨
        i+=1
print(lst)

 

  1. 完成彩票36选7的功能. 从36个数中随机的产生7个数. 最终获取到7个不重复的数据作为最终的开奖结果.

随机数:

from random import randint

randint(0, 20) # 0 - 20 的随机数

# from random import randint  # 我要用随机数,必须导入这个模块

# s = set()
# while len(s) < 7:  # 当s集合中的元素个数小于7的时候,就去添加
# s.add(randint(1, 36))
# print(s)

 

 

4. 税务部门征收所得税. 规定如下: 

        1). 收入在2000以下的. 免征.

        2). 收入在2000-4000的, 超过2000部分要征收3%的税. 

        3). 收入在4000-6000的, 超过4000部分要征收5%的税.

        4). 收入在6000-10000的, 超过6000部分要征收8%的税.  

        4). 收入在10000以上的, 超过部分征收20%的税. 

    注, 如果一个人的收入是8000, 那么他要交2000到4000的税加上4000到6000的税加上6000到8000的税. 

        收入 = 8000-(4000-2000)*3%-(6000-4000)*4%-(8000-6000)*8%

让用户输入它的工资, 计算最终用户拿到手是多少钱.

# 让用户输入它的工资, 计算最终用户拿到手是多少钱.
# money = input("请输入你的工资").strip()
# if int(money) < 2000:
#     print("你的到手工资为{}块".format(money))
# elif int(money) <= 4000:
#     tax_3 = (int(money) - 2000) * (3 / 100)
#     money = int(money) - tax_3
#     print("你的到手工资为{}块".format(money))
# elif int(money) < 6000:
#     tax_5 = (int(money) - 4000) * (5 / 100)  # 超过4K以上的税
#     tax_3 = 2000 * (3 / 100)  # 超过2K并小于4K之间的税
#     money = int(money) - tax_3 - tax_5
#     print("你的到手工资为{}块".format(money))
# elif int(money) < 10000:
#     tax_8 = (int(money) - 6000) * (8 / 100)
#     tax_5 = 2000 * (5 / 100)
#     tax_3 = 2000 * (3 / 100)
#     money = int(money) - tax_3 - tax_5 - tax_8
#     print("你的到手工资为{}块".format(money))
# elif int(money) > 10000:
#     tax_10 = (int(money) - 10000) * (20 / 100)
#     tax_8 = 4000 * (8 / 100)
#     tax_5 = 2000 * (5 / 100)
#     tax_3 = 2000 * (3 / 100)
#     money = int(money) - tax_10 - tax_8 - tax_5 - tax_3

# print("你的到手工资为{}块".format(money))
# 默写:
# 简述什么是深浅拷贝.
python的深浅拷贝问题在面试中常常被问道,name什么是深浅拷贝
    拷贝:拷贝就是一个把一个变量的值传给另一个变量 ,在python中id(可以查看内存地址)
    浅拷贝:只会拷贝第一层,第二层的内容不会被拷贝,所以被称为浅拷贝
    深拷贝:深度拷贝,把元素内部的元素完全金星秀拷贝复制,不会产生一个改变另一个跟着改变的问题
# 删除列表中姓周的人的信息
# lst = [‘周永康’, ‘周伯通’, ‘王重阳’, ‘周葫芦娃’]
lst = ["周永康","周伯通","王重阳","周葫芦娃"]
lst1 = []
for el in lst:
    if el.startswith(""):  # startswith  判断以xxx开头
        lst1.append(el)
for i in lst1 :
    lst.remove(i)
print(lst)
lst = ["周永康","周伯通","王重阳","周葫芦娃"]
lst1 = []
for el in lst :
    if "" in el :  # 判断周在不在每一个元素中
        lst1.append(el)
for i in lst1 :
    lst.remove(i)
print(lst)
lst = ["周永康","周伯通","王重阳","周葫芦娃"]
lst1 = []
for el in lst :
    if el[0] =="":
        lst1.append(el)
for i in lst1:
    lst.remove(i)
print(lst)

 

posted @ 2018-07-11 15:47  扎西德勒119  阅读(260)  评论(0编辑  收藏  举报