day05-作业
1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)
#控制台输入年龄,根据年龄输出不同的提示
#(例如:老年人、青壮年、成年人、未成年、儿童)
age = int(input('请输入你的年龄:'))
while age >200 or age < 0:
print('你输入的年龄超出正常人的年龄范围,请重新输入:')
age = int(input('请输入你的年龄:'))
if age <= 14 and age >= 0:
print('你是一个儿童!')
elif age >14 and age < 18:
print('你是一个未成年!')
elif age >= 18 and age <=29:
print('你是一个成年人!')
elif age > 29 and age <= 44:
print('你是一个青壮年!')
else:
print('你是一个老年人!')
结果:
2.计算5的阶乘 5!的结果是
#计算5的阶乘5!的结果
#1*2*3*4*5
n = int(input('请输入你想要计算的阶乘n:'))
value = 1
for x in range(1,n+1):
value *= x
print(value)
结果:
3.求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。
#求1+2!+3!+···+20!的和
#分析:此程序只是把累加变成了累乘
'''
1、先将要求的阶乘数取出
2、通过for循环求出其阶乘的结果
3、再通过外层for循环求出阶乘的和
'''
sum1 = 0 #阶乘的和
value = 1 #每个阶乘对应的值
for x in range(1,21):
value = 1 #每个阶乘对应的值
for y in range(1,x+1):
value *= y
else: #循环完成后将值加来
sum1 += value
print('结果为:%d'%(sum1))
结果:
4.计算 1+1/2!+1/3!+1/4!+...1/20!=?
#计算1+1/2!+1/3!+1/4!+···+1/20!
'''
分析:1、首先通过for循环求出分母的值;确定分母
2、再分别确定每一项的值
3、计算和
'''
sum1 = 0
for x in range(1,21):
den = 1 #表示分母
for y in range(1,x+1):
den *= y
value = 1/den #每一项的值
else: #循环完成后将值加来
sum1 += value
print('结果为:%f'%(sum1))
结果:
5.循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加的结果。
#循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加结果
'''
分析:1、首先创建一个死循环,实现循环输入;
2、创建变量输入数据
3、对变量进行判断,如果大于0就与和相加;
如果小于0,就提示重新输入;
如果等于0,就跳出循环,结束循环操作
4、最后打印结果
'''
sum1 = 0
while True:
number = float(input('请输入一个数:'))
if number > 0:
sum1 += number
elif number < 0:
print('你输入的数小于0,请输入一个大于0的数!')
continue
else:
print('结果为:%f'%(sum1))
break
结果:
6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。
#求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
#例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制;
'''
分析:1、创建两个由键盘输入的变量,一个确定a代表的数字;一个确定有几个数相加
2、通过循环计算出每一项的值
3、最后求出和
'''
a = input('确定a的值:')
n = int(input('确定所求数的个数:'))
sum1 = 0
for x in range(1,n+1):
value = int(a*x)
sum1 += value
print(sum1)
结果:
7.输入三个整数x,y,z,请把这三个数由小到大输出。
#输入三个整数x,y,z,请把这三个数有小到大输出
'''
分析:1、连续输入3个数;
2、两两比较数的大小;
3、按照要求输出结果;
'''
# min_num = int(input('第1个数:'))
# for x in range(2,4):
# num = int(input('第%d个数:'%(x)))
# if num < min_num:
# min_num = num
# print('最小值:%d'%(min_num))
num_1 = int(input('输入第一个数:'))
num_2 = int(input('输入第二个数:'))
num_3 = int(input('输入第三个数:'))
temp = 0 #作为替换用
if num_1 > num_2:
temp = num_1
num_1 = num_2
num_2 = temp
if num_1 > num_3:
temp = num_1
num_1 = num_3
num_3 = temp
if num_2 > num_3:
temp = num_2
num_2 = num_3
num_3 = temp
print('从小到大的顺序为:%d,%d,%d'%(num_1,num_2,num_3))
结果:
8.控制台输出三角形
a.根据n的值的不同,输出相应的形状
n = 5时 n = 4
***** ****
**** ***
*** **
** *
*
b.根据n的值的不同,输出相应的形状(n为奇数)
n = 5 n = 7
* *
*** ***
***** *****
*******
#直角三角形
n = int(input('请输入一个大于0的整数:'))
while n >= 1:
print('*'*n)
n -= 1
print('---------------')
#等腰三角形
i = int(input('请输入一个奇数:'))
for x in range(1,i+1,2):
print(('*'*x).center(i,' ')) #调用字符串居中方法函数
结果:
9.输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
#输出9*9口诀
'''
分析:分行与分列考虑,共9行9列,i控制行,j控制列
'''
for i in range(1,10):
for j in range(1,i+1):
print('%d'%(i),'X','%d'%(j),'=','%2d'%(i*j), end = ' ')
else:
print()
结果:
10.这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?
#这是经典的"百马百担"问题,有一百匹马,驮100担货,大马驮3担,中马驮2担,两只小马驮一担,问有大中小马各几匹;
'''
分析:1、分别假设大中小马有x,y,z匹
2、需满足x+y+z=100;3x+2y+0.5z=100
注意:x,y,z都是整数;
3、明确x,y,z的范围,3x<=100;2y<=100;0.5z<=100;z<=100
4、求出结果
'''
for x in range(0,34):
for y in range(0,51):
for z in range(0,101,2):
if x + y + z == 100 and 3*x + 2*y + int(0.5*z) == 100:
print('大马有%d匹,中马有%d匹,小马有%d匹'%(x,y,z))
结果:
11.我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的: 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。
#我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,
#题意是这样的: 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。
#现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。
'''
分析:1、假设公鸡x只、母鸡y只、雏鸡z只
2、确定x,y,z的值满足的条件:x + y + z = 100;5x + 3y + 1/3z = 100
3、确定x,y,z的范围:5y<=100;3z<=100;z<=100;且都是整数
4、利用循环和if求出结果
'''
for x in range(0,21):
for y in range(0,34):
for z in range(0,101,3):
if x + y + z == 100 and 5*x + 3*y + int(1/3*z) ==100:
print('公鸡有%d只,母鸡有%d只,雏鸡有%d只'%(x,y,z))
结果:
12.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些购买结合?
#小明单位发了100元的购物卡,小明到超市买三类洗化用品,
#洗发水(15元),香皂(2元),牙刷(5元)。
#要把100元整好花掉,可如有哪些购买结合?
'''
#小明单位发了100元的购物卡,小明到超市买三类洗化用品,
#洗发水(15元),香皂(2元),牙刷(5元)。
#要把100元整好花掉,可如有哪些购买结合?
'''
分析:1、假设可以买洗发水x,香皂y,牙刷z
2、确定条件:15x+2y+5z=100;15x<=100;2y<=100;5z<=100
3、打印结果
'''
count = 0
for x in range(0,100//15+1):
for y in range(0,100//2+1):
for z in range(0,100//5+1):
if 15*x + 2*y + 5*z == 100:
print('可以选择购买洗发水%d瓶,香皂%d块,牙刷%d支'%(x,y,z))
count +=1
print('一共有%d种方案'%(count))
结果: