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 种组合