























适合状态:看过 Python 视频,但基础不牢、容易忘、打代码速度偏慢。
本讲目标:先把“能写小程序”的地基打稳。二级 Python 很多编程题,本质都离不开输入、类型转换、表达式计算和格式化输出。
学完这一讲,你要能做到:
input() 获取键盘输入。input() 得到的一定是字符串。int()、float()、str() 做类型转换。print() 输出结果。round()、format() 或 f-string 控制小数位。这一讲看起来基础,但考试里非常常见。很多同学编程题丢分,不是不会思路,而是输在:
变量可以理解成一个“贴了名字的盒子”。
age = 18
name = "Tom"
score = 95.5含义是:
age 这个盒子里放了整数 18name 这个盒子里放了字符串 "Tom"score 这个盒子里放了小数 95.5注意:Python 里的 = 不是数学里的“相等”,而是“赋值”。
x = 10
x = x + 1
print(x)输出:
11解释:先取出原来的 x,也就是 10,加 1 后再放回 x。
变量名可以由字母、数字、下划线组成,但不能以数字开头。
合法:
score
score1
student_name
_count不合法:
2score
student-name
class其中 class 是 Python 关键字,不能当变量名。
二级考试里常考判断变量名是否合法,记住三条:
input() 的关键陷阱input() 用来获取用户输入。
name = input("请输入姓名:")
print(name)最重要的一点:
input() 得到的一定是字符串例如:
a = input()
b = input()
print(a + b)如果输入:
10
20输出不是 30,而是:
1020因为此时 a 是字符串 "10",b 是字符串 "20",字符串相加表示拼接。
如果想做数学加法,要写:
a = int(input())
b = int(input())
print(a + b)输出:
30二级 Python 前期最常用的是这几类:
| 类型 | 说明 | 示例 |
|---|---|---|
int | 整数 | 10, -3, 0 |
float | 小数 | 3.14, 0.5 |
str | 字符串 | "abc", 'Python' |
bool | 布尔值 | True, False |
可以用 type() 查看类型:
x = 10
print(type(x))输出:
<class 'int'>考试选择题可能会问:
print(type("123"))答案是:
<class 'str'>因为 "123" 加了引号,是字符串,不是整数。
常用转换函数:
int("123") # 转成整数 123
float("3.14") # 转成小数 3.14
str(123) # 转成字符串 "123"常见写法:
n = int(input())
price = float(input())注意:
int("3.14")会报错,因为 "3.14" 不是整数形式的字符串。
可以这样:
x = int(float("3.14"))
print(x)输出:
3int() 对小数取整时不是四舍五入,而是直接去掉小数部分。
| 运算符 | 含义 | 示例 | 结果 |
|---|---|---|---|
+ | 加法 | 3 + 2 | 5 |
- | 减法 | 3 - 2 | 1 |
* | 乘法 | 3 * 2 | 6 |
/ | 普通除法 | 5 / 2 | 2.5 |
// | 整除 | 5 // 2 | 2 |
% | 取余 | 5 % 2 | 1 |
** | 幂运算 | 2 ** 3 | 8 |
特别重要:
print(5 / 2) # 2.5
print(5 // 2) # 2
print(5 % 2) # 1一句话记忆:
/:正常除,结果通常是小数。//:只要商的整数部分。%:只要余数。整除和取余很常用。
判断一个数是否能被 2 整除:
n = int(input())
print(n % 2 == 0)取一个三位数的个位、十位、百位:
n = 357
ge = n % 10
shi = n // 10 % 10
bai = n // 100
print(bai, shi, ge)输出:
3 5 7这个知识点后面会在循环题、数字处理题里反复出现。
常见优先级从高到低:
() 括号** 幂运算*、/、//、%+、-建议你考试时不要赌优先级,拿不准就加括号。
result = (a + b) * c比:
result = a + b * c更清楚。
print() 基础name = "Python"
score = 90
print(name, score)输出:
Python 90print() 输出多个内容时,默认用空格隔开。
推荐你优先掌握 f-string,简单、好读、考试也常用。
name = "Tom"
score = 95
print(f"{name}的成绩是{score}")输出:
Tom的成绩是95保留两位小数:
x = 3.14159
print(f"{x:.2f}")输出:
3.14保留一位小数:
x = 3.14159
print(f"{x:.1f}")输出:
3.1round() 和格式化的区别x = 3.1
print(round(x, 2))
print(f"{x:.2f}")输出:
3.1
3.10区别:
round(x, 2) 是数值处理,不一定补 0。f"{x:.2f}" 是输出格式,会固定显示两位小数。考试如果要求“保留两位小数输出”,更推荐:
print(f"{result:.2f}")a = input()
b = input()
print(a + b)输入:
3
4输出是什么?
答案:
34原因:input() 返回字符串。
题目:输入圆的半径 r,输出圆面积,圆周率取 3.14。
核心表达式:
area = 3.14 * r ** 2不是:
area = 3.14 * r * 2后者是周长相关表达式,不是面积。
题目:计算平均分,结果保留 1 位小数。
正确写法:
avg = total / 3
print(f"{avg:.1f}")题目:输入两个整数,输出它们的和。
输入样例:
10
20输出样例:
30分析:
input() 得到字符串,所以要用 int()。代码:
a = int(input())
b = int(input())
print(a + b)题目:输入长方形的长和宽,输出面积。
输入样例:
5
3输出样例:
15代码:
length = int(input())
width = int(input())
area = length * width
print(area)题目:输入三门课成绩,输出平均分,保留两位小数。
输入样例:
80
90
85输出样例:
85.00代码:
a = float(input())
b = float(input())
c = float(input())
avg = (a + b + c) / 3
print(f"{avg:.2f}")为什么用 float()?
因为成绩可能出现小数,例如 89.5。
题目:输入一个三位整数,输出它的百位、十位、个位数字。
输入样例:
357输出样例:
3 5 7代码:
n = int(input())
bai = n // 100
shi = n // 10 % 10
ge = n % 10
print(bai, shi, ge)这类题是二级里很值得练的基础题,因为它会训练你对 // 和 % 的感觉。
先做题,再看答案。别急着翻,给大脑一点“拉伸感”。
下列变量名合法的是:
A. 2score
B. student-name
C. student_name
D. class
答案:C
解析:变量名不能以数字开头,不能包含减号,不能使用关键字。student_name 合法。
执行下面程序:
a = input()
b = input()
print(a + b)输入:
12
3输出结果是:
A. 15
B. 123
C. 12 3
D. 报错
答案:B
解析:input() 返回字符串,字符串相加表示拼接,所以输出 123。
表达式 17 // 5 的结果是:
A. 2
B. 3
C. 3.4
D. 4
答案:B
解析:// 是整除,17 / 5 = 3.4,整除结果是 3。
表达式 17 % 5 的结果是:
A. 2
B. 3
C. 3.4
D. 5
答案:A
解析:17 = 5 * 3 + 2,余数是 2。
下面程序的输出是:
x = 2
y = 3
print(x ** y + 1)A. 7
B. 8
C. 9
D. 10
答案:C
解析:2 ** 3 = 8,再加 1,结果是 9。
执行下面程序:
x = 3.1
print(f"{x:.2f}")输出结果是:
A. 3.1
B. 3.10
C. 3.100
D. 3
答案:B
解析::.2f 表示固定保留两位小数,不足两位会补 0。
这些题偏基础,但都贴近考试编程题的底层能力。请你尽量自己打代码,不要复制。
题目:输入摄氏温度 c,计算并输出华氏温度 f。公式:
f = c * 9 / 5 + 32要求:结果保留 1 位小数。
输入样例:
30输出样例:
86.0c = float(input())
f = c * 9 / 5 + 32
print(f"{f:.1f}")题目:输入圆的半径 r,圆周率取 3.14,输出圆面积和周长,均保留 2 位小数。
公式:
area = 3.14 * r * r
length = 2 * 3.14 * r输入样例:
2输出样例:
12.56
12.56r = float(input())
area = 3.14 * r * r
length = 2 * 3.14 * r
print(f"{area:.2f}")
print(f"{length:.2f}")题目:输入两个整数 a 和 b,交换它们的值后输出。
输入样例:
10
20输出样例:
20 10a = int(input())
b = int(input())
a, b = b, a
print(a, b)题目:输入一个整数秒数 s,将它转换成“小时 分钟 秒”的形式输出。
输入样例:
3661输出样例:
1 1 1解释:3661 秒等于 1 小时 1 分钟 1 秒。
提示:
// 求整份数量% 求剩余部分s = int(input())
hour = s // 3600
minute = s % 3600 // 60
second = s % 60
print(hour, minute, second)题目:输入一个三位整数,输出它的逆序数。
输入样例:
357输出样例:
753提示:
个位 * 100 + 十位 * 10 + 百位n = int(input())
bai = n // 100
shi = n // 10 % 10
ge = n % 10
result = ge * 100 + shi * 10 + bai
print(result)题目:输入商品单价 price 和购买数量 count,输出总价,保留 2 位小数。
输入样例:
12.5
3输出样例:
37.50price = float(input())
count = int(input())
total = price * count
print(f"{total:.2f}")下面 3 道题请你先不要看答案,自己写完后发给我。我会按二级考试的思路帮你批改:看语法、看逻辑、看格式、看是否有更稳的写法。
输入三门课程成绩,输出总分和平均分。平均分保留 1 位小数。
输入样例:
80
90
85输出样例:
255
85.0要求:
输入一个四位整数,输出它各位数字之和。
输入样例:
2026输出样例:
10提示:分别取千位、百位、十位、个位。
输入一个整数金额 money,表示人民币元数。请尽量使用 100 元、50 元、10 元纸币进行兑换,输出每种纸币的张数。
输入样例:
280输出样例:
2 1 3解释:
提示:
input() 得到的是字符串,不是数字。"10" + "20" 的结果是 "1020"。int() 或 float()。/ 是普通除法,// 是整除,% 是取余。f"{x:.2f}"。int(3.9) 的结果是 3,不是 4。你每天大约 1 小时,但打代码慢,所以我建议这样安排:
如果你今天时间紧,优先做:
因为这三题能快速练出 // 和 % 的手感。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。