提高题:
1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)
age = int(input('请输入年龄0~100内'))
while True:
if 0 <= age <= 100:
break
else:
age = int(input('请输入年龄0~100内'))
if age <= 12:
print('儿童')
elif age <= 18:
print('未成年')
elif age <= 25:
print('成年人')
elif age <= 50:
print('青壮年')
else:
print('老年人')
2.计算5的阶乘 5!的结果是
num = 1
for x in range(1,6):
num *= x
print('%d! = %d' % (x,num) )
3.求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。
sum1 = 0
for i in range(1,21):
temp = 1
for j in range(1,i+1):
temp *= j
sum1 += temp
print(sum1)
4.计算 1+1/2!+1/3!+1/4!+...1/20!=?
sum1 = 0
for i in range(1,21):
denominator = 1
for j in range(1,i+1):
denominator *= j
sum1 += 1/denominator
print(sum1)
5.循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加的结果。
sum1 = 0
n = int(input('请输入一个大于0的数,输入0结束输入'))
while True:
if n != 0 & str(n).isdigit():
sum1 += n
n = int(input('请继续输入需要求和的数,输入0结束输入'))
else:
break
print('结果为:%d'% (sum1))
6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。
sum1 = 0
n = int(input('请输入一个数,作为循环次数'))
m = int(input('请输入一个数(对a求和)'))
for i in range(1,n+1):
temp = ''
for j in range(1,i+1):
temp += str(m)
if i == n:
print('%s' % (temp), end = '')
else:
print('%s' % (temp), end = '+')
sum1 += int(temp)
print(' = %d'% (sum1))
7.输入三个整数x,y,z,请把这三个数由小到大输出。
x = int(input('请输入一个整数'))
y = int(input('请再输入一个整数'))
z = int(input('请再再输入一个整数'))
max1 = x
if y > max1:
max1 = y
if z > max1:
max1 = z
print('max = %d' % (max1))
8.控制台输出三角形
a.根据n的值的不同,输出相应的形
n = 5时 n = 4
***** ****
**** ***
*** **
** *
*
解:a题
row = int(input('请输入一个大于0数'))
while row > 0:
c = 1
while c <= row:
print('*',end="")
c += 1
print('')
row -= 1
b.根据n的值的不同,输出相应的形状(n为奇数)
n = 5 n = 7
* *
*** ***
***** *****
*******
n = int(input('请输入一个大于0的奇数'))
row = int(n/2)+1
for x in range(1,row+1):
print((row - x)*' ' + (2*x-1)*'*')
9.输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
for i in range(1,10):
for j in range(1,i+1):
print('%d*%d=%d' % (i,j,i*j),end=" ")
print('')
10.这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?
方法一:
for x in range(1,33):
for y in range(1,50):
z = 100 - x - y
if z % 2 == 0 and 3*x + 2*y + 1/2*z == 100:
print('大马:%d 中马:%d 小马:%d' % (x,y,z))
方法二:
x = 1
y = 1
while x < 33:
y = 1
while y < 50:
z = 100 - x -y
if z % 2 == 0 and 3*x + 2*y + 1/2*z == 100:
print('大马:%d 中马:%d 小马:%d' % (x,y,z))
y += 1
x += 1
11.我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的: 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。
方法一:
for x in range(1,20):
for y in range(1,33):
z = 100 - x - y
if z % 3 == 0 and x*5 + y*3 + 1/3*z == 100:
print('公鸡:%d 母鸡:%d 小鸡:%d' % (x,y,z))
方法二:
x = 1 #大
y = 1 #中
while x <= 20:
y = 1
while y <= 33:
z = 100 - x - y
if z % 3 == 0 and x*5 + y*3 + 1/3*z == 100:
print('公鸡:%d 母鸡:%d 小鸡:%d' % (x,y,z))
y += 1
x += 1
12.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些购买结合?
for x in range(1,6):
for y in range(1,50):
z = 100 - x - y
if z % 5 == 0 and 15*x + 2*y + 2*z:
print('洗发水:%d 香皂:%d 牙刷:%d' % (x,y,z))