1.编程题:
1.输入一个3位数,输出个、十、百位数。
m=int(input("请输入一个三位数:"))
bai=m//100
shi=m//10%10
ge=m%10
print("个、十、百位上的数字分别是{}、{}、{}".format(ge,shi,bai))
2.编写程序,从键盘输入一个学生期末考试每门课程的成绩,具体包括语文成绩、数学成绩和英语成绩,然后输出这3门课程的平均成绩,要求平均分保留1位小数。
a=int(input("语文成绩为:"))
b=int(input("数学成绩为:"))
c=int(input("英语成绩为:"))
m=(a+b+c)/3
print("平均分:{:.1f}".format(m))

3.产生两个两位随机整数的加法运算练习题目
python题库,期末复习,编程题
import random
a=random.randint(10,99)
b=random.randint(10,99)
print("{}+{}=".format(a,b))

4.从键盘输入一个十位数,分别将其转换为二进制数、八进制数和十六进制数后输出。
m=int(input("请输入一个十位数:"))
print("二进制数:{:b}".format(m))
print("八进制数:{:o}".format(m))
print("十六进制数:{:x}".format(m))

5.编写程序,从键盘输入圆的半径,计算并输出圆的周长和面积,圆的周长和面积都保留2位小数。
import math
r=int(input("圆的半径:"))
s=math.pir2
area=math.pirr
print("圆的周长为{:.2f},面积为{:.2f}".format(s,area))

6.编写程序,输入三角形的3条边长,求三角形面积area,结果保留2位小数。
a,b,c=eval(input("请输入三个数:"))
s=(a+b+c)/2
area=(s(s-a)(s-b)*(s-c))**0.5
if a+b<c or a+c<b or b+c<a:
print("三条边不能组成三角形!")
elif a+b>c and a+c>b and b+c>a:
print("三角形的面积为:{:.2f}".format(area))

