Python 从入门到实战(二):变量与数据类型(搞定 Python 的 “数据积木”)

举报
倔强的石头_ 发表于 2025/12/06 15:30:32 2025/12/06
【摘要】 文章目录一、先搞懂:为什么需要变量?二、变量:给数据贴 “标签”(命名 + 使用)1. 变量的基本用法:赋值与调用2. 变量命名:3 条规则 + 2 个建议(避坑重点!)▶ 3 条强制规则(违反必报错)▶ 2 个实用建议(提升代码可读性)▶ 新手常见错误示例(避坑!)3. 变量使用的常见坑:命名错误与值的修改三、字符串:处理文字的 “万能工具”1. 字符串的基本操作:大小写转换2. 字符串拼...

c6e3154d215982a75f2280a6ca6650b4.jpeg

文章目录


欢迎回到「Python 从入门到实战」系列专栏。上一篇咱们搭好了 Python 环境,写出了第一个打印 “Hello World” 的程序 —— 这就像学会了用锤子敲下第一颗钉子。但光会打印固定文字可不够,今天咱们要学 Python 的 “数据积木”:变量和数据类型


简单说,变量就是 “装数据的容器”,数据类型就是 “不同类型的积木”(比如文字、数字)。学会它们,你就能让程序处理灵活的内容 —— 比如存储用户名字、计算成绩、拼接个性化消息,为后面写复杂程序打基础。

一、先搞懂:为什么需要变量?

上一篇的程序里,咱们写了print("Hello Python world!"),如果想改打印的内容,得手动改括号里的字符串。但实际场景中,比如做一个 “问候程序”,要给不同用户发不同消息,总不能每次都改代码吧?

这时候就需要变量了。比如用变量name存储用户名字,不管用户输入什么,程序都能自动生成问候语。举个直观的例子:

python

# 没有变量:每次改内容都要改代码
print("Hello, 小明!")
print("Hello, 小红!")

# 有变量:改一次变量值就行
name = "小明"
print(f"Hello, {name}!")
name = "小红"
print(f"Hello, {name}!")

运行后会输出:

plaintext

Hello, 小明!
Hello, 小红!
Hello, 小明!
Hello, 小红!

看到没?变量就像 “可替换的标签”,把值贴在标签上,用的时候直接调用标签就行 —— 这就是变量的核心作用:存储数据、灵活复用

二、变量:给数据贴 “标签”(命名 + 使用)

变量不难,但新手容易在 “命名” 和 “使用” 上踩坑。咱们一步步来,先掌握 “正确的变量用法”。

1. 变量的基本用法:赋值与调用

变量的语法很简单:变量名 = 值(等号是 “赋值”,不是 “等于”)。比如:

python

# 把“张三”赋值给变量name
name = "张三"
# 把18赋值给变量age
age = 18
# 调用变量:打印变量存储的值
print(name)  # 输出:张三
print(age)   # 输出:18
  • 赋值时,等号左边是 “变量名”,右边是 “要存储的值”;
  • 调用变量时,直接写变量名就行,不用加引号(加了引号就成字符串了,比如print("name")会输出 “name”,而不是 “张三”)。

咱们来个实操:存储并打印个人信息。代码如下:

python

# 存储个人信息
name = "李华"
age = 20
hobby = "打篮球"

# 打印个人信息
print(f"我叫{name},今年{age}岁,喜欢{hobby}。")

运行结果:

plaintext

我叫李华,今年20岁,喜欢打篮球。

这里的f"{变量名}"是 “f 字符串”(上一篇提过,这篇详细讲),能把变量值嵌入字符串,特别实用。

2. 变量命名:3 条规则 + 2 个建议(避坑重点!)

变量名不能随便起,Python 有严格规则,违反了会报错。记住下面 3 条必须遵守的规则,再记住 2 个提升可读性的建议

▶ 3 条强制规则(违反必报错)

  1. 只能包含字母、数字、下划线:比如user_nameage1没问题,但user-name(有横杠)、age#1(有 #)不行;
  2. 不能以数字开头1age会报错,age1没问题;
  3. 不能用 Python 关键字:比如printiffor这些 Python 自带的 “特殊单词”,不能当变量名(附录里有完整关键字列表,不用死记,VS Code 会标红提醒)。

▶ 2 个实用建议(提升代码可读性)

  1. 见名知意:比如用user_name代替a,用student_age代替x,别人一看就知道变量存的是什么;
  2. 全小写 + 下划线(蛇形命名法):这是 Python 的约定,比如favorite_color,不要用FavoriteColorfavoritecolor(后面学类的时候会讲大写的用法)。

▶ 新手常见错误示例(避坑!)

python

# 错误1:数字开头
1name = "张三"  # 报错:SyntaxError: invalid syntax

