浙大版《Python 程序设计》题目集 (pintia.cn)
PTA 上 python
的做题笔记和代码仓库
这是一些参考资料
- Python 3.11.0 Documentation (python.org)
- 简明 Python 教程 (pytorchchina.com)
- Python - 100天从新手到大师 - 《Python - 100天从新手到大师》 - 书栈网 · BookStack
- Python3 教程 | 菜鸟教程 (runoob.com)
- PTA浙大版《Python 程序设计》题目集_Re:从零开始的代码生活的博客-CSDN博客
- 浙大版《Python 程序设计》
- 《Python编程:从入门到实践》
要是没有读者码的话,还有一个比较好的做题网站
Problems
- Python 条件表达式_一去丶二三里的博客-CSDN博客
- Python 推导式 | 菜鸟教程 (runoob.com) 书上也有
- 推导式经常与条件表达式一起用
- Python3 map() 函数 | 菜鸟教程 (runoob.com)
- 可用
map
函数处理一行多个输入a, b = map(int, input().split())
- 也可将多个输入转换为列表
list(map(int, input().split()))
- 可用
Problems
-
- 列表推导式,相同知识点还有 4,5,6,11
-
if else
或 条件表达式,3 和 12 也是
-
- 序列的基本操作:序列乘法
-
bool int : 其中 int(a, b) 可将 进制为 b 的数字字符串 a 转换为十进制 float complex str ord chr bin : 将整数转换为二进制字符串 oct : 将整数转换为八进制字符串 hex : 将整数转换为十六进制字符串 list
-
本题的一行解法
print(*sorted(list(map(int, input().split(" ")))), sep = "->")
-
Python print() 函数 | 菜鸟教程 (runoob.com) 注意 参量
end
和sep
-
python3 中print函数参数详解 phantom-dapeng的博客-CSDN博客
print(*values, sep=' ', end='\n', file=sys.stdout, flush=False)
-
python 在列表,元组,字典变量前加*号 GHower的博客-CSDN博客 用
*
使列表分离为独立元素
-
本题要注意
python
的格式化输出,使用%
或者format
,注意二者都是python
字符串自带的,与print
无关 -
- 格式化输出
-
- 注意本题身份证号码中可能会出现奇怪的字符
- 列表转字符串
"".join(s)
,字符串转列表list(a)
-
字符串的
find
和rfind
,或者直接遍历一遍也行 -
-
还有这种写法我是没想到的
a = input() b = [] for n in a : if n.isdigit(): b.append(n) print(int("".join(b)))
-
-
a.count()
-
max(a)
a.index(x)
-
- Python3 reversed 函数 | 菜鸟教程 (runoob.com) 注意返回的是迭代器,有点麻烦
- 字符串切片还行
-
注意
int()
处理不了字符串是空串的情况 -
注意
v in X
和v not in X
的使用 -
- 无非就是 字符串 和 列表 相互转化
- 字符串 -> 列表:
list(), .split()
- 列表 -> 字符串:
"".join(s)
-
ord
返回 Unicode 字符对应的整数chr
返回整数对应的 Unicode 字符- 注意 python 中字符串不可改,需转换为
list
-
s[i] = s[i].upper()
转大写,转小写类似
-
input().split()
里面没加" "
时反而能匹配多个空格,加了就只能匹配一个了
-
- 先排序,再挨个判断是否输出会好些
- 逛了篇题解,发现还有用
set()
的做法
-
s = s.replace(c.upper(), "")
-
判断一个字符串是不是纯字母的可以用
.isalpha()
其实我觉得这章要放在前面讲的
- 条件语句
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
-
note 4=2+2
熟悉字典的使用
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
Problems
函数题
Problems
搞不懂为什么只有一题 [\doge]
Problems
完结撒花!!! 2023/4/5 22:02