Python 基本语法

Python 基本语法

1. Python 的缩进规则

Python 使用 缩进(空格)来标识代码块,不像其他语言使用 {}begin...end 这样的符号。

  • 一般建议使用 4个空格 作为缩进(符合 PEP8 规范)。
  • 缩进必须保持一致,否则会报错。

示例:

正确缩进

if True:
    print("缩进正确")
    print("缩进正确")

错误的缩进(会抛出 IndentationError)

if True:
    print("缩进不一致")  # 
  print("缩进不一致")  # 缩进不一致会出错.

2. 注释

  • 单行注释 使用 # 开头。
  • 多行注释 通常使用 三个引号'''""")包裹。

示例:

# 这是一个单行注释

'''
这是一个
多行注释
'''

"""
这也是一个
多行注释
"""

3. 变量命名规则

  • 区分大小写nameName 是两个不同的变量。
  • 不能使用 Python 关键字 作为变量名,如 ifforclass 等。
  • 变量名可以由 字母、数字和下划线 组成,但不能以数字开头。

示例:

name = "Alice"  # 正确
age = 25        # 正确
#下面是错误的
2name = "Bob"   # 错误,变量名不能以数字开头

4. 基本数据类型与赋值

Python 是 动态类型语言,变量无需声明类型,解释器会自动判断。

name = "Alice"  # 字符串
age = 25        # 整数
height = 1.75   # 浮点数
is_student = True  # 布尔值

多重赋值:

x, y, z = 1, 2, 3
print(x, y, z)  # 输出: 1 2 3

a = b = c = 10  # 多个变量赋相同值
print(a, b, c)  # 输出: 10 10 10

5. 输入与输出

  • 使用 input() 接收用户输入,输入的内容为 字符串
  • 使用 print() 输出到控制台。
name = input("请输入你的名字: ")
print("你好, " + name + "!")

6. 条件语句

条件语句使用 ifelifelse

age = 18

if age < 18:
    print("未成年")
elif age == 18:
    print("刚成年")
else:
    print("成年")

7. 循环

for 循环:

遍历 可迭代对象(如列表、字符串、范围)。

for i in range(5):
    print(i)  # 输出: 0 1 2 3 4

for i in range(5, 7):
    print(i)  # 输出: 5,6   

while 循环:

只要条件为 True,循环会持续执行。

count = 0
while count < 5:
    print(count)
    count += 1

8. 常见运算符

类型运算符示例
算术运算符+ - * / // % **5 + 3 输出: 8
比较运算符== != > < >= <=5 > 3 输出: True
逻辑运算符and or notTrue and False 输出: False
赋值运算符= += -= *= /=x += 1 等价于 x = x + 1
成员运算符in not in"a" in "abc" 输出: True

算数运算符举例:

符号描述例子
+加法a = 5 + 3
-减法a = 5 - 3
*乘法a = 6 * 4
/除法a = 7 / 2 (等于 3.5)
//整除, 向下取整a = 9 // 2 (等于4) ; b = -9 // 2 (等于-5)
%取余(模)运算b = 10 % 3 (余数 1)
**指数运算a = 2 ** 3 (2的3次方)

9. 异常处理

使用 try-except 捕获运行时错误。

try:
    num = int(input("输入一个数字: "))
    print(f"你输入的数字是 {num}")
except ValueError:
    print("输入的不是数字!")

10. 函数定义

使用 def 关键字定义函数。
def greet(name):
    print(f"Hello, {name}!")

greet("张三")  # 输出: Hello, 张三!

使用 *args 和 **kwargs 处理可变数量的参数。

*args 接收位置参数的元组。
**kwargs 接收关键字参数的字典.

def abcdef(*args, **kwargs):
    print("元组参数:", args)
    print("健值参数:", kwargs)
abcdef(1, 2, 3, name="张三", age=30)
# 输出如下
# 元组参数: (1, 2, 3)
# 健值参数: {'name': '张三', 'age': 30}

默认值参数

为某些参数设置默认值。

def multiply(a, b=2):
    return a * b

print(multiply(5))  # 输出:10
print(multiply(5, 3))  # 输出:15
文档字符串 (Docstring)

可以使用文档字符串为函数提供说明,通常放在函数定义的第一行。

def add(a,b):

    """
    加法函数. 
    调用: y = add(1,3) 
    结果: y 值等于 4.
    """
    return a + b



可以使用 help() 函数查看文档字符串。

help(add) # 通过 help函数查看 """ 说明 """ 

'''
输出结果如下: 
add(a, b)
    加法函数.
    调用: y = add(1,3)
    结果: y 值等于 4.
