python练习题100之1-5

1.题目:1,2,3,4四个数字能组成多少个互不相同且无重复数字的三位数?各个数字又是多少?

  • 代码
#/usr/bin/python
# -*- coding: UTF-8 -*-
n=0
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if i!=j and j!=k and i!=k:
                print i,j,k
                n += 1
print ("共能组成%d个互不相同无重复数字的三位数"%n)
  • 执行结果
    python练习题100之1-5_第1张图片

思路:先输出能组成的所有的三位数,然后去除不符合条件的。

2.题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?

  • 代码
#!/usr/bin/python
# -*- coding: UTF-8 -*-
i = int(raw_input('净利润:'))
arr = [1000000,600000,400000,200000,100000,0]
rat = [0.01,0.015,0.03,0.05,0.075,0.1]
r = 0
for idx in range(0,6):
    if i>arr[idx]:
        r+=(i-arr[idx])*rat[idx]
        #print (i-arr[idx])*rat[idx]
        i=arr[idx]
print r
  • 执行结果

在这里插入图片描述
思路:1.可以使用if-else语法进行分类计算。
2.再者就是使用分段的方法,然后使用循环来求结果。

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

  • 代码
#/usr/bin/python
for i in range(1,85):
    if (168%i)==0:##i和j皆为整数
        j=168/i
        if (i+j)%2==0 and (i-j)%2==0 and i>j:
            m=(i+j)/2
            n=(i-j)/2
            x=n*n-100
            print x
  • 运行结果
    在这里插入图片描述

思路:1.x+100=nn,x+268=mm
2.mm-nn=168=>(m+n)(m-n)=168(m+n和m-n至少有一个偶数)
3.i=m+n,j=m-n=>m=(i+j)/2,n=(i-j)/2
由2,3得i*j=168且m和n皆为大于等于2的偶数

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

  • 代码
mouth_list=[1,2,3,4,5,6,7,8,9,10,11,12]##月份
day_list=[31,28,31,30,31,30,31,31,30,31,30,31]##月份对应的天数,2月为平年
year=int(input("input year:"))
mouth=int(input("input mouth:"))
day=int(input("input day:"))
i=1
total=0##计数天数
while mouth > mouth_list[i-1]:##计算整月份的天数
    total += day_list[i-1]
    i += 1
total += day##加上下个不是整月的天数
leap = 0
if(year%400==0) or (year%4==0 and year%100!=0):##判断年份是否为闰年
    leap = 1
if leap == 1 and mouth > 2:
    total += 1
print total
  • 运行结果
    平年
    在这里插入图片描述
    闰年
    在这里插入图片描述

思路:将月份和每月的天数进行对应,然后根据月份计算整月的天数,例如输入的日期为2000年4月3日,则先将1-3月份的日期进行计算,然后加上四月份多余的三天,最后判断年份是否为闰年并且月份是否超过2来判断是否要加1天。

5.题目:输入三个整数x,y,z,请把这三个数由小到大输出。

  • 代码
#!/usr/bin/python
l = []
for i in range(3):
    x = int(input('integer:\n'))##输入三个整数
    l.append(x)
l.sort()##使用sort函数直接排序
print l
  • 运行结果
    python练习题100之1-5_第2张图片
    思路:输入值后使用sort函数排序即可

你可能感兴趣的:(python,实习)