当前位置:首页>python>Python 从零到一(一):基础入门 — 变量、类型与运算符

Python 从零到一(一):基础入门 — 变量、类型与运算符

  • 2026-10-11 06:58:20
Python 从零到一(一):基础入门 — 变量、类型与运算符

写在前面

学编程最怕什么?不是算法太难,而是第一行代码就跑不起来。

Python 之所以成为最受欢迎的入门语言,就是因为它足够简单。简单到什么程度?你看:

print(”Hello World”)

一行代码,搞定。没有分号,没有大括号,没有 public static void main。这就是 Python 的哲学——用最少代码,做最多的事。

本篇是 Python 系列的第一篇,我们从最基础的概念讲起:注释、变量、数据类型、运算符。学完这些,你就能写出自己的第一个"有用"的 Python 程序了。


一、注释:代码的说明书

写代码不写注释,就像做菜不放盐——能用,但没人想用。

1.1 单行注释

用`#`开头,可以放在代码后面:

# 这是一个单行注释print(”Hello World”)# 在代码后面加注释num = 10# 定义一个变量

1.2 多行注释

用三对单引号或双引号包裹:

'''这是多行注释可以写很多行'''”””这也是多行注释”””

💡 小贴士:三引号还可以用来写"文档字符串"(docstring),放在函数或类的开头,用 help(函数名) 可以查看。


二、变量:数据的"容器"

2.1 什么是变量?

变量就像一个贴了标签的盒子,你把数据放进去,以后用标签名就能取出来。

a = 10# 盒子 a 里装了整数 10b = ”zhangsan”# 盒子 b 里装了字符串 ”zhangsan”print(a)# 10print(b)# zhangsan

2.2 Python 变量的特别之处

和 Java、C 不同,Python 变量不需要声明类型,你放什么就是什么:

a = 10# 现在是整数a = ”hello”# 现在变成字符串了,完全没问题!

这就是所谓的动态类型:变量的类型由赋值决定,且可以随时改变。

2.3 多变量赋值

Python 支持同时给多个变量赋值,非常优雅:

# 相同值var1 = var2 = var3 = 10# 不同值(解包赋值)var1, var2, var3 = 10, 20, 30

2.4 交换变量(Python 的杀手锏)

在 Java 里交换两个变量需要临时变量:

// Javaint temp = a;a = b;b = temp;

Python 一行搞定:

num1, num2 = num2, num1

是不是帅呆了?这就是 Python 的"语法糖",让代码更贴近人类思维。

2.5 常量与命名规范

Python 没有真正的常量(不可改变的变量),但约定:全大写的变量名表示常量。

PI = 3.14159# 约定为常量,但其实可以改MAX_SIZE = 100# 同上

命名规范:

  • 变量名、函数名:用小写+下划线(snake_case),如 my_name
  • 常量名:用全大写+下划线,如 MAX_VALUE
  • 类名:用大驼峰(PascalCase),如 StudentInfo

三、数字:不只是整数和小数

3.1 四种进制表示

dec_num = 10# 十进制(默认)bin_num = 0b1010# 二进制(0b 前缀)oct_num = 0o12# 八进制(0o 前缀)hex_num = 0xa# 十六进制(0x 前缀)print(dec_num)# 10print(bin_num)# 10print(oct_num)# 10print(hex_num)# 10

进制转换函数:

bin(10)# '0b1010'oct(10)# '0o12'hex(10)# '0xa'

3.2 整数(int)

Python 3 的整数没有大小限制,可以算超大数:

big_num = 10 ** 100# 1 后面 100 个零,Python 轻松处理

💡 可以用下划线分隔大数字,提高可读性(Python 3.6+):

population = 1_400_000_000 # 14亿

小整数池:Python 预先缓存了 -5 到 256 的整数,这些整数在内存中只有一份。

a = 100b = 100print(id(a) == id(b))# True(指向同一内存地址)a = 300b = 300print(id(a) == id(b))# 可能 False(超出小整数池范围)

3.3 浮点数(float)——精度坑

0.1 + 0.2# 0.30000000000000004 😱

这不是 bug,是所有遵循 IEEE 754 标准的语言都有的问题。

解决方案:使用 decimal 模块

from decimal import DecimalDecimal(”0.1”) + Decimal(”0.2”)# 0.3 ✅

