首页 > 编程语言 >【总结一下|PTA】浙大版《Python 程序设计》题目集

【总结一下|PTA】浙大版《Python 程序设计》题目集

时间:2023-08-09 21:31:58浏览次数:44  
标签:输出 Python 样例 浙大 PTA 格式 print input 输入


前言

Hello!小伙伴!
非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~
 
自我介绍 ଘ(੭ˊᵕˋ)੭
昵称:海轰
标签:程序猿|C++选手|学生
简介:因C语言结识编程,随后转入计算机专业,有幸拿过一些国奖、省奖…已保研。目前正在学习C++/Linux/Python
学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!
 
初学Python 小白阶段
文章仅作为自己的学习笔记 用于知识体系建立以及复习
题不在多 学一题 懂一题
知其然 知其所以然!

第1章

1-1 从键盘输入两个数,求它们的和并输出 (30 分)

题目

本题目要求读入2个整数A和B,然后输出它们的和。

输入格式:

在一行中给出一个被加数
在另一行中给出一个加数

输出格式:

在一行中输出和值。

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

18
-48

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

-30

解答

a=int(input())
b=int(input())
print(a+b)

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码

1-2 从键盘输入三个数到a,b,c中,按公式值输出 (30 分)

题目

在同一行依次输入三个值a,b,c,用空格分开,输出 bb-4a*c的值

输入格式:

在一行中输入三个数。

输出格式:

在一行中输出公式值。

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

3 4 5

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

-44

解答

a,b,c = map(int,input().split())
print(b*b - 4*a*c)

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_02

1-3 输出“人生苦短,我学Python” (10 分)

题目

输入格式:

输出格式:

人生苦短,我学Python

输入样例:

输出样例:

人生苦短,我学Python

解答

l='人生苦短,我学Python'
print(l)

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_03

第二章习题

2-1 计算 11+12+13+…+m (30 分)

题目

输入一个正整数m(20<=m<=100),计算 11+12+13+…+m 的值。

输入格式:

在一行输入一个正整数m。

输出格式:

在一行中按照格式“sum = S”输出对应的和S.

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

90

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

sum = 4040

解答

m=int(input())
res=sum(list(range(11,m+1)))
print("sum =",res)

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_04

2-2 计算分段函数[1] (10 分)

题目

本题目要求计算下列分段函数_f_(x)的值:

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_05

输入格式:

输入在一行中给出实数x。

输出格式:

在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。

输入样例1:

10

输出样例1:

f(10.0) = 0.1

输入样例2:

0

输出样例2:

f(0.0) = 0.0

解答

提交代码-1

x=float(input())
if x==0:
    print("f({:.1f}) = {:.1f}".format(x,x))
else:
    print("f({:.1f}) = {:.1f}".format(x,1/x))

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_06


提交代码-2

x=float(input())
if x==0:
    print('f(%.1f) = %.1f'%(x,x))
else:
    print('f(%.1f) = %.1f' % (x, 1/x))

2-3 阶梯电价 (15 分)

题目

为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。

输入格式:

输入在一行中给出某用户的月用电量(单位:千瓦时)。

输出格式:

在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”;若用电量小于0,则输出"Invalid Value!"。

输入样例1:

10

输出样例1:

cost = 5.30

输入样例2:

100

输出样例2:

cost = 55.50

解答

m=int(input())
if m<0:
    print("Invalid Value!")
elif m<=50:
    cost=m*0.53
    print("cost = {:.2f}".format(cost))
else:
    cost=50*0.53+(m-50)*(0.53+0.05)
    print("cost = {:.2f}".format(cost))

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_07

2-4 特殊a串数列求和 (20 分)

题目

给定两个均不超过9的正整数_a_和_n_,要求编写程序求_a_+aa+aaa++⋯+aa_⋯_an_个_a)之和。

输入格式:

输入在一行中给出不超过9的正整数a和n。

输出格式:

在一行中按照“s = 对应的和”的格式输出。

输入样例:

2 3

输出样例:

s = 246

解答

a,n=map(int,input().split())
num=0
sum=0
for i in range(1,n+1):
    num=num*10+a
    sum+=num
print("s =",sum)

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_08

2-5 求奇数分之一序列前N项和 (15 分)

题目

本题要求编写程序,计算序列 1 + 1/3 + 1/5 + … 的前N项之和。

输入格式:

输入在一行中给出一个正整数N。

输出格式:

在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。

输入样例:

23

输出样例:

sum = 2.549541

解答

n=int(input())
sum=0
for i in range(1,2*n,2):
    sum+=1/i
print("sum = {:.6f}".format(sum))

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_09

2-6 求交错序列前N项和 (15 分)

题目

本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+… 的前N项之和。

输入格式:

输入在一行中给出一个正整数N。

输出格式:

在一行中输出部分和的值,结果保留三位小数。

输入样例:

5

输出样例:

0.917

解答

n=int(input())
sum=0
for i in range(1,n+1):
    if i%2==0:
        sum-=(i/(2*i-1))
    else:
        sum+=(i/(2*i-1))
print("{:.3f}".format(sum))

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_10

2-7 产生每位数字相同的n位数 (30 分)

题目

读入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

解答

a,b=map(int,input().split(','))
res=0
for i in range(1,b+1):
    res=(res*10)+a
print(res)

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_11

2-8 转换函数使用 (30 分)

题目

输入一个整数和进制,转换成十进制输出

输入格式:

在一行输入整数和进制

输出格式:

在一行十进制输出结果

输入样例:

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

输出样例:

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

解答

提交代码-1

m,n=map(int,input().split(','))
count=0
ans=0
while(m>0):
    ans=ans+(m%10)*pow(n,count)
    count=count+1
    m=int(m/10)
print(int(ans))

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_12


提交代码-2

m,n=input().split(',')
ans=int(m,int(n))
print(ans)

2-9 比较大小 (10 分)

题目

本题要求将输入的任意3个整数从小到大输出。

输入格式:

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

输出格式:

在一行中将3个整数从小到大输出,其间以“->”相连。

输入样例:

4 2 8

输出样例:

2->4->8

解答

提交代码 - 1

a,b,c=map(int,input().split())
if(a>b):
    temp=a
    a=b
    b=temp
if(a>c):
    temp=a
    a=c
    c=temp
if(b>c):
    temp=b
    b=c
    c=temp
print("%d->%d->%d" %(a,b,c))

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_13


提交代码 - 2

print(*sorted(map(int,input().split())),sep="->")

提交代码 - 3

#!/usr/bin/python3
print(*sorted(map(int,input().split(','))),sep="->")

2-10 输出华氏-摄氏温度转换表 (15 分)

题目

输入2个正整数lower和upper(lower≤upper≤100),请输出一张取值范围为[lower,upper]、且每次增加2华氏度的华氏-摄氏温度转换表。
温度转换的计算公式:C=5×(_F_−32)/9,其中:_C_表示摄氏温度,_F_表示华氏温度。

输入格式:

在一行中输入2个整数,分别表示lower和upper的值,中间用空格分开。

输出格式:

第一行输出:“fahr celsius”
接着每行输出一个华氏温度fahr(整型)与一个摄氏温度celsius(占据6个字符宽度,靠右对齐,保留1位小数)。
若输入的范围不合法,则输出"Invalid."。

输入样例1:

32 35

输出样例1:

fahr celsius
32 0.0
34 1.1

输入样例2:

40 30

输出样例2:

Invalid.

解答

#!/usr/bin/python3
m,n=map(int,input().split())
if(n<m):
    print('Invalid.')
else:
    print('fahr celsius')
    for i in range(m,n+1,2):
        print("{:d}{:>6.1f}".format(i,5*(i-32)/9))

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_14

2-11 求平方与倒数序列的部分和 (15 分)

题目

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_15

输入格式:

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

输出格式:

在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。

输入样例:

5 10

输出样例:

sum = 355.845635

解答

提交代码 - 1

m,n=map(int,input().split())
sum=0
for i in range(m,n+1):
    sum=sum+i*i+1/i
print("sum = {:.6f}".format(sum))

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_16


提交代码 - 2

m,n=map(int,input().split())
print("sum = %.6f"% sum([(m*m+1/m) for m in range(m,n+1)]))

2-12 输出三角形面积和周长 (15 分)

题目

本题要求编写程序,根据输入的三角形的三条边_a_、bc,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:area=√_s_(s_−_a)(s_−_b)(s_−_c),其中_s_=(a+b+c)/2。

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_17


输入格式:

输入为3个正整数,分别代表三角形的3条边a、b、c。

输出格式:

如果输入的边能构成一个三角形,则在一行内,按照
area = 面积; perimeter = 周长
的格式输出,保留两位小数。否则,输出
These sides do not correspond to a valid triangle

输入样例1:

5 5 3

输出样例1:

area = 7.15; perimeter = 13.00

输入样例2:

1 4 1

输出样例2:

These sides do not correspond to a valid triangle

解答

a,b,c=map(int,input().split())
if(a+b<=c or a+c<=b or b+c<=a):
    print("These sides do not correspond to a valid triangle")
else:
    s=(a+b+c)/2
    print("area = {:.2f}; perimeter = {:.2f}".format((s*(s-a)*(s-b)*(s-c))**0.5,a+b+c))

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_18

2-13 分段计算居民水费 (10 分)

题目

