1.
【问题描述】
以下程序的功能是:统计某个给定范围[L,R]内的所有整数中,数字9出席的次数,比如给定范围[88,99]中9出现12次
【输入形式】
输入两个正整数,前一个小于后一个,空格分隔
【输出形式】
输出一个整数,统计结果
【样例输入】
88 99
【样例输出】
12
代码:
s = input().split()
L, R = int(s[0]), int(s[1])
total = 0
for i in range(L,R+1):
while i !=0:
if i % 10 == 9:
total += 1
i = (i-i%10)/10
print(total)
2.最大公约数
【问题描述】
以下程序的功能是:输入两个正整数a和b,调用函数gcd求a和b最大公约数
【输入形式】
输入一行,内容是用逗号隔开的2个正整数整数。
【输出形式】
最大公约数
【样例输入】
18,27
【样例输出】
9
代码:
def gcd(x,y):
n = 0
if an:
n=x
if bn:
n=x
return n
a,b = eval(input())
print(gcd(a,b))
3.继承
【问题描述】以下代码设计了一个名为Pet的宠物类,该类有两个属性name和age,并有打印名字和年龄的show()成员方法,然后定义了一个Dog类,Dog类是Pet类的子类,有name、age、color三个属性,利用继承的性质,实现了对象相关信息的输出。
【输入形式】
无
【输出形式】
输出三行,分别是name:具体值,age:具体值,color:具体值
【样例输入】
无
【样例输出】
name: 旺财
age: 3
color: golden
代码:
class Pet:
def __init__(self,name,age):
self.name,self.age = name,age
def show(self):
print("name:",self.name,"\nage:",self.age)
#定义子类
class Dog(Pet):
def __init__(self,name,age,color):
#调用父类的构造函数对属性name,age赋值
Pet.__init__(self,name,age)
self.color = color
def show(self):
super().show()
print("color:",self.color)
myPet = Dog("旺财",3,"golden")
myPet.show()
4.计算期末考试的最低分数
【问题描述】
python期末综合成绩的计分规则为:
1、两次课堂测试每次10分,共20分
2、平时成绩10分
3、期末考试成绩占70%
4、如果期末考试成绩没上40分,则按照期末考试成绩计算总成绩。
请根据录入的两次课堂测试成绩、平时成绩和期末成绩,计算该学生的综合成绩
请该生期末考试至少要得到多少分,才有可能及格?
【输入形式】
输入一行,逗号隔开
第一次课堂测试成绩,第二次课堂测试成绩,平时成绩,期末考试的成绩
【输出形式】
输出两行
第一行为该学生的期末综合成绩,保留两位小数
第二行为该学生期末考试至少要得到多少分,才有可能及格?保留两位小数
【样例输入】
10,10,10,78
【样例输出】
84.60
42.86
代码:
e = input().split(',')
a,b,c,d = int(e[0]),int(e[1]),int(e[2]),int(e[3])
total=a+b+c
x=(60-total)/0.7
if d < 40:
print('{:.2f}'.format(d))
print(f'{x:.2f}')
else:
total1 = total + d*0.7
print(f'{total1:.2f}')
print(f'{x:.2f}')
5.坚持的力量
【问题描述】
1951年,毛泽东主席题词“好好学习,天天向上”,成为激励一代一代中国人奋发图强的金典短语。下面我们通过代码算算“天天向上”有多强大的力量。一学期有n天,以第一天的能力值为基数,记为1.0,当好好学习时,能力比前一天提升千分之五,当不认真学习时(躺平)能力下降千分之一。问一学期每天努力和一学期每天躺平放任,一学期下来能力值相差多少?
【输入形式】
输入一学期的天数
【输出形式】
输出向上和躺平的能力值和能力差值,保留2位小数,输出形式采用等式,具体看样例
【样例输入】
148
【样例输出】
2.09 - 0.86 = 1.23
【样例说明】
2.09表示148天好好学习后的能力值,0.86表示躺平后的能力值,1.23是二者的差值,输出均采用保留两位小数的形式输出。
代码:
a = float(input())
xue = 1
tang = 1
for x in range(int(a)):
xue = xue*1.005
tang = tang*0.999
print('{:.2f} - {:.2f} = {:.2f}'.format(xue,tang,xue-tang))
6.题库:组合数字
【问题描述】从键盘输入两个整数n和m(要求n 【输入形式】输入一行,内容为两个以空格分隔的整数,分别表示n和m。 【输出形式】以空格分隔输出所有符合条件的三位数。 【样例输入】1 4 【样例输出】123 132 213 231 312 321 【样例输入】2 4 【样例输出】illegal input 【样例输入】0 3 【样例输出】102 120 201 210 代码: 7.成绩排序 【问题描述】 给出班里某门课程的成绩文件test5.csv(utf-8编码),每行为每个学生的名字和他的成绩, 中间用逗号隔开。请你按成绩从高到低对数据排序输出,如果有相同分数则名字字典序小的在前(按名字升序)排序。 【输入形式】 输入来自文件 【输出形式】 把成绩按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格。 【样例输入】 文件内容如下时: Kitty,80 Tom,28 Hanmeimei,90 Joey,92 Tim,28 【样例输出】 Joey 92 Hanmeimei 90 Kitty 80 Tim 28 Tom 28 代码: 8.福到了 “福”字倒着贴,寓意“福到”。不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出。这里要处理的每个汉字是由一个 N × N 的网格组成的,网格中的元素或者为字符 @ 或者为空格。而倒过来的汉字所用的字符由裁判指定。 输入格式: 输入在第一行中给出倒过来的汉字所用的字符、以及网格的规模 N (不超过100的正整数),其间以 1 个空格分隔;随后 N 行,每行给出 N 个字符,或者为 @ 或者为空格。 输出格式: 输出倒置的网格,如样例所示。但是,如果这个字正过来倒过去是一样的,就先输出bu yong dao le,然后再用输入指定的字符将其输出。 输入样例 1: $ 9 @ @@@@@ @@@ @@@ @ @ @ @@@ @@@ @@@ @@@@@ @@@ @ @ @ @@@ @@@@@ @ @ @ @ @ @@@@@ 输出样例 1: $$$$$ $ $ $ $ $ $$$$$ $$$ $ $ $ $$$ $$$$$ $$$ $$$ $$$ $ $ $ $$$ $$$ $$$$$ $ 输入样例 2: & 3 @@@ @ @@@ 输出样例 2: bu yong dao le &&& & &&& 代码: 9.编写函数计算f(i) = 1/2 + 2/3 + 3/4 + ... + i/(i+1) 【问题描述】 编写函数计算f(i) = 1/2 + 2/3 + 3/4 + ... + i/(i+1) 函数接口定义: def f(i) i为正整数,返回结果浮点数。 【样例输入】 5 【样例输出】 3.5500 代码: 10.设计Shape基类及Circle, Rectangle继承类 【问题描述】 设计一个基类Shape,包括: 名为sName的属性(图形名称); 构造函数应对sName属性进行初始化。 设计Shape的继承类Rectangle, 包括: 长,宽两个属性; 构造函数调用Shape的构造函数,并初始化长,宽两个属性; getArea()成员函数计算并返回矩形面积。 设计Shape的继承类Circle,包括: 半径属性; 构造函数调用Shape的构造函数,并初始化半径属性; getArea()成员函数计算并返回圆形面积。 注意:请结合程序以理解题目对类的接口的要求。 【样例输入】 Jupyter 12.1 9.9 Moon 3.3 【样例输出】 shape0 Rect Jupyter,Area: 119.79 Circle Moon,Area: 34.21 代码: 11.类与对象-两点之间距离 【问题描述】 定义Point类实现三维坐标点。定义dist_from方法实现两点之间距离的计算。 【输入形式】输入两行,第一行是第一个点的坐标值,第二行是第二个点的坐标值。坐标值x, y, z之间用空格隔开。 【输出形式】距离 【样例输入】 0 0 0 1 1 1 【样例输出】 1.73205 代码: 12.百人搬百砖/百钱买百鸡 - 实验9 循环进阶 【问题描述】 百人搬百砖问题是中国古代百钱买百鸡问题的另一种表达形式。 工地搬砖,男人一人搬3块,女人一人搬2块,小孩两人搬1块。n个人搬n块砖,总共有哪些搬法? 请参考伪代码将下述程序补充完整,并上机调试运行。 注意:程序还应确保小孩数可以整数2,即小孩数必须为偶数。 代码: 13.题库:打印拐形图案 【问题描述】 打印一个如样例输出所示的拐形图案。 【输入形式】 一个整数n,表示图案的总行,1<=n<20 【输出形式】 一个图案 【样例输入】 6 【样例输出】 代码: 14.设计学生类,使用类对象属性来记录学生对象的数量 【问题描述】 设计一个名为Student的学生类: 使用名为count的类对象属性来记录Student对象的个数; 构造函数中初始化学号及姓名两个属性,并对count属性加1; 析构函数(__del__)中对类对象属性count减1。 说明:请阅读测试样例程序来理解题目对类的接口要求。 【样例输入】 3 【样例输出】 学生数量: 2 Code1 Name1 Code2 Name2 代码: 15.考拉兹猜想 【问题描述】 考拉兹猜想(Collatz conjecture)又称奇偶归一猜想,是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2。 如此循环,最终都能得到1。编写一个程序,输入一个正整数,打印其考拉兹序列。 【输入形式】 1个>1的正整数 【输出形式】 以逗号分隔的考拉兹序列。 【样例输入】 5 【样例输出】 16,8,4,2,1 代码: 16.打印三角形 【问题描述】 编写一个程序,输入一奇数n(2 * *** ***** ******* ********* *********** ************* *************** 该三角形为直角三角形,其底边上“*”号个数为n。上图为输入15时的输出。 【输入形式】 从标准输入读取一个奇数,表示要打印的最长行的*号数。 【输出形式】 向标准输出打印一个三角形,如上图所示。并且在最后一行末也输出一个回车。 代码: 17.输出下一秒 【问题描述】编写一个程序,输出当前时间的下一秒。 【输入形式】用户在第一行按照小时:分钟:秒的格式输入一个时间。 【输出形式】程序在下一行输出这个时间的下一秒。 【样例输入】23:59:59 【样例输出】0:0:0 【样例说明】用户按照格式输入时间,程序输出此时间的下一秒。 代码: 18.题库:统计水果消费购买次数和总金额 【问题描述】 小王的最近几天的水果消费清单如下所示(若没有消费记录,输入为"None"),每条记录的格式类似如下,以"None"结束,每条数据是水果名和消费额,空格隔开: apple 25.0 pear 8.0 apple 5.0 pear 2.0 banana 10.0 orange 30.0 None 题目要求: 1. 输出小王最近购买过哪些水果及其购买次数(整数)和总金额(保留两位小数)。(排序规则:先按购买金额降序,再按购买次数降序,都相同的话按水果名升序) 【样例输入】 apple 25.0 pear 8.0 apple 5.0 pear 2.0 banana 10.0 orange 30.0 None 【样例输出】 apple 2 30.00 orange 1 30.00 pear 2 10.00 banana 1 10.00 【样例说明】 输入为不定行,以"None"结束,每条数据是水果名和消费额,空格隔开 输出为不定行,每行依次为:水果名、购买次数(整数)、总金额(保留两位小数)。 (排序规则:先按购买金额降序,再按购买次数降序,都相同的话按水果名升序) -------------------------------------------------------------------- 从标准输入录入信息,存储到字典CostInfo里,字典结构如下: {'apple': [2, 0.8], 'pear': [2, 10.0], 'b': [1, 10]} value为一个列表,存储购买次数和总金额 代码: 19.题库:天干地支中国年 【问题描述】 干支纪年法是中国历法上自古以来就一直使用的纪年方法。干支是天干和地支的总称。把干支顺序相配正好六十为一周,周而复始,循环更替。公元后年份可以按如下规则转换:按照公元年份-3后除以10,得余数可得对应天干,天干对应余数数字:甲1,乙2,丙3,丁4,戊5,己6,庚7,辛8,壬9,癸0。公元年份-3后除以12,得余数可得对应地支,地支对应余数:子1,丑2,寅3,卯4,辰5,巳6,午7,未8,申9,酉10,戌11,亥0。十二生肖是十二地支的形象化代表,即子(鼠)、丑(牛)、寅(虎)、卯(兔)、辰(龙)、巳(蛇)、午(马)、未(羊)、申(猴)、酉(鸡)、戌(狗)、亥(猪),由地支可以看出属相年。 编程实现,输入一个公元年份,输出干支纪年和属相年 【输入形式】 输入公元年份 【输出形式】 分两行分别输出干支纪年和属相年 【样例输入】 2021 【样例输出】 辛丑年 牛年 【样例说明】 系统中文输出需在程序前加上下列代码: (作者未用到本方法,读者可尝试) import io import sys sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8') sys.stdin = io.TextIOWrapper(sys.stdin.buffer,encoding='utf-8') 代码: 20.题库:嵌套列表元素求和 【问题描述】 输入一个嵌套列表,嵌套层次不限,求列表元素的和。这个列表的每个元素是整数。 【输入形式】 嵌套列表 【输出形式】 整数 【样例输入】 [1,2,3,[4,5,6,7],8] 【样例输出】 36 代码: 21.题库:嵌套列表元素加权求和 【问题描述】 输入一个嵌套列表,嵌套层次不超过5层,根据层次,求列表元素的加权和,权是指元素在嵌套列表中的层次。第一层每个元素的权值为:元素值*1,第二层每个元素的权值为:元素值*2,第三层每个元素的权值为:元素值*3, ...,依此类推! 【输入形式】 按照列表的形式输入,每个元素是一个整数 【输出形式】 整数 【样例输入】 [1,2,[3,4,[5,6],7],8] 【样例输出】 72 【样例说明】 元素1,2,8是列表的第一层,所以其权是1。3,4,7 处于列表的第二层,其权是2。5,6处于列表的第三层,其权是3。所以列表元素的加权和为: (1+2+8)*1+(3+4+7)*2+(5+6)*3=72 代码: 22.题库:找出列表中缺失的数字 【问题描述】 读入一个长度为n-1的整数列表,这个列表的所有元素都是按照递增顺序排列,且每个数字都是唯一的,每个数字都在范围0~n-1之内。0~n-1范围内的n个数字中有且只有一个数字不在该列表中。请找出这个数字。 【输入形式】 输入一个包含n-1个数字的列表,元素不重复且按升序排列,包括方括号,列表元素逗号分隔。 【输出形式】 输出找到的数字 【样例输入1】 [0,1,3] 【样例输出1】 2 【样例输入2】 [0,1,2,3,4,5] 【样例输出2】 6 【样例说明】 第1个样例输入的列表长度为3,也就是完整的列表应该是4个元素。0~3之间的每个数字只能出现一次,且必须出现一次。经查找缺了数字2。 第2个样例输入的列表长度为6,也就是完整的列表应该是7个元素。0~6之间的每个数字只能出现一次,且必须出现一次。经查找缺了数字6。 代码: 23.题库:找出两个列表的相同元素(不使用集合),且去除重复元素。 【问题描述】 已知两个列表,可能包含有相同元素,请找出两个列表的相同元素,并放入新的列表。打印新列表。输出结果中没有重复元素,如果两个列表中没有相同元素则输出[]。 【输入形式】 第一行输入第一个列表,包括方括号,元素之间用逗号分隔 第二行输入第二个列表。 【输出形式】 如果存在相同元素,非降序输出列表元素 如果不存在相同元素则输出[] 【样例输入1】 [1,2,3,4,5] [2,3,4,5,6] 【样例输出1】 [2, 3, 4, 5] 【样例输入2】 [1,2,3,4,5] [7,8,9,10,11] [] 代码:n,m = map(int,input().split())
if 0<=n
with open('test5.csv', 'r', encoding='utf-8') as f:
data = [line.strip().split(',') for line in f.readlines()]
data_sorted = sorted(data, key=lambda x: (-int(x[1]), x[0]))
for row in data_sorted:
print(row[0], row[1])
#方法一:
ch,n=input().split()
n = int(n)
s = ''
for x in range(n):
s += input() + '\n'
res = s[::-1]
if res.strip() == s.strip():
print('bu yong dao le')
print(res.replace('@',ch))
#方法二:
lst = input().split()
ch,n = lst[0],int(lst[1])
grid = [input() for i in range(n)]
gridT = grid[::-1]
gridRev = [lstT[::-1] for lstT in gridT]
if gridRev == grid: print('bu yong dao le')
gridRR = [[ch if c != ' ' else ' ' for c in lstT]for lstT in gridRev]
print(*([''.join(lstT) for lstT in gridRR]),sep='\n')
def f(i):
if i==1:
return 1/2
r = (i/(i+1))+f(i-1)
return r
v=int(input())
print("%.4f" % f(v))
class Shape():
def __init__(self,sName):
self.sName = sName
class Rectangle():
def __init__(self,sName,wide,height):
self.sName = sName
self.wide = wide
self.height = height
def getArea(self):
return self.wide*self.height
class Circle():
def __init__(self,sName,r):
self.sName = sName
self.r = r
def getArea(self):
return 3.1415926*(self.r)**2
s1 = Shape("shape0")
s = input() #Name of Rectangle
w = float(input()) #Width of Rect
h = float(input()) #Height of Rect
r1 = Rectangle(s,w,h)
s = input() #Name of Circle
r = float(input()) #Radius of Circle
c1 = Circle(s,r)
print(s1.sName)
print("Rect %s,Area: %.2f" % (r1.sName,r1.getArea()))
print("Circle %s,Area: %.2f" % (c1.sName,c1.getArea()))
import math
class Point():
def __init__(self,x,y,z):
self.x = x
self.y = y
self.z = z
def dist_from(self,other):
return math.sqrt((self.x-other.x)**2+(self.y-other.y)**2+(self.z-other.z)**2)
x1, y1, z1 = input().split()
x1 = float(x1)
y1 = float(y1)
z1 = float(z1)
p1 = Point(x1, y1, z1)
x2, y2, z2 = input().split()
x2 = float(x2)
y2 = float(y2)
z2 = float(z2)
p2 = Point(x2, y2, z2)
print("%.2f"%p1.dist_from(p2))
N = int(input("请输入N:"))
iCount = 0
for men in range(N+1):
for women in range(N+1):
for children in range(N+1):
if children == N-men-women and children%2==0 and men*3+women*2+children/2==N:
print(f"找到解:men={men},women={women},children={children}")
iCount += 1
print("解的数量:",iCount)
n = eval(input())
#生成每行均为最后一行的一个二维列表
lst = [[chr(ord("A")+j) for j in range(n)] for x in range(n)]
for i in range(n):
for j in range(i+1,n):
lst[i][j] = chr(ord("A")+i)
#打印输出第i行
print(''.join(lst[i]))
class Student:
count = 0
def __init__(self,code,name):
self.code = code
self.name = name
Student.count += 1
def __del__(self):
Student.count -= 1
n = int(input()) #输入学生数量,数量大于1
s = []
for i in range(n):
s.append(Student("Code"+str(i),"Name"+str(i)))
del s[0] #删除一个学生,导致count减1
print("Student Count:",Student.count)
for x in s:
print(x.code,x.name)
n = int(input())
while True:
if n%2==1:
n = n*3+1
print(int(n),end=',')
elif n%2==0:
n /= 2
if n==1:
print('1')
break
else:
print(int(n),end=',')
a = int(input())
for x in range(1,a+1,2):
print('*'*x)
a = input().split(':')
h = int(a[0])
m = int(a[1])
s = int(a[2])
s = s+1
if s == 60:
s=0
m += 1
if m == 60:
m=0
h += 1
if h == 24:
h=0
print(h,':',m,':',s,sep='')
zong = {}
a = input()
while a!='None':
f,n = a.split()
n = float(n)
if f not in zong:
zong[f] = [1,n]
else:
zong[f][0] += 1
zong[f][1] += n
a = input()
zong = sorted(zong.items(),key=lambda x:(-int(x[1][1]),-int(x[1][0]),x[0]))
for i,j in zong:
print(i,j[0],f'{j[1]:.2f}')
tian = ['癸','甲','乙','丙','丁','戊','己','庚','辛','壬']
di = ['亥','子','丑','寅','卯','辰','巳','午','未','申','酉','戌']
shengxiao = ['猪','鼠','牛','虎','兔','龙','蛇','马','羊','猴','鸡','狗']
nian = input()
nian = int(nian)
t = (nian-3)%10
d = (nian-3)%12
print(tian[t],di[d],'年',sep='')
print(shengxiao[d],'年',sep='')
def sumlist(nums):
n = 0
for x in nums:
if type(x) is int:
n = n + x
if type(x) == list:
n = n + sumlist(x)
return n
nums = eval(input())
sumv = sumlist(nums)
print(sumv)
def sumlist(L,m):
sum=0
for ch in L:
if isinstance(ch, int):
sum += ch * m
for ch in L:
if isinstance(ch, list):
sum += sumlist(ch,m+1)
return sum
nums = eval(input())
addv = sumlist(nums, 1)
print(addv)
def missNumber(nums):
b = list(range(len(nums)+1))
for x in b:
if x not in nums:
return x
nums = eval(input())
number = missNumber(nums)
print(number)
【样例输出1】nums1 = eval(input()) # 输入列表
nums2 = eval(input())
nums1.sort() # 排序
nums2.sort()
arr = []
i = j = 0
while i < len(nums1) and j < len(nums2): # 相互比较开始
if nums1[i] < nums2[j]:
i += 1
elif nums1[i] > nums2[j]:
j += 1
else:
arr.append(nums1[i])
i += 1
j += 1
for x in arr:
while arr.count(x) > 1:
arr.remove(x)
print(arr) # 输出