二级编程题训练
成绩等级:
编写一段代码,要求如下:
1、程序开始运行后,需要用户输入学生的成绩(成绩为正整数) 2、一次输入一个学生的成绩,学生成绩是从0到100; 3、根据用户输入的成绩,程序依据等级标准,输出相应的等级。 4、等级标准是成绩小于60为不及格,60(含)到85(不含)之间为良,85(含)以上为优。 5、可以重复输入成绩进行查询。
参考程序:
while True:
a=eval(input("输入分数:"))
if a<60:
print('不及格')
elif a>=60 and a<85:
print('良')
else:
print('优')
剔除数字
要求如下:
1、编写一段程序代码,程序运行后, 2、需要用户随意输入一段包含有数字和字母的字符串; 2、程序会自动删除字符串中的数字, 然后输出一串没有数字的字符串(纯字母的字符串) 或者列表(没有数字); 3、要求输出的非数字的字符顺序不能变。
参考程序:
a=input("输入字符串")
b=[]
for i in a:
if i not in "0123456789":
b.append(i)
print(b)
文本次数识别器:
编写一段程序,可以自动识别特定文本在某一段文字中出现的次数。
要求:
a)程序开始运行后,输入一段包含有一个或多个“Python”字符串的文字;(提示为:请输入包含有一个或多个“Python”的文字:)
b)根据输入的字符串,程序会输出Python出现的次数。
例如:
如果输入的字符串为"Python”是一种简单的编程语言。Python特别受欢迎。",
那么输出是:Python出现的次数是:2
参考程序:
str1 = input("请输入包含有一个或多个“Python”的文字:")
a= 0
for i in range(len(str1)):
if str1[i:i+6] == "Python":
a = a + 1
print("Python出现的次数是:",a)
计算圆的面积和周长
用户输入一个半径r,求该半径下的圆的面积s与周长c。要求如下: (1) 输出的面积与周长都保留俩位小数; (2) 输出的格式为:“圆的周长是**,面积是\”; (3) pi取3.14; (4) 使用print()格式化输出(%方法)。
参考程序:
r=eval(input("请输入半径:"))
pi=3.14
c=2*pi*r
s=pi*r*r
print("圆的周长是%.2f,面积是%.2f"%(c,s))
评委打分
假设10位评委的打分是99,80,86,89,94,92,75,87,86,95,
现需要运用Python语言进行编程实现:去掉一个最高分,去掉一个最低分,计算平均分,并打印出来。
打印格式为:去掉一个最高分:XX分,去掉一个最低分:XX分,最后得分为:XX分
参考程序:
b = [99, 80, 86, 89, 94, 92, 75, 87, 86, 95] # 录入10位评委的打分
maxNum = max(b) # 将最高分保存在maxNum变量中
b.remove(maxNum) # 使用remove()函数将最高分去掉
minNum = min(b) # 将最低分保存在minNUm变量中
b.remove(minNum) # 使用remove()函数将最低分去掉
sumNum = sum(b) # 将剩余打分的总和存入sumNum中
avg = sumNum/8 # 求出平均分保存在avg变量中
print('去掉一个最高分:{}分,去掉一个最低分:{}分,最后得分为:{}分'.format(maxNum, minNum, avg))
数字转汉字
用户输入一个1~9(包含1和9)之间的任一数字,程序输出对应的汉字。
如输入2,程序输出“二”。
可重复查询。
参考程序一:
dd={'1':'一', '2':"二",'3':"三",'4':'四','5':"五",'6':"六",'7':'七','8':"八",'9':"九"}
while True:
a=input('输入数字:')
print(dd[a])
参考程序二:
dd=['一','二','三','四','五','六','七','八','九']
while 1:
a=int(input('输入数字:'))
print(dd[a-1])
停车场收费计算器
设计一个停车场收费计算器(收费规则,2小时以内收费5元,超出部分每小时加收2元),要求如下:
(1) 设计的程序要能输入停车时间(单位为小时,输入的小时数为整数); (2) 程序可以根据输入的停车时间自动计算出停车费,并且显示出来; (3) 程序可以重复使用。
参考程序:
while 1:
n=eval(input('输入停车小时数(正整数):'))
if n<=2:
s=5
else:
s=5+(n-2)*2
print("停车费:",s)
计算出租车的公里数
根据乘坐出租车的公里数,计算应该支付的费用。
要求:
(1)程序开始运行后,输入一个数字(整数)的公里数;(提示为:请输入公里数:) (2)计算乘坐出租车应该支付的费用,保留两位小数。
其计算方式如下: 3公里内收费13元; 超出3公里以外,2.3元/公里;超出15公里,3.45元/公里;
参考程序:
# 输入公里数
miles = int(input("请输入公里数:"))
# 变量初始化
fee = 0
# 计算逻辑
if 0 < miles <= 3:
fee = 13
elif 3 < miles <=15:
fee = 13 + 2.3 * (miles -3)
elif miles > 15:
fee = 13 + 2.3 * (15 - 3) + 3.45 * (miles - 15)
# 输入负数时提示错误
else:
print("不能为负数,请重新输入!")
# 保留两位小数输出
print("应付的费用是:%.2f"%fee)
查询区号
编写一段程序,用于查询用户输入的区号。
当用户输入区号时,程序输出对应的城市。可多次查询。
测试区号是:0552 蚌埠,021上海,022天津,023重庆,024沈阳市,025南京
参考程序:
while True:
a=input("输入区号:")
if a=='020':
print("广州")
elif a=='021':
print("上海")
elif a=='022':
print("天津")
elif a=='023':
print("重庆")
elif a=='024':
print("沈阳")
elif=='025':
print("南京")
加法计算
编程计算表达式1+3+9+27+…+2187的值。
参考程序:
s=0
i=1
while i<=2187:
s=s+i
i=i*3
print('表达式的值是:',s)
星期转换
编写一段程序程序,实现输入的数字自动改为对应的星期几,
如下图所示,当输入1时,输出:1 —— 星期一;当输入2时,输出:2 —— 星期二……以此类推,当输入7时,输出:7 —— 星期日。
注意,程序运行后,用户是随机输入数字1-7。
参考程序:
d=['星期一','星期二',星期三','星期四','星期五','星期六','星期日']
while True:
t=input('输入数字:')
m=int(t)
r=d[m-1]
print(r)
图形的循环美
设计一个海龟绘图程序,程序效果如下图(要求:海龟从里往外绘制图形,线条初始长度为20,相邻两条边相差4(每一个线条均比前一个线条长4),线条颜色为红色,总共边数至少80条以上(为了便于程序调试,建议不超过120条)。
参考程序:
import turtle
turtle.pencolor("red")
chang=20
i=1
while i<=100:
turtle.forward(chang)
turtle.left(90)
chang=chang+4
i=i+1
turtle.done()
日期转换
编写一个程序,实现用户输入一个日期,格式为"月/日/年",如输入'05/21/2021',程序输出日期为'May 21,2021'。
1至12月的英文名称如下:
January,February,March,April,May,June,July,August,September,October,November,December。
参考程序:
n=['January','February','March','April','May','June','July','August','September','October','November','December']
a=input('请输入5/23/2001')
m=a.split('/')
yue=n[int(m[0])-1]
ri=m[1]
nian=m[2]
print(yue,ri,nian)
没有重复数字的两位数统计
编写一段程序,实现下面的功能:
(1)检查所有的两位数; (2)程序自动分析两位数上的个位与十位上的数字是否相同;相同则剔除,不同则保留(例如:12符合本要求,个位是2,十位是1,两个不相同); (3)统计符合上面要求的两位数的个数,并且将个数最后打印出来(注意:是个数打印出来,符合要求的两位数不要求打印出来)。
参考程序:
count=0
for i in range(10,100):
ge=i%10
shi=i//10
if ge != shi:
count=count+1
print("满足条件的两位数的个数为:",count)
判断质数
判断是否为质数,用户输入2~99(包含2和99)之间的任一数字,程序判断输出这个数是否为质数。
参考程序:
n=int(input('请输入2-99之间的任意整数:'))
f=True
for i in range(2,n):
if n/i==n//i:
print(n,'不是质数。')
f=False
break
if f :
print(n,'是质数。')
重复次数最多的字符
输入任意一段字符串,找出重复次数最多的字符,并统计这个字符的重复次数。
参考程序:
n=input('请输入任意字符串:')
x=1
for i in range(0,len(n)):
t=n.count(n[i])
if t>x:
x=t
k=i
print('重复次数最多的是:',n[k],'重复了',x,'次')
判断单词“python”是否在文章中。
提示输入一个字符串;(提示为:请输入一个字符串:)
根据输入的字符串,程序会输出”Python”出现的次数。
例如:
如果输入的字符串为"Python是一种简单的编程语言。Python特别受欢迎。”
输出为:Python出现的次数是: 2
参考程序:
str = input("请输入一个字符串:")
count = 0
for i in range(len(str)):
if str[i:i+6] == "Python":
count = count + 1
print("Python出现的次数是:",count)
获奖名单查询
这次作文大赛,获得一等奖的同学有:“小张,小王,小强,小李,小周,小芳,小兰”。
请编程实现,输入某个同学的名字进行查找,是否在一等奖的同学名单里。
参考程序:
li=['小张','小王','小强','小李','小周','小芳','小兰']
s=input('请输入获一等奖选手姓名:')
if s in li:
print(s,'同学获得一等奖!')
else:
print(s,'同学没有获得一等奖!')
快递计费
快递的计费规则如下:5千克以内(含),20元;以后每增加一千克,计费增加5元;总价超过200元,打85折。
请编程输入重量,输出费用。
参考程序:
t=eval(input('请输入快递物品的重量:'))
if t<=5:
p=20
else:
p=(t-5)*5+20
if p>200:
p=p*0.85
print('本快递需要付费',p,'元')
猜数游戏
小明的实际年龄是11岁,让用户来猜,猜错时,会提示猜的年龄是大了还是小了,直到用户猜对为止。
参考程序:
m=11
f=True
while f:
n=eval(input('请猜小明的年龄:'))
if n>m:
print('猜大了!')
elif n<m:
print('猜小了!')
else:
print('恭喜!猜中了!')
f=False
唐诗
将四句唐诗用逗号和句号连接,完整输出这首诗,必须使用变量的方法编写程序。
jvzi1="白日依山尽" jvzi2="黄河入海流" jvzi3="欲穷千里目" jvzi4="更上一层楼"
输出应为"白日依山尽,黄河入海流。欲穷千里目,更上一层楼。"
参考程序:
jvzi1="白日依山尽"
jvzi2="黄河入海流"
jvzi3="欲穷千里目"
jvzi4="更上一层楼"
print(jvzi1+','+jvzi2+'。'+jvzi3+','+jvzi4+'。')
偶数和奇数
用编程实现对该列表[34,17,7,48,10,5]的处理
要求;把该偶数和奇数分别存储到新的列表中
参考程序:
a=[34,17,7,48,10,5]
js=[]
os=[]
for i in a:
if i%2==0:
os.append(i)
else:
js.append(i)
print('奇数列表:',js)
print('偶数列表:',os)
统计单词
实现统计字符串中的单词和单词出现的次数:
要求如下:
(1)统计的语句为:to be or not to be that is a question (2)要求统计该句中出现的所有单词和其出现次数。 (3)使用字典进行输出,格式如下(注意:排列顺序可以不一致,但是统计的次数要正确): {'to': 2, 'be': 2, 'or': 1, 'not': 1, 'is': 1, 'a': 1, 'question': 1, 'that': 1}
参考程序:
string = "to be or not to be that is a question"#定义变量存储字符串
lis=string.split(" ")#使用分割函数将字符串转为列表
count={}#定义一个空字典
for x in lis:#遍历列表
if x not in count:#判断列表元素是否在字典中
count[x]=1
else:
count[x]+=1
print(count)#打印字典
数字运算
可以对任何一个自然数进行若干次运算,最终都可以变为1。
运算规则如下:
(1)若该数是偶数,则变为原数的一半; (2)若该数是奇数,则变为原数的3倍加1; (3)重复(1)(2),直到该数变为1。
编写程序实现如下功能:输入一个大于1的自然数,计算按照上述方法最终变换为1共经过的变换次数,并输出变换次数。(输出格式为:直接输出次数即可)
示例1:若输入自然数8,则输出结果为:3。 示例2:若输入自然数5,则输出结果为:5。
参考程序:
x=int(input("请输入自然数:"))
count=0
while x!=1:
if x%2==0:
x=x//2
else:
x=3*x+1
count=count+1
print(count)
核酸检测
学过编程的小程同学想帮助医生对核酸检测人群进行分流和统计,根据健康码的颜色分配不同的核酸检测区域:
红码:A区 橙码:B区 绿码:C区
等待核酸检测人数众多,但是具体检测人数未知,请你帮小程编写一个程序来协助医生对核酸人群进行人群分流并统计人数。要求如下:
1、字母R代表红码,字母Y代表黄码,G代表绿码:
2、程序运行后根据提示信息输入一个健康码(R、Y、G中之一),输入其他字母提示“输入错误请重新输入”;根据不同的健康码,自动返回区域信息:(红码:A区、橙码:B区、绿码:C区);
3、程序一直在重复运行,但当输入“end”表示检测结束,输出下面信息
4、检测结束后输出总人数和对应红码、黄码和绿码的人数。运行案例如下:
输入样例1: R 输出样例1: 请到A区检测
输入样例2: Y 输出样例2: 请到B区检测
输入样例3: G 输出样例3: 请到C区检测
输入样例4: end 输出样例4: 检测结束,一共检测人 红码:人 黄码:人 绿码:人 (说明:*代表实际统计的的数字)
参考程序:
r=0
y=0
g=0
while True:
a=input()
if a=='end':
print('检测结束,一共检测{}人'.format(r+y+g))
print('红码:{}人\n黄码:{}人\n绿码:{}人'.format(r,y,g))
break
elif a=='R':
r+=1
print('红码请到A区检测')
elif a=='Y':
y+=1
print('黄码请到B区检测')
elif a=='G':
g+=1
print('绿码请到C区检测')
else:
print('输入错误请重新输入')
绘制多边形
要求:
(1)程序开始后,弹出对话信息“请输入边数:”,要求用户输入所要绘制的图形的边数; (2)海龟从里往外绘制图形,逆时针旋转(向左); (3)线条初始长度为15,相邻两条边相差5(每一个线条均比前一个线条长5); (4)线条颜色顺序依次为红色、蓝色、橘色、绿色('red','blue','orange','green')四个颜色组成的列表(必须使用列表方式进行读取); (5)总共边数符合输入给定的数字。
参考程序:
import turtle
pen_color=['red','blue','orange','green']
length=15
jd=90
i=1
n=int(input('请输入一共画出多少条边'))
while i<n+1:
turtle.pencolor(pen_color[i%4])
turtle.forward(length)
turtle.left(jd)
length=length+5
i=i+1
turtle.done()
航空托运行李尺寸
某航空公司对于托运行李有尺寸要求,必须满足以下条件:
每件托运行李的长、宽、高三边之和须大于或等于60厘米,且小于或等于203厘米。(注意只是三边,不考虑立方体的整个周长,相当于只求长+宽+高三个数字的和,如,长宽高为:20、30、40,则之和为90)
编写一个重复执行的程序,要求如下:
1、用户一次性输入三个数字,分别代表行李的长、宽、高(单位:厘米),三个数字直接用英文的逗号隔开;如:23,45,67 2、程序自动将输入的长宽高转化为列表或者元组; 3、程序需要判断用户输入的托运行李尺寸是否满足此航空公司的要求。 4、如果满足要求,就输出"可以托运"。如果不满足要求,就输出"不可以托运"。 5、然后重复以上操作,重复次数不限
参考程序:
while True:
a=eval(input('请输入长宽高(厘米):'))
sum=sum(a)
if (sum>=60)and(sum<=203):
print('可以托运')
else:
print('不可以托运')
统计一段文本中有几句话
编写程序,要求如下:
1.程序开始运行后,需要用户输入一段中文; 2.根据用户的输入,统计其中共有几句话(以句末为“。”“?”或“!”为依据,判断一句话); 3.输出统计结果,如:“这段话中共有3句话”
参考程序:
text=input("请输入一段中文:")
count=0
for t in text:
if t=="。" or t=="!" or t=="?":
count=count+1
print("这段话中共有{}句话".format(count))