为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费_y_(元)与月用水量_x_(吨)相关:当_x_不超过15吨时,y=4_x_/3;超过后,y=2.5_x_−17.5。请编写程序实现水费的计算。

输入格式:

输入在一行中给出非负实数x。

输出格式:

在一行输出应交的水费,精确到小数点后2位。

输入样例1:

12

输出样例1:

16.00

输入样例2:

16

输出样例2:

22.50

解答

m=float(input())
if(m<=15):
    print("{:.2f}".format((4*m)/3))
else:
    print("{:.2f}".format(2.5*m-17.5))

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_19

2-14 求整数段和 (15 分)

题目

给定两个整数_A_和_B_,输出从_A_到_B_的所有整数以及这些数的和。

输入格式:

输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。

输出格式:

首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。

输入样例:
-3 8

输出样例:

-3 -2 -1 0 1
2 3 4 5 6
7 8 Sum = 30

解答

a,b=map(int,input().split())
sum=0
count=0
for i in range(a,b+1):
    print("{:>5d}".format(i),end="")
    sum+=i
    count=count+1
    if(count==5):
        print("\n",end="")
        count=0
    elif(i==b):
        print("\n",end="")
print("Sum = {:d}".format(sum))

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_20

第三章习题

3-1 大于身高的平均值 (10 分)

题目

中小学生每个学期都要体检,要量身高,因为身高可以反映孩子的生长状况。现在,一个班的身高已经量好了,请输出其中超过平均身高的那些身高。程序的输入为一行数据,其中以空格分隔,每个数据都是一个正整数。程序要输出那些超过输入的正整数的平均数的输入值,每个数后面有一个空格,输出的顺序和输入的相同。

输入格式:

在一行输入中一个班的身高值,以空格分隔。

输出格式:

在一行输出超过输入的平均数的输入值,以空格分隔。

输入样例:

在这里给出一组输入。例如:
143 174 119 127 117 164 110 128

输出样例:

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

解答

grades=list(map(int,input().split()))
sum=0
for i in grades:
    sum+=i
average_grade=sum/len(grades)
for i in grades:
    if(i>average_grade):
        print("{:d} ".format(i),end="")

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_21

3-2 查验身份证 (15 分)

题目

一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:

首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:

Z:0 1 2 3 4 5 6 7 8 9 10
M:1 0 X 9 8 7 6 5 4 3 2

现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。

输入格式:

输入第一行给出正整数N(≤100)是输入的身份证号码的个数。随后N行,每行给出1个18位身份证号码。

输出格式:

按照输入的顺序每行输出1个有问题的身份证号码。这里并不检验前17位是否合理,只检查前17位是否全为数字且最后1位校验码计算准确。如果所有号码都正常,则输出All passed。

输入样例1:

4
320124198808240056
12010X198901011234
110108196711301866
37070419881216001X

输出样例1:

12010X198901011234
110108196711301866
37070419881216001X

输入样例2:

2
320124198808240056
110108196711301862

输出样例2:

All passed

解答

def judge(id,weight,checkCode):
    sum=0
    index=0#辅助索引
    # 前17位
    freWords=id[:17]
    # 第18位上的字符
    lastWord=id[-1]
    for i in freWords:
        if(i<'0' or i>'9'):
            return False
        else:
            sum=sum+weight[index]*int(i)
            index=index+1
    sum=sum%11
    if checkCode[sum] == lastWord:
        return True
    else:
        return False
    
m=int(input())
# 统计正确身份证号码的数量
count=0
# 权重
weight=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
# 校验码
checkCode=['1','0','X','9','8','7','6','5','4','3','2']

for i in range(m):
    id=input()
    if judge(id,weight,checkCode) == False:
        print(id)
    else:
        count=count+1
if(count == m):
    print("All passed")

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_22

3-3 输出字母在字符串中位置索引 (20 分)

题目

输入一个字符串,再输入两个字符,求这两个字符在字符串中的索引。

输入格式:

第一行输入字符串
第二行输入两个字符,用空格分开。

输出格式:

从右向左输出字符和索引,即下标最大的字符最先输出。每行一个。

输入样例:

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

输出样例:

在这里给出相应的输出。例如:
11 p
10 p
8 s
7 s
5 s
4 p
3 s
0 p

解答

str=input()
s1,s2=input().split()
count=len(str)-1
while count>=0:
    if str[count]==s1 or str[count]==s2:
        print("{:d} {:s}".format(count,str[count]))
    count=count-1

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_23

3-4 查找指定字符 (15 分)

题目

本题要求编写程序,从给定字符串中查找某指定的字符。

输入格式:

输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。

输出格式:

如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。

输入样例1:

m
programming

输出样例1:

index = 7

输入样例2:

a
1234

输出样例2:

Not Found

解答

提交代码 - 1

word=input()
words=input()
count=len(words)-1
while count>=0:
    if words[count] == word:
        print("index = {:d}".format(count))
        break
    count-=1
if count == -1:
    print("Not Found")

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_24


提交代码 - 2

word=input()
words=input()
if words.find(word) != -1:
    # 反转
    words=words[::-1]
    print("index = {:d}".format(len(words)-words.find(word)-1))
else:
    print("Not Found")

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_25

3-5 字符转换 (15 分)

题目

本题要求提取一个字符串中的所有数字字符(‘0’……‘9’),将其转换为一个整数输出。

输入格式:

输入在一行中给出一个不超过80个字符且以回车结束的字符串。

输出格式:

在一行中输出转换后的整数。题目保证输出不超过长整型范围。

输入样例:

free82jeep5

输出样例:

825

解答

提交代码 - 1

str=input()
ans=0
for i in str:
    if i>='0' and i<= '9':
        ans=ans*10+int(i)
print(ans)

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_26


提交代码 - 2

str=input()
ans=[]
for i in str:
    if i.isdigit():
        ans.append(i)
print(int("".join(ans)))

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_27

3-6 求整数序列中出现次数最多的数 (15 分)

题目

本题要求统计一个整型序列中出现次数最多的整数及其出现次数。

输入格式:

输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数。数字间以空格分隔。

输出格式:

在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。

输入样例:

10 3 2 -1 5 3 4 3 0 3 2

输出样例:

3 4

解答

a = input().split()[1:]#???
d = {}
for b in set(a):
    d[a.count(b)]=b
max_count = max(d.keys())
max_number = d.get(max_count)
print('{} {}'.format(max_number,max_count))

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_28

3-7 求最大值及其下标 (20 分)

题目

本题要求编写程序,找出给定的_n_个数中的最大值及其对应的最小下标(下标从0开始)。

输入格式:

输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。

输出格式:

在一行中输出最大值及最大值的最小下标,中间用一个空格分开。

输入样例:

6 2 8 10 1 9 10

输出样例:

10 2

解答

m=int(input())
integers=list(map(int,input().split()))
max_interger=max(integers)
print("{:d} {:d}".format(max_interger,integers.index(max_interger)))

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_29

3-8 字符串逆序 (15 分)

题目

输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。

输入格式:

输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。

输出格式:

在一行中输出逆序后的字符串。

输入样例:

Hello World!

输出样例:

!dlroW olleH

解答

str=input()
print("{}".format(str[::-1]))

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_30

3-9 字符串转换成十进制整数 (15 分)

题目

输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。

输入格式:

输入在一行中给出一个以#结束的非空字符串。

输出格式:

在一行中输出转换后的十进制数。题目保证输出在长整型范围内。

输入样例:

±P-xf4±1!#

输出样例:

-3905

解答

提交代码 - 1

str=input()
flag=1
res=""
checked=False
for i in str:
    if (i>='0' and i<='9') or (i>='A' and i<='F') or (i>='a' and i<='f'):
        res+=i
        checked=True
    elif i=='-' and checked==False:
        flag=-1
if res == '':
    print(0)
else:
    print(flag*int(res,16))

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_31


提交代码 - 2

str=input()
s="123456789abcdefABCDEF"
res=""
for i in str:
    if i in s:
        res+=i
if res == "":
    print(0)
elif str.find(res[0])>str.find('-'):
    print(-int(res,16))
else:
    print(int(res,16))

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_32

3-10 统计大写辅音字母 (15 分)

题目

英文辅音字母是除A、E、I、O、U以外的字母。本题要求编写程序,统计给定字符串中大写辅音字母的个数。

输入格式:

输入在一行中给出一个不超过80个字符、并以回车结束的字符串。

输出格式:

输出在一行中给出字符串中大写辅音字母的个数。

输入样例:

HELLO World!

输出样例:

4

解答

提交代码 - 1

str=input()
s="AEIOU"
count=0
for i in str:
    if (i>='A' and i<='Z') and (i not in s):
        count+=1
print(count)

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_33


提交代码 - 2

str=input()
s="AEIOU"
count=0
for i in str:
    if (i.isupper() == 1) and (i not in s):
        count+=1
print(count)

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_34

3-11 字符串排序 (20 分)

题目

本题要求编写程序,读入5个字符串,按由小到大的顺序输出。

输入格式:

输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。

输出格式:

按照以下格式输出排序后的结果:
After sorted:
每行一个字符串

输入样例:

red yellow blue green white

输出样例:

After sorted:
blue
green
red
white
yellow

解答

lst = list(map(str,input().split()))
lst.sort()
print("After sorted:")
for i in lst:
    print(i)

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_35

