Python语言基础(简单入门)

一、Python是什么?

Python是一种高级、通用、解释型的编程语言,由Guido van Rossum于1991年创建。它以简洁、易读的语法和强大的功能而闻名,有以下特点:

  • 动态类型:Python是动态类型的语言,这意味着变量无需预先声明类型,并且在程序运行过程中类型可以改变。

  • 缩进风格:Python是缩进敏感的语言,代码块的开始和结束通过缩进来表示,而不是像其他语言那样使用大括号,所以缩进的空格数需要保持一致,一般为4个空格。

  • 面向对象:Python支持面向对象编程,可以创建类和对象,实现封装、继承和多态等特性。

  • 高级特性:Python具有许多高级特性,如列表解析、生成器表达式、装饰器等,可以简化代码并提高效率。

  • 模块化:Python支持模块化编程,可以将功能封装到模块中,方便代码重用和维护。

  • 开放源代码:Python属于开放源代码软件,可以免费获取和使用,同时拥有强大的社区支持和丰富的第三方库。

  • 跨平台:Python是跨平台的,可以在不同的操作系统上运行,具有良好的可移植性。

  • 解释性:Python是一种解释性语言,代码不需要预编译,可以直接运行在解释器上。

  • 丰富的库和工具:Python拥有大量的标准库和第三方库,涵盖了各种领域的功能,可以大大提高开发效率

二、Python的基本语法要点:

1、注释 :用#符号表示注释,可以在代码中添加说明或注解

python 复制代码
# 这是一个注释
print("Hello, World!")  # 这也是一个注释

2、变量:变量赋值非常简单,不需要显式声明类型,只需要直接给变量赋值即可

python 复制代码
x = 10  # 整数
2y = "Hello, World!"  # 字符串
3z = [1, 2, 3]  # 列表

3、数据类型:常见的数据类型包括整数(int)、浮点数(float)、字符串(str)、布尔值(bool)、列表(list)、元组(tuple)、集合(set)、字典(dict)等。

python 复制代码
x = 5           # int
y = 3.14        # float
z = "Hello"     # str
is_valid = True # bool
my_list = [1, 2, 3]  # list
my_tuple = (1, 2, 3) # tuple
my_set = {1, 2, 3}   # set
my_dict = {"name": "Alice", "age": 30} # dict

4、条件语句:Python使用关键字if、elif和else实现条件判断:

python 复制代码
x = 5
if x > 0:
    print("x 是正数")
elif x == 0:
    print("x 是零")
else:
    print("x 是负数")

5、**循环结构:**主要有两种循环结构:for循环和while循环

  • for循环常用于遍历序列或其他可迭代对象:
python 复制代码
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
  • while循环基于条件重复执行一段代码:
python 复制代码
count = 0
while count < 5:
    print(count)
    count += 1

6、函数定义:Python中定义函数使用def关键字:

特别提醒:在Python中,函数名前加单个下划线 _ 是一种命名约定,意味着这个函数主要是给内部使用的,对外部来说是"半私有"的。它不会阻止你访问或调用这个函数,但暗示着:"嘿,这个函数主要是给自己模块内部用的,外部最好别直接动它。"

python 复制代码
def greet(name):
    print(f"Hello, {name}!")

greet("Alice")  # 输出 "Hello, Alice!"

7、模块导入 :使用import关键字导入模块,以便使用其中的功能。

python 复制代码
import math
print(math.pi)

8、 异常处理try-except-finally结构处理异常。

python 复制代码
try:
    x = 1 / 0  # 除以零会引发ZeroDivisionError
except ZeroDivisionError:
    print("除数不能为零")
finally:
    print("无论是否出现异常,都会执行这部分代码")

三、Python中类的继承、封装和多态特性以及它们与Java和C++的不同之处:

Python类的继承、封装和多态等特性与Java和C++类似,但语法上更为简洁直观。

1、继承:

  • 继承是指一个类(称为子类或派生类)可以继承另一个类(称为父类或基类)的属性和方法。在Python中,可以通过在类定义时在括号中指定要继承的父类来实现继承。
  • 在Python中,类也可以多继承 ,即一个子类可以同时继承多个父类。这种多继承的特性在Java和C++中也存在,但在Python中更加灵活。
