Python零基础入门(一)——Python简介与基础语法

news2024/11/24 17:04:21

系列文章目录

个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页
Python入门专栏:《Python入门》欢迎阅读,一起进步!🌟🌟🌟
码字不易,如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!😊😊😊


文章目录

  • 系列文章目录
  • 导语
  • Python简介
  • Python的优点
  • Python的缺点
  • 基础语法
    • 编码
    • 代码缩进
    • 多行语句
    • 注释
    • 标识符与保留字
    • 编码规范
    • 命名规范
  • 结语

导语

Python是一门适合初学者入门的编程语言,本文将介绍零基础Python入门的关键概念,包括Python简介、Python的优/缺点、代码缩进,注释,编码规范等基本语法,帮助你开始你的Python编程之旅。

Python简介

Python 是荷兰人 Guido van Rossum (吉多·范罗苏姆,中国程序员称其为“龟叔”)在1990年初开发的一种面向对象的解释型高级编程语言,标志下图所示。Python 英文本义是指“蟒蛇”,Python 的设计哲学为优雅、明确、简单。实际上,Python也始终贯彻这个理念,以至于网络上流传着“人生苦短,我用Python”的说法。

在这里插入图片描述

Python 是面向对象语言: 这意味着 Python 支持面向对象的风格或代码封装在对象的编程技术。
Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于 PHP 和 Perl 语言。
Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。

现在,全世界差不多有600多种编程语言,但流行的编程语言也就那么20来种。如果你听说过 TIOBE 排行榜,你就能知道编程语言的大致流行程度。这是最近20年最常用的10种编程语言的变化图:

请添加图片描述
可以看出,Python 语言在过去几年中的流行程度不断增长,现在已经成为全球范围内最受欢迎的编程语言之一,以下是说明 Python 语言如此流行的几个关键因素:

Python的优点

  1. 语法简单:和传统的 C/C++、Java、C# 等语言相比,Python 对代码格式的要求没有那么严格,这种宽松使得用户在编写代码时比较舒服,不用在细枝末节上花费太多精力。我来举两个典型的例子:Python 不要求在每个语句的最后写上分号,当然写也没错;定义变量时不需要指明类型,甚至可以给同一个变量赋值不同类型的数据。
    上述两点也是 PHP、JavaScript、MATLAB 等常见脚本语言都具备的特性。
    Python 是一种代表极简主义的编程语言,阅读一段排版优美的 Python 代码,就像在阅读一个英文段落,非常贴近人类语言,所以人们常说,Python 是一种具有伪代码特点的编程语言。

    伪代码(Pseudo Code)是一种算法描述语言,它介于自然语言和编程语言之间。编写伪代码的目的是为了使被描述的算法可以更容易地以任何一种编程语言实现,比如 C、C++、Java 等。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似于自然语言。如果你学过数据结构,阅读过严蔚敏的书籍,那你一定知道什么是伪代码。

    为什么说简单就是杀手锏?一旦简单了,一件事情就会变得很纯粹;我们在开发 Python 程序时,可以专注于解决问题本身,而不用顾虑语法的细枝末节。在简单的环境中做一件纯粹的事情,那简直是一种享受。

  2. Python 是开源的:开源,也即开放源代码,意思是所有用户都可以看到源代码。
    Python 的开源体现在两方面:
    1). 程序员使用 Python 编写的代码是开源的。
    比如我们开发了一个 BBS 系统(即网络论坛),放在互联网上让用户下载,那么用户下载到的就是该系统的所有源代码,并且可以随意修改。这也是解释型语言本身的特性,想要运行程序就必须有源代码。
    2). Python 解释器和模块是开源的。
    官方将 Python 解释器和模块的代码开源,是希望所有 Python 用户都参与进来,一起改进 Python 的性能,弥补 Python 的漏洞,代码被研究的越多也就越健壮。
    这个世界上总有那么一小撮人,他们或者不慕名利,或者为了达到某种目的,会不断地加强和改善 Python。千万不要认为所有人都是只图眼前利益的,总有一些精英会放长线钓大鱼,总有一些极客会做一些炫酷的事情。

  3. Python 是免费的:开源并不等于免费,开源软件和免费软件是两个概念,只不过大多数的开源软件也是免费软件;Python 就是这样一种语言,它既开源又免费。
    用户使用 Python 进行开发或发布自己的程序,不需要支付任何费用,也不用担心版权问题,即使作为商业用途,Python 也是免费的。

  4. Python 是高级语言:这里所说的高级,是指 Python 封装较深,屏蔽了很多底层细节,比如 Python 会自动管理内存(需要时自动分配,不需要时自动释放)。
    高级语言的优点是使用方便,不用顾虑细枝末节;缺点是容易让人浅尝辄止,知其然不知其所以然。

  5. Python 是解释型语言,能跨平台:解释型语言一般都是跨平台的(可移植性好),Python 也不例外。

  6. Python 是面向对象的编程语言:面向对象(Object Oriented)是大多数“现代”语言(即第三代编程语言)都具备的特性,否则在开发中大型程序时会捉襟见肘。
    Python 虽然支持面向对象,但它并不强制你使用这种特性。Java 是典型的面向对象的编程语言,它强制必须以类和对象的形式来组织代码。除 Python 和 Java 外,C++、C#、PHP、RuBy、Perl 等,也都支持面向对象的特性。

    除了面向对象的编程语言外,还有一种面向过程的编程语言,其中最典型的代表就是 C 语言。

  7. Python 功能强大(模块众多):Python 的模块众多,基本实现了所有的常见的功能,从简单的字符串处理,到复杂的 3D 图形绘制,借助 Python 模块都可以轻松完成。
    Python 社区发展良好,除了 Python 官方提供的核心模块,很多第三方机构也会参与到模块的开发中,这其中就有 Google(谷歌)、Facebook(脸书)、Microsoft(微软) 等软件巨头。

    在 Python 中,即使是一些小众的功能,它往往也有对应的开源模块,甚至有可能不止一个。

  8. Python 可扩展性强:Python 的可扩展性体现在它的模块,Python 具有脚本语言中最丰富、强大的库或模块,这些库或模块覆盖了文件操作、图形界面编程、网络编程、数据库访问等绝大部分应用场景。
    值得注意的是,这些类库的底层代码不一定都是 Python,还有很多 C/C++ 的身影。
    比如当需要一段关键代码运行速度更快时,就可以使用 C/C++ 语言实现,然后在 Python 中调用它们。Python 能把其它语言“粘”在一起,所以被称为“胶水语言”。
    Python 依靠其良好的扩展性,在一定程度上弥补了运行效率慢的缺点。

