别让缩进、报错劝退!手把手避坑,Python少走弯路。
一 最基础的函数print()
该函数的参数有6种形式,分别为字符串,变量,表达式,多个参数,末尾设置,函数。下面是示例代码:
print(666) #字符串
a=1
print(a) #变量
b=1
c=2
print(b+c) #表达式
d=1
print('计算结果为:',d) #多个参数
print(1,2,3,end=' ') #末尾设置
print(list(1,2,3)) #函数
二 命名规则
- 变量名由英文字母、下划线
_
或数字组成,并且第一个字符必须是英文字母或下划线。 - 变量名不能是 Python 关键字(又称关键词)。
- 命名中间不能有空格
- 不能与内置函数相同
三 赋值语句
赋值语句的基本概念:赋值语句是编程中用于将值存储到变量中的基本操作。其核心是将右侧表达式的计算结果赋予左侧的变量。
通用语法格式(以常见语言为例):
a=1
关键点:
- 左侧必须是可修改的变量(如
x
),不能是常量或表达式(如3 = x
或x + 1 = y
非法)。 - 右侧可以是常量、变量、表达式或函数调用(如
y = 2 + x
)。
复合赋值运算符
部分语言支持简化操作,将算术运算与赋值结合。
常见形式:
x += 5 # 等价于 x = x + 5
y *= 2 # 等价于 y = y * 2
支持的运算符:+=
、-=
、*=
、/=
、%=
等。
多重赋值与链式赋值
多重赋值:同时为多个变量赋值(常见于Python等语言)。
a, b = 10, 20 # a=10, b=20
链式赋值:将同一值赋予多个变量。
x = y = z = 0 # x、y、z均为0
赋值语句的执行顺序
赋值语句的执行遵循从右到左的顺序:
- 先计算右侧表达式的值。
- 将结果存入左侧变量。
示例:
x = 3
y = x + 2 # 先计算x+2得5,再赋值给y
常见错误与注意事项
- 未初始化变量:直接使用未赋值的变量可能导致错误(如C语言中的未定义行为)。
- 类型不匹配:静态类型语言中,赋值需考虑类型兼容性(如
int x = "text"
非法)。 - 作用域问题:局部变量与全局变量同名时,赋值可能影响预期范围。
四 基本数据类型
基本数据类型
整数类型(int):表示整数值,如5
、-3
。
浮点类型(float):表示带小数点的数值,如3.14
、-0.001
。
布尔类型(bool):表示逻辑值,仅True
或False
。
字符串类型(str):表示文本,用单引号或双引号包裹,如"hello"
、'a'
。
字节类型(bytes):表示二进制数据,如b'data'
。
空类型(NoneType):表示空值,仅None
。
类型特点
整数和浮点数支持算术运算(加减乘除等)。
布尔类型常用于条件判断。
字符串不可修改,但支持切片、拼接等操作。
字节类型用于处理二进制文件或网络数据。
None
通常表示变量未赋值或函数无返回值。
# 示例代码
num = 10 # int
pi = 3.14 # float
flag = True # bool
text = "Python" # str
binary = b'1010' # bytes
empty = None # NoneType
字符串
a.字符串索引
字符串索引用于访问字符串中的单个字符。Python中索引从0开始,负数索引表示从末尾开始计数。
s = "hello"
print(s[0]) # 输出 'h'
print(s[-1]) # 输出 'o'
b.字符串切片
字符串切片用于获取字符串的子串,语法为[start:end:step]
。start包含,end不包含。
s = "hello world"
print(s[0:5]) # 输出 'hello'
print(s[6:]) # 输出 'world'
print(s[::2]) # 输出 'hlowrd'
c.字符串连接
字符串连接是将多个字符串合并为一个字符串,可用+
运算符或join()
方法。
s1 = "hello"
s2 = "world"
print(s1 + " " + s2) # 输出 'hello world'
print(" ".join([s1, s2])) # 输出 'hello world'
d.字符串方法
字符串方法是对字符串进行操作的函数,如
upper()
、split()
s = "hello world"
print(s.upper()) # 输出 'HELLO WORLD'
print(s.split(" ")) # 输出 ['hello', 'world']
str.count()
text = "hello world, hello python"
count_hello = text.count("hello") # 统计"hello"出现的次数
print(count_hello) # 输出: 2
str.replace()
-
该方法返回一个新的字符串,并不会修改原始字符串。
text = "hello world"
new_text = text.replace("hello", "hi") # 将"hello"替换为"hi"
print(new_text) # 输出: hi world
str.strip()
text = " hello world "
stripped_text = text.strip() # 去除首尾空格
print(stripped_text) # 输出: "hello world"
text_with_chars = "###hello world###"
stripped_text = text_with_chars.strip("#") # 去除首尾的#
print(stripped_text) # 输出: "hello world"
str.format()
name = "Alice"
age = 25
formatted_text = "My name is {} and I am {} years old".format(name, age)
print(formatted_text) # 输出: My name is Alice and I am 25 years old
# 使用位置索引
formatted_text = "My name is {0} and I am {1} years old".format(name, age)
print(formatted_text) # 输出相同
# 使用命名参数
formatted_text = "My name is {n} and I am {a} years old".format(n=name, a=age)
print(formatted_text) # 输出相同
e.字符串函数
字符串函数是内置函数如len()
、str()
等,用于操作或转换字符串。
s = "hello"
print(len(s)) # 输出 5
print(str(123)) # 输出 '123'
f.转义字符
转义字符用于表示特殊字符,如换行符\n
、制表符\t
等。
print("hello\nworld") # 输出 hello 换行 world
print("hello\tworld") # 输出 hello 制表符 world
五 检测数据类型
使用函数type():
a=type(1) #整数型
b=type('a') #字符型
c=type([1,2,3])#数组型
六 强制转换
显式转换函数:
int()
转为整数,float()
转为浮点数。
str()
转为字符串,bool()
转为布尔值。
隐式转换:混合运算时自动向高精度转换(如int + float → float
)。
七 重要函数input()
input() 函数概念
Python 中的 input()
函数用于从用户处获取输入,默认返回字符串类型。程序会暂停执行,等待用户输入并按下回车键。
基本用法示例
直接获取用户输入并存储到变量:
name = input("请输入你的名字: ")
print("你好,", name)
类型转换示例
将输入转换为整数或浮点数:
age = int(input("请输入年龄: "))
price = float(input("请输入价格: "))
多输入处理示例
用 split()
同时处理多个输入(空格分隔):
x, y = input("请输入两个数字,用空格分隔: ").split()
print("相加结果:", int(x) + int(y))
八 注释
Python注释的基本语法
Python注释使用#
符号,从#
开始到行尾的内容会被解释器忽略。适用于单行注释或代码行内的简短说明。多行注释可以用三个连续的单引号'''
或双引号"""
包裹,常用于函数/类的文档字符串
# 这是单行注释
x = 1 # 行内注释
'''
这是多行注释
可以换行书写
'''
注释的使用场景
- 解释复杂逻辑的代码段
- 标记待完成的功能(TODO/FIXME)
- 函数/模块的接口说明(Docstring)
- 临时禁用代码(调试时)
九 缩进
python最重要的语法,不像c和java那样每句话后面要写; python的缩进就是语法所以要细心!
- 缩进即语法:Python用4空格缩进定义代码块(替代大括号),缩进错误直接导致语法报错。
- 语句分隔:一行多语句需用分号
;
(不推荐),建议分行书写
十 总结
今天是学习python的第一天,察觉到许多细节的地方要注意。 例如str.replace() 方法用于将字符串中的指定子字符串替换为另一个子字符串,其中返回的是新的值,但并没有修改原先的值。继续加油!