7.输入一个三位数,输出其逆序数,例如,输入123,输出321.
a=int(input("请输入一个三位数:"))
print("这个三位数的逆序数是",a%10100+a%100//1010+a//100)

8.从键盘输入一个以秒为单位的数,输出时、分、秒。
a=input("请输入时间(秒):")
print("你输入的时间是:"+str(a)+"秒")
b=int(a)//3600
c=int(a)%3600//60
d=int(a)%3600%60
print(str(a)+"秒等于"+str(b)+"时"+str(c)+"分"+str(d)+"秒")

9.编写程序,从键盘呼入3条边,判断是否能够构成三角形,如果能,则提示可以构成三角形,并输三角形面积;如果不能,则提示不能构成三角形。
a,b,c=eval(input("请输入三个数:"))
s=(a+b+c)/2
area=(s(s-a)(s-b)*(s-c))**0.5
if a+b<c or a+c<b or b+c<a:
print("三条边不能组成三角形!")
elif a+b>c and a+c>b and b+c>a:
print("三角形的面积为:{}".format(area))

10.从键盘输入一个三位正整数,判断它是否为水仙花函数。水仙花数是指一个 3 位数,它的各位数字立方和等于该数本身。
for num in range(100,1000):
a=num//100
b=num//10%10
c=num%10
if(a3+b3+c**3==num):
print(num,end=" ")

11.求方程ax2+bx+c=0的根,有实数根输出结果,如没有实数根则输出 “该方程无实根”。
import math
def root(a,b,c):
x1=0
x2=0
z=b*2-4ac
if z<0:
return'该方程无实根'
elif z==0:
x=-b/(2
a)
return x
else:
x1=(-b+math.sqrt(z))/(2a)
x2=(-b-math.sqrt(z))/(2
a)
return x1,x2
a,b,c=eval(input('请输入a,b,c的值,用逗号分隔'))
print('结果为:{}'.format(root(a,b,c)))

12.输入一年份,判断该年份是否是闰年并输出结果。
a=int(input("请输入年份:"))
if (a%4==0 and a%100!=0) or (a%400==0):
print("{}是闰年".format(a))
else:
print("{}不是闰年".format(a))

13.编写程序,输入年月,输出该月的天数。
import calendar
year = input("请输入年份:")
month = input("请输入月份:")
year = int(year)
month = int(month)
monthRange = calendar.monthrange(year,month)
print("%d年%d月有%d天" % (year,month,monthRange[1]))

14.据说一个人的标准体重应该是其身高(单位:厘米)减去 100、再乘以 0.9 所得到的公斤数。真实体重与标准体重误差在 10%以内都是完美身材(即|真实体重−标准体重| < 标准体重×10%)。请问你是否完美。(此题要用到求绝对值的函数abs()函数)。
m=int(input("请输入您的身高:"))
b=int(input("请输入您的体重:"))
n=(m-100)0.9
a=abs(b-n)
if a<n
0.1:
print("您是完美身材")
else:
print("您不是完美身材")

15.输入学生的成绩,根据成绩输出相应的等级,85分以上位优秀,70到84为良好,60到69为及格,60分以下为不及格。
score=int(input("请输入成绩:"))
if score>=85:
print("优秀")
elif score>=70:
print("良好")
elif score>=60:
print("及格")
else:
print("不及格")

16.新建一Python程序,利用random函数生成一个0到9之间的随机一位数并将其赋值给变量a,然后从键盘输入一个0到9之间数和a进行比较,如果相等则显示“恭喜你,你猜对了”,如果偏大则显示“你输入的数据偏大”,输入偏小则显示“你输入的数据偏小”。最后输出随机数a的值。
import random
answer=random.randint(0,9)
guess=int(input("请输入您的猜测:"))
if guess>answer:
print("你输入的数据偏大")
elif guess<answer:
print("你输入的数据偏小")
else:
print("恭喜!你猜对了!")

17.某企业发放的奖金是根据利润提成的。利润低于或等于10万元时,奖金可提12%,利润高于 10 万元,低于 20 万元时,高于 10 万的部分,可提成 8.5%;20 万元至40 万元之间时,高于 20 万元的部分,可提成 6%;40 万至 60 万之间时,高于 40万元的部分,可提成 4%;60 万至 100 万之间时,高于 60 万元的部分,可提成2.5%,高于 100 万元时,超过 100 万元的部分按 1%提成,求应发放奖金的总数。利润由用户自己通过键盘输入,最后输出奖金,奖金以万元为单位而且保留2位小数。
x = float(input("请输入利润:"))
if x<=10:
y = x.12
elif x<20:
y = 10
.12+(x-10).085
elif x<40:
y = 10
.12+10.085+(x-20).06
elif x<60:
y = 10.12+10.085+20.06+(x-40).04
elif x<100:
y = 10.12+10.085+20.06+20.04+(x-60).025
else:
y = 10
.12+10.085+20.06+20.04+40.025+(x-100)*.01
print('利润={},奖金={:.2f}万元'.format(x, y))

18.计算出租车费用。假设某城市的出租车计费范式是:3km内(不含3KM)起步价为10元,3到7km(不含7km)按1.6元/km计费,不足1km按1km计费;超过7km按2.4元/km计费,不足1km按1km计费。编写程序,输入行驶的路程(以km为单位),然后输出出租车费用。
Distance=int(float(input”请输入路程(km):”)))
If distance<3:
Fee=10
Else distance<7:
Fee=10+(distance-3+1)1.6
Else:
Fee=10+4
1.6+(distance-7+1)*2.4
Print(“顾客应付的费用为{}元”.format(round(fee,1)))
19.编写程序,从键盘输入用户名和密码,要求先判断用户名,暂定用户名为admin, 如果用户名不正确,则直接提示用户名输入有误;如果用户名正确,则进一步判断密码,暂定密码为“123456”并给出判断结果的提示。
name = "admin"
key = "123admin"
k = 1
name1 = input("请输入用户名:")
key1 = input("请输入密码:")
if name1 == name and key1 == key:
print("恭喜您,登录成功!")
else:
print("账号或密码输入错误,请重新输入!")
name1 = input("请输入用户名:")
key1 = input("请输入密码:")
if name1 == name and key1 == key:
print("恭喜您,登录成功!")
else:
print("账号或密码输入错误,请重新输入!")
name1 = input("请输入用户名:")
key1 = input("请输入密码:")
if name1 == name and key1 == key:
print("恭喜您,登录成功!")
else:
print("今天输入已经超3次,请明天重试!")

