【Python学习系列】基础概念学习(一)

文章目录

  • 一、Python入门 - 第一个Python程序
  • 二、Python保留字符
  • 三、Python 标识符
  • 四、行、缩进、多行语句
  • 五、Python 引号
  • 六、Python注释

一、Python入门 - 第一个Python程序

所有 Python 文件将以 .py 为扩展名,我们首先可以创建一个hello.py的文件:

#!/usr/bin/python
print("Hello Python")

以Python3.*为例,通过执行如下命令即可运行如上程序:

python3 hello.py

二、Python保留字符

以下表格是Python中的保留字,所有 Python 的关键字只包含小写字母,且不能用作常量、变量:

第一列第二列第三列
andexecnot
assertfinallyor
breakforpass
classfromprint
continueglobalraise
defifreturn
delimporttry
elifinwhile
elseiswith
exceptlambdayield

三、Python 标识符

  • 标识符:由字母、数字、下划线组成,且首字母不能以数字开头。
  • 特殊标识符:包括单下划线、双下划线、开头结尾的双下划线。
  • _foo:用于标识受保护的成员,是一种约定,提示这些成员是内部实现细节,但没有强制的访问限制。
class MyClass:
    def __init__(self, value):
        self._my_var = value  # 受保护的变量

    def get_my_var(self):  # 提供公共方法获取受保护的变量
        return self._my_var

    def set_my_var(self, value):  # 提供公共方法设置受保护的变量
        self._my_var = value

# 使用案例
obj = MyClass(10)
print(obj.get_my_var())  # 通过公共方法访问受保护的变量,输出 10

obj.set_my_var(20)  # 通过公共方法修改受保护的变量
print(obj.get_my_var())  # 输出 20
  • __foo:用于定义私有成员,通过名称改编机制来防止外部代码直接访问这些成员,确保封装性。
class MyClass:
    def __init__(self, value):
        self.__my_var = value  # 私有变量

    def get_my_var(self):  # 提供公共方法访问私有变量
        return self.__my_var

    def set_my_var(self, value):  # 提供公共方法设置私有变量
        self.__my_var = value

# 使用案例
obj = MyClass(10)
print(obj.get_my_var())  # 通过公共方法访问私有变量,输出 10

obj.set_my_var(20)  # 通过公共方法修改私有变量
print(obj.get_my_var())  # 输出 20

# 尝试直接访问私有变量会报错
# print(obj.__my_var)  # AttributeError: 'MyClass' object has no attribute '__my_var'

# 通过名称改编后的名称可以访问,但不推荐
print(obj._MyClass__my_var)  # 输出 20
  • __foo __: Python 里特殊方法专用的标识,如 __init __() 表示构造函数;__str __:表示字符串;__repr __:表示官方字符串;__add __:加法运算符重载;
class MyClass:
    def __init__(self, value):
        self.value = value

    def __str__(self):
        return f"MyClass({self.value})"

    def __add__(self, other):
        return MyClass(self.value + other.value)

obj1 = MyClass(10)
obj2 = MyClass(20)
print(obj1)  # 输出 MyClass(10),调用了__str__方法
obj3 = obj1 + obj2  # 调用了__add__方法
print(obj3)  # 输出 MyClass(30)

四、行、缩进、多行语句

Python使用缩进来定义代码块,而不是像其他语言那样使用大括号 {}。

  • 缩进:Python使用缩进来表示代码块的开始和结束。相同缩进级别的代码行属于同一个代码块。通常推荐使用4个空格来表示一级缩进,但也可以使用其他数量的空格或制表符(Tab),只要在同一个文件中保持一致即可。
def my_function():
    print("这是函数的第一行")
    print("这是函数的第二行")
    if True:
        print("这是if语句的第一行")
        print("这是if语句的第二行")
    print("这是函数的第三行")

print("这是全局代码块的第一行")
  • 多行语句:可以使用反斜杠 \ 或括号来表示多行语句。在括号、中括号或大括号内的多行语句不需要使用反斜杠 \,因为括号内的内容可以自然地跨多行。
long_string = "这是一个非常长的字符串," \
              "需要分成多行来提高可读性。"

long_string = ("这是一个非常长的字符串,"
               "需要分成多行来提高可读性。")

long_list = [
    "这是一个非常长的列表,",
    "包含多个元素,",
    "需要分成多行来提高可读性。"
]

my_dict = {
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
}

五、Python 引号