# 错误2:用关键字
print = "打印内容"  # 报错:会覆盖print函数,后面没法用print()了

# 错误3:有特殊符号
user-name = "李四"  # 报错:SyntaxError: invalid syntax

# 正确示例
user_name = "李四"
student_age = 19
favorite_sport = "跑步"

3. 变量使用的常见坑:命名错误与值的修改

新手最容易犯的错是 “变量名拼写不一致”。比如:

python

# 错误:把message拼成了mesage
message = "Hello Python!"
print(mesage)  # 报错:NameError: name 'mesage' is not defined

Python 会提示 “mesage 没定义”,这时候要检查变量名是否完全一致(大小写也区分,Messagemessage是两个不同变量)。

另外,变量的值可以随时修改,修改后变量会 “忘记旧值,记住新值”:

python

score = 85
print(f"第一次成绩:{score}")  # 输出:第一次成绩:85

# 修改score的值
score = 92
print(f"第二次成绩:{score}")  # 输出:第二次成绩:92

三、字符串:处理文字的 “万能工具”

字符串就是 “文字数据”,比如名字、地址、句子。Python 里用单引号或双引号包裹的内容都是字符串,比如"Python"'编程'。这部分功能很多,咱们从 “最常用的操作” 入手。

1. 字符串的基本操作:大小写转换

处理用户输入时,经常需要统一文字格式(比如用户输入 “python”,要显示成 “Python”)。Python 提供了 3 个常用的大小写方法:

  • title():每个单词首字母大写(适合名字、标题);
  • upper():全大写(适合强调内容);
  • lower():全小写(适合存储用户输入,统一格式)。

示例代码:

python

# 定义一个字符串
text = "python programming"

# 首字母大写
print(text.title())  # 输出:Python Programming

# 全大写
print(text.upper())  # 输出:PYTHON PROGRAMMING

# 全小写
print(text.lower())  # 输出:python programming

# 实际应用:统一用户名格式
user_input = "Li Hua"
stored_name = user_input.lower()  # 存储为全小写
print(f"存储的用户名:{stored_name}")  # 输出:存储的用户名:li hua
print(f"显示的用户名:{stored_name.title()}")  # 输出:显示的用户名:Li Hua

2. 字符串拼接:组合多个文字

有时候需要把多个字符串拼在一起,比如把名字和姓氏组合成全名。Python 里用+就能拼接字符串:

python

# 拼接名和姓
first_name = "张"
last_name = "三"
full_name = first_name + last_name  # 拼接两个字符串
print(f"全名:{full_name}")  # 输出:全名:张三

# 拼接字符串和变量
greeting = "Hello, " + full_name + "!"
print(greeting)  # 输出:Hello, 张三!

# 更灵活的方式:f字符串(推荐)
greeting_f = f"Hello, {full_name}!你今天好吗?"
print(greeting_f)  # 输出:Hello, 张三!你今天好吗?

注意:f 字符串里的变量要放在{}里,外面加f(比如f"内容{变量}"),比用+拼接更简洁,不容易出错。

3. 空白处理:删除多余空格

用户输入时可能会不小心多敲空格(比如输入 “python”,前后有空格),这时候需要删除多余空白。Python 提供了 3 个方法:

  • rstrip():删除字符串右边的空白;
  • lstrip():删除字符串左边的空白;
  • strip():删除字符串两边的空白。

示例代码:

python

# 定义一个带多余空白的字符串
favorite_language = " python "

# 删除右边空白
print(f"删除右边空白:'{favorite_language.rstrip()}'")  # 输出:删除右边空白:' python'

# 删除左边空白
print(f"删除左边空白:'{favorite_language.lstrip()}'")  # 输出:删除左边空白:'python '

# 删除两边空白
print(f"删除两边空白:'{favorite_language.strip()}'")  # 输出:删除两边空白:'python'

# 实际应用:处理用户输入
user_input = input("请输入你喜欢的语言:")  # 假设用户输入“ java ”
clean_input = user_input.strip()  # 清理空白
print(f"你喜欢的语言是:{clean_input}")  # 输出:你喜欢的语言是:java

