我是靠谱客的博主 无心马里奥,最近开发中收集的这篇文章主要介绍Python 程序设计搞心态题目集锦(PTA平台),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

浙大版《Python 程序设计》搞心态题目集锦(NO.2)

1.请编写程序,对一段英文文本,统计其中所有不同单词的个数,以及词频最大的前10%的单词。

所谓“单词”,是指由不超过80个单词字符组成的连续字符串,但长度超过15的单词将只截取保留前15个单词字符。而合法的“单词字符”为大小写字母、数字和下划线,其它字符均认为是单词分隔符。

输入格式:
输入给出一段非空文本,最后以符号#结尾。输入保证存在至少10个不同的单词。

输出格式:
在第一行中输出文本中所有不同单词的个数。注意“单词”不区分英文大小写,例如“PAT”和“pat”被认为是同一个单词。

随后按照词频递减的顺序,按照词频:单词的格式输出词频最大的前10%的单词。若有并列,则按递增字典序输出。

输入样例:

This is a test.

The word "this" is the word with the highest frequency.

Longlonglonglongword should be cut off, so is considered as the same as longlonglonglonee.  But this_8 is different than this, and this, and this...#
this line should be ignored.

输出样例:(注意:虽然单词the也出现了4次,但因为我们只要输出前10%(即23个单词中的前2个)单词,而按照字母序,the排第3位,所以不输出。)

23
5:this
4:is

解题

import re
import collections
import sys
words = "".join([line for line in sys.stdin])
words = re.compile(r"w+", re.I).findall(words.lower().split('#')[0])
words = [each.strip() for each in words]
words = list(map(lambda each: each[0:15] if len(each) > 15 else each, words))
counter = collections.Counter(words)
rank = sorted(counter.items(), key=lambda each: (-each[1], each[0]), reverse=False)
print(len(rank))
for each in rank[0:int(0.1*len(rank))]:
    print("{}:{}".format(each[1], each[0]))

2.利用集合分析活动投票情况。第一小队有五名队员,序号是1,2,3,4,5;第二小队也有五名队员,序号6,7,8,9,10。输入一个得票字符串,求第二小队没有得票的队员

输入格式:
在一行中输入得票的队员的序列号,用逗号隔开。

输出格式:
一行中输出第二小队没有得票的队员序号。

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

1,5,9,3,9,1,1,7,5,7,7,3,3,1,5,7,4,4,5,4,9,5,10,9 

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

6 8

解题

lst = list(map(int,input().split(",")))
d = {}
flag=0
for x in range(1,11):
    d[x]=0
for x in range(0,len(lst)):
    if not lst[x] in d:
        d[lst[x]] = 1
    else:
        d[lst[x]] = d[lst[x]] + 1
for i in range(6,11):
    if(d[i]==0):
        if(flag==0):
            print(i,end="")
            flag=1
        else:
            print(' {:d}'.format(i),end="")

3.本题要求编写程序,输出菲波那契(Fibonacci)数列的前N项,每行输出5个,题目保证输出结果在长整型范围内。Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列,例如:1,1,2,3,5,8,13,…。

输入格式:
输入在一行中给出一个整数N(1≤N≤46)。

输出格式:
输出前N个Fibonacci数,每个数占11位,每行输出5个。如果最后一行输出的个数不到5个,也需要换行。

如果N小于1,则输出"Invalid."

输入样例1:

7

输出样例1:

  1          1          2          3          5
  8         13

输入样例2:

0

输出样例2:

Invalid.

解题

def fib(n):
  a, b = 0, 1
  for i in range(n + 1):
    a, b = b, a + b
  return a
n=int(input())
if(n>0):
    for i in range(0,n):
        print('{:11d}'.format(fib(i)),end="")
        if((i+1)%5==0):
            print("")
else:
    print("Invalid.")

完毕

最后

以上就是无心马里奥为你收集整理的Python 程序设计搞心态题目集锦(PTA平台)的全部内容,希望文章能够帮你解决Python 程序设计搞心态题目集锦(PTA平台)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部