python 复制代码
# 父类1
class Animal:
    def __init__(self, name):
        self.name = name

    def make_sound(self):
        pass

# 父类2
class Pet:
    def __init__(self, owner):
        self.owner = owner

# 子类继承自父类1和父类2,实现多继承
class Dog(Animal, Pet):
    def make_sound(self):
        return "Woof!"

# 实例化对象,传入不同参数
dog = Dog("Buddy", "Alice")

# 输出对象的属性和方法
print(f"{dog.name} belongs to {dog.owner}")
print(f"{dog.name} says: {dog.make_sound()}")

2、封装:

Python并没有像Java或C++那样有严格的访问修饰符(public、private、protected),但是它提供了另一种形式的封装。在Python中,通常约定以单个下划线 _var 或双下划线 __var 开头的变量被视为非公开或者私有

  • 单下划线开头的变量或方法虽然不是真正的私有,但按照PEP8编码规范,这暗示着这是一个内部使用的变量或方法,外部应该尽量避免直接访问。
  • 双下划线 __var 会在运行时发生名称重整(name mangling),使得外部直接访问变得更加困难(变成 _ClassName__var 的形式),从而达到某种程度上的"私有化"。

尽管如此,Python的封装仍然是基于约定而非强制,任何内部属性都可以通过直接引用方式访问到。

为了更精确地控制属性访问,Python引入了属性描述符,允许程序员在访问属性时执行特定的操作(如读取、设置或删除属性时触发函数)。

python 复制代码
class MyClass:
    def __init__(self):
        self._internal_value = None  # 私有变量

    @property
    def value(self):
        return self._internal_value

    @value.setter
    def value(self, new_value):
        if isinstance(new_value, int):
            self._internal_value = new_value
        else:
            raise ValueError("Value must be an integer")

# 使用
obj = MyClass()
obj.value = 42  # 通过属性描述符设置值
print(obj.value)  # 通过属性描述符获取值

例子中:第5行的@property装饰器将value方法转换为一个只读属性。这意味着当你尝试读取obj.value时,实际上会调用第7行定义的方法,而无需显式调用方法名(如obj.value())。第9行的@value.setter装饰器定义了一个设置器方法,当尝试给obj.value赋值时(如obj.value = 42),会调用这里的代码块。在这个例子中,它检查赋值的新值是否为整数,如果是,则更新内部的_internal_value,否则抛出错误。

3、多态:

多态意味着子类可以重写或扩展父类的方法,使得同一个接口可以有不同的实现。

  • 在Python中,多态是动态类型语言的特性,即对象的类型是在运行时确定的(即"如果它走起路来像鸭子,叫起来也像鸭子,那么它就是鸭子"),可以实现同一个方法在不同子类中有不同的实现。
  • Python的多态性是基于动态类型的,而Java和C++的多态是基于静态类型的。在Java和C++中,多态性通过继承和接口来实现,需要在编译时确定对象的类型。
python 复制代码
# 多态示例
class Shape:
    def area(self):
        raise NotImplementedError("Subclasses should implement this!")

class Square(Shape):
    def __init__(self, side):
        self.side = side

    def area(self):
        return self.side ** 2

class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius

    def area(self):
        import math
        return math.pi * self.radius ** 2

shapes = [Square(4), Circle(3)]
for shape in shapes:
    print(shape.area())  # 多态性:每个shape对象调用area方法时,会执行各自子类的实现

4、总结:

虽然Python、Java和C++都支持类的继承、封装和多态这些面向对象编程的特性,但它们之间在实现方式和特性上存在一些不同。Python作为一种动态类型语言,更加灵活和简洁,而Java和C++作为静态类型语言,在编译时类型检查更加严格。

相关推荐
数据智能老司机7 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机8 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机8 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机8 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i8 小时前
drf初步梳理
python·django
每日AI新事件8 小时前
python的异步函数
python
这里有鱼汤10 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
databook19 小时前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室19 小时前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三21 小时前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试