20.输入n,生成n个0到100的正整数,统计奇数和偶数各有多少。
import random
n=int(input("请输入一个数="))
os=0
js=0
for i in range(1,n+1):
a=random.randint(0,100)
print("生成的随机数是",a)
if a%2==0:
os+=1
else:js+=1
print("偶数有{},奇数有{}".format(os,js))
21.编写程序,用下列公式计算y的近似值,直到最后一项的绝对值小于10-3为止。
t=n=flag=1
y=0
while abs(t)>1e-3:
    y=y+t
    flag=-flag
    n=n+2
    t=flag/n
print("y=",y)
22.编程程序,统计并输出1到1000以内能同时被3和7整除的数字。
sun=0
for i in range(1,1001):
if i%3==0 and i%7==0:
sun+=1
print(i,end=" ")
print("\n总共有{}个数字".format(sun))
23.编写程序,输出如下图所示的5行星号金字塔图案。

for i in range(1, 6):
print(" "(5-i),''(2i-1))

24.编写程序,输出如下图所示的金字塔图案。

for i in range(1, 6):
print(" "(5-i), chr(64+i)(2*i-1))

25.编写程序,输入n(n<=9),输出以下的图形。

n=int(input('输入n='))
for i in range(1,n+1):
print(' '(n-i),'{}'.format(i)(2*i-1))
26.编写程序,从键盘输入一个整型数字,判断该数字是否数素数。
n=int(input("请输入一个正整数:"))
for i in range(2,n):
if n%i==0:
print(n,"不是素数!")
break
else:
print(n,"是素数!")

27.编写程序,生成一个10到99之间的随机二位正整数,然后判断该数是否数素数。
import random
a=random.randint(10,99)
print("随机数是",a)
for i in range(2,a):
if a%i==0:
print(a,"不是素数")
break
else:print(a,"是")
28.求100到200之间的全部素数和数量,并按一行10个输出。
K=0
Print(“100-200的全部素数有:”)
For m in range(100,200):
For i in range(2,m):
If m%i==0:break
Else:
Print(m,end=””)
K+=1
If k%10==0:print()
Print(“\n共{}个。”.format(k))
29.从键盘输入正整数n,然后输出n之后的第一个素数。
n = int(input('请输入一个数:'))
m=n+1
while True:
for i in range(2, m):
if m%i==0:
m+=1
break # 除尽,则不是素数后跳出(非正常)
else:
print("{}之后的第一个素数:{}".format(n,m))
break

30.某品牌计算机的第1年销售数量为500台,假设平均每年的销售比上一年增加10%,编写程序,计算大约经过几年才能使得总销售量达到40000台。
x = 500
m=0
while x<40000:
x=x*1.1
m+=1
print("经过{}年才能使得总销售量达到40000台".format(m))

31.有1分、2分、5分硬币若干枚,从中取出20枚硬币使其总值为60分,求出取法的数量以及每一种取法的1分、2分、5分硬币个数。
n=0
for a in range(0,21):
for b in range(0,21):
c=20-a-b
if a1+b2+c*5==60:
n+=1
print("1分:{}\t2分:{}\t5分:{}".format(a,b,c))
print("共有{}种取法".format(n))

