python基础习题
1.题目
使用for循环编写程序实现以下功能:计算1-1/3+1/5-1/7+…-1/99+…,结果保留2位小数。(2分)
题目内容:使用for循环编写程序实现以下功能:计算1-1/3+1/5-1/7+…-1/99+…。
输入格式:
输入该表达式的项数n。例如,如果输入2,则计算1-1/3;如果输入5,则计算1-1/3+1/5-1/7+1/9。
输出格式: 计算结果保留2位小数。
输入样例: 2
输出样例:0.67
输入样例:5
输出样例:0.83
时间限制:500ms内存限制:32000kb
a=int(input())
sum=0
k=-1
for i in range(1,a*2+1,2):
k*=-1
sum=(1/i)*k+sum
#print('%f'%(i)) print('%f'%(sum))'
print('%.2f'%(sum))
# range(start,end,step) step默认=1
#print("%f"%(sum))输出格式注意
5
0.83
2.题目
判断是否为偶数
m=int(input())
if m%2==0:
print('even number')
else:
print("old number")
6
even number
3.题目
绝对值输出
val=eval(input())#绝对值输出
if val<0:
val*=-1
print(val)
2.5
2.5
4.题目
求和1-n
n=eval(input())#求和1-n
i,sum=1,0
while i<=n:
sum+=i
i+=1
print(sum)
5
15
5.题目
求n!之和
n=eval(input())#求n!
i,rlt=1,1
while i<=n:
rlt*=i
i+=1
print(rlt)
3
6
6.题目
判断闰年
year=int(input())#判断闰年
if year%4==0 and year%100!=0:
print("yes")
elif year%400==0:
print("yes")
else:
print("no")
1900
no
7.题目
编写程序实现以下功能:对于数值x,如果x在区间(1,2]上,则输出x+2.5的值;如果x在区间[-1,1]上,则输出4.35x的值;如果x在区间[-2,-1)上,则输出x的值;如果x为其他值,则输出“invalid”。
输入格式:
一个数值。
输出格式:
计算结果值或invalid
输入样例:5
输出样例:invalid
输入样例:1
输出样例:4.35
输入样例:-1.5
输出样例:-1.5
输入样例:1.5
输出样例:4.0
时间限制:500ms内存限制:32000kb
num=eval(input())
if num<=2 and num>1:
num+=2.5
print(num)
elif num>=-1 and num<=1:
num*=4.35
print(num)
elif num>=-2 and num<-1:
print(num)
else:
print("invalid")
1
4.35
8.题目
编写程序实现以下功能:判断成绩的等级,90~100输出“A”,
8089输出“B”,7079输出“C”,
6069输出“D”,059输出“E”,
其他输出“invalid”。
grade=int(input())
if grade>=90 and grade<=100:
print("A")
elif grade>=80 and grade<=89:
print("B")
elif grade>=70 and grade<=79:
print("C")
elif grade>=60 and grade<=69:
print("D")
elif grade>=0 and grade<=59:
print("E")
else:
print("invalid")
90
A
9.题目
编写程序实现以下功能:计算1!+2!+…+n!
"""
编写程序实现以下功能:计算1!+2!+…+n!。
"""
num=int(input())
k=1#代表n!
sum=0
for i in range(1,num+1):
for j in range(i,i+1):#计算n! 1,2 k 1 2,3 k 2! 3 ,4 k 3!
k*=j
# print(k)
sum+=k
print(sum)
3
9
10.题目
编写程序实现以下功能:有n元人民币,其有10元、5元、1元3种面额,将所有可能的情况及可能情况的总数输出。
输入格式:一个整数。
输出格式:每一行输出一种情况,先输出10元的张数,再依次输出5元和1元的张数,各张数之间用一个英文逗号分开。
最后一行输出可能情况的总数。
m=eval(input())
count=0
#x,y,z分别代表10元,5元,1元
for x in range(m//10+1):
for y in range(m//5+1):
z=m-x*10-y*5
if x*10+y*5+z==m and z>=0:
print("%d,%d,%d"%(x,y,z))
count=count+1
print(count)#取订x,y的范围,剩下的便是z
20
0,0,20
0,1,15
0,2,10
0,3,5
0,4,0
1,0,10
1,1,5
1,2,0
2,0,0
9
m=eval(input())
#x,y,z分别代表10元,5元,1元
n=0
for x in range(m//10+1):
for y in range(m//5+1):
for z in range(m+1):
if x*10+y*5+z==m:
print("%d,%d,%d"%(x,y,z))
n=n+1
print(n)
20
0,0,20
0,1,15
0,2,10
0,3,5
0,4,0
1,0,10
1,1,5
1,2,0
2,0,0
9
11.题目
编写程序实现以下功能:计算m到n之间的所有水仙花数并输出(水仙花数是一个三位整数,其值与各位数字的立方和相等)。
输入格式
输入两个三位整数beg和end。
输出格式
如果beg到end之间存在水仙花数,则每行输出一个水仙花数。如果beg到end之间不存在水仙花数,则输出“not found”。
输入样例
100
370
输出样例
153
370
m=eval(input())
n=eval(input())
flag=1#查看是否有
for k in range(m,n+1,1):#k代表输入m-n之间的数
#分解k的三位
a=k//100
b=k%100//10
c=k%100%10
sum=a**3+b**3+c**3#计算三位的立方和
if k==sum:
print(k)
flag=0
if flag:
print("not found")
111
121
not found
12.题目:
素数判断
#输出1-n之间的素数
m=eval(input())
flag=1 #假如这个数刚开始是素数
for i in range(2,m+1):# i是1-m之间的数字 5
if i==2:
print(i)
continue
# print("数%d"%(i))
for j in range(2,i):#判断是否为素数 2-3 2-4 2-5
# print("j=%d"%(j))
if i%j==0:#不是素数,如果是素数,继续循环
flag=0
# print("no")
break
if flag:
print(i)
flag=1#flag 记得置1,还原初始值
10
2
3
5
7