学习python的第八天--作业

判断一个数是否是水仙花数, 水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数.

那这个数就是一个水仙花数, 例如: 153 = 1**3 + 5**3 + 3**3

 

 

num = input ("请输入三位数")
 if int(s) > 999 or int(s) < 100:
 print("错了")
else:
 num[0] =diyi
 num[1] =dier
 num[2] =disan
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:
        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%

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

 

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
# a, b = b, a

 

posted @ 2018-10-26 16:38  DanielYang11  阅读(188)  评论(0编辑  收藏  举报