32.公鸡 5 文钱一只,母鸡 3 文钱一只,小鸡 3 只一文钱,用 100 文钱买 100 只鸡,其中公鸡、母鸡、小鸡都必须要有,问公鸡、母鸡、小鸡要买多少只刚好凑足 100 文钱?
for i in range(1,21):
for j in range(1,34):
for k in range(1,301):
if 5i+3j+k/3==100 and i+j+k==100:
print("公鸡有{}只,母鸡有{}只,小鸡有{}只".format(i,j,k))
33.编写程序,从键盘输入一个正整数并判断该正整数的类别;其所有因数之和等于数字本身的数称为完全数;因数之和比数字本身大的数称为丰沛数;因数之和比数字本身小的数称为不足数。
n=int(input("请输入一个正整数="))
sun=0
for i in range(1,n+1):
for k in range(1,n+1):
if ik==n:
print("因数有{},{}".format(i,k))#方便理解,可删除
sun=i+k
print(sun)#方便理解,可删
if sun>n:
print("该数为丰沛数")
elif sun<n:
print("该数为不足数")
else:print("该数为完全数")
34.预从键盘输入10个整数,如果这10个整数都大于0,则输出10个整数的乘积,如果中途输入的整数为0,程序则退出循环,终止执行。
s=1
for j in range(10):
n = int(input('请输入数:'))
if n<=0: # 终止执行
break
else:
s
= n
else:
print("乘积={}".format(s))

35.编写程序,生成1个0到100之间的随机数,然后让用户尝试猜测这个数字。程序给出猜测方向(更大或者更小)的提示,用户继续猜测,直到用户猜测成功或者输入一个0到100以外的数字退出游戏。
import random
answer=random.randint(10,99)
guess=int(input("请猜数:"))
n=1
while n<3 and answer!=guess:
n+=1
if guess<answer:
print("太小")
else:
print("太大")
guess=int(input("请继续猜数:"))
else:
if guess==answer:
print("恭喜!你猜中了!")
else:
print("遗憾啊!3次都没猜中!随机数是{}".format(answer))

36.输入一个字符串,每次去掉最后面的字符并输出.
str = "abcde"

for i in range(-1,-len(str),-1):
print i

37.输入一行文字,判断这句话是不是回文语句。回文语句是指正读和倒读都相同的句子。例如“上海自来水来自海上”。
n=input("请输入一句话:")
if n==n[::-1]:
print("回文")
else:print("不是回文")

38.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
s=input("请输入一行字符:")
zm=0
kg=0
sz=0
qt=0
for i in s:
if i.isalpha():
zm+=1
elif i.isdigit():
sz+=1
elif i.isspace():
kg+=1
else:
qt+=1
print(zm,kg,sz,qt)

39.从键盘输入几个数字,用逗号分隔,求这些数字之和。
s=input("请输入几个数字(以逗号间隔):")
s1=s.split(",")
print(s1)
sum=0
for i in s1:
sum+=float(i)
print(sum)
40.将一句英文句子单词顺序倒序输出,但是不改变单词结构。例如:’I am a beautiful girl’,输出为’girl beautiful a am I’ 。提示:split(),切片,join()。
n=input("请输入英文句子:")
s=n.split()
a=s[::-1]
print(" ".join(a))

41.从键盘输入一行英文句子,输出其中以元音字母开头的单词。
a = []
for i in range(10):
b = input('请输入第'+str(i+1)+'个单词:')
if b[0].lower() in ['a', 'i', 'o', 'e', 'u']:
a.append(b)
for i in a:
print(i)

42.编写程序,生成Fibonacci数列前20项,并把这些数字存放在列表中。
fibo = [1,1]   
for i in range(18):  
fibo.append(fibo[-1] + fibo[-2])
print(fibo)
43.6是一个幸运的数字,输入n后,求幸运数之和:6+66+666+…….最后一项n个6,n<=10。
n = int(input("n="))
Sum = sum([int(i*"6") for i in range(1, n+1)])
print("幸运数之和={}".format(Sum))

