Python语言基础(简单入门)

2024-05-07 17:36

本文主要是介绍Python语言基础(简单入门),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、Python是什么?

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

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

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

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

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

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

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

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

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

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

二、Python的基本语法要点:

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

# 这是一个注释
print("Hello, World!")  # 这也是一个注释

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

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

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

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实现条件判断:

x = 5
if x > 0:print("x 是正数")
elif x == 0:print("x 是零")
else:print("x 是负数")

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

  • for循环常用于遍历序列或其他可迭代对象:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:print(fruit)

  • while循环基于条件重复执行一段代码:
count = 0
while count < 5:print(count)count += 1

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

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

def greet(name):print(f"Hello, {name}!")greet("Alice")  # 输出 "Hello, Alice!"

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

import math
print(math.pi)

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

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

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

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

1、继承:

  • 继承是指一个类(称为子类或派生类)可以继承另一个类(称为父类或基类)的属性和方法。在Python中,可以通过在类定义时在括号中指定要继承的父类来实现继承。
  • 在Python中,类也可以多继承,即一个子类可以同时继承多个父类。这种多继承的特性在Java和C++中也存在,但在Python中更加灵活。
# 父类1
class Animal:def __init__(self, name):self.name = namedef 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引入了属性描述符,允许程序员在访问属性时执行特定的操作(如读取、设置或删除属性时触发函数)。

class MyClass:def __init__(self):self._internal_value = None  # 私有变量@propertydef value(self):return self._internal_value@value.setterdef value(self, new_value):if isinstance(new_value, int):self._internal_value = new_valueelse: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++中,多态性通过继承和接口来实现,需要在编译时确定对象的类型。
# 多态示例
class Shape:def area(self):raise NotImplementedError("Subclasses should implement this!")class Square(Shape):def __init__(self, side):self.side = sidedef area(self):return self.side ** 2class Circle(Shape):def __init__(self, radius):self.radius = radiusdef area(self):import mathreturn math.pi * self.radius ** 2shapes = [Square(4), Circle(3)]
for shape in shapes:print(shape.area())  # 多态性:每个shape对象调用area方法时,会执行各自子类的实现

4、总结:

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

这篇关于Python语言基础(简单入门)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/967937

相关文章

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核