Python的缺点

除了上面提到的各种优点,Python 也是有缺点的。

  1. 运行速度慢:运行速度慢是解释型语言的通病,Python 也不例外。
    Python 速度慢不仅仅是因为一边运行一边“翻译”源代码,还因为 Python 是高级语言,屏蔽了很多底层细节。这个代价也是很大的,Python 要多做很多工作,有些工作是很消耗资源的,比如管理内存。
    Python 的运行速度几乎是最慢的,不但远远慢于 C/C++,还慢于 Java。
    但是速度慢的缺点往往也不会带来什么大问题。首先是计算机的硬件速度运来越快,多花钱就可以堆出高性能的硬件,硬件性能的提升可以弥补软件性能的不足。其次是有些应用场景可以容忍速度慢,比如网站,用户打开一个网页的大部分时间是在等待网络请求,而不是等待服务器执行网页程序。服务器花 1ms 执行程序,和花 20ms 执行程序,对用户来说是毫无感觉的,因为网络连接时间往往需要 500ms 甚至 2000ms。
    在这里插入图片描述
  2. 代码加密困难:不像编译型语言那样,源代码会被编译成可执行程序(这个编译过程就相当于对源码加密),对于 Python 来说是直接运行源代码,因此对源码加密是比较困难的。
    在这里插入图片描述

基础语法

编码

默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码:

# coding:windows-1252

或者

# coding=windows-1252

上述定义允许在源文件中使用 Windows-1252 字符集中的字符编码,对应适合语言为保加利亚语、白罗斯语、马其顿语、俄语、塞尔维亚语。

代码缩进

Python 最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个Tab键就表示 4 个空格)。

Python 对代码的缩进要求非常严格,同一个级别代码块的缩进量必须一样,否则解释器会报 SyntaxError 异常错误。以下代码最后一行语句缩进数的空格数不一致,会导致运行错误:

if True:
    print ("Answer")
    print ("True")
