python题目集,源于学校老师布置在pta上的题目,博主用来复习的
6-1 缩写词
缩写词是由一个短语中每个单词的第一个字母组成,均为大写。例如,CPU是短语“central processing unit”的缩写。
函数接口定义:
phrase是短语参数,返回短语的缩写词
裁判测试程序样例:
输入样例:
输出样例:
思路:
代码:
def acronym(phrase):
phrase = phrase.upper().split()
res = ""
for i in range(len(phrase)):
x = phrase[i][0]
res += x
return res
6-2 求多项式的值
一元多项式可以用列表表示。如p(x)=1+3x+9
x
4
x^4
x4
,可以表示成列表[1,3,0,0,9]。输入列表表示的多项式和x的值,求多项式的值。
函数接口定义:
裁判测试程序样例:
输入样例:
输出样例:
思路:
代码:
def polyvalue(lst, y):
res = 0
for i in range(len(lst)):
res += lst[i] * (y ** i)
return res
6-3 使用函数求素数和
使用函数求素数和
prime§, 其中函数prime当用户传入参数p为素数时返回True,否则返回False.
PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n。
函数接口定义:
裁判测试程序样例:
输入样例:
输出样例:
思路:
代码:
def prime(p):
if p == 1: return False
if p == 2: return True
for i in range(2, p):
if p % i == 0:
return False
return True
def PrimeSum(m,n):
res = 0
for i in range(m, n+1):
if prime(i):
res += i
return res
6-4 浮点数的十进制转二进制
本题要求实现一个函数,将十进制浮点数转换成二进制浮点数(只考虑正数),例如:十进制浮点数0.2转换为二进制浮点数为:0b0.001100110011001100110011001100110011001100110011001101。
转换规则如下:
整数部分采用“除2取余,逆向取值”的方法;
小数部分则乘2取整,直到余下的小数为0或者满足精度要求为止,然后顺序取值(即最先得到的整数为最高位,最后得到的整数为最低位)。
例如:
10-2.webp
所以,最终结果就是:11 1010.101。
函数接口定义:
其中 dec_num 是用户传入的十进制浮点数,返回对应的二进制浮点数字符串。
裁判测试程序样例:
输入样例:
输出样例:
思路:
代码:
def dec2bin(dec_num):
res = ""
integer = int(dec_num)
res += bin(integer)
if integer == dec_num:
return res
decimal = dec_num - integer
res += "."
while(True):
if decimal == 0:
break
else:
x = decimal * 2
res += str(int(x))
decimal = x - int(x)
return res
6-5 打印指定范围内的全部回文素数
回文素数是指一个数既是素数又是回文数,例如131既是素数又是回文数。请实现下述两个函数,帮助测试程序完成如下功能:从键盘输入正整数N, 打印从1 ~ N(包含N)的全部回文素数,一行一个。
函数接口定义:
isPrime()用于判断整数num是否是素数,是返回True, 否则返回False.
reverseNumber()用于返回整数num的反向数,321的反向数为123, 320的反向数为23。
裁判测试程序样例:
输入样例:
输出样例:
思路:
代码:
def isPrime(num):
if num == 1:
return False
elif num == 2:
return True
else:
for i in range(2, num):
if num % i == 0:
return False
return True
def reverseNumber(num):
res = 0
while True:
if int(num) == 0:
break
res = res * 10 + (int(num % 10))
num = int(num / 10)
return res