惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 【当耐特】
Help Net Security
Help Net Security
P
Proofpoint News Feed
J
Java Code Geeks
爱范儿
爱范儿
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Full Disclosure
Google DeepMind News
Google DeepMind News
H
Help Net Security
G
Google Developers Blog
Jina AI
Jina AI
Vercel News
Vercel News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
L
Lohrmann on Cybersecurity
S
Schneier on Security
Microsoft Azure Blog
Microsoft Azure Blog
IT之家
IT之家
Security Archives - TechRepublic
Security Archives - TechRepublic
阮一峰的网络日志
阮一峰的网络日志
N
News and Events Feed by Topic
GbyAI
GbyAI
B
Blog
O
OpenAI News
博客园_首页
Cisco Talos Blog
Cisco Talos Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Hacker News: Ask HN
Hacker News: Ask HN
TaoSecurity Blog
TaoSecurity Blog
腾讯CDC
MongoDB | Blog
MongoDB | Blog
M
MIT News - Artificial intelligence
C
Cybersecurity and Infrastructure Security Agency CISA
Cyberwarzone
Cyberwarzone
Webroot Blog
Webroot Blog
Simon Willison's Weblog
Simon Willison's Weblog
Y
Y Combinator Blog
C
Cisco Blogs
A
Arctic Wolf
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
The Exploit Database - CXSecurity.com
Security Latest
Security Latest
AI
AI
W
WeLiveSecurity
aimingoo的专栏
aimingoo的专栏
The Register - Security
The Register - Security
Project Zero
Project Zero
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
Blog — PlanetScale
Blog — PlanetScale

开心兔

父亲节2 - 开心兔 期末复习 - 开心兔 移植十周年 博客十周年 - 开心兔 哪本经最难念? - 开心兔 口袋 - 开心兔 《秋月思》中秋后在校望月小思 - 开心兔 Cloudflare SaaS两域名实现优选 - 开心兔 奇葩室友2.1 - 开心兔 奇葩室友1 - 开心兔 各怀鬼胎的生活 - 开心兔 推广 - 开心兔 集体生活挺不容易的 - 开心兔
第 01 讲:变量、输入输出、类型转换与表达式 - 开心兔
博主: 开心兔 · 2026-06-24 · via 开心兔

第 01 讲:变量、输入输出、类型转换与表达式

适合状态:看过 Python 视频,但基础不牢、容易忘、打代码速度偏慢。
本讲目标:先把“能写小程序”的地基打稳。二级 Python 很多编程题,本质都离不开输入、类型转换、表达式计算和格式化输出。

一、你要会什么

学完这一讲,你要能做到:

  1. 看懂变量赋值语句。
  2. 会用 input() 获取键盘输入。
  3. 知道 input() 得到的一定是字符串。
  4. 会用 int()float()str() 做类型转换。
  5. 会写常见数学表达式。
  6. 会用 print() 输出结果。
  7. 会用 round()format() 或 f-string 控制小数位。

这一讲看起来基础,但考试里非常常见。很多同学编程题丢分,不是不会思路,而是输在:

  • 忘了把输入转成数字。
  • 除法、整除、取余混淆。
  • 输出格式不符合题目要求。
  • 变量名写错。
  • 表达式优先级想当然。

二、通俗讲解

1. 变量是什么

变量可以理解成一个“贴了名字的盒子”。

age = 18
name = "Tom"
score = 95.5

含义是:

  • age 这个盒子里放了整数 18
  • name 这个盒子里放了字符串 "Tom"
  • score 这个盒子里放了小数 95.5

注意:Python 里的 = 不是数学里的“相等”,而是“赋值”。

x = 10
x = x + 1
print(x)

输出:

11

解释:先取出原来的 x,也就是 10,加 1 后再放回 x


2. 变量名怎么写

变量名可以由字母、数字、下划线组成,但不能以数字开头。

合法:

score
score1
student_name
_count

不合法:

2score
student-name
class

其中 class 是 Python 关键字,不能当变量名。

二级考试里常考判断变量名是否合法,记住三条:

  1. 不能数字开头。
  2. 不能包含空格、减号等特殊符号。
  3. 不能使用 Python 关键字。

3. 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

4. 常见数据类型

二级 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" 加了引号,是字符串,不是整数。


