Python语法基础一篇搞定,新手必存
缩进就是逻辑。Python不用花括号,靠4个空格缩进来区分代码块。混用Tab和空格会直接报错,在编辑器里把Tab键设成插入4个空格就完事了。空代码块用pass占位。
变量不用声明类型,随时可以指向不同类型的值,但Python不会偷偷做类型转换。"2"+3会直接报错,得你自己写int("2")+3。这就是"动态强类型"——灵活但不乱来。
整数没有大小限制,多大的数都能存。浮点数有个经典坑:0.1+0.2不等于0.3,这是IEEE 754的锅,几乎所有语言都有。算钱用decimal模块,用字符串构造Decimal("0.1")才能保证精确。True本质是1,False本质是0,布尔值是整数的子类。
判断None用is None,不要用==。函数没有return就返回None。用全大写命名表示常量,比如MAX_SIZE=100,虽然语法上能改,但全大写在告诉你"别动它"。
字符串是不可变的,所有操作都返回新字符串。切片s[start:stop:step]不会越界报错。反转字符串用s[::-1]。split和join是一对好搭档。网络传输用bytes,处理用str,编码encode()解码decode()。
运算符几个重点:/是真除法总是float,//是地板除向负无穷取整,-10//3等于-4不是-3。is比较身份(是不是同一个对象),==比较值。判断None必须用is。and和or有短路求值,返回的是实际参与运算的值,不一定是True或False。海象运算符:=可以在表达式内部赋值,省一行代码。
for循环三个神器:range生成数字序列,enumerate同时拿索引和值,zip同时遍历多个列表。循环可以跟else子句,循环没被break打断时才执行。while适合循环次数不确定的场景。
Python 3.10的match-case比switch强多了,能解包匹配:case ["hello", name]直接把第二个词绑定到name变量上,case ["pick", *items]收集剩余参数。
字符串格式化用f-string,f"{pi:.2f}"保留两位小数,f"{1234567:,}"加千位分隔符,f"{x=}"调试时直接输出变量名和值。input()返回的永远是字符串,需要数字要自己转换。
内容整理成了8张图,滑动查看,建议收藏备用!