3-12 求整数的位数及各位数字之和 (15 分)

题目

对于给定的正整数N,求它的位数及其各位数字之和。

输入格式:

输入在一行中给出一个不超过109的正整数N。

输出格式:

在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。

输入样例:

321

输出样例:

3 6

解答

str=input()
m=len(str)
sum=0
for i in str:
    sum=sum+int(i)
print("{:d} {:d}".format(m,sum))

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_36

3-13 字符串替换 (15 分)

题目

本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:

原字母

对应字母

A

Z

B

Y

C

X

D

W



X

C

Y

B

Z

A

输入格式:

输入在一行中给出一个不超过80个字符、并以回车结束的字符串。

输出格式:

输出在一行中给出替换完成后的字符串。

输入样例:

Only the 11 CAPItaL LeTtERS are replaced.

输出样例:

Lnly the 11 XZKRtaO OeGtVIH are replaced.

解答

提交代码 - 1

def change(word):
    return chr(ord('A')+25-(ord(word)-ord('A')))
s=input()
ans=""
for i in s:
    if i>='A' and i<='Z':
        ans+=change(i)
    else:
        ans+=i
print(ans)

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_37


提交代码 - 2

s=input()
ans=[]
for i in s:
    if 'A'<=i<='Z':
        ans.append(chr(155-ord(i)))
    else:
        ans.append(i)
print("".join(ans))

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_38


注意:

ord(‘A’)+25-(ord(word)-ord(‘A’))=ord(‘A’)+25+ord(word)+ord(‘A’)

ord(‘A’)=65

65+65+25=155

所以为 155-ord(word)


3-14 字符串字母大小写转换 (15 分)

题目

本题要求编写程序,对一个以“#”结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出。

输入格式:

输入为一个以“#”结束的字符串(不超过30个字符)。

输出格式:

在一行中输出大小写转换后的结果字符串。

输入样例:

Hello World! 123#

输出样例:

hELLO wORLD! 123

解答

s=input()
s=s.replace('#','')
ans=""
for i in s:
    if i.islower():
        ans+=i.upper()
    elif i.isupper():
        ans+=i.lower()
    else:
        ans+=i
print(ans)

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_39

3-15 统计一行文本的单词个数 (15 分)

题目

本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。

输入格式:

输入给出一行字符。

输出格式:

在一行中输出单词个数。

输入样例:

Let’s go to room 209.

输出样例:

5

解答

str = input().split()
print(len(str))

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_40

3-16 删除重复字符 (20 分)

题目

本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。

输入格式:

输入是一个以回车结束的非空字符串(少于80个字符)。

输出格式:

输出去重排序后的结果字符串。

输入样例:

ad2f3adjfeainzzzv

输出样例:

23adefijnvz

解答

s = list(set(input()))
s.sort()
for i in s:
    print(i,end="")

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_41

3-17 删除字符 (30 分)

题目

输入一个字符串 str,再输入要删除字符 c,大小写不区分,将字符串 str 中出现的所有字符 c 删除。提示:去掉两端的空格。

输入格式:

在第一行中输入一行字符 在第二行输入待删除的字符

输出格式:

在一行中输出删除后的字符串

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

Bee E

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

result: B

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

7!jdk*!ASyu !

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

result: 7jdk*ASyu

解答

str = input().strip()
word = input().strip()
str = str.replace(word.upper(),'').replace(word.lower(),'')
print("result: {}".format(str))

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_42

3-18 输出10个不重复的英文字母 (30 分)

题目

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

输入格式:

在一行中输入字符串

输出格式:

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

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

poemp134567

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

not found

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

This 156is a test example

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

Thisaexmpl

解答

提交代码 - 1

string =''.join(input().split())
cont=set()
index=list()
for i in range(0,len(string)):
    old = len(cont)
    if str.isalpha(string[i]):
        cont.add(string[i].lower())
    new = len(cont)
    if(old !=new):
        index.append(i)
        if len(cont) == 10:
            print(*list(map(lambda a: string[a],index)),sep="")
            exit()
print("not found")

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_43


提交代码 - 2

s=input()
ans=[]
for i in s:
    if i.isalpha() and i.upper() not in ans and i.lower() not in ans:
        ans.append(i)
if len(ans)<10:
    print("not found")
else:
    for i in range(10):
        print(ans[i],end="")

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_44

3-19 找最长的字符串 (15 分)

题目

本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。

输入格式:

输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。

输出格式:
在一行中用以下格式输出最长的字符串:

The longest is: 最长的字符串

如果字符串的长度相同,则输出先输入的字符串。

输入样例:

5 li wang zhang jin xiang

输出样例:

The longest is: zhang

解答

counts = int(input())-1
ans = 0
str = ""
while counts>=0:
    s = input()
    if len(s)>ans:
        ans=len(s)
        str=s
    counts-=1
print("The longest is: {}".format(str))

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_45

3-20 逆序的三位数 (10 分)

题目

程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

输入格式:

每个测试是一个3位的正整数。

输出格式:

输出按位逆序的数。

输入样例:

123

输出样例:

321

解答

提交代码 - 1

num = int(input())
sum = 0
while num:
    m=num%10
    sum=sum*10+m
    num=int(num/10)
print(sum)

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_46


提交代码 - 2

str = input()
str = str[::-1]
print(int(str))

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_47

3-21 判断回文字符串 (15 分)

题目

输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。

输入格式:

输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。

输出格式:

输出在第1行中输出字符串。如果它是回文字符串,在第2行中输出Yes,否则输出No。

输入样例1:

level

输出样例1:

level
Yes

输入样例2:

1 + 2 = 2 + 1 =

输出样例2:

1 + 2 = 2 + 1 =
No

解答

str1 = input()
str2 = str1[::-1]
if str1 == str2:
    print(str1)
    print("Yes")
else:
    print(str1)
    print("No")

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_48

3-22 输出大写英文字母 (15 分)

题目

本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“Not Found”。

输入格式:

输入为一个以回车结束的字符串(少于80个字符)。

输出格式:

按照输入的顺序在一行中输出所出现过的大写英文字母,每个字母只输出一遍。若无大写英文字母则输出“Not Found”。

输入样例1:

FONTNAME and FILENAME

输出样例1:

FONTAMEIL

输入样例2:

fontname and filrname

输出样例2:

Not Found

解答

str = input()
ans = ""
for i in str:
    if i.isupper() and ans.find(i) == -1:
        ans+=i
if len(ans)==0:
    print("Not Found")
else:
    print(ans)

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_49

第四章

4-1 生成3的乘方表 (15 分)

题目

输入一个非负整数n,生成一张3的乘方表,输出30~3n的值。可调用幂函数计算3的乘方。

输入格式:

输入在一行中给出一个非负整数n。

输出格式:

按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。

输入样例:

3

输出样例:

pow(3,0) = 1
pow(3,1) = 3
pow(3,2) = 9
pow(3,3) = 27

解答

m = int(input())
for i in range(m+1):
    print("pow(3,{:d}) = {:d}".format(i, 3**i))

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_50

4-2 统计素数并求和 (20 分)

题目

本题要求统计给定整数_M_和_N_区间内素数的个数并对它们求和。

输入格式:

输入在一行中给出两个正整数M和N(1≤M≤N≤500)。

输出格式:

在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。

输入样例:

10 31

输出样例:

7 143

解答

def issu(num):
    if num == 1:
        return False
    for i in range(2, num):
        if num % i == 0:
            return False
    return True


m, n = map(int, input().split())
counts = 0
sum = 0
for i in range(m, n+1):
    if issu(i):
        counts += 1
        sum += i
print("{:d} {:d}".format(counts, sum))

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_51

4-3 猴子吃桃问题 (15 分)

题目

一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?

输入格式:

输入在一行中给出正整数N(1<N≤10)。

输出格式:

在一行中输出第一天共摘了多少个桃子。

输入样例:

3

输出样例:

10

解答

m = int(input())
ans = 1
for i in range(1, m):
    ans = (ans + 1) * 2
print(ans)

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_52

4-4 验证“哥德巴赫猜想” (20 分)

题目

数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。

输入格式:

输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N。

输出格式:

在一行中按照格式“N = p + q”输出N的素数分解,其中p ≤ q均为素数。又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。

输入样例:

24

输出样例:

24 = 5 + 19

解答

提交代码 - 1

import math


def issu(num):
    for i in range(2, int(math.sqrt(num))+1):
        if num % i == 0:
            return False
    return True


m = int(input())
for i in range(2, m):
    if issu(i) and issu(m-i):
        print("{} = {} + {}".format(m, i, m-i))
        break

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_53


提交代码 - 2

import math


def issu(num):
    for i in range(2, int(math.sqrt(num))+1):
        if num % i == 0:
            return False
    return True


