python入门练习100题(二)

第十一题

题目: 输出100以内的素数
题解:

import os
result=[]
for i in range(2,101):
	x=int(i ** 0.5)
	for j in range(1,x+1):
		if i % j  == 0 and j != 1:
			break
	else:	
		result.append(i)
print("100以内的素数为:",result)
os.system("pause")

第十二题

题目: 球10000以内的水仙花数(水仙花数即这个数的各位数字立方和等于这个数)
题解:

import os
result=[]
for i in range(100,1000):
	x = i % 10
	y = int((i %100) / 10)
	z= int(i / 100)
	if x**3 + y**3 + z**3 ==i:
		result.append(i)

print("1000以内的水仙花数有:",result)
os.system("pause")

第十三题

题目:输入一个数,分解他的质因数
题解

import os
n = int(input("请输入一个正整数:"))
print("%d=" % n,end="")
for i in range(2,n+1):
	while n != i:
		if n %i ==0:
			print (i,end="*")
			n=int(n/i)
		else:
			break
print(n,end="")

os.system("pause")

第十四题

题目:使用嵌套条件运算符输出学生成绩等级。学生成绩等级划分如下:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

题解:

import os
n = int(input("请输入一个100以内的分数:"))
res = ('A' if n > 89 else 'B' if n>59 else 'C' )
print("成绩%d对应的等级为:%s" %(n,res))

os.system("pause")

第十五题

题目: 输入一行字符,分别统计它的数字、字母、空格和其他字符的个数
题解

import os
n = input("请输入一串字符:")
num = 0
char = 0
space = 0
other = 0
for i in n :
	if i.isspace():
		space+=1
	elif i.isalpha():
		char+=1
	elif i.isnumeric():
		num+=1
	else:
		other+=1
print("字符个数为:%d,数字个数为%d,空格个数为%d,其他字符个数为%d" %(char,num,space,other))
os.system("pause")

第十六题

题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
题解

import os
n = int(input("想要几个数相加:"))
a = int(input("相加数为:"))
temp = a
res = 0
for i in range(n) :
	res+= temp
	if i == n-1:
		print("%d" % temp ,end="")
	else:
		print("%d+" % temp ,end="")
	temp = 10*temp +a
print("=%d" % res)
os.system("pause")

第十七题

题目: 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程判断一个数是不是完数。
题解

import os
n = int(input("请输入一个整数:"))
m = int(n ** 0.5)
res = [1]
index=1
sum =0
for i in range(2,m+1):
	if n % i ==0 :
		res.insert(index,i)
		index+=1
		res.insert(index,int(n/i))
for j in range(len(res)):
	sum +=res[j]
	
print("%d的因子如下:" % n ,res)
if sum == n :
	print("所以 %d 是完数!" % n)
else:
	print("所以 %d 不是完数!" % n)
os.system("pause")

第十八题

题目:一球从指定高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
第10次落地时,共经过多少米?第10次反弹多高?
题解:

import os
height = int(input("请输入起始高度:"))
length = height
end = height 
for i in range(9):
 	end  = end / 2
 	length += end * 2

print("第10次落地时,一共经过%f米" % length)
print("最后一次反弹高度为%f米" % end)
os.system("pause")

第十九题

题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

题解

import os
num = 1
for i in range(9):
	num = 2*num+2

print("第一天一共=摘了%d个桃子!" % num)
os.system("pause")

第二十题
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
题解

import os
a=1
b=2
Sum=0
for i in range(20):
	Sum +=b/a
	temp=b
	b+=a 
	a=temp

print("第20次相加的结果为%f" % Sum)
os.system("pause")

猜你喜欢

转载自blog.csdn.net/qq_45590334/article/details/128429978