Python零基础入门篇 - 07 - Python 的脚本结构
前言:
✌ 作者简介:渴望力量的哈士奇,大家可以叫我 🐶哈士奇🐶 。(我真的养了一只哈士奇)
📑 个人主页:渴望力量的哈士奇主页
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥 如果感觉博主的文章还不错的话,还请不吝👍关注、点赞、收藏三连支持👍一下博主哦
💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
📕系列专栏::
👍 Python全栈系列 - [更新中] ➡️➡️➡️ 【 本文在该系列】
👋 网安之路系列
🍋 网安之路踩坑篇
🍋 网安知识扫盲篇
🍋 Vulhub 漏洞复现篇
🍋 Shell脚本编程篇
🍋 Web攻防篇 ➡️➡️➡️ 2021年9月3日停止更新,转战先知等安全社区
🍋 渗透工具使用集锦 ➡️➡️➡️ 2021年9月3日停止更新,转战先知等安全社区
⭐️ 点点点工程师系列
🍹 测试神器 - Charles 篇
🍹 测试神器 - Fiddler 篇
🍹 测试神器 - Jmeter 篇
🍹 自动化 - RobotFrameWork 系列
🍹 自动化 - 基于 JAVA 实现的WEB端UI自动化
🍹 自动化 - 基于 MonkeyRunner 实现的APP端UI自动化
🤗 2019年之前学习Python留下的乱七八糟系列
🎉🎉欢迎持续关注🎉🎉
文章目录
在了解 python 的脚本结构之前, 我们先创建一个脚本
创建一个项目与演示脚本
python 的脚本结构
python 脚本的执行
在 Pycharm
中,我们有两种方式执行脚本。
一种是利用菜单栏、工具栏、右击出现的 “run xxxx”(或者快捷键 Ctrl + Shift + F10) 实现。
另一种就是利用 Pycharm
的 Terminal
命令行终端
python 的头部注释
-
什么是python头部注释
- 写在
python
脚本第一行,以"#"
开头的表示的信息就是头部注释
- 写在
由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:
```# !/usr/bin/env python# -*- coding:utf-8 -*- 或者# coding:utf-8```
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,根据usr/bin/env路径去找python的运行程序来运行,Windows系统会忽略这个注释;
第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
不过现在一般情况下都只会写一行 "#coding:utf-8"
。
-
python头部注释作用
- 头部注释并不是为代码而服务的,更多的是被系统或解释器所调用。
- 告诉系统Python解释器在哪?
- 脚本的编码格式是什么编码格式?
-
常用的头部注释
- 国内常用
"# coding:utf-8"
:定义coding
规则告诉系统脚本是何种编码格式 - 目前很少使用
"# !/usr/bin/env python"
:定义python
解释器的指定执行路径 [WIN系统不生效]
- 国内常用
python 的导入[模块(类库)的引入]
- 1.导入的是什么?
- 导入的是将python中的一些功能函数挡在当前脚本中使用
- 不导入的功能在当前脚本中无法被直接使用(除了python自带的内置函数)
- 2.为什么需要导入?
- 可以理解为B脚本想借用A脚本里的功能用一用,就需要把A脚本中的功能导入到B脚本中
- 3.初识导入语法
- import os
- import : 内置导入函数
- os : 被导入的模块
参考一个 import 的小案例
# coding:utf-8 import os a = "当前的路径为:"b = os.getcwd() print(a, b)
输出结果为当前的路径为: /Users/xxxx/PycharmProjects/pythonlearn
python 程序的执行顺序
顺序如何执行的?
这里我们看一个执行 “print” 函数的脚本
# coding:utf-8 print("这是第一行 'print' 信息") print("这是第二行 'print' 信息") print("这是第三行 'print' 信息", end=",") print("这是第四行 'print' 信息", ) print("Hello", "World")
上文中的 “print” 函数是 Python3.x的内置函数(Python3.x已经变为了内置函数,Python2.x中,print为关键字 )。那么什么是内置函数?
内置函数就是python标准库里(语言自身携带的)函数(公共函数),不需要重复造轮子,也不需要导入,可以直接使用的函数。再通俗一点可以理解为解释器自带的函数就是内置函数。
现在就看看我们接触的第一个python内置函数 “print”
print 的翻译是 “打印” 的意思,可以将信息显示(打印)在控制台(cmd)上的函数,print 函数可以将Python代码中几乎所有程序都可以打印出来。
了解了 "print"函数后,现在我们再来看看 "print"函数的语法 print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)
- objects – 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
- sep – 用来间隔多个对象,默认值是一个空格。
- end – 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
- file – 要写入的文件对象。
- flush – 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。
上文的 “print” 函数的脚本输出结果见下图
由此可知,python脚本的执行顺序是由上而下,逐行执行的。
"print"函数是我们学习python所接触的第一个内置函数,在后续的学习过程中我们会不端的接触内置函数,尤其是在函数相关的章节我们还会学习函数的创建执行等等。
python 程序的注释
什么是注释?
在代码中不会被python直接执行的语句
为什么使用注释?
第一、确保对模块, 函数, 方法和行内注释使用正确的风格,它们可以用自然语言告诉你某段代码的功能是什么。
第二、注释可以帮助调试程序
给代码添加说明是注释的基本作用,除此以外它还有另外一个实用的功能,就是用来调试程序。
举个例子,如果你觉得某段代码可能有问题,可以先把这段代码注释起来,让 Python 解释器忽略这段代码,然后再运行。如果程序可以正常执行,则可以说明错误就是由这段代码引起的;反之,如果依然出现相同的错误,则可以说明错误不是由这段代码引起的。
在调试程序的过程中使用注释可以缩小错误所在的范围,提高调试程序的效率。
注释的三种用法
-
Python中的注释有单行注释和多行注释:
-
Python中单行注释以 # 开头
-
Python中多行注释分别为6个双引号和6个单引号
下面我们看一下关于注释的一个小练习,方便我们更直观的了解注释
# coding:utf-8""" @Author:Neo @Date:2020/9/14 @Filename:04-notes.py @Software:Pycharm"""print("再小的努力,乘以365都很明显")print("坚持!坚持!坚持!")print("-----------------------")''' 这个脚本用于注释练习 引号注释一般应用在两个场景 1.应用在整个脚本的开篇,作用是给别人介绍一下这个脚本的作用 2.对于函数功能的解释,比如"print"内置函数里就有这样的解释3.Python中使用 # 进行注释,我们在使用# 的时候,# 号后面要空一格4.在行内注释的时候,中间应该至少加两个空格'''# 关于双引号和单引号的多行注释应用场景,其实并没有强制的规范,但是我们尽量要统一。# 不要上面用双引号的多行注释,下面用单引号的多行注释,非常之不美观()print("人生苦短,我用Python") # 这是一个简单的注释练习
python脚本执行入口
什么是python脚本执行入口?
通俗一点来说,好比进入一栋大楼肯定有个大门入口,汽车上高速也一定有一个入口。所以,执行程序,也需要一个入口;一般称代码执行的入口叫做主函数(main 函数)。
对于很多编程语言来说,程序都必须要有一个入口,比如C,C++,以及完全面向对象的编程语言Java,C#等。
如果你接触过这些语言,对于程序入口这个概念应该很好理解,C,C++都需要有一个main函数作为程序的入口,也就是程序的运行会从main函数开始。同样,Java,C#必须要有一个包含Main方法的主类,作为程序入口。
而Python则不同,它属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,而是动态的逐行解释运行。
也就是从脚本第一行开始运行,没有统一的入口。
一个Python源码文件(.py)除了可以被直接运行外,还可以作为模块(也就是库),被其他.py文件导入。
不管是直接运行还是被导入,.py文件的最顶层代码都会被运行(Python用缩进来区分代码层次),而当一个.py文件作为模块被导入时,
我们可能不希望一部分代码被运行。
下面我们来看看执行入口(主函数)的写法
if __name__ == '__main__': print(os.getcwd()) print("这是python脚本的执行入口")
关于上面的 “主函数” 我们来解释下
- 代码 中
if
的意思就是:如果运行的程序是你自己,那么就执行print(os.getcwd())
与print("这是python脚本的执行入口")
- 假设运行的是
a.py
这个脚本,且这个脚本内有主函数,那么就会执行主函数 - 假设运行的是
b.py
这个脚本,即使b.py
导入了a.py
,也不会执行a.py
里面的主函数(main 函数)
那么是否一定需要执行入口(主函数)? 其实是不一定的,假设没有主函数,那么运行 python脚本 时,就会至上而下,逐行运行 python脚本 的所有代码。
既然不一定需要执行入口,那么执行入口的意义是什么呢?其目的是将业务代码写在主函数上面,主函数用来调用业务代码,代码结构整洁向 Java、C、Golang 看齐,他们都是要求一个程序必须有一个主执行入口才能正确运行。
上面的(主函数)的写法我们看到在 “print” 函数前面有一小段空白区域,由此就引出了接下来的需要我们了解的 python的缩进规则
。
关于 Python 中的缩进规则
区别于其它程序语言(这里我们以 JAVA 和 C 语言为例)所采用的大括号 “{ }” 来分隔代码块,在 Python 中所采用的是 代码缩进
和 冒号( : )
来区分代码块之间的层次。
在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。
需要注意的是,Python 中实现对代码的缩进,可以使用空格或者 Tab 键两种方式来实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)。
关于 Python 的缩进规则,初学者可以这样理解,Python 要求处于同一作用域中的各行代码,它们的缩进量必须一致,但具体缩进量为多少,并不做硬性规定。
例如,下面这段 Python 代码中(涉及到了目前尚未学到的知识,初学者无需理解代码含义,只需体会代码块的缩进规则即可)
a = 2if a > 1: print("当前 a 的值大于1") # 缩进4个空格占位else:# 与if对齐 print("当前 a 的值小于1") # 缩进4个空格占位
现在我们再来看一下缩进不是那么规范的 Python 代码
a = 2if a == 1: print("当前 a 的值等于2") # 缩进4个空格占位else: # 与if对齐 print("当前 a 的值不等于2") # 缩进4个空格占位print("结束")
在 Pycharm 中 我们可以很直观的看到在21行代码出现了红色的错误标识符,那么运行一下试试看。
抛出了 IndentationError: unexpected indent 异常,该异常的原因就是缩进异常,Indentation 即缩进的意思,该异常出现的场景往往出现在 空格与 Tab 缩进混用
或者是 缩进出现错误
的情况下,这个时候就需要排查源码中对应代码行修复缩进的问题即可解决。
由此可见一个好的编码规范是多么的重要啊,可参考 Python零基础入门篇 - 06 - Python初学者需要牢记的几种编码规范
Python 中的内置函数 input
input函数的功能:接收一个标准输入的数据,返回为 string 类型;在命令行输入一行信息,会将这行信息返回成字符串。
input函数的用法用法: result = input('请输入 input 内容')参数: 括号内是一个提示字符串,告知用户需要填写的已知条件
下面我们看一个 input 函数的演示栗子(涉及到了目前尚未学到的知识,无需理解代码含义,只需体会 input 函数用法即可)
name = input("请输入姓名:")birthday = input("请输入生日:")sex = input("请输入性别:")print("你的名字是:%s, 生日是:%s, 性别是:%s " % (name, birthday, sex)) # '%s' 为格式化字符串
输出结果如下:
51声卡推荐网