Python 常见考点复习文档
适合期末考试 / 机考 / 选择填空 / 程序阅读 / 编程题快速复习。
复习思路:先会读代码,再会改代码,最后会写常见小题。
0. 考前总览:Python 最常考什么?
| 模块 |
常见考法 |
重点程度 |
| 基础语法 |
变量、输入输出、缩进、注释 |
★★★★★ |
| 数据类型 |
int、float、str、bool、list、tuple、dict、set |
★★★★★ |
| 运算符 |
算术、比较、逻辑、成员、身份运算 |
★★★★★ |
| 分支循环 |
if、for、while、break、continue |
★★★★★ |
| 字符串 |
索引、切片、常用方法、格式化输出 |
★★★★★ |
| 列表 |
增删改查、切片、排序、遍历 |
★★★★★ |
| 字典 |
键值对、遍历、统计频次 |
★★★★☆ |
| 函数 |
定义、参数、返回值、作用域 |
★★★★★ |
| 文件操作 |
open、read、write、with |
★★★★☆ |
| 异常处理 |
try-except-finally |
★★★☆☆ |
| 面向对象 |
类、对象、构造方法、self |
★★★☆☆ |
| 常见算法 |
求和、最大最小、素数、水仙花、排序、查找 |
★★★★★ |
1. Python 程序基本结构
1.1 注释
考试容易问:
1.2 缩进
Python 不用 {} 表示代码块,靠缩进。
1 2 3 4
| if True: print("进入 if") print("这一行也属于 if") print("这一行不属于 if")
|
易错点:
2. 输入与输出
2.1 print 输出
1 2
| print("hello") print(1, 2, 3)
|
输出:
print 的 sep 和 end
1 2 3
| print(1, 2, 3, sep="-") print("hello", end=" ") print("world")
|
输出:
解释:
| 参数 |
含义 |
sep |
多个输出内容之间用什么隔开,默认空格 |
end |
一次 print 结束后用什么结尾,默认换行 |
1 2
| name = input("请输入姓名:") print(name)
|
重点:input() 输入的内容永远是字符串 str。
1 2
| x = input("请输入数字:") print(type(x))
|
即使输入 123,类型也是:
如果要做数学运算,要转类型:
1 2
| a = int(input("请输入整数:")) b = float(input("请输入小数:"))
|
3. 变量与数据类型
3.1 常见数据类型
| 类型 |
例子 |
说明 |
| int |
10 |
整数 |
| float |
3.14 |
小数 |
| str |
'abc'、"abc" |
字符串 |
| bool |
True、False |
布尔值 |
| list |
[1, 2, 3] |
列表,可修改 |
| tuple |
(1, 2, 3) |
元组,不可修改 |
| dict |
{"name": "Tom"} |
字典,键值对 |
| set |
{1, 2, 3} |
集合,去重、无序 |
3.2 type 查看类型
输出:
3.3 类型转换
1 2 3 4
| int("123") float("3.14") str(100) list("abc")
|
易错:
4. 运算符
4.1 算术运算符
| 运算符 |
含义 |
例子 |
结果 |
+ |
加 |
3 + 2 |
5 |
- |
减 |
3 - 2 |
1 |
* |
乘 |
3 * 2 |
6 |
/ |
真除法 |
5 / 2 |
2.5 |
// |
整除 |
5 // 2 |
2 |
% |
取余 |
5 % 2 |
1 |
** |
幂运算 |
2 ** 3 |
8 |
重点区别:
1 2 3
| print(5 / 2) print(5 // 2) print(5 % 2)
|
4.2 比较运算符
| 运算符 |
含义 |
> |
大于 |
< |
小于 |
>= |
大于等于 |
<= |
小于等于 |
== |
判断是否相等 |
!= |
判断是否不等 |
易错点:
4.3 逻辑运算符
| 运算符 |
含义 |
例子 |
and |
并且 |
两边都真才真 |
or |
或者 |
有一个真就真 |
not |
取反 |
真变假,假变真 |
1 2
| age = 20 print(age >= 18 and age <= 60)
|
Python 支持连续比较:
1 2
| if 18 <= age <= 60: print("合法年龄")
|
4.4 成员运算符
1 2 3
| print('a' in 'abc') print(4 in [1, 2, 3]) print('x' not in 'abc')
|
4.5 身份运算符
判断两个变量是否指向同一个对象。
一般考试更常用的是:
区别:
| 写法 |
判断内容 |
== |
值是否相等 |
is |
是否是同一个对象 |
5. 分支结构 if
5.1 基本格式
1 2 3 4 5 6 7 8
| score = 85
if score >= 90: print("优秀") elif score >= 60: print("及格") else: print("不及格")
|
执行逻辑:
- 先判断
if
- 不满足再判断
elif
- 都不满足才执行
else
5.2 常见题型:判断奇偶数
1 2 3 4 5 6
| n = int(input("请输入一个整数:"))
if n % 2 == 0: print("偶数") else: print("奇数")
|
5.3 常见题型:成绩等级
1 2 3 4 5 6 7 8 9 10 11 12
| score = int(input("请输入成绩:"))
if score >= 90: print("A") elif score >= 80: print("B") elif score >= 70: print("C") elif score >= 60: print("D") else: print("E")
|
注意:顺序不能乱。
如果先写 score >= 60,那么 95 分也会被归到及格。
6. 循环结构
6.1 for 循环
适合:知道循环次数,或者遍历序列。
1 2
| for i in range(5): print(i)
|
输出:
6.2 range 函数
1 2 3
| range(stop) range(start, stop) range(start, stop, step)
|
例子:
1 2 3 4
| list(range(5)) list(range(1, 5)) list(range(1, 10, 2)) list(range(10, 1, -2))
|
重点:range 左闭右开,包含左边,不包含右边。
6.3 while 循环
适合:不知道循环次数,只知道循环条件。
1 2 3 4
| i = 1 while i <= 5: print(i) i += 1
|
6.4 break 和 continue
break:直接结束整个循环
1 2 3 4
| for i in range(1, 6): if i == 3: break print(i)
|
输出:
continue:跳过本轮,继续下一轮
1 2 3 4
| for i in range(1, 6): if i == 3: continue print(i)
|
输出:
6.5 常见题型:求 1 到 n 的和
1 2 3 4 5 6 7
| n = int(input("请输入 n:")) s = 0
for i in range(1, n + 1): s += i
print(s)
|
6.6 常见题型:求 1 到 n 的偶数和
1 2 3 4 5 6 7 8
| n = int(input("请输入 n:")) s = 0
for i in range(1, n + 1): if i % 2 == 0: s += i
print(s)
|
7. 字符串 str
7.1 字符串定义
1 2 3
| s1 = 'hello' s2 = "hello" s3 = '''hello'''
|
7.2 索引
1 2 3 4 5
| s = "python" print(s[0]) print(s[1]) print(s[-1]) print(s[-2])
|
理解:
1 2 3
| 正向索引: 0 1 2 3 4 5 字符: p y t h o n 反向索引:-6 -5 -4 -3 -2 -1
|
7.3 切片
格式:
重点:切片也是左闭右开。
1 2 3 4 5 6 7
| s = "python"
print(s[0:2]) print(s[1:4]) print(s[:3]) print(s[3:]) print(s[::-1])
|
7.4 字符串常用方法
| 方法 |
作用 |
例子 |
len(s) |
求长度 |
len("abc") 得 3 |
s.upper() |
转大写 |
"abc".upper() |
s.lower() |
转小写 |
"ABC".lower() |
s.strip() |
去掉两边空白 |
" hi ".strip() |
s.replace(a,b) |
替换 |
"abc".replace("a", "x") |
s.split() |
分割 |
"a b c".split() |
"-".join(list) |
拼接 |
"-".join(["a", "b"]) |
s.find(x) |
查找位置,找不到返回 -1 |
"abc".find("b") |
s.count(x) |
统计次数 |
"banana".count("a") |
7.5 字符串不可变
如果要改,只能生成新字符串:
1 2 3
| s = "abc" s = "x" + s[1:] print(s)
|
8. 列表 list
8.1 定义列表
1 2 3
| nums = [1, 2, 3, 4] names = ["Tom", "Jerry"] mix = [1, "a", 3.14]
|
列表特点:
- 有顺序
- 可重复
- 可修改
8.2 列表索引和切片
1 2 3 4 5
| lst = [10, 20, 30, 40]
print(lst[0]) print(lst[-1]) print(lst[1:3])
|
8.3 增删改查
增加元素
1 2 3 4
| lst = [1, 2, 3] lst.append(4) lst.insert(1, 99) print(lst)
|
删除元素
1 2 3 4 5
| lst = [1, 2, 3, 2]
lst.remove(2) x = lst.pop() lst.clear()
|
修改元素
1 2 3
| lst = [1, 2, 3] lst[0] = 100 print(lst)
|
查找元素
1 2 3
| lst = [10, 20, 30] print(20 in lst) print(lst.index(20))
|
8.4 列表排序
1 2 3
| lst = [3, 1, 4, 2] lst.sort() print(lst)
|
降序:
1 2
| lst.sort(reverse=True) print(lst)
|
sorted() 不改变原列表,返回新列表:
1 2 3 4
| lst = [3, 1, 4, 2] new_lst = sorted(lst) print(lst) print(new_lst)
|
区别:
| 写法 |
是否改变原列表 |
返回值 |
lst.sort() |
改变 |
None |
sorted(lst) |
不改变 |
新列表 |
8.5 遍历列表
1 2 3 4
| lst = [10, 20, 30]
for x in lst: print(x)
|
如果需要下标:
1 2 3 4
| lst = [10, 20, 30]
for i in range(len(lst)): print(i, lst[i])
|
更推荐:
1 2
| for i, x in enumerate(lst): print(i, x)
|
8.6 列表推导式
普通写法:
1 2 3
| lst = [] for i in range(1, 6): lst.append(i * i)
|
推导式写法:
1 2
| lst = [i * i for i in range(1, 6)] print(lst)
|
带条件:
1 2
| lst = [i for i in range(1, 11) if i % 2 == 0] print(lst)
|
9. 元组 tuple
元组和列表很像,但元组不可修改。
1 2
| t = (1, 2, 3) print(t[0])
|
错误写法:
只有一个元素的元组:
注意:
10. 字典 dict
10.1 字典定义
1 2 3 4 5
| student = { "name": "Tom", "age": 18, "score": 90 }
|
字典特点:
- 用键值对保存数据
- 键不能重复
- 通过键取值
10.2 字典取值
1 2 3 4
| student = {"name": "Tom", "age": 18}
print(student["name"]) print(student.get("name"))
|
区别:
1 2
| student["sex"] student.get("sex")
|
也可以设置默认值:
1
| student.get("sex", "未知")
|
10.3 字典增删改
1 2 3 4 5
| student = {"name": "Tom", "age": 18}
student["score"] = 90 student["age"] = 20 del student["name"]
|
10.4 遍历字典
1 2 3 4
| student = {"name": "Tom", "age": 18}
for key in student: print(key, student[key])
|
更常见:
1 2
| for key, value in student.items(): print(key, value)
|
只遍历键:
1 2
| for key in student.keys(): print(key)
|
只遍历值:
1 2
| for value in student.values(): print(value)
|
10.5 高频题:统计字符出现次数
1 2 3 4 5 6 7
| s = "banana" d = {}
for ch in s: d[ch] = d.get(ch, 0) + 1
print(d)
|
输出:
1
| {'b': 1, 'a': 3, 'n': 2}
|
核心套路:
意思是:
- 如果 x 以前出现过,就取原来的次数
- 如果没出现过,就按 0 处理
- 然后次数加 1
11. 集合 set
集合特点:
- 无序
- 不重复
- 常用于去重
1 2
| s = {1, 2, 3, 3, 3} print(s)
|
列表去重:
1 2 3
| lst = [1, 2, 2, 3, 3, 3] lst = list(set(lst)) print(lst)
|
注意:集合没有下标。
12. 函数
12.1 函数定义
1 2 3
| def 函数名(参数): 函数体 return 返回值
|
例子:
1 2 3 4 5
| def add(a, b): return a + b
result = add(3, 5) print(result)
|
12.2 return 的作用
return 表示:
- 返回结果
- 结束函数
1 2 3
| def test(): return 1 print("hello")
|
12.3 没有 return 的函数
1 2 3 4 5
| def hello(): print("hello")
x = hello() print(x)
|
输出:
如果函数没有 return,默认返回 None。
12.4 参数类型
位置参数
1 2 3 4
| def add(a, b): return a + b
add(1, 2)
|
默认参数
1 2 3 4 5
| def greet(name="同学"): print("你好", name)
greet() greet("Tom")
|
关键字参数
1 2 3 4
| def info(name, age): print(name, age)
info(age=18, name="Tom")
|
12.5 局部变量和全局变量
1 2 3 4 5 6 7 8
| x = 10
def f(): x = 20 print(x)
f() print(x)
|
函数内部的 x 是局部变量,不影响外面的 x。
如果一定要在函数里改全局变量:
1 2 3 4 5 6 7 8
| x = 10
def f(): global x x = 20
f() print(x)
|
12.6 递归函数
递归:函数自己调用自己。
必须有:
- 递归出口
- 递归调用
求阶乘
1 2 3 4 5 6
| def fact(n): if n == 1: return 1 return n * fact(n - 1)
print(fact(5))
|
理解:
1 2 3 4 5
| fact(5) = 5 * fact(4) fact(4) = 4 * fact(3) fact(3) = 3 * fact(2) fact(2) = 2 * fact(1) fact(1) = 1
|
13. 文件操作
13.1 open 基本格式
1 2 3
| f = open("test.txt", "r", encoding="utf-8") content = f.read() f.close()
|
更推荐:
1 2
| with open("test.txt", "r", encoding="utf-8") as f: content = f.read()
|
with 会自动关闭文件。
13.2 文件打开模式
| 模式 |
含义 |
r |
只读,文件不存在会报错 |
w |
写入,会清空原文件;文件不存在会创建 |
a |
追加,在文件末尾写入;文件不存在会创建 |
rb |
二进制读 |
wb |
二进制写 |
13.3 读文件
1 2 3
| with open("test.txt", "r", encoding="utf-8") as f: data = f.read() print(data)
|
逐行读取:
1 2 3
| with open("test.txt", "r", encoding="utf-8") as f: for line in f: print(line.strip())
|
13.4 写文件
1 2 3
| with open("test.txt", "w", encoding="utf-8") as f: f.write("hello\n") f.write("world\n")
|
追加文件:
1 2
| with open("test.txt", "a", encoding="utf-8") as f: f.write("new line\n")
|
14. 异常处理
14.1 基本格式
1 2 3 4 5 6 7 8 9 10 11
| try: x = int(input("请输入数字:")) print(10 / x) except ValueError: print("输入的不是整数") except ZeroDivisionError: print("不能除以 0") else: print("没有异常时执行") finally: print("无论是否异常都会执行")
|
14.2 常见异常
| 异常 |
含义 |
ValueError |
值错误,比如 int("abc") |
ZeroDivisionError |
除以 0 |
IndexError |
下标越界 |
KeyError |
字典键不存在 |
TypeError |
类型错误 |
FileNotFoundError |
文件不存在 |
15. 面向对象基础
15.1 类和对象
类:模板。
对象:根据模板造出来的具体东西。
1 2 3 4 5 6 7 8 9 10
| class Student: def __init__(self, name, age): self.name = name self.age = age
def say_hello(self): print("我叫", self.name)
s1 = Student("Tom", 18) s1.say_hello()
|
15.2 self 是什么?
self 表示当前对象自己。
意思是:把传进来的 name 保存到当前对象的 name 属性里。
15.3 构造方法 init
1 2 3
| def __init__(self, name, age): self.name = name self.age = age
|
创建对象时自动调用:
15.4 类属性和实例属性
1 2 3 4 5
| class Student: school = "江苏大学"
def __init__(self, name): self.name = name
|
| 类型 |
属于谁 |
| 类属性 |
所有对象共享 |
| 实例属性 |
每个对象自己拥有 |
16. 常见内置函数
| 函数 |
作用 |
len() |
求长度 |
sum() |
求和 |
max() |
最大值 |
min() |
最小值 |
sorted() |
排序,返回新列表 |
range() |
生成整数序列 |
type() |
查看类型 |
int() |
转整数 |
float() |
转小数 |
str() |
转字符串 |
list() |
转列表 |
dict() |
转字典 |
set() |
转集合 |
enumerate() |
同时获得下标和值 |
zip() |
并行打包多个序列 |
例子:
1 2 3 4 5 6 7
| lst = [3, 1, 4, 2]
print(len(lst)) print(sum(lst)) print(max(lst)) print(min(lst)) print(sorted(lst))
|
17. 常见编程题套路
17.1 判断素数
素数:只能被 1 和自身整除的大于 1 的整数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| n = int(input("请输入一个整数:"))
if n <= 1: print("不是素数") else: flag = True for i in range(2, n): if n % i == 0: flag = False break
if flag: print("是素数") else: print("不是素数")
|
优化版:只判断到平方根。
1 2 3 4 5 6 7 8 9 10 11 12
| n = int(input("请输入一个整数:"))
if n <= 1: print("不是素数") else: flag = True for i in range(2, int(n ** 0.5) + 1): if n % i == 0: flag = False break
print("是素数" if flag else "不是素数")
|
17.2 输出 100 以内所有素数
1 2 3 4 5 6 7 8
| for n in range(2, 101): flag = True for i in range(2, int(n ** 0.5) + 1): if n % i == 0: flag = False break if flag: print(n, end=" ")
|
17.3 水仙花数
三位水仙花数:每个位数字的立方和等于它本身。
例如:
代码:
1 2 3 4 5 6 7
| for n in range(100, 1000): a = n // 100 b = n // 10 % 10 c = n % 10
if a ** 3 + b ** 3 + c ** 3 == n: print(n)
|
拆位技巧:
| 数位 |
写法 |
| 百位 |
n // 100 |
| 十位 |
n // 10 % 10 |
| 个位 |
n % 10 |
17.4 反转整数
1 2 3 4 5 6 7 8 9
| n = int(input("请输入整数:")) rev = 0
while n > 0: digit = n % 10 rev = rev * 10 + digit n //= 10
print(rev)
|
例如:
17.5 最大公约数
普通写法:
1 2 3 4 5 6 7 8
| a = int(input()) b = int(input())
m = min(a, b) for i in range(m, 0, -1): if a % i == 0 and b % i == 0: print(i) break
|
辗转相除法:
1 2 3 4 5 6 7
| a = int(input()) b = int(input())
while b != 0: a, b = b, a % b
print(a)
|
17.6 最小公倍数
1 2 3 4 5 6 7 8 9 10
| a = int(input()) b = int(input())
x, y = a, b while b != 0: a, b = b, a % b
gcd = a lcm = x * y // gcd print(lcm)
|
公式:
17.7 斐波那契数列
1 2 3 4 5 6
| n = int(input("请输入项数:"))
a, b = 0, 1 for i in range(n): print(a, end=" ") a, b = b, a + b
|
输出前 10 项:
17.8 冒泡排序
1 2 3 4 5 6 7 8
| lst = [5, 3, 8, 1, 2]
for i in range(len(lst) - 1): for j in range(len(lst) - 1 - i): if lst[j] > lst[j + 1]: lst[j], lst[j + 1] = lst[j + 1], lst[j]
print(lst)
|
理解:
- 每一轮把当前最大的数“冒”到后面。
- 外层控制轮数。
- 内层控制相邻比较。
17.9 线性查找
1 2 3 4 5 6 7 8 9 10 11 12 13
| lst = [10, 20, 30, 40] target = int(input("请输入要查找的数:"))
pos = -1 for i in range(len(lst)): if lst[i] == target: pos = i break
if pos == -1: print("没找到") else: print("下标是", pos)
|
17.10 统计列表最大值和下标
1 2 3 4 5 6 7 8 9 10
| lst = [3, 9, 2, 9, 5] max_value = lst[0] max_index = 0
for i in range(1, len(lst)): if lst[i] > max_value: max_value = lst[i] max_index = i
print(max_value, max_index)
|
17.11 输入一行数字,求和
输入:
代码:
1 2 3
| nums = input().split() nums = [int(x) for x in nums] print(sum(nums))
|
合并写法:
1 2
| nums = list(map(int, input().split())) print(sum(nums))
|
18. 程序阅读题常见坑
18.1 变量交换
1 2 3 4
| a = 3 b = 5 a, b = b, a print(a, b)
|
输出:
18.2 列表赋值不是复制
1 2 3 4
| a = [1, 2, 3] b = a b[0] = 100 print(a)
|
输出:
因为 a 和 b 指向同一个列表。
正确复制:
18.3 可变对象和不可变对象
| 类型 |
是否可变 |
| int |
不可变 |
| float |
不可变 |
| str |
不可变 |
| tuple |
不可变 |
| list |
可变 |
| dict |
可变 |
| set |
可变 |
18.4 函数修改列表
1 2 3 4 5 6
| def f(lst): lst.append(4)
nums = [1, 2, 3] f(nums) print(nums)
|
输出:
列表是可变对象,函数里可以改到原列表。
18.5 and / or 的短路逻辑
1 2 3 4
| print(0 and 5) print(1 and 5) print(0 or 5) print(1 or 5)
|
考试如果只考 True / False,可以记:
| 表达式 |
结果 |
A and B |
A 假就返回 A,否则返回 B |
A or B |
A 真就返回 A,否则返回 B |
18.6 浮点数精度问题
可能输出:
所以不要直接用浮点数判断绝对相等。
1
| abs((0.1 + 0.2) - 0.3) < 1e-9
|
18.7 默认参数不要用可变对象
错误示范:
1 2 3 4 5 6
| def f(x, lst=[]): lst.append(x) return lst
print(f(1)) print(f(2))
|
输出可能是:
更安全写法:
1 2 3 4 5
| def f(x, lst=None): if lst is None: lst = [] lst.append(x) return lst
|
19. 高频选择题 / 填空题速记
19.1 Python 文件后缀
19.2 Python 用什么表示代码块?
19.3 Python 变量需要提前声明吗?
19.5 列表和元组区别?
1
| 列表 list 可修改,元组 tuple 不可修改。
|
19.6 字典通过什么取值?
19.7 集合最大特点?
19.8 函数没有 return 返回什么?
19.9 = 和 == 区别?
19.10 / 和 // 区别?
1
| / 是普通除法,结果通常是小数;// 是整除,取商的整数部分。
|
20. 机考万能模板
20.1 输入一个整数
20.2 输入多个整数
1
| nums = list(map(int, input().split()))
|
20.3 输入 n 个整数,每个一行
1 2 3 4
| n = int(input()) nums = [] for i in range(n): nums.append(int(input()))
|
20.4 输入 n 个整数,在一行
1 2
| n = int(input()) nums = list(map(int, input().split()))
|
20.5 遍历列表
1 2
| for x in nums: print(x)
|
20.6 带下标遍历
1 2
| for i, x in enumerate(nums): print(i, x)
|
20.7 统计频次
1 2 3
| d = {} for x in nums: d[x] = d.get(x, 0) + 1
|
20.8 排序
或:
21. 最容易丢分的地方
21.1 忘记类型转换
错误:
1 2 3
| a = input() b = input() print(a + b)
|
如果输入:
输出:
正确:
1 2 3
| a = int(input()) b = int(input()) print(a + b)
|
21.2 range 忘记右边取不到
1 2
| for i in range(1, 10): print(i)
|
只能输出 1 到 9,不能输出 10。
如果要 1 到 10:
1 2
| for i in range(1, 11): print(i)
|
21.3 列表下标越界
1 2
| lst = [1, 2, 3] print(lst[3])
|
最大下标是 len(lst) - 1。
21.4 字典键不存在
1 2
| d = {"a": 1} print(d["b"])
|
安全写法:
21.5 while 死循环
错误:
1 2 3
| i = 1 while i <= 5: print(i)
|
忘记更新 i,会一直循环。
正确:
1 2 3 4
| i = 1 while i <= 5: print(i) i += 1
|
22. 考前 30 分钟速背清单
input() 返回字符串,计算前要 int() 或 float()。
range(a, b) 包含 a,不包含 b。
/ 是普通除法,// 是整除,% 是取余。
= 是赋值,== 是判断相等。
- 列表
list 可修改,元组 tuple 不可修改。
- 字符串、列表都能索引和切片。
- 字符串不可修改,列表可以修改。
- 字典用
key 找 value。
dict.get(key, 默认值) 可以避免键不存在报错。
- 函数没有
return 默认返回 None。
break 结束整个循环,continue 跳过本轮循环。
- 文件操作推荐使用
with open(...) as f:。
sort() 改原列表,sorted() 返回新列表。
append() 是在列表末尾添加元素。
- 判断素数、求和、统计次数、排序、查找是编程题高频。
23. 练习题:自己检查掌握程度
题 1:输出 1 到 100 中所有能被 3 整除的数
1 2 3
| for i in range(1, 101): if i % 3 == 0: print(i)
|
题 2:输入一个字符串,统计字母 a 出现次数
1 2
| s = input() print(s.count("a"))
|
题 3:输入一行整数,输出最大值、最小值、平均值
1 2 3 4 5
| nums = list(map(int, input().split()))
print(max(nums)) print(min(nums)) print(sum(nums) / len(nums))
|
题 4:统计一行字符串中每个字符出现次数
1 2 3 4 5 6 7
| s = input() d = {}
for ch in s: d[ch] = d.get(ch, 0) + 1
print(d)
|
题 5:判断回文字符串
回文:正着读和反着读一样。
1 2 3 4 5 6
| s = input()
if s == s[::-1]: print("是回文") else: print("不是回文")
|
24. 最后建议:怎么复习最有效?
不要只背语法,最好按这个顺序来:
- 先把
input / print / if / for / while 搞熟。
- 再重点练
字符串、列表、字典。
- 然后背几个常见题模板:素数、水仙花、求和、排序、查找、统计次数。
- 考前多看程序阅读题,尤其注意变量变化、循环次数、下标范围。
- 遇到不会的代码,逐行写出变量变化表,基本都能看懂。
附录:超短版语法表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| x = int(input()) nums = list(map(int, input().split()))
print(x) print(a, b, sep="-", end=" ")
if 条件: pass elif 条件: pass else: pass
for i in range(n): pass
while 条件: pass
def f(a, b): return a + b
lst = [] lst.append(1) lst.sort()
d = {} d[key] = value d[key] = d.get(key, 0) + 1
with open("a.txt", "r", encoding="utf-8") as f: data = f.read()
|
一句话记忆:Python 考试最核心就是:输入转类型、循环看范围、列表看下标、字典看键、函数看返回值。