python100题-01->04

https://www.runoob.com/python/python-exercise-example4.html

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

程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
"""

def for_in_range_1_5():
    for a in range(1,5):
        for b in range(1,5):
            for c in range(1,5):
                if (a!=b) and (b!=c) and (c!=a) :
                    print(a*100+b*10+c)
                else:
                    continue
"""
题目:
企业发放的奖金根据利润提成。
利润(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,求应发放奖金总数?
"""
Bonus_payment_level = (1000000,600000,400000,200000,100000,0)
Bonus_amount = (0.01,0.015,0.03,0.05,0.75,0.1)

def bonus_paument_calculation():
    Bonus = 0
    Bonus_Now = 0
    profit = int(input("please input profit:"))
    for i in range(0,6):
        if profit > Bonus_payment_level[i]:
            print("your profit is more than ",Bonus_payment_level[i])
            Bonus_Now = (profit-Bonus_payment_level[i])*Bonus_amount[i]
            print('the level',i+1,"part bouns is",Bonus_Now)
            profit = profit - (profit - Bonus_payment_level[i])
            Bonus = Bonus + Bonus_Now
        else:
            continue
    print("the final Bonus is ",Bonus)
#!/usr/bin/python

"""
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
解决思路:
Q1.什么是完全平方数?
完全平方指用一个整数乘以自己例如1*1,2*2,3*3等,依此类推。
若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。
完全平方数是非负数,而一个完全平方数的项有两个。注意不要与完全平方式所混淆。
Q2:变量数
只求一个整数,因此变量数为1
Q3:python中求平方的函数
pow(m,n)
    1、使用math模块
        import math
        math.sqrt(144) # 12
    2、使用内置函数pow
        pow(144, 0.5) # 12
    3、使用数学表达式
        144**0.5 # 12
Q4.判断是否为整数
python中可以使用isinstance()或type()函数判断一个数是否为整数。
    1、使用isinstance()函数判断
        isinstance() 方法的语法:
        isinstance(object, classinfo)
        如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。
        example:
        a = 2
        isinstance (a,int)
        True
    2、使用type()函数判断
        type()函数语法:
        type(object)
        type(name, bases, dict)
        type() 函数如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象。
        type(1)
        <type 'int'>
        这里用isinstance会比较好,返回bool
Q5.整数不一定为整型,所以需要判断float型是否为整数
    number%1 == 0区分小数后面的数字
Q6:如何将值写入数组?
    用append
    定义一个空的数组,用《 数组名.append(变量名) 》将这个变量写到数组中
Q7:如何查询数组长度
    使用 len () 函数获取 Python 数组的长度 len () 是一个 Python 内置函数,
    它在元组、队列、数组、列表和字符串等对象上调用,以在这些对象中查找单词或字符的总数。
"""

def Confirm_Complete_square_Number(Confirm_Number):
    Number = pow(Confirm_Number,0.5)#Number为输入值开方后的结果
    if (Number % 1 == 0):#number%1 == 0区分小数后面的数字
        #print("This Number is a Complete Square")
        return Number#函数返回Number
    else:
        #print("This number is not a Complete Square")
        return 'error' #如果 != 0 返回error

def Complete_square_Number(RANGE_START,RANGE_END):
    Number_Complete_Square_Output = []
    for i in range(RANGE_START,RANGE_END):
        if (Confirm_Complete_square_Number(i) != 'error' ):
            Number_Complete_Square_Output.append(i)
        else:
            continue
    return Number_Complete_Square_Output

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

写在其他.py文件中需要import

from train_def_package_01 import python_train_03

for i in range(10000):
    if (python_train_03.Confirm_Complete_square_Number(i+100) != 'error'):
        if (python_train_03.Confirm_Complete_square_Number(i+100+168) != 'error'):
            print(i)
        else:
            continue
    else:
        continue
"""
#!/user/bin/python
"""
题目:输入某年某月某日,判断这一天是这一年的第几天?
思路:
1.每月天数确定,输入月份数,可以知道经过几个月的天数
2.加上输入月份的天数,就是一年内的第几天
Q1:闰年和普通年的判断方法
公元年数可被4整除为闰年,但是整百(个位和十位均为0)的年数必须是可以被400整除的才是闰年,其他都是平年。
Q2:读取字典的值
一般的Leap_year[1]只能查看和改变这个值
如果想要输出相应键值对的值,请用dict.get(key)函数
Q3:不知道为什么之前写的函数值返回值为none?
目前不太清楚原因,可能是条件判断多重嵌套导致的错误
之后尽量少些多重嵌套,多谢与或非
"""

def jug_leap_year(date_year):
    if (date_year % 100 != 0) and (date_year % 4 == 0):
        return 1
    elif (date_year % 100 == 0) and (date_year % 400 == 0):
        return 1
    else:
        return 0


Normal_year = {1:31,2:28,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}
Leap_year = {1:31,2:29,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}

def jug_date_number():
    date_number = 0
    date_year = int(input("please input year:"))
    date_month = int(input("please input month:"))
    date_date = int(input("please input date:"))
    if (1<=date_month<=12) and (1<=date_date<=31):
        if jug_leap_year(date_year) == 1:
            print('this year is a leap year')
            for i in range(1,date_month):
                date_number = date_number + Leap_year.get(i)
            date_number = date_number + date_date
            print('Today has passed ',date_number)
            return date_number
        elif jug_leap_year(date_year) == 0:
            print('this year is a normal year')
            for i in range(1,date_month):
                date_number = date_number + Normal_year.get(i)
            date_number = date_number + date_date
            print('Today has passed ',date_number)
            return date_number
        else:
            return print("error")
    else:
        return print('error,please input right year/month/date')



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值