'''


11. 模块与导入

查看更多细节: Python 模块与包基础与实例 <---点击

使用 import 导入模块。

import math
import random

print(math.sqrt(16))  # 输出: 4.0
print(random.randint(1, 10))  # 随机生成1到10之间的整数
print(random.choice(['张三', '李四', '王五']))  # 随机选择一个元素

其他常用的模块

模块名导入入方式说明
datetimefrom datetime import datetime用于处理日期和时间的相关操作
osimport os用于与操作系统交互,比如文件路径操作、环境变量、创建或删除文件夹。
sysimport sys用于访问Python解释器的相关信息和系统参数。
reimport re用于正则表达式匹配,处理字符串的高级搜索和替换。
jsonimport json用于处理JSON格式的数据。
requestsimport requests用于发送HTTP请求(需要通过pip install requests安装)。
datetime 用于处理日期和时间的相关操作
from datetime import datetime 
now = datetime.now()
print(now)  # 当前时间
print(now.strftime('%Y-%m-%d %H:%M:%S'))  # 格式化时间为字符串
os 用于与操作系统交互,比如文件路径操作、环境变量、创建或删除文件夹。
import os

print(os.name)  # 获取操作系统名称
print(os.getcwd())  # 获取当前工作目录
# os.mkdir('test_folder')  # 创建文件夹
# os.rmdir('test_folder') # 删除文件夹
# os.remove('xx.txt') # 删除文件
print(os.path.exists('test_folder')) # 文件是否存在
sys 用于访问Python解释器的相关信息和系统参数。

import sys
print(sys.version)  # 输出Python版本信息
print(sys.argv)  # 命令行参数
sys.exit(0)  # 退出程序

json 模块
import json

data = {'name': '张三', 'age': 1024}
json_str = json.dumps(data)  # 转换为JSON字符串
print(json_str)  # '{'name': '张三', 'age': 1024}'

data_dict = json.loads(json_str)  # 解析JSON字符串为字典
print(data_dict)  # {'name': '张三', 'age': 1024}
requests 用于发送HTTP请求

(需要通过pip install requests安装)。
pip install requests 或 pip3 install requests

import requests

response = requests.get('https://api.github.com')
print(response.status_code)  # 响应状态码
print(response.json())  # 解析JSON响应
# print(response.text)      # 文本格式


12. 类与对象(简单介绍)

查看更多细节: Python 面向对象编程(OOP)基础 <--点这里

Python 支持 面向对象编程

class Example: 
    def __init__(self, a, b): 
        self.a = a;
        self.b = b;

    def add(self): 
        return self.a + self.b;

p = Example(10,20);

print(p.add()) # 输出 30

类基本定义

class ClassName:
    # 类属性, 通过类本身进行修改与访问. 可以通过实例读取. 
    class_attribute = 'value'

    # 构造方法
    def __init__(self, parameter1, parameter2):
        # 实例属性
        self.attribute1 = parameter1
        self.attribute2 = parameter2
        self.__private_attribute = "xxx" # 私有属性.

    # 类方法
    def method_name(self):
        # 方法体
        pass
    
    # 静态方法, 直接调用: ClassName.static_method_name()
	@staticmethod
    def static_method(): 
        return "静态方法"
    
    # 类方法, 参数第一个为类的本身. 类方法可以类调用, 也可以实例调用.
    @classmethod
    def class_method(cls):
        cls.class_attribute = "hello world"
类方法与实例方法的区别
特性类方法实例方法
绑定对象绑定到类绑定到实例
第一个参数cls(类本身)self(实例本身)
访问权限可以访问类属性可以访问实例属性
调用方式可以通过类名或实例调用只能通过实例调用
类属性和实例属性之间的区别.
特性类属性实例属性
定义位置类体内部(方法外部)在构造方法 __init__ 内部
作用域与类关联,所有实例共享与特定实例关联,每个实例独立
访问方式通过类名或实例访问通过实例访问
共享性所有实例共享同一值每个实例有自己的值
适用场景用于需要在多个实例之间共享的常量或状态用于需要跟踪特定实例的状态
修改影响修改类属性会影响所有实例修改实例属性只影响特定实例
建议使用当需要定义常量或类级别的状态时使用当需要为每个实例存储独立状态时使用

13. Python 常见内置函数

函数描述示例代码
print()打印输出到控制台print("Hello, World!")
len()返回对象(字符串、列表等)的长度len("Hello") # 输出: 5
type()返回对象的类型type(5) # 输出: <class ‘int’>
str()将对象转换为字符串str(100) # 输出: ‘100’
int()将对象转换为整数int("10") # 输出: 10
float()将对象转换为浮点数float("3.14") # 输出: 3.14
list()将可迭代对象转换为列表list("abc") # 输出: [‘a’, ‘b’, ‘c’]
dict()创建字典对象dict(a=1, b=2) # 输出: {‘a’: 1, ‘b’: 2}
set()创建集合对象set([1, 2, 2, 3]) # 输出: {1, 2, 3}
sum()返回可迭代对象的总和sum([1, 2, 3]) # 输出: 6
max()返回可迭代对象中的最大值max([1, 2, 3]) # 输出: 3
min()返回可迭代对象中的最小值min([1, 2, 3]) # 输出: 1
sorted()返回排序后的列表sorted([3, 1, 2]) # 输出: [1, 2, 3]
range()生成一个整数序列list(range(5)) # 输出: [0, 1, 2, 3, 4]
enumerate()返回可迭代对象的索引和元素list(enumerate(["a", "b", "c"])) # 输出: [(0, ‘a’), (1, ‘b’), (2, ‘c’)]
map()对可迭代对象中的每个元素应用函数list(map(str, [1, 2, 3])) # 输出: [‘1’, ‘2’, ‘3’]
filter()过滤可迭代对象中的元素list(filter(lambda x: x > 1, [1, 2, 3])) # 输出: [2, 3]
zip()将多个可迭代对象打包成一个元组列表list(zip([1, 2, 3], ['a', 'b', 'c'])) # 输出: [(1, ‘a’), (2, ‘b’), (3, ‘c’)]
any()如果可迭代对象中至少有一个元素为真any([False, True, False]) # 输出: True
all()如果可迭代对象中的所有元素为真all([True, True, True]) # 输出: True

14. Python 的代码规范(PEP 8)

  • 缩进:使用 4 个空格。
  • 变量命名:使用 下划线命名法(如:user_name)。
  • 每行最多 79 个字符
  • 文件末尾留一行空行

15. 示例代码:猜数字游戏

import random

number = random.randint(1, 100)  # 生成 1 到 100 之间的随机数
guess = None

while guess != number:
    guess = int(input("猜猜数字是多少: "))

    if guess < number:
        print("太小了!")
    elif guess > number:
        print("太大了!")
    else:
        print("恭喜你,猜对了!")

总结

基础常见的使用方式总结与记录.


更多教程:

Python 面向对象编程(OOP)基础
Python 数据结构:列表、元组、字典和集合
Python入 分支和循环操作入门教程
Python 异常处理:try-exceptelsefinally 与自定义异常
Python 字符串操作基础应用
Python 模块与包基础与实例
Python 文件操作基础
Python 多线程开发基础
Python Lambda 表达式简介
Python 使用 Flask 开发 HTTP 服务器与 API
Python与MySQL数据库操作教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值