day6作业

2018-08-25  本文已影响53人  Smilebest
1.控制台输入年龄,根据年龄输出不同的提示
(例如:老年人,青壮年,成年人,未成年,儿童)
age =int (input ('请输入年龄:'))
if age >= 70:
    print ('老年人')
elif age >= 30:
    print ('青壮年')
elif age >= 18:
    print ('成年人')
elif age >= 8:
    print ('未成年')
else:
    print ('儿童')
2.计算5的阶乘 5!的结果是
n = 1
result = 1
for n in range (1,6):
    result *= n
print ('5!的结果是:%d' % (result))

运行

5!的结果是:120
3.求1+2!+3!+...+20!的和
程序分析:此程序只是把累加变成了累乘
各个数的阶乘相加
2!
for x in range (1,2):
num *= x
20!
for x in range (1,20):
num *= x
num = 1
num1 = 0
# 循环取出数字1-20
for y in range (1,21):
# 各个数的
    for x in range(1,y+1):
        num *= x    
    else:
        num1 += num
        num = 1
print(num1)
4..计算 1+1/2!+1/3!+1/4!+...1/20!=?
num1 = 0
num = 1
for y in range (1,21):
    for x in range (1,y+1):
        # x = 1,num = num*x = 1*(1/1) = 1!
        # x = 2,num = num*x = 1*(1/1)*(1/2) = 1/2!
        num *= (1/x)
    else:
        num1 += num
        num = 1
print (num1)

运行
1.7182818284590455

5.循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加的结果。
循环输入
sum=0
while True:
    num = int (input('请输入一个数字:'))
    if num >= 0:
        sum += num #sum=sum+x
        if num == 0:
            print(sum)
            break
    else:       
        print ('请重新输入')
        continue
6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制
1.程序分析:关键是计算出每一项的值
num = int (input ('请输入相加个数:'))
###### 取出num个数
n = 2
sum = 0
for x in range (1,num + 1):
    # sum == a^1+a^2+a^3+a^4+a^5
    sum += n ** x
print (sum)
###### 算出num个数的和
7.输入三个整数x,y,z,请把这三个数由小到大输出。
number1 = int (input ('请输入x:'))
number2 = int (input ('请输入y:'))
number3 = int (input ('请输入z:'))
if number1 > number2:
    # x比y大,然后x与z比较
    if number1 > number3:
        if number2 > number3:
            print (number3,number2,number1)
        else:
            print (number2,number3,number1)
    else:
        print (number2,number1,z)
else:
    if number1 < number3:
        if number2 < number3:
            print (number1,number2,number3)
        else:
            print (number1,number3,number2)
    else:
        print (number3,number1,number2)
8.控制台输出三角形
a.根据n的值的不同,输出相应的形状
n = 5时             n = 4
*****               ****
****                ***
***                 **
**                  *
*
n = int (input ('请输入n:'))
# 每排重复输入,
for x in range (1,n+1):
# 要达到倒着排的效果,就用x的最大取值减去x       
    num = '*' * (n+1-x)       
    print (num)              
# 倒着排列,x的取值范围,大的在前,小的在后,步进减一
for x in range (n,0,-1):
     num = '*' * x
     print (num)
b.根据n的值的不同,输出相应的形状(n为奇数)
 n = 5               n = 7
   *                    *
  ***                  ***
 *****                *****
                     *******
n = int (input ('请输入一个奇数:'))
for x in range (1,n+1,2):
    num ='*' * x
    # 需要在字符串前面加上什么符号,用center填充,达到效果
    new_num = num.center (n,' ')
    print (new_num)
9.输出9*9口诀
程序分析:分行与列考虑,共9行9列,i控制行,j控制列
每一列或者每一行都是一个循环
for j in range (1,10):
    for i in range (1,j+1):
        # 先计算出每一行,每一列的结果,表示出计算式
        print ('%d x %d = %s' % (j,i,j*i),end = ('   ')) 
        # 每个计算循环结束时换行,排列
    else:
        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担 问有大,中,小马各几匹?
x表示大马,y表示中马,z表示小马
for x in range (1,101):
    for y in range (1,101-x):
        for z in range (1,101-x-y):
            if x + y + z == 100 and 3 * x + 2 * y + (1/2) * z == 100:
                print ('大马%d匹,中马%d匹,小马%d匹' % (x,y,z))

运行

大马2匹,中马30匹,小马68匹
大马5匹,中马25匹,小马70匹
大马8匹,中马20匹,小马72匹
大马11匹,中马15匹,小马74匹
大马14匹,中马10匹,小马76匹
大马17匹,中马5匹,小马78匹
11.我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题 题意是这样的: 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。 现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。
x表示公鸡,y表示母鸡,z表示小鸡
for x in range (1,101):
    for y in range (1,101-x):
        for z in range (1,101-x-y):
            if x + y + z == 100 and (1/3) * z + 3 * y + 5 * x == 100:
                print ('公鸡,母鸡,小鸡的数量分别是:%d只,%d只,%d只' % (x,y,z))

运行

公鸡,母鸡,小鸡的数量分别是:4只,18只,78只
公鸡,母鸡,小鸡的数量分别是:8只,11只,81只
公鸡,母鸡,小鸡的数量分别是:12只,4只,84只
12.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。 要把100元整好花掉,可如有哪些购买结合?
假设买了x瓶洗发水,y块香皂,z只牙刷
for x in range(1,int (100/15)):
    for y in range(1,100-(15*x)):
        for z in range (1,100-(15 * x + 2 * y)):
            if 15 * x + 2 * y + 5 * z == 100:
                print ('洗发水,香皂,牙刷的数量分别是:%d,%d,%d' % (x,y,z))

运行

洗发水,香皂,牙刷的数量分别是:1,5,15
洗发水,香皂,牙刷的数量分别是:1,10,13
洗发水,香皂,牙刷的数量分别是:1,15,11
洗发水,香皂,牙刷的数量分别是:1,20,9
洗发水,香皂,牙刷的数量分别是:1,25,7
洗发水,香皂,牙刷的数量分别是:1,30,5
洗发水,香皂,牙刷的数量分别是:1,35,3
洗发水,香皂,牙刷的数量分别是:1,40,1
洗发水,香皂,牙刷的数量分别是:2,5,12
洗发水,香皂,牙刷的数量分别是:2,10,10
洗发水,香皂,牙刷的数量分别是:2,15,8
洗发水,香皂,牙刷的数量分别是:2,20,6
洗发水,香皂,牙刷的数量分别是:2,25,4
洗发水,香皂,牙刷的数量分别是:2,30,2
洗发水,香皂,牙刷的数量分别是:3,5,9
洗发水,香皂,牙刷的数量分别是:3,10,7
洗发水,香皂,牙刷的数量分别是:3,15,5
洗发水,香皂,牙刷的数量分别是:3,20,3
洗发水,香皂,牙刷的数量分别是:3,25,1
洗发水,香皂,牙刷的数量分别是:4,5,6
洗发水,香皂,牙刷的数量分别是:4,10,4
洗发水,香皂,牙刷的数量分别是:4,15,2
洗发水,香皂,牙刷的数量分别是:5,5,3
洗发水,香皂,牙刷的数量分别是:5,10,1
上一篇 下一篇

猜你喜欢

热点阅读