5. 类型转换

常用转换函数:

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)

输出:

3

int() 对小数取整时不是四舍五入,而是直接去掉小数部分。


三、表达式与运算符

1. 常见算术运算符

运算符含义示例结果
+加法3 + 25
-减法3 - 21
*乘法3 * 26
/普通除法5 / 22.5
//整除5 // 22
%取余5 % 21
**幂运算2 ** 38

特别重要:

print(5 / 2)   # 2.5
print(5 // 2)  # 2
print(5 % 2)   # 1

一句话记忆:

  • /:正常除,结果通常是小数。
  • //:只要商的整数部分。
  • %:只要余数。

2. 整除和取余的考试用途

整除和取余很常用。

判断一个数是否能被 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

这个知识点后面会在循环题、数字处理题里反复出现。


3. 运算优先级

常见优先级从高到低:

  1. () 括号
  2. ** 幂运算
  3. *///%
  4. +-

建议你考试时不要赌优先级,拿不准就加括号。

result = (a + b) * c

比:

result = a + b * c

更清楚。


四、输出格式

1. print() 基础

name = "Python"
score = 90
print(name, score)

输出:

Python 90

print() 输出多个内容时,默认用空格隔开。


2. f-string 格式化输出

推荐你优先掌握 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.1

3. round() 和格式化的区别

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}")

五、考试常见问法

问法 1:判断程序输出

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

输入:

3
4

输出是什么?

答案:

34

原因:input() 返回字符串。


问法 2:根据题意写表达式

题目:输入圆的半径 r,输出圆面积,圆周率取 3.14

核心表达式:

area = 3.14 * r ** 2

不是:

area = 3.14 * r * 2

后者是周长相关表达式,不是面积。


问法 3:输出格式

题目:计算平均分,结果保留 1 位小数。

正确写法:

avg = total / 3
print(f"{avg:.1f}")

六、手把手例题

例题 1:两个整数求和

题目:输入两个整数,输出它们的和。

输入样例:

10
20

输出样例:

30

分析:

  1. 输入两个数。
  2. input() 得到字符串,所以要用 int()
  3. 相加后输出。

代码:

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

例题 2:计算长方形面积

题目:输入长方形的长和宽,输出面积。

输入样例:

5
3

输出样例:

15

代码:

length = int(input())
width = int(input())
area = length * width
print(area)

例题 3:计算平均分,保留两位小数

题目:输入三门课成绩,输出平均分,保留两位小数。

输入样例:

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


例题 4:拆分三位数

题目:输入一个三位整数,输出它的百位、十位、个位数字。

输入样例:

357

输出样例:

3 5 7

代码:

n = int(input())
bai = n // 100
shi = n // 10 % 10
ge = n % 10
print(bai, shi, ge)

这类题是二级里很值得练的基础题,因为它会训练你对 //% 的感觉。


七、选择题训练:对写代码有帮助的题

先做题,再看答案。别急着翻,给大脑一点“拉伸感”。

选择题 1

下列变量名合法的是:

A. 2score
B. student-name
C. student_name
D. class


答案与解析

答案:C

解析:变量名不能以数字开头,不能包含减号,不能使用关键字。student_name 合法。


选择题 2

执行下面程序:

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

输入:

12
3

输出结果是:

A. 15
B. 123
C. 12 3
D. 报错


答案与解析

答案:B

解析:input() 返回字符串,字符串相加表示拼接,所以输出 123


选择题 3

表达式 17 // 5 的结果是:

A. 2
B. 3
C. 3.4
D. 4


答案与解析

答案:B

解析:// 是整除,17 / 5 = 3.4,整除结果是 3


选择题 4

表达式 17 % 5 的结果是:

A. 2
B. 3
C. 3.4
D. 5


答案与解析

答案:A

解析:17 = 5 * 3 + 2,余数是 2


选择题 5

下面程序的输出是:

x = 2
y = 3
print(x ** y + 1)

A. 7
B. 8
C. 9
D. 10


答案与解析

答案:C

解析:2 ** 3 = 8,再加 1,结果是 9


选择题 6

执行下面程序:

x = 3.1
print(f"{x:.2f}")

输出结果是:

A. 3.1
B. 3.10
C. 3.100
D. 3


答案与解析

答案:B

