Day-05 练习

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

age = int(input('输入一个年龄'))
if age < 5:
    print('儿童')
elif 5 <= age < 18:
    print('未成年')
elif 18 <= age < 25:
    print('成年人')
elif 25 <= age < 40:
    print('青壮年')
elif age >= 40:
    print('老年人')

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

num = int(input('输入一个数字,计算其阶乘'))
for x in range(1,num+1):
    result = result * x
else:
    print(result)
结果如下:
输入一个数字,计算其阶乘5
120

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

num = 20
result1 = 1
result2 = 0
for x in range(1,num+1):
    result1 = result1 * x
    result2 += result1
else:
    print(result2)
结果如下:
2561327494111820313

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

num = 20
result1 = 1
result2 = 0
for x in range(1,num+1):
    result1 = result1 * (1/x)
    result2 += result1
else:
    print(result2)
结果如下:
1.7182818284590455

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

num =int(input())
i = 0
while num != 0 :
    i += num
    num =int(input())
else:
    print(‘结果为’,i)
结果如下:
1
2
3
0
结果为6

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

a = int(input('输入一个数字'))
b = int(input('输入相加的个数'))
result1 = 0
result2 = 0
for x in range(0,b):
    c = a * 10**x
    result1 += c #各项的值
    result2 += result1
else:
    print(result2)
结果如下:
输入一个数字2
输入相加的个数5
24690

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

num1 = int(input('输入数字1'))
num2 = int(input('输入数字2'))
num3 = int(input('输入数字3'))
max = num1
temp = 0
if num1 < num2:
    min = num1
    temp =num2
elif num1 > num2:
    min = num2
    temp = num1
if num3 < min :
    print(num3,min,temp)
elif num3 > min and num3 > temp:
    print(min,temp,num3)
elif num3 > min and num3 < temp:
    print(min,num3,temp)

8.控制台输出三角形

a.根据n的值的不同,输出相应的形状
n = 5时             n = 4
*****               ****
****                ***
***                 **
**                  *
*

b.根据n的值的不同,输出相应的形状(n为奇数)
n = 5               n = 7
  *                    *
 ***                  ***
*****                *****
                    *******
n = input()
for x in range(0,n):
    for y in range(0,n):
        print('*',end='')
    print('\n')
    a += 
n = int(input())
times = int((n+1)/2)
lenth = int(2*n - 1)
for x in range(0,times):
    for y in range(0,times - x + 1):
        print(' ',end='')
    for z in range(0,2 * x + 1):
        print('*',end='')
    print('\n')
结果如下:
7
     *

    ***

   *****

  *******

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

for i in range(1,10):
    for j in range(1,i+1):
        message = '%d x %d = %d' %(i,j,i*j)
        print(message,end=' ')
    print('\n')
结果如下:
1 x 1 = 1 

2 x 1 = 2 2 x 2 = 4 

3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 

4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16 

5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 

6 x 1 = 6 6 x 2 = 12 6 x 3 = 18 6 x 4 = 24 6 x 5 = 30 6 x 6 = 36 

7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49 

8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 8 x 5 = 40 8 x 6 = 48 8 x 7 = 56 8 x 8 = 64 

9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 5 = 45 9 x 6 = 54 9 x 7 = 63 9 x 8 = 72 9 x 9 = 81 

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

for large in range(0,100):
    if large * 3 <= 100:
        for medium in range(0,100):
            if medium * 2 <= 100:
                for small in range(0,100):
                     if small * 0.5 < 100 and small % 2 ==0 :
                        if large + medium + small == 100 and large * 3 + medium * 2 + small * 0.5 ==100 :
                             print("大马有%d匹,中马有%d匹,小马有%d匹" %(large,medium,small))
结果如下:
大马有2匹,中马有30匹,小马有68匹
大马有5匹,中马有25匹,小马有70匹
大马有8匹,中马有20匹,小马有72匹
大马有11匹,中马有15匹,小马有74匹
大马有14匹,中马有10匹,小马有76匹
大马有17匹,中马有5匹,小马有78匹
大马有20匹,中马有0匹,小马有80匹

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

max_cock=int(100/5);max_hen=int(100/3);max_chicken=int(100*3)  #公鸡,母鸡,雏鸡可以购买的最大只数
for cock in range(0,max_cock+1):
    for hen in range(0,max_hen+1):
        for chicken in range(0,max_chicken):
            if cock + hen + chicken == 100 and cock*5 + hen*3 + chicken / 3 == 100 and chicken % 3 == 0:
                print('公鸡有%d只,母鸡有%d只,雏鸡有%d只' %(cock,hen,chicken))
结果如下:
公鸡有0只,母鸡有25只,雏鸡有75只
公鸡有4只,母鸡有18只,雏鸡有78只
公鸡有8只,母鸡有11只,雏鸡有81只
公鸡有12只,母鸡有4只,雏鸡有84只

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

max_shampoo = int(100/15);max_soap = int(100/2);max_toothbrush = int(100/5) #牙刷,香皂,洗发液最大购买量
for shampoo in range(1,max_shampoo+1):
    for soap in range(1,max_soap+1):
        for toothbrush in range(1,max_toothbrush+1):
            if shampoo * 15 + soap * 2 + toothbrush * 5 == 100 :
                print('购买洗发水%d件,香皂%d件,牙刷%d件可以把100元整好花掉' %(shampoo,soap,toothbrush))
结果如下:
购买洗发水1件,香皂5件,牙刷15件可以把100元整好花掉
购买洗发水1件,香皂10件,牙刷13件可以把100元整好花掉
购买洗发水1件,香皂15件,牙刷11件可以把100元整好花掉
购买洗发水1件,香皂20件,牙刷9件可以把100元整好花掉
购买洗发水1件,香皂25件,牙刷7件可以把100元整好花掉
购买洗发水1件,香皂30件,牙刷5件可以把100元整好花掉
购买洗发水1件,香皂35件,牙刷3件可以把100元整好花掉
购买洗发水1件,香皂40件,牙刷1件可以把100元整好花掉
购买洗发水2件,香皂5件,牙刷12件可以把100元整好花掉
购买洗发水2件,香皂10件,牙刷10件可以把100元整好花掉
购买洗发水2件,香皂15件,牙刷8件可以把100元整好花掉
购买洗发水2件,香皂20件,牙刷6件可以把100元整好花掉
购买洗发水2件,香皂25件,牙刷4件可以把100元整好花掉
购买洗发水2件,香皂30件,牙刷2件可以把100元整好花掉
购买洗发水3件,香皂5件,牙刷9件可以把100元整好花掉
购买洗发水3件,香皂10件,牙刷7件可以把100元整好花掉
购买洗发水3件,香皂15件,牙刷5件可以把100元整好花掉
购买洗发水3件,香皂20件,牙刷3件可以把100元整好花掉
购买洗发水3件,香皂25件,牙刷1件可以把100元整好花掉
购买洗发水4件,香皂5件,牙刷6件可以把100元整好花掉
购买洗发水4件,香皂10件,牙刷4件可以把100元整好花掉
购买洗发水4件,香皂15件,牙刷2件可以把100元整好花掉
购买洗发水5件,香皂5件,牙刷3件可以把100元整好花掉
购买洗发水5件,香皂10件,牙刷1件可以把100元整好花掉

你可能感兴趣的:(Day-05 练习)