⚠️ 注意:Decimal 的参数要传字符串,不是浮点数!

科学计数法:

num = 3.14e7# 3.14 × 10^7print(num)# 31400000.0

3.4 布尔(bool)——是整数的"亲儿子"

Python 中 bool 是 int 的子类,True 等价于 1,False 等价于 0:

True + 10# 11False + 10# 10True == 1# TrueFalse == 0# Trueisinstance(True, int)# True(bool 确实是 int 的子类)

这个特性在实际开发中很有用:可以直接对布尔值求和来统计 True 的个数。

3.5 字符串(str)

字符串是编程中最常用的数据类型,Python 的字符串功能非常强大。

创建方式:

str1 = 'hello'# 单引号str2 = ”hello”# 双引号str3 = ”””多行字符串”””# 三引号(保留换行)

转义字符:

转义符
含义
示例
\n
换行
"hello\nworld"
\t
制表符(Tab)
"hello\tworld"
\\
反斜杠本身
"C:\\Users"
\"\'
引号本身
"He said \"hi\""
\r
回车(回到行首)
覆盖当前行
\b
退格
删除前一个字符

原始字符串(禁止转义):在处理正则表达式和文件路径时特别有用。

path = ”C:\\Users\\test”# 需要双反斜杠path = r”C:\Users\test”# 用 r 前缀,更清爽!# 正则表达式中也很常用pattern = r”\d+\.\d+”# 匹配数字

四、类型检查与转换

4.1 类型检查

type(10)#type(”hello”)      #type(3.14)## isinstance 更推荐,它支持继承关系isinstance(10, int)# Trueisinstance(True, int)# True(bool 是 int 子类)type(True) == int# False(type 不认继承)

💡 经验法则:判断类型用 isinstance,查看类型用 type。

4.2 类型转换

int(”10”)# 10(字符串转整数)int(”10”, 16)# 16(按16进制解析)float(”3.14”)# 3.14str(100)# ”100”complex(2, 3)# (2+3j)(复数)# 两个实用函数ord(”a”)# 97(字符 → ASCII 码)chr(98)# ”b”(ASCII 码 → 字符)# eval:执行字符串中的表达式eval(”2 + 3”)# 5eval(”len('hello')”)# 5

4.3 编码与解码

text = ”你好中国”# 编码:字符串 → 字节byte_data = text.encode(encoding=”utf-8”)# b'\xe4\xbd\xa0\xe5\xa5\xbd\xe4\xb8\xad\xe5\x9b\xbd'# 解码:字节 → 字符串text = byte_data.decode(encoding=”utf-8”)# ”你好中国”

⚠️ 编码和解码必须使用相同的字符集,否则乱码。


五、输入与输出

5.1 输入:input()

name = input(”请输入你的名字:”)print(”你好,” + name)

⚠️ input() 返回的永远是字符串,需要数字时记得转换:

age = int(input(”请输入年龄:”))

5.2 普通输出

print(”Hello”, ”World”)# Hello World(默认空格分隔)print(”Hello”, end=””)# 不换行print(”World”)# 接在上面后面print(”A” + ”B”)# AB(字符串拼接)print(”A” * 3)# AAA(重复)

5.3 格式化输出(三种方式)

方式一:% 占位符(老式,了解即可)

name = ”Alice”age = 18print(”名字:%s,年龄:%d” % (name, age))print(”圆周率:%.2f” % 3.14159)# 3.14

方式二:.format()(Python 3 推荐)

print(”名字:{},年龄:{}”.format(name, age))print(”名字:{n},年龄:{a}”.format(n=name, a=age))# 数字格式化num = 31415.9print(”{:*^20,.2f}”.format(num))# *****31,415.90******  居中print(”{:*<20,.2f}”.format(num))# 31,415.90***********  左对齐print(”{:*>20,.2f}”.format(num))# ***********31,415.90  右对齐

方式三:f-string(Python 3.6+,最推荐)

name = ”Alice”age = 18print(f”名字:{name},年龄:{age}”)print(f”{name=}, {age=}”)# 调试神器:name='Alice', age=18

六、运算符大全

6.1 算术运算符

10 + 4# 14    加10 - 4# 6     减10 * 4# 40    乘10 / 4# 2.5   除(永远返回浮点数!)10 // 4# 2     整除(向下取整)10 % 4# 2     取余10 ** 4# 10000 幂(10的4次方)