44.产生10个二位数并输出,求其中的最大数、最小数及所在位置,并求出0个数的平均值。
import random
s=[random.randint(10,99)for i in range(0,10)]
print("产生的数:",s)
a=max(s)
ak=s.index(a)
b=min(s)
bk=s.index(b)
c=sum(s)/10
print("最大的数是:{} 位置是第{}个\n最小的数是:{} 位置是第{}个\n平均值是:{:.2f}".format(a,ak,b,bk,c))

45.输入1个字母标识符,计算标识符中各个字母的数值之和,其中A=a=1,B=b=2……..,Z=z=26。例如:“Lucy”的数值为12+21+3+25=61。
s = input("请输入字母标识符:")
Sum=0
for c in s:
if "a"<=c<="z":
Sum += ord(c) - ord("a") + 1
elif "A"<=c<="Z":
Sum += ord(c) - ord("A") + 1
print("各个字母的数值之和=",Sum)

46.新建一Python程序,利用循环产生16个随机二位正整数,然后将16位随机正整数中 偶数存放在even列表中,奇数存放在odd列表中,然后分别将even和odd列表打印。最后输出odd列表的最大值、最小值和所有元素之和。
import random
even=[]
odd=[]
print("随机产生的16个两位数是:")
for i in range(16):
x=random.randint(10,99)
print(x,end=" ")
if x%2==0:
even.append(x)
else:
odd.append(x)
print("even:",even)
print("odd",odd)
print("even max{},min{},sum{}".format(max(even),min(even),sum(even)))
print("odd",odd)
print(max(odd),min(odd),sum(odd))

47.编写程序,生成50个0-10之间的随机整数存放在list1列表中,按每行10个元素的格式输出list1列表,利用count方法统计每个元素出现的次数,并将统计结果进行输出。
import random
n = 50
list1 = [random.randint(0,10) for i in range(n)]
for i in range(len(list1)):
print(list1[i],end="\t")
if (i+1) %10==0:
print()
dic = {}.fromkeys(list1,0)
li_keys = dic.keys()
for key in li_keys:
print("{}:次数:{}".format(key, list1.count(key)))

48.将列表s=[9,7,8,3,2,1,5,6]中的偶数变成它的平方,奇数保持不变。
s=[9,7,8,3,2,1,5,6]
print("原数据是:",s)
s1=[]
for i in range(len(s)):
if s[i]%2==0:
s1=s1+[s[i]**2]
else:
s1=s1+[s[i]]
print("转换结果是:",s1)

49.产生30个1位随机数,去除重复元素,保持原有顺序。
import random
s=[]
s1=[]
for i in range(30):
s.append(random.randint(0,9))
print(s)
for i in s:
if i not in s1:
s1.append(i)
print(s1)
50.编写程序,生成包含50个随机2位正整数的列表,然后删除其中所有的奇数。
import random
a=range(1,100,1)
b=random.sample(a,50)
print(b)
c=b[::]
for i in b:
if i%2!=0:
c.remove(i)
b=c
print(b)

51.编写程序,生成20个随机2位正整数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果,但原列表的列表元素排序保持不变。
import random
n1=[random.randint(0,100) for i in range(20)]
t1=tuple(n1)
print("产生的20个随机数元组为:\n",t1)
q=n1[:10]
h=n1[-10:]
q.sort(reverse=False)
h.sort(reverse=True)
print("排序后的20个随机数的元组为:\n",tuple(q+h))

52.编写程序,生成一个包含20个随机2位正整数的列表,然后对其中偶数下标的元素进行降序排序,奇数下表的元素不变。
import random

20个数

li = [random.randint(10,99) for i in range(20)]
print("运算前的列表:\n{}".format(li))
tli = []
for i in range(len(li)):
if i%2==0: # 偶数下标
tli.append(li[i]) # 添加
tli.sort(reverse=True) # 降序
j=0
for i in range(len(li)):
if i%2==0: # 偶数下标
li[i] = tli[j]
j+=1
print("运算后的列表:\n{}".format(li))