else:
    print ("Answer")
  print ("False")    # 缩进不一致,会导致运行错误

以上程序由于缩进不一致,执行后会出现类似以下错误:

 File "test.py", line 6
    print ("False")    # 缩进不一致,会导致运行错误
                                      ^
IndentationError: unindent does not match any outer indentation level

对于 Python 缩进规则,初学者可以这样理解,Python 要求属于同一作用域中的各行代码,它们的缩进量必须一致,但具体缩进量为多少,并不做硬性规定。

多行语句

Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句,例如:

total = item_one + \
        item_two + \
        item_three

[], {}, 或 () 中的多行语句,不需要使用反斜杠 \,例如:

total = ['item_one', 'item_two', 'item_three',
        'item_four', 'item_five']

注释

Python 中单行注释以 # 开头,实例如下:

# 第一个注释
print ("Hello, Python!") # 第二个注释

从井号 # 开始,直到这行结束为止的所有内容都是注释。Python 解释器遇到 # 时,会忽略它后面的整行内容。多行注释可以用多个 # 号,还有 '''"""

# 第一个注释
# 第二个注释
 
'''
第三注释
第四注释
'''
 
"""
第五注释
第六注释
"""
print ("Hello, Python!")

合理使用注释可以提高代码的可读性和可理解性。一般情况下,合理的代码注释应该占源代码的 1/3 左右。

标识符与保留字

标识符可以简单地理解为-一个名字,比如每个人都有自己的名字,它主要用来标识变量、函数、类、模块和其他对象的名称。

