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

7-1 统计单词的个数

输入一行字符,以回车结束,统计其中单词的个数。单词是中间没有空格的字符序列,各单词之间用空格分隔,单词间空格数可以是多个。

输入格式:

在一行中输入字符

输出格式:

在一行中输出单词的数量

输入样例:

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

Let’s go to room 209

输出样例:

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

count = 5

思路:

考察split()函数

代码:

s = input().split()
count = 0
for i in s:
    count += 1
print("count = {}".format(count))

7-2 判断回文串

若一个串正向看和反向看等价,则称做回文串。例如:t,abba,xyzyx均是回文串。
给出一个长度不超过60的字符串,判断是否是回文串。

输入格式:

首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每行输入一个长度不超过60的字符串(串中不包含空格)。

输出格式:

对于每组测试数据,判断是否是回文串,若是输出“Yes”,否则输出“No”。引号不必输出。

输入样例:

2
abba
abc

输出样例:

Yes
No

思路:

两种思路:
1.左右同时判断, 根据下标索引写判断语句
2.使用reversed()反转函数,但要注意在前面添加list()

代码(一):

t = int(input())
for i in range(t):
    s = input()
    flag = True
    for j in range(len(s)//2):
        if not s[j] == s[len(s)-j-1]:
            flag = False
            break
    if flag:
        print("Yes")
    else:
        print("No")

代码(二):

t = eval(input())
for i in range(t):
    flag = True
    s1 = input()
    s2 = list(reversed(s1))
    for j in range(len(s1)):
        if s1[j] != s2[j]:
            flag = False
            break
    if flag:
        print("Yes")
    else:
        print("No")

7-3 产生每位数字相同的n位数

读入2个正整数A和B,1<=A<=9, 1<=B<=10,产生数字AA…A,一共B个A

输入格式:

在一行中输入A和B。

输出格式:

在一行中输出整数AA…A,一共B个A

输入样例1:

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

1, 5

输出样例1:

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

11111

输入样例2:

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

   3  ,4

输出样例2:

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

3333

思路:

两种思路:
1.使用for和list,将需要输出的数字全部存储进列表,再使用join()打印输出
2.直接 * 打印输出

代码(一):

s = input().replace(" ", '')
a, b = s.split(",")
b = eval(b)
l = []
for i in range(b):
    l.append(a)
print("".join(l))

代码(二)

s = input().replace(" ", '')
a, b = s.split(",")
b = eval(b)
print(a * b)

7-4 计算有n个字符串中最长的字符串长度

编写程序,用于计算有n(1<n<10)个字符串中最长的字符串的长度。前导空格不要计算在内!

输入格式:

在第一行中输入n,接下的每行输入一个字符串

输出格式:

在一行中输出最长的字符串的长度

输入样例:

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

4
blue
yellow
red
green

输出样例:

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

length=6

思路:

列表存储所有字符串,但要注意数据格式规范化,使用replace();最后max()直接得到最长字符串长度

代码:

t = eval(input())
l = []
for i in range(t):
    s = input().replace(" ", "")
    l.append(len(s))
print("length={}".format(max(l)))

7-5 位1的个数

输入一个非负整数,求它变成二进制后1的个数(提示:用bin函数)。

输入格式:
输入一个正整数。

输出格式:
输出1的个数。

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

37

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

3

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

0

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

0

思路:

按照题意写就行, 就是一个字符计数的问题

代码:

a = eval(input())
a = bin(a)
count = 0
for i in a:
    if i == "1":
        count += 1
print(count)

7-6 输出10个不重复的英文字母

随机输入一个字符串,把最左边的10个不重复的英文字母(不区分大小写)挑选出来。
如没有10个英文字母,显示信息“not found”

输入格式:
在一行中输入字符串

输出格式:
在一行中输出最左边的10个不重复的英文字母或显示信息“not found"

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

poemp134567

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

not found

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

This 156is a test example

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

Thisaexmpl

思路:

根据样例, 需要先将字符串的格式规范化, 去除多余空格;
先判断字符是否是字母, 再判断该字符是否已经存储进列表,注意题干中说明字母不区分大小写,所以该字母的大小写形式都要写入判断;
最后就是语句长度判断

代码:

words = input().replace(" ", "")
l = []
for word in words:
    if not word.isdigit():
        if not word.lower() in l and not word.upper() in l:
            l.append(word)
if len(l) >= 10:
    print("".join(l[:10]))
else:
    print("not found")

7-7 求平方与倒数序列的近似和

本题要求对两个正整数m和n(m≤n)编写程序,计算序列近似和。近似和定义为小于序列和的最大整数。(提示:用floor函数)

m ^2+1/m+(m+1) ^2+1/(m+1)+⋯+n ^2+1/n。

输入格式:
输入在一行中给出两个正整数m和n(m≤n),其间以空格分开。

输出格式:
在一行中按照“sum ≈ S”的格式输出近似和S。

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

5 10

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

sum ≈ 355

思路:

按题意模拟, 注意floor()函数在math库中

代码:

from math import *

m, n = map(int, input().split())
s = 0.0
for i in range(m, n+1):
    s += floor(i**2 + (1.0/m))
print("sum ≈ {}".format(floor(s)))

7-8 比较大小

输入3个不同整数,这3个整数分别对应3个字母的ASCII码值,把这3个字母按它的ASCII码值从小到大输出。

输入格式:
输入在一行中给出3个整数,其间以空格分隔

输出格式:
在一行中将3个字母按ASCII码值从小到大输出,其间以“<”相连。

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

97 65 100

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

A<a<d

思路:

sorted()省事,但要注意是list类型传入

代码:

s = list(map(int, input().split()))
s = sorted(s)
print("{}<{}<{}".format(chr(s[0]), chr(s[1]), chr(s[2])))

7-9 整数的二进制相加

输入两个整数,大小在[0,63]之间。求它们的二进制和,二进制用8位表示。

输入格式:
在一行输入一个整数,在另一行输入另一个整数。

输出格式:
输出它们的二进制和。

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

5
7

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

00000101
00000111


00001100

思路:

先正常做加法,再使用bin()
注意最后的输出格式

代码:

a = eval(input())
b = eval(input())
r = a+b
a, b, r = bin(a), bin(b), bin(r)
a, b, r = eval(a[2:]), eval(b[2:]), eval(r[2:])
print("%08d" % a)
print("%08d" % b)
print("--------")
print("%08d" % r)

7-10 统计满足特定条件的字符数

输入字符串A(没有重复字符),输入字符串B,求在字符串A中字符的个数,这些字符必须同时又在字符串B中。提示:用in运算符。

输入格式:
一行输入字符串A。
一行输入字符串B。

输出格式:
一行输出字符数。

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

AEIOU
HELLO World!

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

2

思路:

emmm, 注意输入的字符串格式处理

代码:

a = input().replace(" ", "")
b = input().replace(" ", "")
count = 0
for i in a:
    if i in b:
        count += 1
print(count)
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