⚠️ 注意 / 和 // 的区别:

  • 10 / 3
     → 3.333...(浮点数)
  • 10 // 3
     → 3(整数,向下取整)
  • -10 // 3
     → -4(不是 -3!向下取整)

6.2 赋值运算符

num = 10num += 5# 15num -= 3# 12num *= 2# 24num /= 4# 6.0num //= 2# 3.0num %= 2# 1.0num **= 3# 1.0

海象运算符:=(Python 3.8+):在表达式中同时赋值

# 传统写法data = input(”输入:”)if data:    print(data)# 海象运算符if (data := input(”输入:”)):    print(data)

6.3 比较运算符

10 == 10# True   相等10 != 20# True   不等10 > 5# True   大于10 < 5# False  小于10 >= 10# True   大于等于10 <= 5# False  小于等于

6.4 逻辑运算符

True and False# False  与:两者都True才TrueTrue or False# True   或:有一个True就Truenot True# False  非:取反

短路特性:

  • and
    :左边为 False,直接返回 False,不看右边
  • or
    :左边为 True,直接返回 True,不看右边
0 and print(”不会执行”)# 0(短路了)1 or print(”不会执行”)# 1(短路了)

6.5 位运算符(进阶)

位运算直接操作二进制,在底层开发、加密算法中常用。

a = 17# 00010001b = 13# 00001101a & b# 1    按位与(都为1才1)a | b# 29   按位或(有一个1就1)a ^ b# 28   按位异或(不同才1)~a# -18  按位取反a << 2# 68   左移2位(相当于乘4)a >> 2# 4    右移2位(相当于除4)

💡 位运算小技巧:

  • x & 1 == 1
     → 判断奇数
  • x >> 1
     → 等价于 x // 2
  • x ^ x == 0
     → 相同数异或为0(可用于找不同)

6.6 成员运算符

numbers = [10, 20, 30, 40, 50]10 in numbers# True   在序列中60 not in numbers# True   不在序列中

6.7 身份运算符

a = [1, 2, 3]b = ac = a[:]b is a# True   同一内存地址c is a# False  不同内存地址c == a# True   但值相等

🔑 重要区分:

  • ==
     比较的是值(内容是否相同)
  • is
     比较的是内存地址(是否是同一个对象)

PEP 8 规范建议:不要用 is 比较数字和字符串字面量。


七、实战练习

练习 1:温度转换器

celsius = float(input(”请输入摄氏度:”))fahrenheit = celsius * 9 / 5 + 32print(f”{celsius}°C = {fahrenheit}°F”)

练习 2:判断闰年

year = int(input(”请输入年份:”))is_leap = (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)print(f”{year}年是{'闰年' if is_leap else '平年'}”)

练习 3:简单的计算器

num1 = float(input(”第一个数:”))op = input(”运算符(+,-,*,/):”)num2 = float(input(”第二个数:”))match op:    case ”+”: print(f”结果:{num1 + num2}”)    case ”-”: print(f”结果:{num1 - num2}”)    case ”*”: print(f”结果:{num1 * num2}”)    case ”/”: print(f”结果:{num1 / num2}” if num2 != 0 else ”除数不能为0!”)    case _: print(”不支持的运算符”)

本篇小结

知识点
关键点
变量
动态类型,无需声明,命名用 snake_case
数字
int 无上限,float 有精度坑(用 Decimal),bool 是 int 子类
字符串
不可变,支持索引/切片,r 前缀禁止转义
类型转换
int/float/str/ord/chr/eval,isinstance 优先于 type
格式化输出
推荐 f-string,{var=} 是调试神器
运算符
/
 永远返回浮点,// 向下取整,is 比地址 == 比值

下篇预告

基础语法已经搞定,下一篇我们将学习 Python 最强大的部分之一——流程控制与数据结构。你将学会:

  • 如何让程序"做选择"(if-else、match-case)
  • 如何让程序"重复做事"(while、for)
  • Python 的四大数据结构:列表、元组、集合、字典

👉 继续阅读第二篇:流程控制与数据结构


📝 学习建议:看完文章后,一定要动手敲代码!每个例子都亲自运行一遍,改一改参数看看结果有什么不同。编程是"做"会的,不是"看"会的。

最新文章

随机文章