The first week 周末作业 2018-12-30

2019-01-02  本文已影响0人  绝世小丑

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

age = int(input('请输入年龄:'))
if age < 12:
    print('这个人还是儿童。')
elif age < 18:
    print('这个人还未成年。')
elif age < 30:
    print('这个人已经成年。')
elif age < 55:
    print('这个人到了青壮年。')
else:
    print('这个人已经老年。')

运行结果:

请输入年龄:45
这个人到了青壮年。

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

i = 1
jie_cheng = 1
while i <= 5:
    jie_cheng *= i
    i += 1
print(' 5 的阶乘为:', jie_cheng)

运行结果:

 5 的阶乘为: 120

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

i = 1
jie_cheng = 1
sum1 = 0
while i <= 20:
    jie_cheng *= i
    sum1 += jie_cheng
    i += 1
print('1+2!+3!+...+20!的和为:', sum1)

运行结果:

1+2!+3!+...+20!的和为: 2561327494111820313

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

i = 1
jie_cheng = 1
fen_shu = 0
while i <= 20:
    jie_cheng *= i
    fen_shu += 1 / jie_cheng
    i += 1
print('1+1/2!+1/3!+1/4!+...1/20!的和为:', fen_shu)

运行结果:

1+1/2!+1/3!+1/4!+...1/20!的和为: 1.7182818284590455

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

sum1 = 0
num1 = int(input('请输入数字(输入 0 为结束):'))
if num1 > 0:
    sum1 += num1
while num1 != 0:
    num1 = int(input('请输入数字(输入 0 为结束):'))
    if num1 > 0:
        sum1 += num1
print('大于0的数字累加和为:', sum1)

运行结果:

请输入数字(输入 0 为结束):12
请输入数字(输入 0 为结束):-12
请输入数字(输入 0 为结束):23
请输入数字(输入 0 为结束):-23
请输入数字(输入 0 为结束):0
大于0的数字累加和为: 35

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

a = int(input('请输入一个值:'))
n = int(input('请输入要有几个数相加:'))
i = 0
sum1 = 0
num1 = 0
while i < n:
    num1 += a * 10 ** i
    sum1 += num1
    i += 1
    print('第一个数为:', num1)
print('这几个数的和为:', sum1)

运行结果:

请输入一个值:3
请输入要有几个数相加:4
第一个数为: 3
第一个数为: 33
第一个数为: 333
第一个数为: 3333
这几个数的和为: 3702

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

list1 = []
x = int(input('请输入 x 的值:'))
list1.append(x)
y = int(input('请输入 y 的值:'))
list1.append(y)
z = int(input('请输入 z 的值:'))
list1.append(z)
min1 = min(list1)
list1.remove(min1)
max1 = max(list1)
list1.remove(max1)
char1 = list1[0]
print('这三个数由小到大输出为:', min1, char1, max1)

运行结果:

请输入 x 的值:1
请输入 y 的值:3
请输入 z 的值:5
这三个数由小到大输出为: 1 3 5

8.控制台输出三角形

a.根据n的值的不同,输出相应的形状


    n = 5时             n = 4   
    *****               ****  
    ****                ***  
    ***                 **
    **                  *
    *

b.根据n的值的不同,输出相应的形状(n为奇数)

    n = 5               n = 7
      *                    *
     ***                  ***
    *****                *****
                        *******

解:

# a.
n = int(input('请输入一个 n 值:'))
i = 0
j = n
while i < n:
    while j > 0:
        print('*' * j)
        j -= 1
    i += 1

# b.
n = int(input('请输入一个 n 值(奇数):'))
i = 1
j = n
while i < n:
    while j > 0:
        if i & 1 == 1:
            k = int(j / 2)
            print(' ' * k, '*' * i)
        i += 1
        j -= 1

运行结果:

请输入一个 n 值:4
****
***
**
*
请输入一个 n 值(奇数):9
     *
    ***
   *****
  *******
 *********

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

i = 1
j = 1
while i <= 9:
    j = i
    while i <= j <= 9:
        print('%d * %d = ' % (i, j), i * j)
        j += 1
    i += 1

