20181026
# s = input("请输入一个数:")
#
# # 验证
# if int(s) > 999 or int(s) < 100:
# print("错了")
# else:
# diyi = s[0]
# dier = s[1]
# disan = s[2]
#
# sum = int(diyi)**3 + int(dier)**3 + int(disan)**3
# if int(s) == sum:
# print("水仙花数")
# else:
# print("不是水仙花数")
# 3.完成彩票36选7的功能. 从36个数中随机的产生7个数.
# 最终获取到7个不重复的数据作为最终的开奖结果.
# 随机数:
# from random import randint
# for i in range(100): # 验证
# s = set()
# while len(s) < 7: # 当集合中的元素少于7个就去生成随机数
# s.add(randint(1, 36)) # 0 - 20 的随机数, [0,20]
# print(s)
# for 迭代一个可迭代对象. 如果计数。不够灵活
# while 死循环. 无法确定循环次数
# 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%
# 让用户输入它的工资, 计算最终用户拿到手是多少钱.
# salary = int(input("请输入你的工资:"))
# if salary <= 2000: # 基准点
# print("你不用交税")
# print("你的收入是%s" % salary)
# elif salary <= 4000:
# print("你要交的税款:%s" % ((salary - 2000) * 0.03))
# print("你的收入是:%s " % (salary - (salary - 2000) * 0.03))
# elif salary <= 6000:
# print("你要交的税款:%s" % ((4000-2000)*0.03 + (salary-4000)*0.05))
# print("你的收入是:%s " % (salary - ((4000-2000)*0.03 + (salary-4000)*0.05)))
# elif salary <= 10000:
# print("你要交的税款:%s" % ((4000-2000)*0.03 + (6000-4000)*0.05 + (salary-6000)*0.08))
# print("你的收入是:%s " % (salary - ((4000-2000)*0.03 + (6000-4000)*0.05 + (salary-6000)*0.08)))
# else:
# print("你要交的税款:%s" % ((4000 - 2000) * 0.03 + (6000 - 4000) * 0.05 + (10000 - 6000) * 0.08 + (salary - 10000) * 0.2))
# print("你的收入是:%s " % (salary - ((4000 - 2000) * 0.03 + (6000 - 4000) * 0.05 + (10000 - 6000) * 0.08 + (salary - 10000) * 0.2)))
# 2.给出一个纯数字列表. 请对列表进行排序(升级题).
# 思路:
# 1.完成a和b的数据交换. 例如, a = 10, b = 24 交换之后, a = 24, b = 10
# 2.循环列表. 判断a[i]和a[i+1]之间的大小关系, 如果a[i]比a[i+1]大.
# 则进行互换. 循环结束的时候. 当前列表中最大的数据就会被移动到最右端.
# 3.想一想, 如果再次执行一次上面的操作. 最终第二大的数据就移动到了右端.
# 以此类推. 如果反复的进行执行相应的操作. 那这个列表就变成了一个有序列表.
# lst = [1, 9, 5, 3,8, 288, 197, 666, 12, 5, 2, 6, 7]
# for j in range(len(lst)): # 控制内层循环执行的次数, 执行排序的次数
# for i in range(len(lst)-1): # 比较和互换, 时间复杂度比较高。 你们回去想办法降低时间复杂度
# if lst[i] > lst[i+1]:
# lst[i], lst[i+1] = lst[i+1], lst[i]
# print(lst)
# 核心思想: 互换
# 快排,归并,堆排序, 希尔排序........
# a = 10
# b = 20