解析::.2f 表示固定保留两位小数,不足两位会补 0


八、仿真练习题

这些题偏基础,但都贴近考试编程题的底层能力。请你尽量自己打代码,不要复制。

练习 1:摄氏温度转华氏温度

题目:输入摄氏温度 c,计算并输出华氏温度 f。公式:

f = c * 9 / 5 + 32

要求:结果保留 1 位小数。

输入样例:

30

输出样例:

86.0

参考答案
c = float(input())
f = c * 9 / 5 + 32
print(f"{f:.1f}")

练习 2:计算圆面积和周长

题目:输入圆的半径 r,圆周率取 3.14,输出圆面积和周长,均保留 2 位小数。

公式:

area = 3.14 * r * r
length = 2 * 3.14 * r

输入样例:

2

输出样例:

12.56
12.56

参考答案
r = float(input())
area = 3.14 * r * r
length = 2 * 3.14 * r
print(f"{area:.2f}")
print(f"{length:.2f}")

练习 3:交换两个变量

题目:输入两个整数 ab,交换它们的值后输出。

输入样例:

10
20

输出样例:

20 10

参考答案
a = int(input())
b = int(input())
a, b = b, a
print(a, b)

练习 4:秒数转换

题目:输入一个整数秒数 s,将它转换成“小时 分钟 秒”的形式输出。

输入样例:

3661

输出样例:

1 1 1

解释:3661 秒等于 1 小时 1 分钟 1 秒。

提示:

  • 1 小时 = 3600 秒
  • 1 分钟 = 60 秒
  • // 求整份数量
  • % 求剩余部分

参考答案
s = int(input())
hour = s // 3600
minute = s % 3600 // 60
second = s % 60
print(hour, minute, second)

练习 5:三位数逆序

题目:输入一个三位整数,输出它的逆序数。

输入样例:

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)

练习 6:购物金额计算

题目:输入商品单价 price 和购买数量 count,输出总价,保留 2 位小数。

输入样例:

12.5
3

输出样例:

37.50

参考答案
price = float(input())
count = int(input())
total = price * count
print(f"{total:.2f}")

九、提交给我的练习任务

下面 3 道题请你先不要看答案,自己写完后发给我。我会按二级考试的思路帮你批改:看语法、看逻辑、看格式、看是否有更稳的写法。

提交题 1:总分和平均分

输入三门课程成绩,输出总分和平均分。平均分保留 1 位小数。

输入样例:

80
90
85

输出样例:

255
85.0

要求:

  • 三门成绩可以按整数处理。
  • 总分直接输出整数。
  • 平均分固定保留 1 位小数。

提交题 2:四位数各位数字之和

输入一个四位整数,输出它各位数字之和。

输入样例:

2026

输出样例:

10

提示:分别取千位、百位、十位、个位。


提交题 3:人民币换算

输入一个整数金额 money,表示人民币元数。请尽量使用 100 元、50 元、10 元纸币进行兑换,输出每种纸币的张数。

输入样例:

280

输出样例:

2 1 3

解释:

  • 2 张 100 元
  • 1 张 50 元
  • 3 张 10 元

提示:

  • 先算 100 元张数。
  • 再处理剩余金额。
  • 再算 50 元张数。
  • 最后算 10 元张数。

十、易错点总结

  1. input() 得到的是字符串,不是数字。
  2. 字符串 "10" + "20" 的结果是 "1020"
  3. 要做数学计算,先用 int()float()
  4. / 是普通除法,// 是整除,% 是取余。
  5. 保留固定小数位,优先用 f"{x:.2f}"
  6. int(3.9) 的结果是 3,不是 4
  7. 输出格式要和题目样例一致,尤其是小数位数和空格。

十一、今天建议怎么学

你每天大约 1 小时,但打代码慢,所以我建议这样安排:

  1. 读讲解:15 分钟。
  2. 手敲例题:15 分钟。
  3. 做选择题:10 分钟。
  4. 做仿真练习 1 到 3:20 分钟。
  5. 提交题只做 1 到 2 道,别贪多。

如果你今天时间紧,优先做:

  1. 例题 4:拆分三位数。
  2. 练习 4:秒数转换。
  3. 提交题 2:四位数各位数字之和。

因为这三题能快速练出 //% 的手感。