运行结果:

1 * 1 =  1
1 * 2 =  2
1 * 3 =  3
1 * 4 =  4
1 * 5 =  5
1 * 6 =  6
1 * 7 =  7
1 * 8 =  8
1 * 9 =  9
2 * 2 =  4
2 * 3 =  6
2 * 4 =  8
2 * 5 =  10
2 * 6 =  12
2 * 7 =  14
2 * 8 =  16
2 * 9 =  18
3 * 3 =  9
3 * 4 =  12
3 * 5 =  15
3 * 6 =  18
3 * 7 =  21
3 * 8 =  24
3 * 9 =  27
4 * 4 =  16
4 * 5 =  20
4 * 6 =  24
4 * 7 =  28
4 * 8 =  32
4 * 9 =  36
5 * 5 =  25
5 * 6 =  30
5 * 7 =  35
5 * 8 =  40
5 * 9 =  45
6 * 6 =  36
6 * 7 =  42
6 * 8 =  48
6 * 9 =  54
7 * 7 =  49
7 * 8 =  56
7 * 9 =  63
8 * 8 =  64
8 * 9 =  72
9 * 9 =  81

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

da_ma = 1
zho_ma = 1
xia_ma = 1
while da_ma * 3 <= 100:
    if da_ma * 3 + zho_ma * 2 + xia_ma / 2 != 100:
        da_ma += 1
    else:
        break
    while zho_ma * 2 <= 100:
        if da_ma * 3 + zho_ma * 2 + xia_ma / 2 != 100:
            zho_ma += 1
        else:
            break
        while xia_ma / 2 <= 100:
            if da_ma * 3 + zho_ma * 2 + xia_ma / 2 != 100:
                xia_ma += 1
            else:
                break
print('大马有 %d 只;中马有 %d 只;小马有 % d 只。' % (da_ma, zho_ma, xia_ma))

运行结果:

大马有 2 只;中马有 2 只;小马有  180 只。

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

gong_ji = 1
mu_ji = 1
chu_ji = 1
while gong_ji * 5 <= 100:
    if gong_ji * 5 + mu_ji * 3 + chu_ji != 100:
        gong_ji += 1
    else:
        break
    while mu_ji * 2 <= 100:
        if gong_ji * 5 + mu_ji * 3 + chu_ji != 100:
            mu_ji += 1
        else:
            break
        while chu_ji / 2 <= 100:
            if gong_ji * 5 + mu_ji * 3 + chu_ji != 100:
                chu_ji += 1
            else:
                break
print('公鸡可以买 %d 只;母鸡可以买 %d 只;小鸡可以买 % d 只。' % (gong_ji, mu_ji, chu_ji))

运行结果:

公鸡可以买 2 只;母鸡可以买 2 只;小鸡可以买  84 只。

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

# 用 while 循环做
xfs = 1
xz = 1
ys = 1
num1 = 0
print('可以有的组合为:')
while xfs * 15 <= 100:
    while xz * 2 <= 100:
        while ys * 5 <= 100:
            if xfs * 15 + xz * 2 + ys * 5 == 100:
                print('洗发水可以买 %d 瓶;香皂可以买 %d 个;牙刷可以买 % d 只。' % (xfs, xz, ys))
                num1 += 1
            else:
                ys += 1
        xz += 1
    xfs += 1
print('一共有 %d 种组合。' % num1)

# 用 for 循环做:
num1 = 0
print('可以有的组合为:')
for xfs in range(0, 100 // 15 + 1):
    for xz in range(0, 100//2 + 1):
        for ys in range(0, 100 // 5 + 1):
            if 15 * xfs + 2 * xz + 5 * ys == 100:
                print('洗发水可以买 %d 瓶;香皂可以买 %d 个;牙刷可以买 % d 只。' % (xfs, xz, ys))
                num1 += 1
print('一共有%d种组合' % num1)

运行结果:

可以有的组合为:
洗发水可以买 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 只。
一共有 44 种组合
上一篇下一篇

猜你喜欢

热点阅读