美文网首页
day05-作业

day05-作业

作者: d4lx | 来源:发表于2018-08-24 21:03 被阅读0次

    day05-作业

    1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)

    #控制台输入年龄,根据年龄输出不同的提示
    #(例如:老年人、青壮年、成年人、未成年、儿童)
    age = int(input('请输入你的年龄:'))
    while age >200 or age < 0:
        print('你输入的年龄超出正常人的年龄范围,请重新输入:')
        age = int(input('请输入你的年龄:'))
    if age <= 14 and age >= 0:
        print('你是一个儿童!')
    elif age >14 and age < 18:
        print('你是一个未成年!')
    elif age >= 18 and age <=29:
        print('你是一个成年人!')
    elif age > 29 and age <= 44:
        print('你是一个青壮年!')
    else:
        print('你是一个老年人!')
    

    结果:


    1.png

    2.计算5的阶乘 5!的结果是

    #计算5的阶乘5!的结果
    #1*2*3*4*5
    n = int(input('请输入你想要计算的阶乘n:'))
    value = 1
    for x in range(1,n+1):
        value *= x
    print(value) 
    

    结果:


    2.png

    3.求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。

    #求1+2!+3!+···+20!的和
    #分析:此程序只是把累加变成了累乘
    '''
          1、先将要求的阶乘数取出
          2、通过for循环求出其阶乘的结果
          3、再通过外层for循环求出阶乘的和
    '''
    sum1 = 0                    #阶乘的和
    value = 1                   #每个阶乘对应的值
    for x in range(1,21):
        value = 1               #每个阶乘对应的值
        for y in range(1,x+1):
            value *= y
        else:                   #循环完成后将值加来
            sum1 += value
    print('结果为:%d'%(sum1)) 
    

    结果:


    3.png

    4.计算 1+1/2!+1/3!+1/4!+...1/20!=?

    #计算1+1/2!+1/3!+1/4!+···+1/20!
    '''
    分析:1、首先通过for循环求出分母的值;确定分母
          2、再分别确定每一项的值
          3、计算和
    '''
    sum1 = 0
    for x in range(1,21):
        den = 1                #表示分母
        for y in range(1,x+1):
            den *= y
            value = 1/den      #每一项的值
        else:                  #循环完成后将值加来
            sum1 += value
    print('结果为:%f'%(sum1))
    

    结果:


    4.png

    5.循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加的结果。

    #循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加结果
    '''
    分析:1、首先创建一个死循环,实现循环输入;
         2、创建变量输入数据
         3、对变量进行判断,如果大于0就与和相加;
            如果小于0,就提示重新输入;
            如果等于0,就跳出循环,结束循环操作
         4、最后打印结果
    '''
    sum1 = 0
    while True:
        
        number = float(input('请输入一个数:'))
        
        if number > 0:
            sum1 += number
        elif number < 0:
            print('你输入的数小于0,请输入一个大于0的数!')
            continue
        else:
            print('结果为:%f'%(sum1))
            break
    

    结果:


    5.png

    6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。

    #求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
    #例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制;
    '''
    分析:1、创建两个由键盘输入的变量,一个确定a代表的数字;一个确定有几个数相加
          2、通过循环计算出每一项的值
          3、最后求出和
    '''
    a = input('确定a的值:')
    n = int(input('确定所求数的个数:'))
    sum1 = 0
    for x in range(1,n+1):
        value = int(a*x)
        sum1 += value
    print(sum1)
    

    结果:


    6.png

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

    #输入三个整数x,y,z,请把这三个数有小到大输出
    '''
    分析:1、连续输入3个数;
          2、两两比较数的大小;
          3、按照要求输出结果;
    '''
    # min_num = int(input('第1个数:'))
    # for x in range(2,4):
    #   num = int(input('第%d个数:'%(x)))
    #   if num < min_num:
    #       min_num = num
    # print('最小值:%d'%(min_num))
    
    num_1 = int(input('输入第一个数:'))
    num_2 = int(input('输入第二个数:'))
    num_3 = int(input('输入第三个数:'))
    temp = 0          #作为替换用
    if num_1 > num_2:
        temp = num_1
        num_1 = num_2
        num_2 = temp
    if num_1 > num_3:
        temp = num_1
        num_1 = num_3
        num_3 = temp
    if num_2 > num_3:
        temp = num_2
        num_2 = num_3
        num_3 = temp
    print('从小到大的顺序为:%d,%d,%d'%(num_1,num_2,num_3))
    

    结果:


    7.png

    8.控制台输出三角形

    a.根据n的值的不同,输出相应的形状
    n = 5时             n = 4
    *****               ****
    ****                ***
    ***                 **
    **                  *
    *
    
    b.根据n的值的不同,输出相应的形状(n为奇数)
    n = 5               n = 7
      *                    *
     ***                  ***
    *****                *****
                        *******
    
    #直角三角形
    n = int(input('请输入一个大于0的整数:'))
    while n >= 1:
        print('*'*n)
        n -= 1
    print('---------------')
    #等腰三角形
    i = int(input('请输入一个奇数:'))
    for x in range(1,i+1,2):
        print(('*'*x).center(i,' ')) #调用字符串居中方法函数
    

    结果:


    8.png

    9.输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

    九九乘法表.png
    #输出9*9口诀
    '''
    分析:分行与分列考虑,共9行9列,i控制行,j控制列
    
    '''
    for i in range(1,10):
        for j in range(1,i+1):
            print('%d'%(i),'X','%d'%(j),'=','%2d'%(i*j), end = '  ')
        else:
            print()
    

    结果:


    9.png

    10.这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?

    #这是经典的"百马百担"问题,有一百匹马,驮100担货,大马驮3担,中马驮2担,两只小马驮一担,问有大中小马各几匹;
    '''
    分析:1、分别假设大中小马有x,y,z匹
          2、需满足x+y+z=100;3x+2y+0.5z=100
             注意:x,y,z都是整数;
          3、明确x,y,z的范围,3x<=100;2y<=100;0.5z<=100;z<=100
          4、求出结果
    '''
    
    for x in range(0,34):
        for y in range(0,51):
            for z in range(0,101,2):
                if x + y + z == 100 and 3*x + 2*y + int(0.5*z) == 100:
                    print('大马有%d匹,中马有%d匹,小马有%d匹'%(x,y,z))
    

    结果:


    10.png

    11.我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的: 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。

    #我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,
    #题意是这样的: 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。
    #现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。
    '''
    分析:1、假设公鸡x只、母鸡y只、雏鸡z只
          2、确定x,y,z的值满足的条件:x + y + z = 100;5x + 3y + 1/3z = 100
          3、确定x,y,z的范围:5y<=100;3z<=100;z<=100;且都是整数
          4、利用循环和if求出结果
    '''
    for x in range(0,21):
        for y in range(0,34):
            for z in range(0,101,3):
                if x + y + z == 100 and 5*x + 3*y + int(1/3*z) ==100:
                    print('公鸡有%d只,母鸡有%d只,雏鸡有%d只'%(x,y,z))
    

    结果:


    11.png

    12.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些购买结合?

    #小明单位发了100元的购物卡,小明到超市买三类洗化用品,
    #洗发水(15元),香皂(2元),牙刷(5元)。
    #要把100元整好花掉,可如有哪些购买结合?
    
    '''
    #小明单位发了100元的购物卡,小明到超市买三类洗化用品,
    #洗发水(15元),香皂(2元),牙刷(5元)。
    #要把100元整好花掉,可如有哪些购买结合?
    
    '''
    分析:1、假设可以买洗发水x,香皂y,牙刷z
          2、确定条件:15x+2y+5z=100;15x<=100;2y<=100;5z<=100
          3、打印结果
    '''
    count = 0
    for x in range(0,100//15+1):
        for y in range(0,100//2+1):
            for z in range(0,100//5+1):
                if 15*x + 2*y + 5*z == 100:
                    print('可以选择购买洗发水%d瓶,香皂%d块,牙刷%d支'%(x,y,z))
                    count +=1
    print('一共有%d种方案'%(count))
    

    结果:


    12.png

    相关文章

      网友评论

          本文标题:day05-作业

          本文链接:https://www.haomeiwen.com/subject/qviiiftx.html