/Python-Programming-in-PTA

浙大版《Python 程序设计》题目集 记录

Primary LanguagePython

Python Programming in PTA

浙大版《Python 程序设计》题目集 (pintia.cn)

PTA 上 python 的做题笔记和代码仓库

写在前面

这是一些参考资料

要是没有读者码的话,还有一个比较好的做题网站

Chapter I Python 语言概述

Problems

  1. 从键盘输入两个数,求它们的和并输出
  2. 从键盘输入三个数到a,b,c中,按公式值输出
  3. 输出“人生苦短,我学Python”

Chapter II 用 Python 语言编写程序

Problems

  1. 计算 11+12+13+...+m

    • 列表推导式,相同知识点还有 4,5,6,11
  2. 计算分段函数[1]

    • if else 或 条件表达式,3 和 12 也是
  3. 阶梯电价

  4. 特殊a串数列求和

  5. 求奇数分之一序列前N项和

  6. 求交错序列前N项和

  7. 产生每位数字相同的n位数

    • 序列的基本操作:序列乘法
  8. 转换函数使用

    bool
    int : 其中 int(a, b) 可将 进制为 b 的数字字符串 a 转换为十进制
    float
    complex
    str
    ord
    chr
    bin : 将整数转换为二进制字符串
    oct : 将整数转换为八进制字符串
    hex : 将整数转换为十六进制字符串
    list 
  9. 比较大小

    本题的一行解法 print(*sorted(list(map(int, input().split(" ")))), sep = "->")

  10. 输出华氏-摄氏温度转换表

    本题要注意 python 的格式化输出,使用 % 或者 format ,注意二者都是 python 字符串自带的,与 print 无关

  11. 求平方与倒数序列的部分和

  12. 分段计算居民水费

  13. 求整数段和

    • 格式化输出

Chapter III 使用字符串,列表和元组

  1. 大于身高的平均值

  2. 查验身份证

    • 注意本题身份证号码中可能会出现奇怪的字符
    • 列表转字符串 "".join(s) ,字符串转列表 list(a)
  3. 输出字母在字符串中位置索引

    字符串的 findrfind ,或者直接遍历一遍也行

  4. 查找指定字符

  5. 字符转换

  6. 求整数序列中出现次数最多的数

    a.count()

  7. 求最大值及其下标

    max(a) a.index(x)

  8. 字符串逆序

  9. 字符串转换成十进制整数

    注意 int() 处理不了字符串是空串的情况

  10. 统计大写辅音字母

    注意 v in Xv not in X 的使用

  11. 字符串排序

  12. 求整数的位数及各位数字之和

    • 无非就是 字符串 和 列表 相互转化
    • 字符串 -> 列表:list(), .split()
    • 列表 -> 字符串:"".join(s)
  13. 字符串替换

    • ord 返回 Unicode 字符对应的整数
    • chr 返回整数对应的 Unicode 字符
    • 注意 python 中字符串不可改,需转换为 list
  14. 字符串字母大小写转换

    • s[i] = s[i].upper() 转大写,转小写类似
  15. 统计一行文本的单词个数

    • input().split() 里面没加 " " 时反而能匹配多个空格,加了就只能匹配一个了
  16. 删除重复字符

  17. 删除字符

    s = s.replace(c.upper(), "")

  18. 输出10个不重复的英文字母

    判断一个字符串是不是纯字母的可以用 .isalpha()

  19. 找最长的字符串

  20. 逆序的三位数

  21. 判断回文字符串

  22. 输出大写英文字母

Chapter IV 条件、循环和其他语句

其实我觉得这章要放在前面讲的

  • 条件语句
if ... : 
    ...
if ... :
    ...
else :
    ...
if ... :
    ...
elif ... :
    ...
... # 省略 [0,+inf) 个 elif ... : ...
else :
    ...
  • 循环语句
for i in a : 
    ...
else : # 循环正常结束进入 else 语句, else 可省略
    ...
while ... :
    ...
else : # 循环正常结束进入 else 语句, else 可省略
    ...
continue # 略过本次循环剩余内容,直接进入下一轮循环
break # 结束循环,算非正常结束 (这里正常结束指以 for 或 while 后的条件结束)
  • 条件表达式
expression_1 if condition else expression_2

# condition 为真, 表达式的值为 expression_1, 否则为 expression_2 
  • 二维列表推导式
[[f(i, j) for j in range(m)] for i in range(n)] 

Problems

  1. 生成3的乘方表

  2. 统计素数并求和

  3. 猴子吃桃问题

  4. 验证“哥德巴赫猜想”

    note 4=2+2

  5. 求e的近似值

  6. 输出前 n 个Fibonacci数

  7. 统计学生平均成绩与及格人数

  8. 求分数序列前N项和

  9. 查询水果价格

  10. 最大公约数和最小公倍数

  11. 判断素数

  12. 求满足条件的斐波那契数

  13. 求误差小于输入值的e的近似值

  14. 统计字符

  15. 换硬币

  16. jmu-python-判断是否构成三角形

  17. 水仙花数(20 分)

  18. 猴子选大王

  19. 矩阵运算

  20. 求矩阵各行元素之和

  21. 判断上三角矩阵

  22. 找鞍点

  23. 求矩阵的局部极大值

  24. 打印九九口诀表

  25. 输出三角形字符阵列

  26. 求1!+3!+5!+……+n!

  27. 二维数组中每行最大值和每行和

  28. 矩阵转置

  29. 找出不是两个数组共有的元素

  30. 找完数

Chapter V

熟悉字典的使用

a = {"a":"d", "o":"p"}
a["b"] = "c" # 赋值
a.get("b") # 获取键 "b" 对应的值,没有的话返回 None
a.get("b", 0) # 获取键 "b" 对应的值,没有的话返回 0, 这是常用的
for key in a: # 遍历字典
    val = a[key] 
for key, val in a.items(): # 同时遍历 key 和 val
    pass
# 此外,元组的列表也能这样遍历
items = list(a.items())
for key, val in items:
    pass

排序

使用 sorted 函数。

感觉还要学习一下 lambda,好像挺有用的。

感谢

关于排序的中文文档 排序指南 — Python 3.11.2 文档

Problems

  1. 输出星期名缩写

  2. 图的字典表示

  3. 四则运算(用字典实现)

  4. 分析活动投票情况

  5. 统计字符出现次数

  6. 统计工龄

  7. 列表去重

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

  9. 求矩阵鞍点的个数

  10. 两数之和

  11. 字典合并

Chapter VI

Problems

  1. 输入列表,求列表元素和(eval输入应用)

  2. 一帮一

  3. 列表或元组的数字元素求和

  4. 列表数字元素加权和(1)

  5. 列表元素个数的加权和(1)

  6. 求指定层的元素个数

  7. 找出总分最高的学生

  8. 输出全排列

    全排列函数 python 全排列,permutations函数_permutation函数_yoyo_573的博客-CSDN博客

Chapter VI-fn

函数题

Problems

  1. 使用函数求特殊a串数列和

  2. 使用函数求素数和

  3. 使用函数统计指定数字的个数

  4. 使用函数输出指定范围内Fibonacci数的个数

  5. 使用函数求余弦函数的近似值

  6. 缩写词

Chapter VII

搞不懂为什么只有一题 [\doge]

Problems

  1. 词频统计

完结撒花!!! 2023/4/5 22:02