53.创建由 Monday--Sunday的7个值星期一--星期日组成的字典,输出键列表、值列表及键值列表。
dict1={'星期一':'Monday','星期二':'Tuesday','星期三':'Wednesday','星期四':'Tuesday','星期五':'Friday','星期六':'Saturday','星期日':'Sunday'}
print('键列表:',list(dict1.keys()))
print('值列表:',list(dict1.values()))
print('键键列表:',list(dict1.items()))
54.输入1行英文句子,统计各个单词出现的次数。
text = input("请输入一个句子:").lower().split()
dictext = {}.fromkeys(text, 0)
for word in text:
dictext[word] += 1
print("{}".format(dictext))

55.设计一个字典,并编写程序,用户输入内容作为键,然后输出字典中对应的值,如果用户输入的键不存在,则输出“你输入的键不存在!”。
d = {'Mikey':'1','Tom':2,'Jerry':3,'Peter':4}
a = input("请输入键:")
print (d.get(a,"你输入的键不存在"))

56.输入年月日,判断这一天是这一年的第几天。
d1={1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30, 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31}
y,m,d=eval(input('请输入年、月、日,用逗号分隔'))
day=0
if (y%4==0 and y%100!=0) or y%400==0:
d1[2]=29
if m==1:
day=d
else:
for j in range(1,m):
day+=d1[j]
day+=d
print("{}年{}月{}日是该年的第{}天".format(y,m,d,day))

57.编写函数area,求圆面积。
Import math
def area(a):
s=aamath.pi
return s
a=int(input("请输入半径="))
print(area(a))

58.编写一个函数overlaping(),比较两个列表,如果两个列表有公共元素,则返回True,否则返回False。
import random
def overlaping(li1,li2):
for x in li1:
if x in li2:
return True
else:
return False

li1 = [random.randint(10,99) for i in range(10)]
li2 = [random.randint(10,99) for i in range(20)]
print("列表1={}\n列表2={}".format(li1, li2))
if overlaping(li1,li2):
print("有公共元素")
else:
print("没有公共元素")

59.编写函数Arms判断水仙花数,调用该函数输出100到999之间的所有的水仙花数。(水仙花数是指一个3位数等于其各位数字的立方和。例如:13 + 53 + 33 = 153)
def amrs(s):
if s==(s%10)3+(s%100//10)3+(s//100)**3:
return s
else:
return
for i in range(100,1000):
if amrs(i)==i:
print(amrs(i))

60.编写一个函数root,接收三个参数,返回一元二次方程: ax² + bx + c = 0 的两个解。
def root(a,b,c):
x1=((-b)-(b2-4ac)(1/2))/(2*a)
x2=((-b)+(b2-4ac)(1/2))/(2*a)
return x1,x2
a=int(input("请输入a的值:"))
b=int(input("请输入b的值:"))
c=int(input("请输入c的值:"))
x=root(a,b,c)
print("ax² + bx + c = 0的两个解为:{}".format(x))
61.编写函数Fibonacci,调用该函数计算Fibonacci数列的第15项的值。
import random
def overlaping(li1,li2):
for x in li1:
if x in li2:
return True
else:
return False
li1 = [random.randint(10,99) for i in range(10)]
li2 = [random.randint(10,99) for i in range(20)]
print("列表1={}\n列表2={}".format(li1, li2))
if overlaping(li1,li2):
print("有公共元素")
else:
print("没有公共元素")

62.编写函数判断素数,调用该函数统计200到300之间的所有素数,并按一行10个输出。
def fun(a):
for i in range(2,a):
if a%i==0:
return False
else:return True
k=0
for i in range(200,301):
if fun(i):
print(i,end=" ")
k+=1
if k%10==0:print()