第3课:Python 基础语法

【腾讯云】语音识别准确率高,支持多语种,多场景,限时特惠,最低14.9元起

推广

【腾讯云】语音识别准确率高,支持多语种,多场景,限时特惠,最低14.9元起

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

标识符规则

变量名(标识符)的命名规则:

  1. 只能包含:字母、数字、下划线
  2. 不能以数字开头
  3. 区分大小写
  4. 不能使用关键字
# 正确的标识符
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的基础语法:

  1. 语法特点:缩进敏感、大小写敏感
  2. 变量和标识符:命名规则和关键字
  3. 数据类型:数字、字符串、布尔、None
  4. 运算符:算术、比较、逻辑、赋值等
  5. 输入输出:print和input函数
  6. 注释:单行、多行、文档字符串
  7. 代码风格:PEP 8规范

下一课预告

在下一课中,我们将学习Python的数据类型详解,包括:

  • 列表(List)
  • 元组(Tuple)
  • 字典(Dictionary)
  • 集合(Set)

💡 小贴士:良好的代码风格是专业程序员的标志。建议从一开始就养成遵循PEP 8规范的习惯,这会让你的代码更易读、更专业。

Vue3 + TypeScript 企业级项目实战

课程推荐

Vue3 + TypeScript 企业级项目实战
Python 全栈开发工程师培训

热门课程

Python 全栈开发工程师培训

📚 文章对你有帮助?请关注我的公众号,万分感谢!

获取更多优质技术文章,第一时间掌握最新技术动态

关注公众号

关注公众号

第一时间获取最新技术文章

添加微信

添加微信

技术交流 · 问题答疑 · 学习指导

评论讨论

欢迎留下你的想法和建议