Python 基础语法
Python语法特点
1. 缩进敏感
Python使用缩进来表示代码块,而不是大括号:
# 正确的缩进
if True:
print("这是正确的缩进")
print("同一代码块")
# 错误的缩进会导致IndentationError
if True:
print("这会报错") # 缺少缩进
2. 大小写敏感
Python区分大小写:
name = "小明"
Name = "小红"
print(name) # 输出:小明
print(Name) # 输出:小红
3. 语句结束
Python语句通常以换行结束,不需要分号:
print("第一行")
print("第二行")
# 一行多个语句需要分号分隔
print("语句1"); print("语句2")
变量和标识符
变量定义
Python中的变量不需要声明类型:
# 数字变量
age = 25
height = 175.5
# 字符串变量
name = "张三"
city = '北京'
# 布尔变量
is_student = True
is_married = False
# 多重赋值
a, b, c = 1, 2, 3
x = y = z = 0
标识符规则
变量名(标识符)的命名规则:
- 只能包含:字母、数字、下划线
- 不能以数字开头
- 区分大小写
- 不能使用关键字
# 正确的标识符
name = "张三"
age_2024 = 25
_private = "私有"
userName = "用户名"
# 错误的标识符
# 2name = "错误" # 不能以数字开头
# user-name = "错误" # 不能包含连字符
# class = "错误" # 不能使用关键字
Python关键字
import keyword
print(keyword.kwlist)
# ['False', 'None', 'True', 'and', 'as', 'assert', 'break',
# 'class', 'continue', 'def', 'del', 'elif', 'else', 'except',
# 'finally', 'for', 'from', 'global', 'if', 'import', 'in',
# 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise',
# 'return', 'try', 'while', 'with', 'yield']
数据类型
1. 数字类型
整数(int)
# 十进制
num1 = 42
num2 = -17
# 二进制(0b开头)
binary = 0b1010 # 等于10
# 八进制(0o开头)
octal = 0o12 # 等于10
# 十六进制(0x开头)
hex_num = 0xa # 等于10
print(f"二进制{binary}, 八进制{octal}, 十六进制{hex_num}")
浮点数(float)
# 小数
pi = 3.14159
temperature = -5.5
# 科学计数法
large_num = 1.23e6 # 1230000.0
small_num = 1.23e-4 # 0.000123
print(f"大数:{large_num}, 小数:{small_num}")
复数(complex)
# 复数
z1 = 3 + 4j
z2 = complex(2, 5) # 2+5j
print(f"复数1:{z1}")
print(f"复数2:{z2}")
print(f"实部:{z1.real}, 虚部:{z1.imag}")
2. 字符串类型(str)
字符串定义
# 单引号
str1 = 'Hello'
# 双引号
str2 = "World"
# 三引号(多行字符串)
str3 = """这是一个
多行字符串
可以包含换行"""
# 原始字符串(不转义)
path = r"C:\Users\name\Documents"
字符串操作
name = "Python"
# 字符串长度
print(len(name)) # 6
# 字符串索引
print(name[0]) # P
print(name[-1]) # n
# 字符串切片
print(name[1:4]) # yth
print(name[:3]) # Pyt
print(name[3:]) # hon
# 字符串方法
print(name.upper()) # PYTHON
print(name.lower()) # python
print(name.replace('P', 'J')) # Jython
3. 布尔类型(bool)
# 布尔值
is_true = True
is_false = False
# 布尔运算
print(True and False) # False
print(True or False) # True
print(not True) # False
# 其他类型转布尔
print(bool(1)) # True
print(bool(0)) # False
print(bool("")) # False
print(bool("abc")) # True
4. 空值(None)
# None表示空值
result = None
print(result) # None
# 检查是否为None
if result is None:
print("结果为空")
运算符
1. 算术运算符
a = 10
b = 3
print(f"加法:{a + b}") # 13
print(f"减法:{a - b}") # 7
print(f"乘法:{a * b}") # 30
print(f"除法:{a / b}") # 3.333...
print(f"整除:{a // b}") # 3
print(f"取余:{a % b}") # 1
print(f"幂运算:{a ** b}") # 1000
2. 比较运算符
x = 5
y = 10
print(f"等于:{x == y}") # False
print(f"不等于:{x != y}") # True
print(f"大于:{x > y}") # False
print(f"小于:{x < y}") # True
print(f"大于等于:{x >= y}") # False
print(f"小于等于:{x <= y}") # True
3. 逻辑运算符
a = True
b = False
print(f"与:{a and b}") # False
print(f"或:{a or b}") # True
print(f"非:{not a}") # False
# 短路求值
print(False and print("不会执行")) # False
print(True or print("不会执行")) # True
4. 赋值运算符
x = 10
x += 5 # x = x + 5
print(x) # 15
x -= 3 # x = x - 3
print(x) # 12
x *= 2 # x = x * 2
print(x) # 24
x /= 4 # x = x / 4
print(x) # 6.0
x //= 2 # x = x // 2
print(x) # 3.0
x %= 2 # x = x % 2
print(x) # 1.0
x **= 3 # x = x ** 3
print(x) # 1.0
5. 身份运算符
a = [1, 2, 3]
b = [1, 2, 3]
c = a
print(a is b) # False(不同对象)
print(a is c) # True(同一对象)
print(a == b) # True(值相等)
print(a is not b) # True
6. 成员运算符
text = "Hello Python"
numbers = [1, 2, 3, 4, 5]
print('P' in text) # True
print('Java' in text) # False
print(3 in numbers) # True
print(6 not in numbers) # True
输入输出
输出(print函数)
# 基本输出
print("Hello, World!")
# 多个值输出
print("姓名:", "张三", "年龄:", 25)
# 指定分隔符
print("a", "b", "c", sep="-") # a-b-c
# 指定结束符
print("第一行", end=" ")
print("第二行") # 第一行 第二行
# 格式化输出
name = "李四"
age = 30
print(f"我是{name},今年{age}岁")
print("我是{},今年{}岁".format(name, age))
print("我是%s,今年%d岁" % (name, age))
输入(input函数)
# 基本输入
name = input("请输入您的姓名:")
print(f"您好,{name}!")
# 输入数字(需要类型转换)
age = int(input("请输入您的年龄:"))
height = float(input("请输入您的身高(米):"))
print(f"您今年{age}岁,身高{height}米")
# 输入验证
while True:
try:
num = int(input("请输入一个整数:"))
break
except ValueError:
print("输入无效,请输入整数!")
print(f"您输入的数字是:{num}")
注释
1. 单行注释
# 这是单行注释
print("Hello") # 行末注释
2. 多行注释
"""
这是多行注释
可以写多行内容
通常用于函数或类的文档字符串
"""
'''
这也是多行注释
使用三个单引号
'''
3. 文档字符串
def greet(name):
"""
问候函数
参数:
name (str): 要问候的人的姓名
返回:
str: 问候语
"""
return f"Hello, {name}!"
# 查看文档字符串
print(greet.__doc__)
代码风格
PEP 8 规范
Python官方代码风格指南:
# 1. 缩进使用4个空格
if True:
print("正确的缩进")
# 2. 行长度不超过79字符
long_variable_name = "这是一个很长的变量名," \
"需要换行显示"
# 3. 函数和类的命名
def calculate_area(): # 函数名使用下划线
pass
class PersonInfo: # 类名使用驼峰命名
pass
# 4. 运算符周围加空格
result = a + b * c
# 5. 逗号后面加空格
numbers = [1, 2, 3, 4, 5]
# 6. 导入语句分组
import os
import sys
import requests
import numpy as np
from mymodule import myfunction
实践练习
练习1:变量和运算
# 计算圆的面积和周长
import math
radius = float(input("请输入圆的半径:"))
area = math.pi * radius ** 2
circumference = 2 * math.pi * radius
print(f"半径为{radius}的圆:")
print(f"面积:{area:.2f}")
print(f"周长:{circumference:.2f}")
练习2:字符串处理
# 用户信息处理
full_name = input("请输入您的全名:")
email = input("请输入您的邮箱:")
# 提取姓和名
name_parts = full_name.split()
if len(name_parts) >= 2:
first_name = name_parts[0]
last_name = name_parts[-1]
else:
first_name = full_name
last_name = ""
# 验证邮箱格式
is_valid_email = "@" in email and "." in email
print(f"姓:{last_name}")
print(f"名:{first_name}")
print(f"邮箱有效:{is_valid_email}")
练习3:类型转换
# 温度转换器
print("温度转换器")
print("1. 摄氏度转华氏度")
print("2. 华氏度转摄氏度")
choice = input("请选择转换类型(1或2):")
if choice == "1":
celsius = float(input("请输入摄氏度:"))
fahrenheit = celsius * 9/5 + 32
print(f"{celsius}°C = {fahrenheit:.1f}°F")
elif choice == "2":
fahrenheit = float(input("请输入华氏度:"))
celsius = (fahrenheit - 32) * 5/9
print(f"{fahrenheit}°F = {celsius:.1f}°C")
else:
print("无效选择!")
总结
本课我们学习了Python的基础语法:
- 语法特点:缩进敏感、大小写敏感
- 变量和标识符:命名规则和关键字
- 数据类型:数字、字符串、布尔、None
- 运算符:算术、比较、逻辑、赋值等
- 输入输出:print和input函数
- 注释:单行、多行、文档字符串
- 代码风格:PEP 8规范
下一课预告
在下一课中,我们将学习Python的数据类型详解,包括:
- 列表(List)
- 元组(Tuple)
- 字典(Dictionary)
- 集合(Set)
💡 小贴士:良好的代码风格是专业程序员的标志。建议从一开始就养成遵循PEP 8规范的习惯,这会让你的代码更易读、更专业。
📚 文章对你有帮助?请关注我的公众号,万分感谢!
获取更多优质技术文章,第一时间掌握最新技术动态

关注公众号
第一时间获取最新技术文章

添加微信
技术交流 · 问题答疑 · 学习指导
评论讨论
欢迎留下你的想法和建议