Python 语言标识符命名规则如下:

  1. 由字母(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
  2. 标识符不能和 Python 中的保留字相同。
  3. Python 中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。

保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:

>>> import keyword
>>> 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']

需要注意的是,

  • 在 Python 中,标识符中的字母是严格区分大小写的。
  • Python中以下划线开头的标识符有特殊意义,一般应避免使用相似的标识符。
  • 现在 Python 语言中允许使用汉字和非 ASCII 码作为标识符,但应尽量避免,这会避免遇到很多奇葩的错误

编码规范

在讲解具体的 Python 编码规范之前,先来看看两段代码:

请添加图片描述
对比图中的两段代码你会发现,它们所包含的代码时完全相同的,但很明显,右侧的代码编写格式看上去比左侧的代码段更加规整,阅读起来也会比较轻松、畅快,因为它遵循了最基本的 Python 代码编写规范。

编码规范是一套约定俗成的规则,有助于提高代码的可读性和可维护性。Python官方推荐的编码规范是PEP 8,其中 PEP 是 Python Enhancement Proposal(Python 增强建议书)的缩写,8 代表的是 Python 代码的样式指南。下面仅给大家列出 PEP 8 中初学者应严格遵守的一些编码规则:

  • 使用4个空格进行缩进。
  • 不要在行尾添加分号,也不要用分号将两条命令放在同一行。
  • 每个 import 语句只导入一个模块,尽量避免一次导入多个模块。
  • 每行代码不超过80个字符,如果超过,建议使用小括号将多行内容隐式的连接起来,而不推荐使用反斜杠 \ 进行连接。
  • 通常情况下,在运算符两侧、函数参数之间以及逗号两侧,都建议使用空格进行分隔。
  • 在函数之间、类之间、方法之间使用必要的空行增加代码的可读性等。

遵循编码规范有助于你编写出结构清晰、易于阅读和维护的 Python 代码。

命名规范

命名规范是关于如何命名变量、函数、类和模块的规则。良好的命名规范能够使你的代码更易于理解。

在Python中,通常使用小写字母和下划线来命名变量和函数(例如:my_variable、calculate_sum)。类名应该采用驼峰命名法(例如:MyClass)。

选择具有描述性的名称,并尽量避免使用单个字符或缩写,以便代码的可读性更强。

标识符的命名,除了要遵守以上这几条规则外,不同场景中的标识符,其名称也有一定的规范可循,例如:

  • 当标识符用作模块名时,应尽量短小,并且全部使用小写字母,可以使用下划线分割多个字母,例如 game_mian、game_register 等。
  • 当标识符用作包的名称时,应尽量短小,也全部使用小写字母,不推荐使用下划线,例如 com.mr、com.mr.book 等。
  • 当标识符用作类名时,应采用单词首字母大写的形式。例如,定义一个图书类,可以命名为 Book。
  • 模块内部的类名,可以采用 “下划线+首字母大写” 的形式,如 _Book;
  • 函数、类的属性和方法的命名规则同模块类似,应全部使用小写字母,多个单词之间可以用下划线分割;
  • 常量命名应全部使用大写字母,单词之间可以用下划线分割;
  • 使用单下划线“_”开头的模块变量或者函数是受保护的,在使用 from xxx import* 语句从模块中导入时这些变量或者函数不能被导入。
  • 使用双下划线“__”开头的实例变量或方法是类私有的。

结语

通过了解代码缩进、注释、编码规范、命名规范等,你已经迈出了零基础 Python 编程的第一步。

在接下来的学习过程中,不断实践和探索,你将逐渐掌握更多的 Python 概念和技巧,并能够编写出功能丰富的程序。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧食堂如何建造?手把手教你

智慧食堂是现代科技与餐饮行业相结合的创新应用。随着技术的不断发展,许多企业和机构正积极采用智慧收银系统来改进食堂管理和收银流程。 引入智慧收银系统不仅可以提高企业食堂的运营效率,降低错误率,还能为企业带来更多的商机和竞争优势。 …

开源客户沟通平台Chatwoot

什么是 Chatwoot ? Chatwoot 是一个开源客户沟通平台,可帮助公司在其网站、Facebook 页面、Twitter、Whatsapp、SMS、电子邮件等上吸引客户。 它是 Intercom、Zendesk、Salesforce Service Cloud 等的开源替代品。 很多网站的右侧或者右下角,…

中银国际在以太坊上发行代币化票据?三种可能,扑朔迷离!

* * * 原创:刘教链 * * * 号外:今天在“刘教链Pro”发表了一篇内参文章,《内参:对币本位高抛低吸策略的一点儿思考》(次条),以及一篇原创文章《他提案将SEC主席Gary Gensler撤职》(…

加速44%!RT-DETR量化无损压缩优秀实战

RT-DETR 模型是飞桨目标检测套件 PaddleDetection 最新发布的 SOTA 目标检测模型。其是一种基于 DETR 架构的端到端目标检测器,在速度和精度上均取得了 SOTA 性能。在实际部署中,为了追求“更准、更小、更快”的效率能力,本文使用飞桨模型压缩…

单元测试:构建可靠软件的关键步骤

点击上方“程序猿技术大咖”,关注并选择“设为星标” 回复“加群”获取入群讨论资格! 引言: 在当今快节奏的软件开发环境中,构建可靠的软件是至关重要的。单元测试作为软件开发过程中的关键步骤之一,能够帮助开发者发现…

006、体系结构之TiKV读取和Coprocessor

TiKV读取和Coprocessor 1、数据的读取1.1、ReadIndex Read1.2、Follower Read 协同处理器(Coprocessor) 1、数据的读取 1.1、ReadIndex Read 例如此时要读取 key 1 的内容,它不能直接去kv中读取,因为它是分布式的,它经过TiDB Server 收到读…

认识ASP.NET MVC的5种AuthorizationFilter

一、IAuthorizationFilter 所有的AuthorizationFilter实现了接口IAuthorizationFilter。如下面的代码片断所示,IAuthorizationFilter定义了一个OnAuthorization方法用于实现授权的操作。作为该方法的参数filterContext是一个表示授权上下文的AuthorizationContext对…

机器学习笔记 - 基于深度学习的多种目标跟踪检测框架简述

一、 目标跟踪 对象跟踪是执行一组初始对象检测的任务,为每个初始检测创建唯一的 ID,然后在每个对象在视频中的帧中移动时跟踪它们,从而维护 ID 分配。最先进的方法涉及融合来自RGB和基于事件的相机的数据,以产生更可靠的对象跟踪。仅使用RGB图像作为输入的基于CNN的模型也…

【JUC基础】17. 并发编程常见问题

目录 1、前言 2、上下文切换问题 2.1、什么是上下文切换 2.2、上下文切换过程 2.3、上下文切换的原因 2.4、上下文切换的开销和影响 2.5、注意事项和改进策略 3、死锁问题 3.1、什么是死锁 3.2、死锁示例 3.3、改进策略 4、竞态条件 5、内存可见性 6、小结 1、前言…

Hinton:我对“青蛙”创造出“人”这件事的后果很紧张丨全文整理+视频

假如青蛙创造了人,那现在是青蛙控制人类,还是人类控制青蛙?我不知道如何防止这种情况发生。我老了,希望像你们这样年轻而才华横溢的研究人员弄清楚如何拥有这些超级智能,并使我们的生活在不受超级智能控制的情况下变得…

Servlet+jsp+Layui图书管理系统

项目介绍 介绍 使用到了jsp,servlet,Mysql,Java,layui。 大致功能 关于用户: 登录,申请注册,查看搜索图书,查看有关用户的借阅记录,丢失记录,预借记录。对…

详解3DMAX室内建筑效果图的制作渲染过程

如果你并不了解室内、建筑效果图的制作渲染过程,本文将可能对你有一些帮助。 ​什么是 3DMax 渲染? 渲染是利用3dmax软件创建与原始建筑设计或模型精确的 3D 图片的技术。最终效果图在逼真度、精度、细节和真实性方面准确地反映了真实材料和光线。具有经验和专业知识的室内…

Elastic 8.8 版引入了全新的 Learned Sparse Encoder 模型,并宣布正式推出合成监测

作者:Brian Bergholm 2023年5月25日 今天,我们非常高兴地宣布 Elastic 8.8 版正式发布。 新增功能 Elastic 企业搜索可帮助开发人员利用 Elasticsearch 实现强大的现代搜索和发现体验。 请在 “Elastic 企业搜索亮点” 博文或 8.8 版发行说明中&#…

HarmonyOS学习路之开发篇—Java UI框架(TableLayout)

TableLayout TableLayout使用表格的方式划分子组件。 支持的XML属性 TableLayout的共有XML属性继承自:Component TableLayout的自有XML属性见下表: 属性名称 中文描述 取值 取值说明 使用案例 alignment_type 对齐方式 align_edges 表示TableL…

AI实战营第二期 第八节 《MMSegmentation代码课》——笔记9

AI实战营第二期 第八节 《MMSegmentation代码课》 【课程链接】https://www.bilibili.com/video/BV1uh411T73q/ 【讲师介绍】张子豪 OpenMMLab算法工程师 【学习形式】录播社群答疑 【作业布置】本次课程为实战课,需提交笔记作业。 课程大纲: 环境配…

5--Gradle入门 - junit 的使用

5--Gradle入门 - junit 的使用 Gradle 对测试支持 测试任务自动检测并执行测试源集中的所有单元测试。测试执行完成后会生成一个报告。支持JUnit 和 TestNG 测试。 默认测试目录及标准输出 Junit 使用 Gradle 对于Junit4.x 支持 dependencies {testImplementation group: jun…

你们把我当领路人,而你们才是我最大的 “财富“

文章目录 前言一、追忆往昔二、关于编程语言三、算法的重要性四、我是学生,为什么要收我钱?五、视频教程 前言 看到星友的反馈,我觉得做这件事情是我有生以来,做的最正确的一次决策。你们把我当领路人,而实际上你们才是…

YOLOv5/v7 添加注意力机制,30多种模块分析④,CA模块,ECA模块

目录 一、注意力机制介绍1、什么是注意力机制?2、注意力机制的分类3、注意力机制的核心 二、CA模块1、CA模块的原理2、实验结果3、应用示例 三、ECA模块1、ECA模块的原理2、实验结果3、应用示例 大家好,我是哪吒。 🏆本文收录于,…

阿里云企业邮箱设置教程(新手指南)

阿里云企业邮箱怎么使用?企业邮箱快速入门教程,从购买、设置管理员账号密码、创建组织架构账号邮件组、邮箱迁移、切换解析、钉邮绑定与同步,最后启用邮箱,阿里云百科分享阿里云企业邮箱使用教程快速入门: 目录 阿里…

2--Gradle入门 - Groovy简介、基本语法

2--Gradle入门 - Groovy简介、基本语法 Gradle 需要 Groovy 语言的支持,所以本章节主要来介绍 Groovy 的基本语法。 1.Groovy 简介 在某种程度上,Groovy 可以被视为Java 的一种脚本化改良版,Groovy 也是运行在 JVM 上,它可以很好地与 Java 代…