〖Python零基础入门篇⑦〗- Python 的脚本结构

万叶集
🎉 隐约雷鸣,阴霾天空。 🎉
🎉 但盼风雨来,能留你在此。 🎉


前言
✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 🐶哈士奇🐶 ,一位致力于 TFS - 全栈 赋能的博主 ✌
🏆 CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 🏆
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


专栏系列(点击解锁)学习路线(点击解锁)知识定位
🔥Python全栈白皮书🔥 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。
语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。
自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。
自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。
数据库开发实战篇 掌握关系型与非关系数据库知识,提升数据库实战开发能力。
爬虫入门与实战 更新中
数据分析篇 更新中
前端入门+flask 全栈篇 更新中
django+vue全栈篇 更新中
拓展-人工智能入门 更新中
网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者
网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。
vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。
shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结]
WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器
测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得!
测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。
RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。
Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。
MonkeyRunner 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。

在了解 python 的脚本结构之前, 我们先创建一个脚本

创建一个项目与演示脚本


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述



python 的脚本结构


在这里插入图片描述


python 脚本的执行

Pycharm 中,我们有两种方式执行脚本。

一种是利用菜单栏、工具栏、右击出现的 “run xxxx”(或者快捷键 Ctrl + Shift + F10) 实现。


在这里插入图片描述


另一种就是利用 PycharmTerminal 命令行终端


在这里插入图片描述


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 = 2

if a > 1:
    print("当前 a 的值大于1")  	# 缩进4个空格占位
else:              				# 与if对齐
    print("当前 a 的值小于1")   	# 缩进4个空格占位

现在我们再来看一下缩进不是那么规范的 Python 代码

a = 2

if 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' 为格式化字符串

输出结果如下:



  • 26
    点赞
  • 24
    收藏
  • 打赏
    打赏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:代码科技 设计师:Amelia_0503 返回首页
评论 19

打赏作者

不渴望力量的哈士奇

多点...少点...多少给点?

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值