2018-08-24 day5 and homework

1.print输出

  • 打印完内容,默认换行
  • 可以同时打印多个内容,内容见逗号隔开,效果为空格隔开
  • print(内容, end=' ') end表示行结束后样式,默认换行
print('abc',end=' ')
print('genius')

结果:
abc genius
  • print(内容1,内容2...,sep=' ')sep表示多个内容间的样式,默认空格
print('abc','ABC','genius',sep=' * ')

结果:
abc * ABC * genius

homework

1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)
age = int(input('请输入年龄:'))
if age >= 60:
    print('老年人')
elif age >= 35:
    print('青壮年')
elif age >= 18:
    print('成年人')
elif age >= 12:
    print('未成年')
elif age >= 0:
    print('儿童')
else:
    pass

结果:
请输入年龄:60
老年人

请输入年龄:24
成年人

请输入年龄:2
儿童
2.计算5的阶乘 5!的结果是
number = int(input('输入需要阶乘的数字:'))
value = 1
for n in range(1,number+1):
    value *= n
else:
    print('%d 的阶乘值:%d' % (number,value))

result:
输入需要阶乘的数字:5
5 的阶乘值:120
3.求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。
number = int(input('输入要计算的阶乘再求和的数字:'))
sum1 = 0
for num in range(1,number+1):
    value = 1
    for n in range(1,num+1):
        value *= n
    sum1 += value
print('含%d 以内的所有数字的阶乘再求和的值: %d' % (number,sum1))

result:
输入要计算的阶乘再求和的数字:20
含20 以内的所有数字的阶乘再求和的值: 2561327494111820313
4.计算 1+1/2!+1/3!+1/4!+...1/20!=?
number = int(input('输入要计算的阶乘再求和的数字:'))
sum1 = 0
for num in range(1,number+1):
    value = 1
    for n in range(1,num+1):
        value *= n
    sum1 += (1/value)
print('含%d以内的所有数字的阶乘倒数再求和的值: %.6f' % (number,sum1))

result:
输入要计算的阶乘再求和的数字:20
含20以内的所有数字的阶乘倒数再求和的值: 1.718282
5.循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加的结果。
print('输入数字累加运算,输入0结束.')
sum1 = 0
while True:
    number = int(input('输入数字: '))
    sum1 += number
    if not number:
        break
print('累加的和:%d' % sum1)

result:
输入数字累加运算,输入0结束.
输入数字: 1
输入数字: 2
输入数字: 3
输入数字: 4
输入数字: 5
输入数字: 0
累加的和:15
6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。
number = input('输入要计算的整数:')
length = int(input('输入相加数字的数量:'))
sum1 = 0
for n in range(1,length+1):
    sum1 += int(number*n)
print('由 %s 组成的 %d 个数相加的和: %d' % (number,length,sum1))

result:
输入要计算的整数:2
输入相加数字的数量:5
由 2 组成的 5 个数相加的和: 24690
7.输入三个整数x,y,z,请把这三个数由小到大输出。
number1 = int(input('第一个整数:'))
number2 = int(input('第二个整数:'))
number3 = int(input('第三个整数:'))
number_list = [number1,number2,number3]
number_list.sort() #会对原列表进行排序 reverse可以改变排序方式;但是list.sort()本身返回None
print('由小到大排序: %s' % number_list)

result:
第一个整数:423
第二个整数:23
第三个整数:3
由小到大排序: [3, 23, 423]
8.控制台输出三角形(直三角和正三角)
#直三角
number = input('构成直角三角形的行数:')
for n in range(1,int(number)+1):
    print('*'*(int(number)-n+1))

result:
构成直角三角形的行数:5
*****
****
***
**
*

#正三角
number = int(input('构成正三角形的最多的字符数:')) #7
for n in range(1,int((number+1)/2+1)):
    print(' '*int((number+1)/2-n),'*'*(2*n-1))

result:
构成正三角形的最多的字符数:7
    *
   ***
  *****
 *******
9.输出9*9口诀。
for i in range(1,10):
    for j in range(1,10):
        if(j > i):
            break
        print('%d*%d=%d' % (j,i,i*j),end=' ')
    print('\n')

result:
1*1=1

1*2=2 2*2=4

1*3=3 2*3=6 3*3=9

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

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

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

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

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

