python练习集100题(1-20)

    xiaoxiao2021-03-25  123

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

    list_num=[1,2,3,4]

    all_num=[]

    for i in list_num:

        for j in list_num:

            for k in list_num :

                if (i!=j) and (i!=k) and (j!=k):

                    num=i*100+j*10+k

                    all_num.append(num)

    print(all_num) 

    print('A total of %d numbers.' %len(all_num))

    题目2:企业发放的奖金根据利润提成。

        低于或等于10万元时,奖金可提成10%;

        高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;

        20万到40万之间时,高于20万元的部分可提成5%;

        40万到60万之间时,高于40万元的部分,可提成3%;

        60万到100万之间时,高于60万的部分,可提成1.5%;

        超过100万元的部分按1%提成;

        从键盘输入当月利润,求应发奖金总数。

    while True:

        num=input('请输入利润:').strip()

        if num.isdigit():

            pass

        else :

            print('输入的利润必须为数字') 

            continue

        num=int(num)    #转换为整数类型

        if num > 1000000 :

            profit = (num-1000000)*0.01 + 400000*0.015 + 200000 *0.03 + 200000*0.05 + 100000*0.075 + 100000*0.1

            break

        elif num > 600000 :

            profit = (num-400000)*0.015 + 200000 *0.03 + 200000*0.05 + 100000*0.075 + 100000*0.1 

            break

        elif num > 400000 :

            profit = (num-200000) *0.03 + 200000*0.05 + 100000*0.075 + 100000*0.1

            break

        elif num > 200000 :

            profit = (num-200000)*0.05 + 100000*0.075 + 100000*0.1

            break

        elif num > 100000 :

            profit = (num-100000)*0.075 + 100000*0.1

            break

        else :

            profit = num*0.1

            break

    print('应发奖金总数为:%d' %profit)

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

    import math

    int_num=0

    while True:

        num1=math.sqrt(int_num+100)

        num2=math.sqrt(int_num+168)

        if num1==int(num1) and num2 == int(num2):

            break

        int_num += 1

    print('该整数为 %d' %int_num)

    题目4:输入某年某月某日,判断这一天是这一年的第几天。(格式 如:19870604)

    from builtins import len

    leap_year={'01':31,'02':29,'03':31,'04':30,'05':31,'06':30,

               '07':31,'08':31,'09':30,'10':31,'11':30,'12':31}    #闰年每月最大天数

    comm_year={'01':31,'02':28,'03':31,'04':30,'05':31,'06':30,

               '07':31,'08':31,'09':30,'10':31,'11':30,'12':31}     #平年每月最大天数

    while True:

        num = input('请输入日期,格式如19540105:')

        if num.isdigit() and len(num)==8 :                      

            pass

        else :

            print('格式错误,请重新输入')

            continue

        year_num=int(num[:4]) 

        month_num=num[4:6]

        day_num=int(num[6:])

        if (int(month_num)>12) or (int(month_num)<=0):     #月份错误时,重新输入,'01'字符串转换为整数时,会舍弃0,无法遍历字典

                print('月份输入错误,请重新输入。')

                continue

        days=0                                                       #定义天数

                                                             

        if ((year_num0==0) and (year_num@0 == 0)) or ((year_num0 !=0) and (year_num%4 == 0)):   #如果是闰年

            if (day_num > leap_year[month_num]) or (day_num <= 0): #日期错误时重新输入

                print('此月份中没有这一天,请重新输入。')

                continue

            for i in leap_year.keys():                               #遍历月份

                if int(i) < int(month_num):

                    days = days + leap_year[i]

                elif int(i)==int(month_num):

                    days = days + day_num

        else:                                                       #如果是平年

            if (day_num > comm_year[month_num]) or (day_num <= 0):  #日期错误时重新输入

                print('此月份中没有这一天,请重新输入。')

                continue

            for i in comm_year.keys():                               #遍历月份

                if int(i) < int(month_num):

                    days = days + comm_year[i]

                elif int(i)==int(month_num):

                    days = days + day_num

        print('这一天是今年的第 %d 天'

    转载请注明原文地址: https://ju.6miu.com/read-12298.html

    最新回复(0)