注意:这些方法默认删除空格,也可以指定删除的字符(比如"https://nostarch.com".removeprefix("https://")删除前缀 “https://”,后面会讲)。

4. 删除前缀 / 后缀:简化 URL 或文件名

有时候需要提取字符串的核心部分,比如从 URL 里去掉 “https://”,从文件名里去掉 “.txt”。Python 3.9 + 提供了两个实用方法:

  • removeprefix(前缀):删除字符串开头的指定前缀;
  • removesuffix(后缀):删除字符串结尾的指定后缀。

示例代码:

python

# 处理URL
url = "https://www.csdn.net"
simple_url = url.removeprefix("https://")
print(f"简化后的URL:{simple_url}")  # 输出:简化后的URL:www.csdn.net

# 处理文件名
filename = "python_notes.txt"
name_without_suffix = filename.removesuffix(".txt")
print(f"无后缀的文件名:{name_without_suffix}")  # 输出:无后缀的文件名:python_notes

# 注意:方法不改变原字符串,需要赋值给新变量
print(url)  # 输出:https://www.csdn.net(原字符串没变)

5. 避坑:字符串的引号匹配

字符串必须用引号包裹,但要注意 “引号嵌套” 的问题。比如字符串里有撇号('),如果用单引号包裹会报错:

python

# 错误:单引号里有撇号,Python会误以为字符串提前结束
message = 'One of Python's strengths is its community.'  # 报错:SyntaxError

# 正确1:用双引号包裹
message1 = "One of Python's strengths is its community."
print(message1)  # 输出:One of Python's strengths is its community.

# 正确2:用转义字符\
message2 = 'One of Python\'s strengths is its community.'
print(message2)  # 输出:One of Python's strengths is its community.

四、数值类型:处理数字的 “计算工具”

除了文字,程序还经常处理数字(比如年龄、成绩、价格)。Python 里的数值类型主要有两种:整数(没有小数点,比如 18、100)和浮点数(有小数点,比如 3.14、9.9)。

1. 整数运算:加减乘除与乘方

整数支持所有基本算术运算,符号和数学里一致:

  • +:加;
  • -:减;
  • *:乘;
  • /:除(结果是浮点数);
  • **:乘方(比如 2**3 表示 2 的 3 次方);
  • %:取余(比如 7%3 表示 7 除以 3 的余数,结果是 1)。

示例代码:

python

# 基本运算
a = 10
b = 3

print(f"{a} + {b} = {a + b}")  # 输出:10 + 3 = 13
print(f"{a} - {b} = {a - b}")  # 输出:10 - 3 = 7
print(f"{a} * {b} = {a * b}")  # 输出:10 * 3 = 30
print(f"{a} / {b} = {a / b}")  # 输出:10 / 3 = 3.3333333333333335(浮点数)
print(f"{a} ** {b} = {a ** b}")  # 输出:10 ** 3 = 1000(10的3次方)
print(f"{a} % {b} = {a % b}")  # 输出:10 % 3 = 1(余数)

# 实际应用:计算矩形面积
length = 5
width = 3
area = length * width
print(f"矩形面积:{area}")  # 输出:矩形面积:15

2. 浮点数运算:注意精度问题

浮点数就是带小数点的数,运算和整数类似,但要注意精度问题—— 有时候结果会多几位小数(比如 0.1+0.2 不是 0.3,而是 0.30000000000000004)。

示例代码:

python

# 浮点数基本运算
x = 0.1
y = 0.2
print(f"{x} + {y} = {x + y}")  # 输出:0.1 + 0.2 = 0.30000000000000004

# 为什么会这样?
# 计算机用二进制存储浮点数,有些小数无法精确表示,就像1/3无法用十进制精确表示一样

# 解决办法:如果需要精确计算(比如金额),可以用round()取整
result = x + y
rounded_result = round(result, 1)  # 保留1位小数
print(f"保留1位小数:{rounded_result}")  # 输出:保留1位小数:0.3

3. 数值的实用技巧:下划线分隔与多变量赋值

  • 用下划线分隔大数字:写大数字时,用下划线分隔(比如 14_000_000_000),Python 会自动忽略下划线,更易读;
  • 同时给多个变量赋值:可以用一行代码给多个变量赋值,适合初始化多个变量。

示例代码:

python

# 下划线分隔大数字
universe_age = 14_000_000_000  # 表示140亿
print(universe_age)  # 输出:14000000000(下划线被忽略)

# 同时给多个变量赋值
x, y, z = 0, 0, 0  # 三个变量都赋值为0
print(f"x={x}, y={y}, z={z}")  # 输出:x=0, y=0, z=0

# 实际应用:交换两个变量的值
a = 10
b = 20
a, b = b, a  # 交换a和b的值
print(f"交换后:a={a}, b={b}")  # 输出:交换后:a=20, b=10

五、注释:给代码 “写说明书”

写代码时,要给关键部分加 “说明书”—— 这就是注释。Python 会忽略注释,但对自己和别人理解代码至关重要。

1. 单行注释:用 #开头

最常用的注释方式,用#开头,后面跟注释内容。示例:

python

# 这是单行注释,用来解释下面的代码
# 功能:计算圆的面积
radius = 5  # 半径:5厘米
pi = 3.14159
area = pi * radius ** 2  # 圆的面积公式:πr²
print(f"圆的面积:{area}平方厘米")  # 输出:圆的面积:78.53975平方厘米

建议:注释不要太啰嗦,也不要不写。比如 “计算圆的面积” 比 “这里是计算圆的面积的代码” 更简洁。

2. 注释的原则:“为什么” 比 “是什么” 重要

新手容易写 “废话注释”,比如:

python

# 定义变量x,赋值为10
x = 10

这完全没必要,因为代码本身已经很清楚了。注释应该解释 “为什么这么写” 或 “复杂逻辑”,比如:

python

# 由于用户输入的半径可能为负数,这里先取绝对值
radius = abs(float(input("请输入圆的半径:")))

六、Python 之禅:写出 “优雅的代码”

学完基础语法后,要了解 Python 的核心思想 ——“Python 之禅”(The Zen of Python)。在 Python 终端里输入import this就能看到,咱们挑几个对新手最重要的原则:

  1. **Beautiful is better than ugly.(优美胜于丑陋)**代码要整洁,比如变量名见名知意,缩进一致,让别人一看就懂。

  2. **Simple is better than complex.(简单胜于复杂)**能用水浒传的例子说明,就别用红楼梦的剧情 —— 比如计算面积,直接写pi*r²,别搞复杂的函数嵌套。

  3. **Readability counts.(可读性很重要)**别写 “一行顶十行” 的炫技代码,比如把if age >= 18: print("成年")写成print("成年")if age>=18 else None,虽然短,但可读性差。

咱们用 “计算成年与否” 的代码示例,对比 “优雅” 和 “不优雅”:

python

# 不优雅:变量名模糊,无注释,缩进混乱
a=17
if a>=18:
print("成年")
else:
 print("未成年")

# 优雅:变量名清晰,有注释,缩进一致
# 功能:根据年龄判断是否成年(18岁及以上为成年)
user_age = 17
if user_age >= 18:
    print("成年,可独立办理业务")
else:
    print("未成年,需监护人陪同")

七、综合实操:制作 “个人信息卡片”

咱们把今天学的内容综合起来,做一个 “个人信息卡片” 程序,功能如下:

  1. 用变量存储姓名、年龄、爱好、网址;
  2. 处理字符串格式(比如姓名首字母大写,网址去掉前缀);
  3. 计算 “出生年份”(假设当前是 2024 年);
  4. 用 f 字符串拼接个性化信息。

完整代码:

python

# 个人信息卡片程序
# 1. 存储基本信息(注意处理用户输入的多余空白)
name = input("请输入你的姓名:").strip().title()  # 首字母大写,去空白
age = int(input("请输入你的年龄:"))  # 转换为整数
hobby = input("请输入你的爱好:").strip()
url = input("请输入你的个人网址(可选,如https://www.csdn.net):").strip()

# 2. 计算出生年份(假设当前是2024年)
birth_year = 2024 - age

# 3. 处理网址(如果有输入,去掉前缀https://)
if url:  # 如果用户输入了网址
    simple_url = url.removeprefix("https://").removeprefix("http://")
else:
    simple_url = "未填写"

# 4. 打印个人信息卡片
print("\n===== 个人信息卡片 =====")
print(f"姓名:{name}")
print(f"年龄:{age}岁")
print(f"出生年份:{birth_year}年")
print(f"爱好:{hobby}")
print(f"个人网址:{simple_url}")
print("======================")

运行示例(用户输入):

plaintext

请输入你的姓名:  li si  
请输入你的年龄:22
请输入你的爱好:  看电影、编程  
请输入你的个人网址(可选,如https://www.csdn.net):https://blog.csdn.net/lisi

===== 个人信息卡片 =====
姓名:Li Si
年龄:22岁
出生年份:2002年
爱好:看电影、编程
个人网址:blog.csdn.net/lisi
======================

八、小结与下一篇预告

这篇你学到了什么?

  1. 变量:存储数据的 “标签”,遵守命名规则,避免拼写错误;
  2. 字符串:处理文字的工具,包括大小写转换、拼接、空白处理、删除前缀后缀;
  3. 数值类型:整数和浮点数的运算,注意浮点数精度问题;
  4. 注释:给代码写 “说明书”,解释 “为什么” 而非 “是什么”;
  5. Python 之禅:写出优雅、可读的代码。

下一篇预告

今天咱们学了 “单个数据” 的处理,但实际场景中经常需要处理 “多个数据”(比如一个班级的学生名单、多个爱好)。下一篇咱们会学 Python 的 “有序数据集合”——列表和元组,教你如何批量管理多个数据,为后面的循环操作打基础。

如果这篇内容帮你搞定了变量和数据类型,欢迎在评论区分享你的 “个人信息卡片” 代码,咱们一起交流进步~

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。