m = int(input())
for i in range(2, m//2+1):
    if issu(i) and issu(m-i):
        print("{} = {} + {}".format(m, i, m-i))
        break

4-5 求e的近似值 (15 分)

题目

自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。

输入格式:

输入第一行中给出非负整数 n(≤1000)。

输出格式:

在一行中输出部分和的值,保留小数点后八位。

输入样例:

10

输出样例:

2.71828180

解答

提交代码 - 1

def factorial(num):
    ans = 1
    for i in range(1, num+1):
        ans *= i
    return ans


N = int(input())
sum = 1
for i in range(1, N+1):
    sum += 1/factorial(i)
print("{:.8f}".format(sum))

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_54


提交代码 - 2

N = int(input())
num = 1
sum = 1
for i in range(1, N+1):
    num *= i
    sum += 1/num
print("{:.8f}".format(sum))

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_55

4-6 输出前 n 个Fibonacci数 (15 分)

题目

本题要求编写程序,输出菲波那契(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.

解答

n = int(input())
if n < 1:
    print("Invalid.")
a = 0
b = 1
c = 1
count = 0
for i in range(n):
    print("{:>11d}".format(c), end="")
    c = a + b
    a = b
    b = c
    count += 1
    if count == 5 or i == n-1:
        print("\n", end="")
        count = 0

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_56

4-7 统计学生平均成绩与及格人数 (15 分)

题目

本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。

输入格式:

输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。

输出格式:
按照以下格式输出:

average = 成绩均值
count = 及格人数

其中平均值精确到小数点后一位。

输入样例:

5 77 54 92 73 60

输出样例:

average = 71.2
count = 4

解答

nums = int(input())
if(nums == 0):
    print('average = 0.0')
    print('count = 0')
    exit()
grades = list(map(int, input().split()))
average = 0
count = 0
for i in grades:
    average += i
    if i >= 60:
        count += 1
print("average = {:.1f}".format(average/nums))
print("count = {:d}".format(count))

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_57

4-8 求分数序列前N项和 (15 分)

题目

本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。

本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。

输入格式:

输入在一行中给出一个正整数N。

输出格式:

在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。

输入样例:

20

输出样例:

32.66

解答

提交代码 - 1

n = int(input())
a = 2
b = 1
sum = 2
for i in range(n-1):
    t = a
    a = a + b
    b = t
    sum += a/b
print("{:.2f}".format(sum))

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_58


提交代码 - 2

n = int(input())
a = 2
b = 1
sum = 2
for i in range(n-1):
    a, b = a+b, a
    sum += a/b
print("{:.2f}".format(sum))

4-9 查询水果价格 (15 分)

题目

给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。

首先在屏幕上显示以下菜单:

[1] apple
[2] pear
[3] orange
[4] grape
[0] exit

用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。

输入格式:

输入在一行中给出用户连续输入的若干个编号。

输出格式:

首先在屏幕上显示菜单。然后对应用户的每个输入,在一行中按格式“price = 价格”输出查询结果,其中价格保留两位小数。当用户连续查询次数超过5次、或主动输入0时,程序结束。

输入样例1:

3 -1 0 2

输出样例1:

[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 4.10
price = 0.00

输入样例2:

1 2 3 3 4 4 5 6 7 8

输出样例2:

[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 3.00
price = 2.50
price = 4.10
price = 4.10
price = 10.20

解答

goods = ["[1] apple", "[2] pear", "[3] orange", "[4] grape", "[0] exit"]
prices = ["3.00", "2.50", "4.10", "10.20"]
for i in goods:
    print(i)
lst = list(map(int, input().split()))
count = 0
for i in lst:
    count += 1
    if count > 5:
        exit()
    if 1 <= i <= 4:
        print("price = {}".format(prices[i-1]))
    elif i == 0:
        exit()
    else:
        print("price = 0.00")

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_59

4-10 最大公约数和最小公倍数 (15 分)

题目

本题要求两个给定正整数的最大公约数和最小公倍数。

输入格式:

输入在一行中给出两个正整数M和N(≤1000)。

输出格式:

在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。

输入样例:

511 292

输出样例:

73 2044

解答

def gcd(a, b):
    if a % b == 0:
        return b
    else:
        return gcd(b, a % b)


n, m = input().split()
n = int(n)
m = int(m)
print('{:d} {:d}'.format(gcd(n, m), n*m//gcd(n, m)))

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_60

4-11 判断素数 (20 分)

题目

判断一个给定的正整数是否素数

输入格式:

输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于1000000 的需要判断的正整数

输出格式:

对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No

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

2
11
111

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

Yes
No

解答

import math


def judge(num):
    if num == 1:
        return False
    for i in range(2, int(math.sqrt(num))+1):
        if num % i == 0:
            return False
    return True


n = int(input())
while n > 0:
    num = int(input())
    if judge(num):
        print("Yes")
    else:
        print("No")
    n -= 1

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_61

4-12 求满足条件的斐波那契数 (30 分)

题目

斐波那契数,亦称之为斐波那契数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……,这个数列从第3项开始,每一项都等于前两项之和。求大于输入数的最小斐波那契数。

输入格式:

在一行输人一个正整数n(n>=10)。

输出格式:

在一行输出大于n的最小斐波那契数。

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

10

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

13

解答

num = int(input())
a = 1
b = 1
c = a + b
while c < num:
    a, b = b, a+b
    c = a+b
print(c)

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_62

num = int(input())
a = 1
b = 1
while b < num:
    a, b = b, a+b
print(b)

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_63

4-13 求误差小于输入值的e的近似值 (20 分)

题目

自然常数e可以用级数1+1/1!+1/2!+⋯+1/n!来近似计算。ei代表前i项求和。输入误差范围error,当
ei+1-ei<error,则表示e的近似值满足误差范围。

输入格式:

在一行输入误差范围,误差小于等于0.01。

输出格式:

在一行输出e的近似值(保留6位小数)。

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

0.01

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

2.716667

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

0.000000001

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

2.718282

解答

error = float(input())
sum = 1
count = 1
n = 1
while True:
    n = n*count
    count += 1
    sum += 1/n
    if 1/n < error:
        print("{:.6f}".format(sum))
        break

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_64

4-14 统计字符 (15 分)

题目

本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。

输入格式:

输入为10个字符。最后一个回车表示输入结束,不算在内。

输出格式:
在一行内按照

letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数

的格式输出。

输入样例:

aZ &
09 Az

输出样例:

letter = 4, blank = 3, digit = 2, other = 1

解答

letter_nums = 0
blank_nums = 0
digit_nums = 0
other_nums = 0
count = 0
str = ""
while True:
    s = input()
    count += 1
    str += s
    if len(str)+count > 10:
        count -= 1
        break
blank_nums += count
for i in str:
    if i.isalpha():
        letter_nums += 1
    elif i.isspace():
        blank_nums += 1
    elif i.isdigit():
        digit_nums += 1
    else:
        other_nums += 1
print("letter = {}, blank = {}, digit = {}, other = {}".format(
    letter_nums, blank_nums, digit_nums, other_nums))

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_65

4-15 换硬币 (20 分)

题目

将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?

输入格式:

输入在一行中给出待换的零钱数额x∈(8,100)。

输出格式:

要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。

输入样例:

13

输出样例:

fen5:2, fen2:1, fen1:1, total:4
fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4

解答

num = int(input())
count = 0
for i in range(num//5, 0, -1):
    for j in range(num//2, 0, -1):
        for k in range(num, 0, -1):
            if 5*i+2*j+k == num:
                print("fen5:{}, fen2:{}, fen1:{}, total:{}".format(i, j, k, i+j+k))
                count += 1
print("count = {}".format(count))

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_66

4-16 jmu-python-判断是否构成三角形 (10 分)

题目

输入三角形的三边,判断是否能构成三角形。若能构成输出yes,否则输出no。

输入格式:

在一行中直接输入3个整数,3个整数之间各用一个空格间隔,没有其他任何附加字符。

输出格式:

直接输出yes或no,没有其他任何附加字符。

输入样例1:

3 4 5

输出样例1:

yes

输入样例2:

1 2 3

输出样例2:

no

解答

a, b, c = map(int, input().split())
if a+b > c and a+c > b and b+c > a:
    print("yes")
else:
    print("no")

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_67

4-17 水仙花数(20 分) (20 分)

题目

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。 例如:153=1×1×1+5×5×5+3×3×3。

本题要求编写程序,计算所有N位水仙花数。
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。 例如:153=1×1×1+5×5×5+3×3×3。
本题要求编写程序,计算所有N位水仙花数。

输入格式:

输入在一行中给出一个正整数N(3≤N≤5)

输出格式:

按递增顺序输出所有N位水仙花数,每个数字占一行。

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

3

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

153
370
371
407

解答

提交代码 - 1

def judge(num, n):
    sum = 0
    i = num
    while i > 0:
        sum += pow(i % 10, n)
        i //= 10
    if sum == num:
        return True
    else:
        return False


n = int(input())
for i in range(pow(10, n-1), pow(10, n)):
    if judge(i, n):
        print(i)

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_68

提交代码 - 2

n = int(input())
for num in range(10**(n-1), 10**n):
    lists = map(int, str(num))
    sum = 0
    for i in lists:
        sum += i**n
    if sum == num:
        print(num)

4-18 猴子选大王 (20 分)

题目

一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?

输入格式:

输入在一行中给一个正整数N(≤1000)。

输出格式:

在一行中输出当选猴王的编号。

输入样例:

11

输出样例:

7

解答

n = int(input())
ans = 0
for i in range(2, n+1):
    ans = (ans+3) % i
print(ans+1)

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_69

4-19 矩阵运算 (20 分)

题目

给定一个_n_×_n_的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。

输入格式:

输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。

输出格式:

在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。

输入样例:

4
2 3 4 1
5 6 1 1
7 1 8 1
1 1 1 1

输出样例:

35

解答

n = int(input())
index = n-1
ans = 0
while n > 1:
    lst = list(map(int, input().split()))
    for i, num in enumerate(lst):
        if i != len(lst)-1 and i != index:
            ans += num
    index -= 1
    n -= 1
print(ans)

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_70

4-20 求矩阵各行元素之和 (15 分)

题目

本题要求编写程序,求一个给定的_m_×_n_矩阵各行元素之和。

输入格式:

输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间以空格分隔。

输出格式:

每行输出对应矩阵行元素之和。

输入样例:

3 2
6 3
1 -8
3 12

输出样例:

9
-7
15

解答

m, n = map(int, input().split())
while m:
    lst = list(map(int, input().split()))
    sum = 0
    for i in lst:
        sum += i
    m -= 1
    print(sum)

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_71

4-21 判断上三角矩阵 (15 分)

题目

上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。
本题要求编写程序,判断一个给定的方阵是否上三角矩阵。

输入格式:

输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。

输出格式:

每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。

输入样例:

3
3
1 2 3
0 4 5
0 0 6
2
1 0
-8 2
3
1 2 3
1 4 5
0 -1 6

输出样例:

YES
NO
NO

解答

def judge(a):
    for i in range(len(a)):
        for j in range(len(a)):
            if i > j and a[i][j] != 0:
                return False
    return True


t = int(input())
while t:
    n = int(input())
    a = []
    while n:
        s = input()
        a.append([int(i) for i in s.split()])
        n -= 1
    if judge(a):
        print("YES")
    else:
        print("NO")
    t -= 1

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_72

4-22 找鞍点 (20 分)

题目

一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。

本题要求编写程序,求一个给定的n阶方阵的鞍点。

输入格式:

输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。

输出格式:

输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。

输入样例1:

4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9

输出样例1:

2 1

输入样例2:

2 1 7 4 1

输出样例2:

NONE

解答

n = int(input())
a = []
for i in range(n):
    a.append(list(map(int, input().split())))
for i in range(n):
    max_num_row = max(a[i][k] for k in range(n))
    for j in range(n):
        max_num_col = min(a[k][j] for k in range(n))
        if max_num_row == max_num_col:
            print("{} {}".format(i, j))
            exit()
print("NONE")

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_73

4-23 求矩阵的局部极大值 (15 分)

题目

给定_M_行_N_列的整数矩阵_A_,如果_A_的非边界元素_A_[i][j]大于相邻的上下左右4个元素,那么就称元素_A_[i][j]是矩阵的局部极大值。本题要求给定矩阵的全部局部极大值及其所在的位置。

输入格式:

输入在第一行中给出矩阵A的行数M和列数N(3≤M,N≤20);最后M行,每行给出A在该行的N个元素的值。数字间以空格分隔。

输出格式:

每行按照“元素值 行号 列号”的格式输出一个局部极大值,其中行、列编号从1开始。要求按照行号递增输出;若同行有超过1个局部极大值,则该行按列号递增输出。若没有局部极大值,则输出“None 总行数 总列数”。

输入样例1:

4 5
1 1 1 1 1
1 3 9 3 1
1 5 3 5 1
1 1 1 1 1

输出样例1:

9 2 3
5 3 2
5 3 4

输入样例2:

3 5
1 1 1 1 1
9 3 9 9
1 1 5 3 5 1

输出样例2:

None 3 5

解答

m, n = map(int, input().split())
a = []
count = 0
for i in range(m):
    a.append(list(map(int, input().split())))
for i in range(1, m-1):
    for j in range(1, n-1):
        if a[i][j] > a[i-1][j] and a[i][j] > a[i][j+1] and a[i][j] > a[i+1][j] and a[i][j] > a[i][j-1]:
            print("{} {} {}".format(a[i][j], i+1, j+1))
            count += 1
if count == 0:
    print("None {} {}".format(m, n))

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_74

4-24 打印九九口诀表 (15 分)

题目

下面是一个完整的下三角九九口诀表:

11=1
1
2=2 22=4
1
3=3 23=6 33=9
14=4 24=8 34=12 44=16
15=5 25=10 35=15 45=20 55=25
1
6=6 26=12 36=18 46=24 56=30 66=36
1
7=7 27=14 37=21 47=28 57=35 67=42 77=49
18=8 28=16 38=24 48=32 58=40 68=48 78=56 88=64
19=9 29=18 39=27 49=36 59=45 69=54 79=63 89=72 9*9=81

本题要求对任意给定的一位正整数N,输出从11到NN的部分口诀表。

输入格式:

输入在一行中给出一个正整数N(1≤N≤9)。

输出格式:

输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。

输入样例:

4

输出样例:

11=1
1
2=2 22=4
1
3=3 23=6 33=9
14=4 24=8 34=12 44=16

解答

n = int(input())
for i in range(1, n+1):
    for j in range(1, n+1):
        if i >= j:
            print("{}*{}={:<4d}".format(j, i, i*j), end="")
    print()

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_75

4-25 输出三角形字符阵列 (15 分)

题目

本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。

输入格式:

输入在一行中给出一个正整数n(1≤n<7)。

输出格式:

输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。

输入样例:

4

输出样例:

A B C D
E F G
H I
J

解答

n = int(input())
count = 0
while n:
    for i in range(1, n+1):
        print("{} ".format(chr(ord('A')+count)), end="")
        count += 1
    print()
    n -= 1

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_76

4-26 求1!+3!+5!+……+n! (10 分)

题目

求1!+3!+5!+……+n!的和,要求用循环嵌套设计,n<12。

输入格式:

输入在一行中给出一个不超过12的正整数n。

输出格式:

在一行中按照格式“n=n值,s=阶乘和”的顺序输出,其中阶乘和是正整数。

输入样例:

5

输出样例:

n=5,s=127

解答

n = int(input())
t = 1
sum = 1
for i in range(1, n+1, 2):
    if i != 1:
        for j in range(i-1, i+1):
            t *= j
        sum += t
print("n={},s={}".format(n, sum))

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_77

4-27 二维数组中每行最大值和每行和 (10 分)

题目

求一个3*3二维数组中每行的最大值和每行的和。

输入格式:

在一行中输入9个小于100的整数,其间各以一个空格间隔

输出格式:

输出3行3列的二维数组,并在每行后面分别输出每行最大值和每行元素的和,每个数据输出占4列。

输入样例:

3 6 5 9 8 2 1 4 5

输出样例:

3 6 5 6 14
9 8 2 9 19
1 4 5 5 10

解答

lst = list(map(int, input().split()))
for i in range(3):
    max_num = lst[i*3]
    sum = 0
    for j in range(3):
        max_num = max(max_num, lst[i*3+j])
        sum += lst[i*3+j]
        print("{:4d}".format(lst[i*3+j]), end="")
    print("{:4d}{:4d}".format(max_num, sum))

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_78

4-28 矩阵转置 (10 分)

题目

将一个3×3矩阵转置(即行和列互换)。

输入格式:

在一行中输入9个小于100的整数,其间各以一个空格间隔。

输出格式:

输出3行3列的二维数组,每个数据输出占4列。

输入样例:

1 2 3 4 5 6 7 8 9

输出样例:

1 4 7
2 5 8
3 6 9

解答

lst = list(map(int, input().split()))
for i in range(3):
    for j in range(3):
        print("{:4d}".format(lst[i+j*3]), end="")
    print()

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_79

4-29 找出不是两个数组共有的元素 (20 分)

题目

给定两个整型数组,本题要求找出不是两者共有的元素。

输入格式:

输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。

输出格式:

在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。

输入样例:

10 3 -5 2 8 0 3 5 -15 9 100
11 6 4 8 2 6 -5 9 0 100 8 1

输出样例:

3 5 -15 6 4 1

解答

注意:返回答案的顺序也是有要求的
暴力解法

lst1 = list(map(int, input().split()))
lst2 = list(map(int, input().split()))
lst1 = lst1[1:]
lst2 = lst2[1:]
ans = []
for i in lst1:
    if i not in lst2 and i not in ans:
        ans.append(i)
for i in lst2:
    if i not in lst1 and i not in ans:
        ans.append(i)
for i, num in enumerate(ans):
    if i != len(ans)-1:
        print("{} ".format(num), end="")
    else:
        print("{}".format(num))

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_80

4-30 找完数 (20 分)

题目

所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。

输入格式:

输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。

输出格式:

逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + … + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。

输入样例:

2 30

输出样例:

6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14

解答

暴力

import math
m, n = map(int, input().split())
count = 0
for i in range(m, n+1):
    ans = []
    for j in range(1, i):
        if i % j == 0:
            ans.append(j)
    if sum(ans) == i:
        count += 1
        print("{} = ".format(i), end="")
        print(' + '.join('%s' % id for id in ans))
if count == 0:
    print("None")

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_81


优化后

import math
m, n = map(int, input().split())
count = 0
for i in range(m, n+1):
    ans = []
    ans.append(1)
    for j in range(2, int(math.sqrt(i)+1)):
        if i % j == 0:
            ans.append(j)
            if j*j != i:
                ans.append(i//j)
    if sum(ans) == i:
        count += 1
        ans.sort()
        print("{} = ".format(i), end="")
        print(' + '.join('%s' % id for id in ans))
if count == 0:
    print("None")

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_82

第五章

5-1 输出星期名缩写 (70 分)

题目

输入一个1到7的数字,输出对应的星期名的缩写。

1 Mon
2 Tue
3 Wed
4 Thu
5 Fri
6 Sat
7 Sun

输入格式:

输入1到7之间数字

输出格式:

输出对应的星期名的缩写

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

1

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

Mon

解答

days = {1:'Mon',2:'Tue',3:'Wed',4:'Thu',5:'Fri',6:'Sat',7:'Sun'}
index = int(input())
print(days[index])

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_83

5-2 图的字典表示 (20 分)

题目

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_84


图的字典表示。输入多行字符串,每行表示一个顶点和该顶点相连的边及长度,输出顶点数,边数,边的总长度。比如上图0点表示:{‘O’:{‘A’:2,‘B’:5,‘C’:4}}。


用eval函数处理输入,eval函数具体用法见第六章内置函数。


输入格式:

第一行表示输入的行数 下面每行输入表示一个顶点和该顶点相连的边及长度的字符串

输出格式:

在一行中输出顶点数,边数,边的总长度

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

4
{‘a’:{‘b’:10,‘c’:6}}
{‘b’:{‘c’:2,‘d’:7}}
{‘c’:{‘d’:10}} {‘d’:{}}

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

4 5 35

解答

n=int(input())
sum=0
length=0
for i in range(n):
    dic=eval(input())
    for j in dic:
        temp=dic[j]
        for k in temp:
            sum+=1
            length+=temp[k]
print("{} {} {}".format(n,sum,length))

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_85

5-3 四则运算(用字典实现) (30 分)

题目

四则运算(用字典实现),比较c语言的switch语句。

输入格式:

在一行中输入一个数字 在一行中输入一个四则运算符(+,-,*,/) 在一行中输入一个数字

输出格式:

在一行中输出运算结果(小数保留2位)

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

7 / 3

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

2.33

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

10 / 0

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

divided by zero

解答

参考:

res = {'+': 'x+y', '-': 'x-y', '*': 'x*y',
       '/': "x/y if y!=0  else 'divided by zero'"}
# 除法部分分三元式表示
x = int(input())
operation = input()
y = int(input())
# print(res[operation]) 除零返回字符串,其余返回数字类型
r = eval(res[operation])
if type(r) != str:
    print(format(r, '.2f'))
else:
    print(r)

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_86

5-4 分析活动投票情况 (20 分)

题目

利用集合分析活动投票情况。第一小队有五名队员,序号是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

解答

提交代码 - 1

tickets=list(set(map(int,input().split(','))))
a=[]
for i in range(6,11):
    if i not in tickets:
        a.append(i)
print(' '.join('%s' %id for id in a))

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_87


提交代码 - 2

tickets=list(set(map(str,input().split(','))))
a=[]
for i in range(6,11):
    if str(i) not in tickets:
        a.append(str(i))
ans=' '.join(a)
print(ans)

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_88

5-5 统计字符出现次数 (20 分)

题目

本题要求编写程序,统计并输出某给定字符在给定字符串中出现的次数。

输入格式:

输入第一行给出一个以回车结束的字符串(少于80个字符);第二行输入一个字符。

输出格式:

在一行中输出给定字符在给定字符串中出现的次数。

输入样例:

programming is More fun! m

输出样例:

2

解答

str1=input()
a=input()
count=0
for i in str1:
    if i==a:
        count+=1
print(count)

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_89

5-6 统计工龄 (20 分)

题目

给定公司N名员工的工龄,要求按工龄增序输出每个工龄段有多少员工。

输入格式:

输入首先给出正整数N(≤105),即员工总人数;随后给出N个整数,即每个员工的工龄,范围在[0, 50]。

输出格式:

按工龄的递增顺序输出每个工龄的员工个数,格式为:“工龄:人数”。每项占一行。如果人数为0则不输出该项。

输入样例:

8 10 2 0 5 7 2 5 2

输出样例:

0:1 2:3 5:2 7:1 10:1

解答

n=int(input())
ages=list(map(int,input().split()))
dic={}
for i in ages:
    dic[i]=dic.get(i,0)+1
for i in sorted(dic):
    print("{}:{}".format(i,dic[i]))

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_90

5-7 列表去重 (40 分)

题目

输入一个列表,去掉列表中重复的数字,按原来次序输出!

输入格式:

在一行中输入列表

输出格式:

在一行中输出不重复列表元素

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

[4,7,5,6,8,6,9,5]

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

4 7 5 6 8 9

解答

lst1=eval(input())
lst2=list(set(lst1))
print(' '.join(map(str,sorted(lst2,key=lst1.index))))

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_91

5-8 能被3,5和7整除的数的个数(用集合实现) (30 分)

题目

求指定区间内能被3,5和7整除的数的个数

输入格式:

在一行中从键盘输入2个正整数a,b(1<=a<b<=10000000),用空格隔开。

输出格式:

在一行输出大于等于a且小于等于b的能被3,5和7整除的数的个数。

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

10 100

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

0

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

1000 100000

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

943

解答

m,n=map(int,input().split())
set_1=set()
set_2=set()
set_3=set()
for i in range(m,n+1):
    if i%3==0:
        set_1.add(i)
    if i%5==0:
        set_2.add(i)
    if i%7==0:
        set_3.add(i)
print(len(set_1 & set_2 & set_3))

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_92

5-9 求矩阵鞍点的个数 (30 分)

题目

一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。

本题要求编写程序,求一个给定的n阶方阵的鞍点。

输入格式:

输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。

输出格式:

鞍点的个数

输入样例1:

4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9

输出样例1:

1

输入样例2:

2 1 7 4 1

输出样例2:

0

输入样例3:

3
4 7 8
1 3 3
2 3 1

输出样例3:

2

解答

n=int(input())
a=[]
count=0
for i in range(n):
    a.append(list(map(int,input().split())))
for i in range(n):
    max_num_row=max(a[i][k] for k in range(n))
    for j in range(n):
        max_num_col=min(a[k][j] for k in range(n))
        if max_num_row == max_num_col:
            count+=1
print(count)

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_93

n = int(input())
# 原矩阵
lis = [list(map(int, input().split()))for i in range(n)]
# 转置矩阵 
lis_1 = [[lis[j][i] for j in range(n)]for i in range(n)]
print(lis_1)
# 依次遍历lis max(lis[i]):原矩阵行最大值 min(lis_1[j]):原矩阵列最大值
print(len([0 for i in range(n)
           for j in range(n) if lis[i][j] == max(lis[i]) == min(lis_1[j])]))

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_94

5-10 两数之和 (30 分)

题目

给定一组整数,还有一个目标数,在给定这组整数中找到两个数字,使其和为目标数,如找到,解是唯一的。找不到则显示 “no answer”。输出的下标按从小到大排序。用一重循环加字典实现。

输入格式:

在一行中给出这组数。 在下一行输入目标数

输出格式:

在一行中输出这两个数的下标,用一个空格分开。

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

2,7,11,15 9

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

0 1

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

3,6,9 10

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

no answer

解答

lst=list(map(int,input().split(',')))
target=int(input())
m=dict()
for i,num in enumerate(lst):
    if target-num in m:
        print("{} {}".format(m[target-num],i))
        exit()
    m[num]=i
print("no answer")

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_95

5-11 字典合并 (40 分)

题目

输入用字符串表示两个字典,输出合并后的字典。字典的键用一个字母或数字表示。注意:1和‘1’是不同的关键字!

输入格式:

在第一行中输入第一个字典字符串;
在第二行中输入第二个字典字符串。

输出格式:

在一行中输出合并的字典,输出按字典序。
“1” 的 ASCII 码为 49,大于 1,排序时 1 在前,“1” 在后。其它的字符同理。

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

{1:3,2:5}
{1:5,3:7}

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

{1:8,2:5,3:7}

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

{“1”:3,1:4} {“a”:5,“1”:6}

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

{1:4,“1”:9,“a”:5}

解答

注意:**字典的键用一个字母或数字表示! **

这道题简单的合并两个字典比较简单,难点在输出时需要对字典的键值进行一个排序

题目中给出键只能是一个字母或者一个数字(??这里其实有歧义 一个数字是指一位的数字还是任意数字)

这里假设的是为一个一位的数字,认为int型数字比字符排在前面

dict1=dict(eval(input()))
dict2=dict(eval(input()))
for i in dict2:
    if i in dict1:
        dict1[i]+=dict2[i]
    else:
        dict1[i]=dict2[i]
intKeys=[]
strKeys=[]
for i in dict1.keys():
    if type(i)==int:
        intKeys.append(i)
    else:
        strKeys.append(i)
intKeys.sort()
strKeys.sort()
ans=[]
for i in intKeys+strKeys:
    temp=""
    if type(i)==int:
        temp=str(i)+":"+str(dict1[i])
    else:
        temp='"'+i+'"'+":"+str(dict1[i])
    ans.append(temp)
s1=','.join(ans)
s1='{'+s1+'}'
print(s1)

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_96

第六章

6-1 输入列表,求列表元素和(eval输入应用) (10 分)

题目

在一行中输入列表,输出列表元素的和。

输入格式:

一行中输入列表。

输出格式:

在一行中输出列表元素的和。

输入样例:

[3,8,-5]

输出样例:

6

解答

提交代码 - 1

lst=eval(input())
print(eval('+'.join('%s' %id for id in lst)))

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_97


提交代码 - 2

print(sum(eval(input())))

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_98

6-2 一帮一 (15 分)

题目

“一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。
本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的异性学生分为一组。

输入格式:

输入第一行给出正偶数N(≤50),即全班学生的人数。此后N行,按照名次从高到低的顺序给出每个学生的性别(0代表女生,1代表男生)和姓名(不超过8个英文字母的非空字符串),其间以1个空格分隔。这里保证本班男女比例是1:1,并且没有并列名次。

输出格式:

每行输出一组两个学生的姓名,其间以1个空格分隔。名次高的学生在前,名次低的学生在后。小组的输出顺序按照前面学生的名次从高到低排列。

输入样例:

8
0 Amy
1 Tom
1 Bill
0 Cindy
0 Maya
1 John
1 Jack
0 Linda

输出样例:

Amy Jack
Tom Linda
Bill Maya
Cindy John

解答

#!/usr/bin/python3
# 存储所有学生的名字 根据名次排序
students = []
# 存储女孩的名字 根据名次排序
girl = []
# 存储男孩的名字 根据名次排序
boy = []
n = int(input())
for i in range(n):
    student = input().split()
    students.append(student[1])
    if student[0] == '0':
        boy.append(student[1])
    else:
        girl.append(student[1])
# 遍历前4名
for i in range(n//2):
    # 如果是男孩
    if students[i] in boy:
        # 找到该孩子在男孩中的名次 与index对应 比如在第1名index为0
        # 男孩中的第一个应该与女孩中的最后一个组合
        # 所以 男孩的索引为index 那么女孩的索引就是-1-index
        # -1表示最后一个 再-index表示往前几个
        # 例如:-1-1 表示再最后一个的基础上再前进2个元素
        index = boy.index(students[i])
        print("{} {}".format(students[i], girl[-1-index]))
    else:
        index = girl.index(students[i])
        print("{} {}".format(students[i], boy[-1-index]))

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_99

6-3 列表或元组的数字元素求和 (20 分)

题目

求列表中数字和,列表中嵌套层次不限2层

输入格式:

在一行中输入列表或元组

输出格式:

在一行中输出数字的和

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

[11,2,[3,7],(68,-1),“123”,9]

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

99

解答

注意题目中只需要求的是数字和

例子:[11,2,[3,7],(68,-1),“123”,9] 中“123”属于字符串,不再计算范围内

正确计算是:11+2+3+7+68+(-1)+9=99

编写代码时注意不要将字符串也纳入计算范围内了,注意提取正确的数字,避开字符串(开始还没有注意到)

#!/usr/bin/python3
s = input()
# s为字符串
# 首先将[]()替换
s = s.replace('[', '')
s = s.replace(']', '')
s = s.replace('(', '')
s = s.replace(')', '')
# 注意”123“属于字符串 不属于数字 我们是不需要的
s2 = ""
# 记录”的个数
count = 0
# 遍历s
# 统计“的个数 如果为偶数且不为” 说明为数字
for i in s:
    if i == '"':
        count += 1
    if count % 2 == 0 and i != '"':
        s2 += i
# 替换逗号
s2 = s2.replace(',', ' ')
# 注意可能两个数中间原来有两个逗号 替换后就有两个空格
# 再利用split() 提取元素 转化为list类型
s2 = s2.split()
ans = 0
# 遍历s2 list类型
for i in s2:
    ans += int(i)
print(ans)

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_100

6-4 列表数字元素加权和(1) (40 分)

题目

输入一个嵌套列表,嵌套层次不限,根据层次,求列表元素的加权和。第一层每个元素 的值为:元素值1,第二层每个元素的值为:元素值2,第三层每个元素的值为:元素值*3, …,以此类推!

输入格式:

在一行中输入列表

输出格式:

在一行中输出加权和

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

[1,2,[3,4,[5,6],7],8]

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

72

解答

有几个需要注意的地方:

  • 其中的数字可以为两位数、三位数
  • 数字也可以为负数

提供的一些测试数据

  • [1]
  • [-1]
  • [1,[19,1],2]

踩坑:如果开始以字符串读取,再逐一读取字符,需要注意每次读取只得到一个字符。比如字符串“234”,读取是2、3、4 这个地方易错

# 以字符串类型读入数据
s = input()
# count:统计[、]字符的个数 遇到[ +1 遇到] -1
count = 0
# ans:最后结果
ans = 0
# 字符串索引
index = 0
# 判断一个数是负数还是正数
flag = 1

# 遍历字符串
while index < len(s):
    # 遇到[ 层级+1
    if s[index] == '[':
        count += 1
    # 遇到] 层级-1
    elif s[index] == ']':
        count -= 1
    # 遇到 '-' 说明之后的数字为负数
    elif s[index] == '-':
        flag = -1
    # 如果是一个数字 则需要判断后面是否接着为数字
    # 如果是 还得拼接数字 比如23
    # 因为是逐个字符读取
    # 每次只读一个字符
    # 读到2时 还需要判断后面是否还是数字
    # 如果是 需要拼接为23
    elif s[index].isdigit():
        index2 = index
        num = 0
        while s[index2].isdigit():
            num = num*10+int(s[index2])
            index2 += 1
        # 更新index
        index = index2-1
        # 更新ans 注意正负号
        ans = ans+count*num*flag
        # 最后需要将flag再次设置为1
        flag = 1
    index += 1
print(ans)

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_101

6-5 列表元素个数的加权和(1) (40 分)

题目

输入一个嵌套列表,嵌套层次不限,根据层次,求列表元素的加权个数和。第一层每个元素算一个元素,第二层每个元素算2个元素,第三层每个元素算3个元素,第四层每个元素算4个元素,…,以此类推!

输入格式:

在一行中输入一个列表。

输出格式:

在一行中输出加权元素个数值。

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

[1,2,[3,4,[5,6],7],8]

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

15

解答

在上一题思路上简化即可

s = input()
count = 0
ans = 0
index = 0
while index < len(s):
    if s[index] == '[':
        count += 1
    elif s[index] == ']':
        count -= 1
#    elif s[index]=='-':
#       flag=-1
    elif s[index].isdigit():
        index2 = index
        while s[index2].isdigit():
            index2 += 1
        index = index2-1
        ans = ans+count
    index += 1
print(ans)

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_102

第6章-6 求指定层的元素个数 (40 分)

题目

输入一个嵌套列表,再输入层数,求该层的数字元素个数。

输入格式:

第一行输入列表 第二行输入层数

输出格式:

在一行中输出元素个数

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

[1,2,[3,4,[5,6],7],8] 3

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

2

解答

s = input()
n=int(input())
count = 0
ans = {}
index = 0
while index < len(s):
    if s[index] == '[':
        count += 1
    elif s[index] == ']':
        count -= 1
    elif s[index].isdigit():
        index2 = index
        while s[index2].isdigit():
            index2 += 1
        index = index2-1
        ans[count]=ans.get(count,0)+1
    index += 1
print(ans[n])

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_103

6-7 找出总分最高的学生 (15 分)

题目

给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出总分最高学生的姓名、学号和总分。

输入格式:

输入在一行中给出正整数N(≤10)。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩1 成绩2 成绩3”,中间以空格分隔。

输出格式:

在一行中输出总分最高学生的姓名、学号和总分,间隔一个空格。题目保证这样的学生是唯一的。

输入样例:

5
00001 huanglan 78 83 75
00002 wanghai 76 80 77
00003 shenqiang 87 83 76
10001 zhangfeng 92 88 78
21987 zhangmeng 80 82 75

输出样例:

zhangfeng 10001 258

解答

n = int(input())
maxSumGrades = 0
maxSumGradesIndex = 0
students = []
for i in range(n):
    student = list(input().split())
    sumGrades = 0
    for j in range(2, 5):
        sumGrades += int(student[j])
    if sumGrades > maxSumGrades:
        maxSumGrades = sumGrades
        maxSumGradesIndex = i
    students.append(student)
print("{} {} {}".format(students[maxSumGradesIndex][1], students[maxSumGradesIndex][0], maxSumGrades))

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_104

6-8 输出全排列 (20 分)

题目

输入整数n(3<=n<=7),编写程序输出1,2,…,n整数的全排列,按字典序输出。

输入格式:

一行输入正整数n。

输出格式:

按字典序输出1到n的全排列。每种排列占一行,数字间无空格。

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

3

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

123
132
213
231
312
321

解答

1-n的全排列(3<=n<=7)
最小数一定是:123…45…n
最大数是:n…54…321
思路(暴力循环):

  • 从123…n 到 n…321 依次遍历
  • 对其进行set操作
  • 当set(num)==set(“123…n”)时
  • 说明是符合条件的全排列
n = int(input())
ls = [str(i) for i in range(1, n+1)]
s = "1234567"
# beg=123...n
beg = int(s[:n])
# end=n...321
end = int(s[n-1::-1])
for x in range(beg, end+1):
    if set(str(x)) == set(ls):
        print(x)

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_105

第七章

第7章-1 词频统计 (30 分)

题目

请编写程序,对一段英文文本,统计其中所有不同单词的个数,以及词频最大的前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]) # 标准输入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)) # 长度超过15的单词将只截取保留前15个单词字符
counter = collections.Counter(words) # 使用Counter统计词频
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))]: # 输出词频最大的前10%的单词
    print("{}:{}".format(each[1], each[0]))

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_106

函数练习题

第6章函数-1 使用函数求特殊a串数列和 (10 分)

题目

给定两个均不超过9的正整数a和n,要求编写函数fn(a,n) 求a+aa+aaa++⋯+aa⋯aa(n个a)之和,fn须返回的是数列和

函数接口定义:

fn(a,n)
其中 a 和 n 都是用户传入的参数。 a 的值在[1, 9]范围;n 是[1, 9]区间内的个位数。函数须返回级数和

裁判测试程序样例:

/* 请在这里填写答案 */
a,b=input().split()
s=fn(int(a),int(b))
print(s)

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

2 3

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

246

解答

def fn(a,n):
    ans=0
    num=0
    while n:
        num=num*10+a
        ans+=num
        n-=1
    return ans

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_107

第6章函数-2 使用函数求素数和 (20 分)

题目

使用函数求素数和

prime§, 其中函数prime当用户传入参数p为素数时返回True,否则返回False. PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n。

函数接口定义:

在这里描述函数接口:
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

解答

import math


def prime(p):
    p = int(p)
    if p == 1:
        return False
    for i in range(2, int(math.sqrt(p))+1):
        if p % i == 0:
            return False
    return True


def PrimeSum(m, n):
    ans = 0
    for i in range(m, n+1):
        if prime(i):
            ans += i
    return ans

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_108

第6章函数-3 使用函数统计指定数字的个数 (20 分)

题目

本题要求实现一个统计整数中指定数字的个数的简单函数。
CountDigit(number,digit )

其中number是整数,digit为[1, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。

函数接口定义:

在这里描述函数接口。例如: CountDigit(number,digit ),返回digit出现的次数

裁判测试程序样例:

/* 请在这里填写答案 */
number,digit=input().split()
number=int(number)
digit=int(digit)
count=CountDigit(number,digit )
print(“Number of digit 2 in “+str(number)+”:”,count)

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

-21252 2

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

Number of digit 2 in -21252: 3

解答

def CountDigit(number, digit):
    count = 0
    number = abs(number)
    while number != 0:
        if number % 10 == digit:
            count += 1
        number = number//10
    return count

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_109

第6章函数-4 使用函数输出指定范围内Fibonacci数的个数 (20 分)

题目

本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m<n≤100000)之间的所有Fibonacci数的数目。

所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列,fib(0)=fib(1)=1。其中函数fib(n)须返回第n项Fibonacci数;函数PrintFN(m,n)用列表返回[m, n]中的所有Fibonacci数。

函数接口定义:

在这里描述函数接口。
例如:
fib(n),返回fib(n)的值
PrintFN(m,n),用列表返回[m, n]中的所有Fibonacci数。

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。
例如:
/* 请在这里填写答案 */
m,n,i=input().split()
n=int(n)
m=int(m)
i=int(i)
b=fib(i)
print(“fib({0}) = {1}”.format(i,b))
fiblist=PrintFN(m,n) print(len(fiblist))

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

20 100 6

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

fib(6) = 13 4

解答

def fib(n):
    a = 0
    b = 1
    while n:
        a, b = b, a+b
        n -= 1
    return b


def PrintFN(m, n):
    count = []
    index = 1
    while fib(index) <= n:
        if fib(index) >= m:
            count.append(fib(index))
        index += 1
    return count

【总结一下|PTA】浙大版《Python 程序设计》题目集_python_110

第6章函数-5 使用函数求余弦函数的近似值 (20 分)

题目

本题要求实现一个函数,用下列公式求cos(x)近似值,精确到最后一项的绝对值小于eps(绝对值小于eps的项不要加):

cos(x)=0!x0−2!x2+4!x4−6!x6+…

【总结一下|PTA】浙大版《Python 程序设计》题目集_输出格式_111



函数接口定义:funcos(eps,x ),其中用户传入的参数为eps和x;函数funcos应返回用给定公式计算出来,保留小数4位。


函数接口定义:

函数接口: funcos(eps,x ),返回cos(x)的值。

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。
例如:
/* 请在这里填写答案 */
eps=float(input())
x=float(input())
value=funcos(eps,x )
print(“cos({0}) = {1:.4f}”.format(x,value))

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

0.0001 -3.1

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

cos(-3.1) = -0.9991

解答

def funcos(eps, x):
    n = 1
    a = 1
    b = 1
    flag = -1
    ans = 1
    while a/b >= eps:
        n += 1
        count = (n-1)*2
        a = math.pow(x, count)
        b = math.factorial(count)
        if a/b >= eps:
            ans = ans+flag*(a/b)
        flag *= -1
    return ans

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_112

第6章函数-6 缩写词 (20 分)

题目

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

函数接口定义:

acronym(phrase); phrase是短语参数,返回短语的缩写词

裁判测试程序样例:

/* 请在这里填写答案 */
phrase=input()
print(acronym(phrase))

输入样例:

central processing unit

输出样例:

CPU

解答

def acronym(phrase):
    lst=list(phrase.split())
    ans=""
    for i in lst:
        ans+=i[0].upper()
    return ans

【总结一下|PTA】浙大版《Python 程序设计》题目集_提交代码_113

结语

题目来自PTA平台

文章仅作为学习笔记,记录从0到1的一个过程

希望对您有所帮助,如有错误欢迎小伙伴指正~

我是 海轰ଘ(੭ˊᵕˋ)੭

如果您觉得写得可以的话,请点个赞吧

谢谢支持 ❤️

【总结一下|PTA】浙大版《Python 程序设计》题目集_字符串_114


标签:输出,Python,样例,浙大,PTA,格式,print,input,输入
From: https://blog.51cto.com/u_15939722/7025935

相关文章

  • Centos7安装Python3.8
    Centos7安装Python3.8Centos7安装Python3.8安装编译相关工具yum-ygroupinstall"Developmenttools"yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-develyum-yin......
  • python语言--------csv模块将txt文件转换为表格csv格式
    上代码:importcsvcsvFile=open("C:/Users/Administrator/Desktop/1.csv",'w',newline='',encoding='utf-8')writer=csv.writer(csvFile)csvRow=[]f=open("C:/Users/Administrator/Desktop/np.txt",'r'......
  • python 实现 pdf 转为图片
    1importfitz2importos3fromPILimportImage45defconvert_pdf2img(file_relative_path):67page_num=18filename=file_relative_path.split('.')[-2]9ifnotos.path.exists(filename):10os.makedirs(filen......
  • 七月学习之Iptables自定义链
    9、Iptables自定义链9.1、为什么要使用自定义链iptables的默认链就已经能够满足我们了,为什么还需要自定义链呢当默认链中的规则非常多时,不便于管理1、假设INPUT链中存放了100条规则,这100条规则有针对80端口的,有针对22端口的2、如果想修改22端口的规则,则需要将所有规则都看一遍,......
  • oFono/dbus-python环境搭建以及简单认识
    关键词:D-Bus、oFono、dbus-python、ofonod等等。1.oFono环境搭建(Buildroot+QEMU)和启动1.1Buildroot配置ofonod+dbus-python配置oFono:Targetpackages->Networkingapplication->connman->enableofonosupport使能Python3:Targetpackages->Interpreterlanguage......
  • Python用GARCH对ADBL股票价格时间序列趋势滚动预测、损失、可视化分析
    全文链接:https://tecdat.cn/?p=33398原文出处:拓端数据部落公众号金融市场的股票价格时间序列分析一直以来都是投资者和研究者关注的主题之一。准确预测股票价格的趋势对于制定有效的投资策略和决策具有重要意义。因此,许多研究人员使用各种统计方法和模型来分析和预测股票价格的......
  • Python | 函数、数据容器
    1.函数函数:是组织好的,可重复使用的,用来实现特定功能的代码段。1.1简单案例重复使用计算字符串的长度str1="heystar"str2="python"str3="abcd"count=0for_instr1:count+=1print(f"字符串{str1}的长度是:{count}")count=0for_instr2:coun......
  • Python潮流周刊#2:Rust 让 Python 再次伟大
    这里记录每周值得分享的Python及通用技术内容,部分为英文,已在小标题注明。(本期标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)文章&教程1、Python修饰器的函数式编程介绍了装饰器的实现原理、带参装饰器、多装饰器、类装饰器和几个典型的示例。文章发布于2014年,代码用......
  • Python潮流周刊#5:并发一百万个任务要用多少内存?
    你好,我是猫哥。这里记录每周值得分享的Python及通用技术内容,部分为英文,已在小标题注明。(标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)文章&教程1、并发一百万个任务要用多少内存?(英文)文中测试了主流的编程语言(Rust、Go、Java、C#、Python、Node.js和Elixir),依次运行......
  • 软件测试|Python函数参数之必传参数、默认参数、可变参数、关键字参数的详细使用
    在Python中,函数参数是定义在函数头部的变量,用于接收传递给函数的数据。Python函数参数有四种类型:必传参数、默认参数、可变参数和关键字参数。每种类型都有不同的使用方式和适用场景。本文将详细介绍这四种函数参数的使用方法。Python函数参数类型必传参数:最常用的,必传确定数量的参......