Python 入门100题 -- Day 2

题目4:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

思路:有两种方式来获得有间隔的税率计算,一种就是用最简单的if 判断,写下每种条件下的对应的奖金如何计算;这种方法比较直接有效,但深入理解后,选择用数轴分界法来实现更加简便。

代码一(简单思路):

input_int = int(input('请输入当月利润:'))
if input_int >1000000:
    bonus = (input_int-1000000)*0.01 + 1000000*0.015
    if input_int >600000:
        bonus = (input_int-600000)*0.015+ 600000*0.03
        if input_int >400000:
            bonus =(input_int-400000)*0.03+400000*0.05
            if input_int >200000:
                bonus =(input_int-200000)*0.05+200000*0.075
                if input_int >100000:
                    bonus =(input_int-100000)*0.1

print('奖金总数为:%f'%bonus)

代码二(数轴分界):

int_ratio = [0.01,0.015,0.03,0.05,0.075,0.1]
bonus_level =[1000000,600000,400000,200000,100000,0]
input_int = int(input('请输入当月利润:'))
bonus =0 
for i in range(0,6):
    if input_int>bonus_level[i]:
        bonus += (input_int-bonus_level[i])*int_ratio[i]
        input_int= bonus_level[i]

print ('奖金总数为:%f'%bonus) 

题目5:一个整数,它加上100后是一个完全平方数,再加上268又是一个完全平方数,请问该数是多少?

思路:首先要判断一个数是否是完全平方数,完全平方数的特点是开平方后获得一个整数,所以可以先开方后平方看是否与之前的数相等。

代码:

import math
def is_sqrt(x):
    a =int(math.sqrt(x))
    return a*a == x
while i>0:
    i+=1
    if is_sqrt(i+100) and is_sqrt(i+268):
        print (i)
        break

结果:21

题目6:输入某年某月某日,判断这一天是这一年的第几天?

思路:判断为哪一天的重点就是判断是否为闰年,如果是闰年的话则二月29天,否则28天,同样类似的采用列表定义好每个月的日期数,然后直接累加到输入的月份就好了。

代码:

def whatday(x,y,z):
    month =[1,2,3,4,5,6,7,8,9,10,11,12]
    day1=[31,28,31,30,31,30,31,31,30,31,30,31]
    day2=[31,29,31,30,31,30,31,31,30,31,30,31]
    day=0
    for i in range(0,12):
        if y==month[i]:
            day = day+z
            return day
            break
        if x%4==0 and x%100!=0: #看是否是闰年
            day+= day2[i]
        day+=day1[i]
        

x =int(input('请输入某年:'))
y =int(input('请输入某月:'))
z =int(input('请输入某日:'))

print (whatday(x,y,z))

上一篇:用工厂设计模式+策略什么模式,彻底干掉if else


下一篇:素数筛选