栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

PTA Python程序设计-04

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PTA Python程序设计-04

python题目集,源于学校老师布置在pta上的题目,博主用来复习的

6-1 缩写词

缩写词是由一个短语中每个单词的第一个字母组成,均为大写。例如,CPU是短语“central processing unit”的缩写。

函数接口定义:

acronym(phrase);

phrase是短语参数,返回短语的缩写词

裁判测试程序样例:


phrase=input()
print(acronym(phrase))

输入样例:

central processing unit

输出样例:

CPU

思路:

输入的字符串使用upper()全部转为大写形式,再使用split()按空格分割;
for循环,取分割后每个字符串下标为0的字符拼接,最后返回

代码:
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的值,求多项式的值。

函数接口定义:

在这里描述函数接口。例如:
value(lst,x)
lst表示多项式,x代表具体的值。

裁判测试程序样例:


lst=eval(input())
y=float(input())
print(“{:.1f}”.format(polyvalue(lst,y)))

输入样例:

在这里给出一组输入。例如:
[1,3,0,0,9]
1

输出样例:

在这里给出相应的输出。例如:
13.0

思路:

按题意模拟

代码:
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

函数接口定义:

在这里描述函数接口:
prime§,返回True表示p是素数,返回False表示p不是素数
PrimeSum(m,n),函数返回素数和

裁判测试程序样例:


m,n=input().split()
m=int(m)
n=int(n)
print(PrimeSum(m,n))

输入样例:

在这里给出一组输入。例如:
1 10

输出样例:

在这里给出相应的输出。例如:
17

思路:

注意点:判断素数的时候,注意值为1和2的情况

代码:
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。

函数接口定义:

def dec2bin(dec_num):

其中 dec_num 是用户传入的十进制浮点数,返回对应的二进制浮点数字符串。

裁判测试程序样例:


if name == ‘main’:
dec_num = eval(input())
bin_num = dec2bin(dec_num)
print(bin_num)

输入样例:

在这里给出一组输入。例如:
0.1

输出样例:

在这里给出相应的输出。例如:
0b0.0001100110011001100110011001100110011001100110011001101

思路:

整数和小数分开计算;
整数部分可以使用bin(),直接得到整数的二进制形式
小数部分需要不断*2, 取其整数值,直到小数点后值为0时停止

代码:
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)的全部回文素数,一行一个。

函数接口定义:

def isPrime(num):
def reverseNumber(num):

isPrime()用于判断整数num是否是素数,是返回True, 否则返回False.
reverseNumber()用于返回整数num的反向数,321的反向数为123, 320的反向数为23。

裁判测试程序样例:

N = int(input())
for n in range(1,N+1):
if isPrime(n) and reverseNumber(n) == n:
print(n)

输入样例:

400

输出样例:

2
3
5
7
11
101
131
151
181
191
313
353
373
383

思路:

判断素数部分注意1和2两个值
反向数部分,不能直接使用reversed(),因为320的反向数为23;采用不断%10、/10的方法得到每一位的数,再通过原res*10 + 新一位的数得到新res的值

代码:
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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/853886.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号