1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
10.这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?
horses = 100
goods = 100
for small_horse in range(0,201): #最多200
    for middle_horse in range(0,51): #最多50
        for big_horse in range(0,34): #最多33
            if(small_horse + middle_horse + big_horse == horses) and (0.5*small_horse + middle_horse*2 + big_horse*3 == goods):
                    print('small_horse:%d middle_horse:%d big_horse:%d' % (small_horse,middle_horse,big_horse))

result:
small_horse:68 middle_horse:30 big_horse:2
small_horse:70 middle_horse:25 big_horse:5
small_horse:72 middle_horse:20 big_horse:8
small_horse:74 middle_horse:15 big_horse:11
small_horse:76 middle_horse:10 big_horse:14
small_horse:78 middle_horse:5 big_horse:17
small_horse:80 middle_horse:0 big_horse:20
11.我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的: 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。
money = 100
chicken = 100
for chick in range(0,301): #最多300
    for hen in range(0,34): #最多33
        for cock in range(0,21): #最多20
            if(chick + hen + cock == chicken) and (5*cock + 3*hen + 1/3*chick == 100):
                print('公鸡%d 只,母鸡%d 只,小鸡%d 只' % (cock, hen, chick))

result:
公鸡0 只,母鸡25 只,小鸡75 只
公鸡4 只,母鸡18 只,小鸡78 只
公鸡8 只,母鸡11 只,小鸡81 只
公鸡12 只,母鸡4 只,小鸡84 只
12.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些购买结合?
money = 100
for shampoo in range(0,7): #最多6
    for soap in range(0,51): #最多50 
        for toothbrush in range(0,21): #最多20
            if(shampoo*15 + soap*2 + toothbrush*5 == 100):
                print('可以洗发水%d 瓶,肥皂%d 块,牙刷%d 副' % (shampoo, soap, toothbrush))

result:
可以洗发水0 瓶,肥皂0 块,牙刷20 副
可以洗发水0 瓶,肥皂5 块,牙刷18 副
可以洗发水0 瓶,肥皂10 块,牙刷16 副
可以洗发水0 瓶,肥皂15 块,牙刷14 副
可以洗发水0 瓶,肥皂20 块,牙刷12 副
可以洗发水0 瓶,肥皂25 块,牙刷10 副
可以洗发水0 瓶,肥皂30 块,牙刷8 副
可以洗发水0 瓶,肥皂35 块,牙刷6 副
可以洗发水0 瓶,肥皂40 块,牙刷4 副
可以洗发水0 瓶,肥皂45 块,牙刷2 副
可以洗发水0 瓶,肥皂50 块,牙刷0 副
可以洗发水1 瓶,肥皂0 块,牙刷17 副
可以洗发水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 瓶,肥皂0 块,牙刷14 副
可以洗发水2 瓶,肥皂5 块,牙刷12 副
可以洗发水2 瓶,肥皂10 块,牙刷10 副
可以洗发水2 瓶,肥皂15 块,牙刷8 副
可以洗发水2 瓶,肥皂20 块,牙刷6 副
可以洗发水2 瓶,肥皂25 块,牙刷4 副
可以洗发水2 瓶,肥皂30 块,牙刷2 副
可以洗发水2 瓶,肥皂35 块,牙刷0 副
可以洗发水3 瓶,肥皂0 块,牙刷11 副
可以洗发水3 瓶,肥皂5 块,牙刷9 副
可以洗发水3 瓶,肥皂10 块,牙刷7 副
可以洗发水3 瓶,肥皂15 块,牙刷5 副
可以洗发水3 瓶,肥皂20 块,牙刷3 副
可以洗发水3 瓶,肥皂25 块,牙刷1 副
可以洗发水4 瓶,肥皂0 块,牙刷8 副
可以洗发水4 瓶,肥皂5 块,牙刷6 副
可以洗发水4 瓶,肥皂10 块,牙刷4 副
可以洗发水4 瓶,肥皂15 块,牙刷2 副
可以洗发水4 瓶,肥皂20 块,牙刷0 副
可以洗发水5 瓶,肥皂0 块,牙刷5 副
可以洗发水5 瓶,肥皂5 块,牙刷3 副
可以洗发水5 瓶,肥皂10 块,牙刷1 副
可以洗发水6 瓶,肥皂0 块,牙刷2 副
可以洗发水6 瓶,肥皂5 块,牙刷0 副

你可能感兴趣的:(2018-08-24 day5 and homework)