【程序11】
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
分析:依次判断每一个三位数,其个位数立方加上十位数立方加上百位数立方等于其本身
获取个位数:i % 10
获取十位数:i // 10 % 10
获取百位数:i // 100 % 10
print('水仙花数有:', end=' ')
for i in range(100, 1000):
if (i // 100) ** 3 + (i // 10 % 10) ** 3 + (i % 10) ** 3 == i:
print(i, end=' ')
【程序12】
题目:将一个正整数分解质因数。例如:输入90, 打印出90 = 2 * 3 * 3 * 5
num = int(input('请输入一个正整数:'))
print(f'{num} =', end=' ')
for i in range(2, num+1):
while num != i:
if num % i == 0:
print(str(i), end=' ')
print('*', end=' ')
num = num // i
else:
break
print('%d' % num)
【程序13】
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示 。
score = int(input('输入成绩:'))
if score < 0 or score > 100:
print('输入的成绩无效!')
elif score >= 90:
print('该学生的成绩为: A')
elif score >= 60:
print('该学生的成绩为: B')
else:
print('该学生的成绩为: C')
【程序14】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
s = input('输入一行字符:')
count_c = 0
count_n = 0
count_s = 0
count_o = 0
for i in s:
if i.isalpha():
count_c += 1
elif i.isdigit():
count_n += 1
elif i.isspace():
count_s += 1
else:
count_o += 1
print(f'这串字符中有英文字母 {count_c} 个,数字 {count_n} 个,空格 {count_s} 个,其它字符 {count_o} 个。')
【程序15】
题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
n = input('输入一个数字:') # 就是题目中的a
num = int(input('输入一个正整数:')) # 控制几个数相加
lst = []
print('s = ', end='')
for i in range(1, num+1):
if i != num:
print(n * i, end=' ')
print('+', end=' ')
lst.append(int(n * i))
else:
print(n * i, end=' ')
lst.append(int(n * i))
print('=', end=' ')
print(sum(lst))
【程序16】
题目:一个数如果恰好等于它的真因子之和,这个数就称为“完数”。例如6=1+2+3.
编程找出1000以内的所有完数。
print('1000以内的完数有:', end=' ')
for i in range(1, 1001):
lst = []
for j in range(1, i+1):
if i == j:
if i == sum(lst):
print('%d' % sum(lst), end=' ')
elif i % j == 0:
lst.append(j)
【程序17】
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少 米?第10次反弹多高?
s = 100
lst = [100]
for i in range(1, 11):
s -= s / 2 # 每一次落下后反弹的高度
lst.append(s)
lst.pop()
print('第十次落地时,共经过 %f 米' % sum(lst))
print('第十次反弹的高度为 %f 米' % s)
【程序18】
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,只剩下一个桃子了。求第一天共摘了多少个桃子?
n = 1
for i in range(1, 10):
n = (n + 1) * 2
print(n)
【程序19】
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
lst1 = ['c', 'a', 'b']
lst2 = ['x', 'y', 'z']
dict = {}
for i in lst1:
for j in lst2:
if i == 'c' and j != 'x' and j != 'z':
dict['c'] = j
lst2.remove(j)
break
elif i == 'a' and j != 'x':
dict['a'] = j
lst2.remove(j)
break
else:
dict['b'] = j
print('三队赛手的名单:{}'.format(dict))
for i in range(1, 8, 2):
s = '*' * i
print('{:^7}'.format(s))
for i in range(5, 0, -2):
s = '*' * i
print('{:^7}'.format(s))