在Python中,引号用于定义字符串。Python支持单引号(‘)、双引号(")和三引号(’‘’ 或 “”")来创建字符串。以下是各种引号的使用方法和示例:

  • 单引号('):单引号用于创建简单的字符串。如果字符串中包含单引号,可以使用转义字符 \ 来表示。
# 使用单引号创建字符串
s1 = 'Hello, world!'
print(s1)  # 输出 Hello, world!

# 字符串中包含单引号,使用转义字符
s2 = 'It\'s a beautiful day.'
print(s2)  # 输出 It's a beautiful day.
  • 双引号("):双引号也用于创建字符串。如果字符串中包含双引号,可以使用转义字符 \ 来表示。双引号和单引号在功能上是等价的,但有时使用双引号可以避免转义字符的使用。
# 使用双引号创建字符串
s1 = "Hello, world!"
print(s1)  # 输出 Hello, world!

# 字符串中包含双引号,使用转义字符
s2 = "He said, \"Hello!\""
print(s2)  # 输出 He said, "Hello!"

# 字符串中包含单引号,不需要转义
s3 = "It's a beautiful day."
print(s3)  # 输出 It's a beautiful day.
  • 三引号(‘’’ 或 “”"):三引号用于创建多行字符串。三引号可以是三个单引号(‘’')或三个双引号(“”")。多行字符串可以包含换行符,不需要使用转义字符来表示换行。
# 使用三单引号创建多行字符串
s1 = '''This is a multi-line string.
It can span multiple lines.
No need to use escape characters for newlines.'''
print(s1)
# 输出:
# This is a multi-line string.
# It can span multiple lines.
# No need to use escape characters for newlines.

# 使用三双引号创建多行字符串
s2 = """This is another multi-line string.
It can also span multiple lines.
No need to use escape characters for newlines."""
print(s2)
# 输出:
# This is another multi-line string.
# It can also span multiple lines.
# No need to use escape characters for newlines.

六、Python注释

  • 单行注释:单行注释以井号 # 开始,直到该行末尾。# 后面的所有内容都会被Python解释器忽略。
# 这是一个单行注释
print("Hello, world!")  # 这是另一个单行注释

# 计算两个数的和
a = 10  # 第一个数
b = 20  # 第二个数
sum = a + b  # 计算和
print(sum)  # 输出结果
  • 多行注释:多行注释可以使用三引号(‘’’ 或 “”")来创建。三引号之间的所有内容都会被Python解释器忽略,包括换行符。
'''
这是一个多行注释。
可以包含多行文本,用于解释代码的功能和用途。
'''

"""
这也是一个多行注释。
可以包含多行文本,用于解释代码的功能和用途。
"""

# 使用多行注释来临时禁用代码块
'''
print("This line is commented out")
print("This line is also commented out")
'''

print("Hello, world!")  # 这行代码会被执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/952696.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vscode使用Marscode编程助手

下载 vscode 在插件里下载Marscode编程助手 插件完成 在这里点击安装,点击后这里出现AI编程插件。

使用网页版Jupyter Notebook和VScode打开.ipynb文件

目录 正文 1、网页版Jupyter Notebook查看 2、VScode查看 因为总是忘记查看文件的网址,收藏了但分类众多每次都找不到……当个记录吧(/捂脸哭)! 正文 此处以gitub中的某个仓库为例: https://github.com/INM-6/mu…

腾讯云AI代码助手编程挑战赛-知识百科AI

作品简介 知识百科AI这一编程主要用于对于小朋友的探索力的开发,让小朋友在一开始就对学习具有探索精神。在信息化时代下,会主动去学习自己认知以外的知识,同时丰富了眼界,开拓了新的知识。同时催生了在大数据时代下的信息共享化…

Flutter项目适配鸿蒙

Flutter项目适配鸿蒙 前言Flutter项目适配鸿蒙新工程直接支持ohos构建新项目编译运行 适配已有的Flutter项目 前言 目前市面上使用Flutter技术站的app不在少数,对于Flutter的项目,可能更多的是想直接兼容Harmonyos,而不是直接在重新开发一个…

我的128天创作之路:回顾与展望

大家好呀!今天来和你们分享一下我的创作历程😁。 一、机缘 最开始创作呢,是因为在学习 C 的 STL 时,像 string、list、vector 这些模板可把我折腾得够呛,但也让我学到了超多东西!我就想,要是把我…

AI刷题-数列推进计算任务、数组中的幸运数问题

目录 一、数列推进计算任务 问题描述 测试样例 解题思路: 问题理解 数据结构选择 算法步骤 优化思路 最终代码: 运行结果: 二、数组中的幸运数问题 问题描述 测试样例 解题思路: 问题理解 数据结构选择 算法步…

Helm部署activemq

1.helm create activemq 创建helm文件目录 2.修改values.yaml 修改image和port 3. helm template activemq 渲染并输出 4. helm install activemq activemq/ -n chemical-park // 安装 5.启动成功

Windows 下Mamba2 / Vim / Vmamba 环境安装问题记录及解决方法终极版(无需绕过triton)

导航 安装教程导航 Mamba 及 Vim 安装问题参看本人博客:Mamba 环境安装踩坑问题汇总及解决方法(初版)Linux 下Mamba 及 Vim 安装问题参看本人博客:Mamba 环境安装踩坑问题汇总及解决方法(重置版)Windows …

力扣25. K个一组反转链表

给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 示例 1: 输入&#xff…

动态规划练习五(子序列问题)

一、解题心得 首先子序列是不连续的,所以一定不会在 i - 1 位置去推 i 位置的 dp 值了,所以一般子序列问题是 O(n^2) 复杂度。但是可以通过哈希表等方式降成 O(n)。 以我带来的例题其实子序列问题可以分成两种: 1、以 i 位置为结尾&#x…

图像处理|膨胀操作

在图像处理领域,形态学操作是一种基于图像形状的操作,用于分析和处理图像中对象的几何结构。**膨胀操作(Dilation)**是形态学操作的一种,它能够扩展图像中白色区域(前景)或减少黑色区域&#xf…

汉图科技XP356DNL高速激光打印一体机综合性能测评

汉图科技XP356DNL高速激光打印一体机效率方面表现出色,支持A4纸型的高速打印,单面打印速度高达35页/分钟,自动双面打印速度可达32面/分钟,这样的速度在日常办公中能够极大地提高打印效率,减少等待时间,满足…

Unity + Firebase + GoogleSignIn 导入问题

我目前使用 Unity版本:2021.3.33f1 JDK版本为:1.8 Gradle 版本为:6.1.1 Firebase 版本: 9.6.0 Google Sign In 版本为: 1.0.1 问题1 :手机点击登录报错 apk转化成zip,解压,看到/lib/armeabi-v…

如何搭建 Vue.js 开源项目的 CI/CD 流水线

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…

Elasticsarch:使用全文搜索在 ES|QL 中进行过滤 - 8.17

8.17 在 ES|QL 中引入了 match 和 qstr 函数,可用于执行全文过滤。本文介绍了它们的作用、使用方法、与现有文本过滤方法的区别、当前的限制以及未来的改进。 ES|QL 现在包含全文函数,可用于使用文本查询过滤数据。我们将回顾可用的文本过滤方法&#xf…

ISP流程--去马赛克详解

前言 本期我们将深入讨论ISP流程中的去马赛克处理。我们熟知,彩色图像由一个个像元组成,每个像元又由红、绿、蓝(RGB)三通道构成。而相机传感器只能感知光的强度,无法直接感知光谱信息,即只有亮暗而没有颜色…

晨辉面试抽签和评分管理系统之七:面试成绩核算的三种方式

晨辉面试抽签和评分管理系统(下载地址:www.chenhuisoft.cn)是公务员招录面试、教师资格考试面试、企业招录面试等各类面试通用的考生编排、考生入场抽签、候考室倒计时管理、面试考官抽签、面试评分记录和成绩核算的面试全流程信息化管理软件。提供了考生…

FastApi Swagger 序列化问题

问题 错误现象: fastapi的 swagger 界面无法正常打开控制台报错:raise PydanticInvalidForJsonSchema(fCannot generate a JsonSchema for {error_info}) 详细报错: File "d:\Envs\miniconda3\envs\xdagent\lib\site-packages\pydan…

Browser-Use Web UI:浏览器自动化与AI的完美结合

Browser-Use Web UI:浏览器自动化与AI的完美结合 前言简介一、克隆项目二、安装与环境配置1. Python版本要求2. 安装依赖3. 安装 Playwright4. 配置环境变量(非必要步骤)三、启动 WebUI四、配置1. Agent设置2. 大模型设置3. 浏览器相关设置4. 运行 Agent结语前言 Web UI是在…

秒懂虚拟化(三):桌面拟化、用户体验虚拟化、应用程序虚拟化全解析,通俗解读版

秒懂虚拟化(二):服务器虚拟化、操作系统虚拟化、服务虚拟化全解析,通俗解读版-CSDN博客这篇文章学习了服务器虚拟化、操作系统虚拟化、服务器虚拟化,本节将继续学习桌面虚拟化、用户体验虚拟化、应用程序虚拟化。 1、…