• 【Python3】初识Python及其基础知识


    前言 

            hi~大家好呀,本篇我在自学Python3过程中的一篇自学笔记,主要参考书上和网络上的内容,有错请大家多多指出,让我们一起学习吧~

            本篇文章,我会具体学习Python程序的运行原理以及如何运行Python程序,之后就是在具体学习Python前的一些基础知识。

    --------------------------------------------------------------------------------------------------------------------------------

    目录

    一、初识Python程序并且学会使用自带IDLE

    1.Python运行程序原理

    2.Python程序的运行以及在IDLE环境下的使用

    二、Python基础知识:

    1.Python的书写规范

    2.标识符和关键字

    3.Python的数据类型

    4.Python的运算符


    一、初识Python程序并且学会使用自带IDLE

    1.Python运行程序原理

            首先,Python是一种程序语言。在Python的发展过程中形成了Python2.x和Python3.x两种不同系列的版本。本篇就是基于我的Python版本3.10下写的。

            既然是一种程序语言,那么也满足人对计算机实现指令操控的需求。程序在具体的实现上遵循了一定的模式,典型的程序设计模式就是IPO模式:程序由输入(Input)、处理(Process)、输出(Output)三部分组成。

            那么,实现上述要求的首先就是我们所完成的源代码。正如C语言中的.c文件,C++中的.cpp文件,java中的.java文件,Python中类似这样的文件就是.py文件,同样的,也就是源文件。然后经过Python解释器翻译成中间码,中间码是.pyc文件。再由Python虚拟机PVM就像Java中的虚拟机JVM那样,将这个中间码逐条翻译成机器指令进行执行。

            上面的大致过程可以用如下图进行解释:

     

             需要进行说明的是,.pyc文件保存在Python的安装目录下的Lib中的__pycache__下的。

     

            如果Python无法在磁盘上写入字节码即.pyc文件的话,那么其字节码文件就会只在内存中生成,程序运行结束时丢弃。所以平时写的源程序只需要装载一次,所以并没有保存.pyc文件。但是比如import(导入头文件类似的功能)导入其他的源文件时,此时就会在当前目录下生成.pyc文件,后序会进行演示。 -- .pyc文件可以重复利用,省略了解释器那一步,能够提高执行效率。

    2.Python程序的运行以及在IDLE环境下的使用

            在安装完Python包后,会发现在计算机快捷栏下的Python3中会出现如下四种可执行文件:

            第一个IDLE就是自带的集成开发环境。

            第二个时以命令行的方式启动Python的解释器。

            第三个和第四个均为帮助文档。

            首先,我们需要认识到的是如何在windows自带的cmd下执行Python程序和如何在自带的IDLE下完成新建源程序文件、执行的过程。

            先要明确Python编程语言的程序执行方式:

    1.交互方式

            Python解释器即时响应并且运行用户的程序代码,有输出就输出结果。

    2.文件方式

            即编程方式,写在程序文件中,启动解释器批量执行文件的代码。

            这两种的执行方式分别适用于调试少量代码最常用的编程方式

            比如,在cmd下以交互执行方式进行运行:(两种方式打开:1.cmd --输入Python 2.打开Python包中的第二个执行文件)

            第一种方式:

             第二种方式:

     

             当输入一行Python代码后,按下enter,解释器立马进行工作,执行当前这条Python语句。

            同样的,此时光标继续闪动,可以继续输入简单的Python代码,按下enter就执行。(如果没有显示打出,那么也就相当于换行效果)

            上面就是简单的cmd下的交互实现,下面我们具体了解一下在IDLE的执行Python程序吧:

            IDLE下的交互执行:(打开IDLE可以去那四个文件中的第一个文件打开哦,也可以参照目录:C:\Users\HP\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python 3.10) 

            直接打开此画面就可以直接进行交互执行了:

            可以发现和刚刚的操作无异。

            可以发现,在Python的交互执行模式下,并没有写入磁盘中的.py文件,也就是没有实现文件的执行方式。cmd下交互执行无法使用文件的执行方式,但是在自带的IDLE下是可以进行实现的:

            IDLE下的文件执行:(程序的常见标准执行方式)

            首先按下File->New File就可以新建一个Python文件,初始文件名就是untitled,当crl s或者File->Save第一次保存,就会要求输入文件名字。我们写入之前测试的简单Python代码,然后保存为test1的名字。

            写入

             保存

            然后在当前界面, 按下Run->Run Module就可以运行了(或者快捷键F5):

    (注意是在源文件所在的界面按下Run)

            在了解完Python程序的执行方式后以及使用Windows的cmd进行交互式执行、IDLE的使用,我们来稍微了解一下Python的相关基础知识,语法吧:(之后我就会在PyCharm下进行编程哦)

    二、Python基础知识

    1.Python的书写规范

            Python通常一行书写一条语句,一行一条的时候,语句结束不加分号

            Python一行书写多条语句的时候,语句间应该使用分号间隔。

            如果书写一条语句过长,需要进行换行书写的话,可以在一条语句外部加上\就表示分行,如果是()、[]、{}括号之类的在内部默认支持分行。

            上述就是Python的语句规范,下面代码作为演示:

    1. data1 = 1
    2. data2 = 2
    3. # Python语句通常一行书写一条,结尾不加分号
    4. data3 = 3; data4 = 4
    5. print(data3); print(data4)
    6. # 一行书写多条语句直接应该使用分号进行间隔
    7. str1 = "Hello" \
    8. "world"
    9. # 一条语句写不下一行时可以使用\进行间隔
    10. str2 = ("hello"
    11. "world")
    12. day = [1, 2,
    13. 3, 4]
    14. print(str1)
    15. print(str2)
    16. print(max(day))
    17. # 同样使用括号也支持一行语句分行书写,需要注意"

            注意""括起来的是字符串哦,在换行的时候,别忘了""的存在哦~

            Python中的语句块

    一个语句块,也就是复合语句,由多行代码组成。Python中的一个语句块由多行代码相同的缩进组成。C/C++和Java中一个语句块就是用大括号来进行表示的{}

    建议以4个空格为一个缩进。

             比如下面使用if else语句进行演示:

    1. electricity = 10
    2. if electricity < 20:
    3. i = 100 - electricity
    4. print("当前电量不足,需要充{}的电量".format(i))
    5. else:
    6. print("当前电量充足,还有{}的电量".format(electricity))

            注意if和else语句在C/C++/Java中的条件判断的圆括号()不存在,取而代之的就是在对应关键字之后加一个空格,结束条件后加上:作为此语句下的语句块开始。

            Python中的注释:

    多行注释使用的是三个'或者"作为开始和结束的标志,单独为一行,中间就可以进行多行注释了。这其实是一种跨行的字符串。

    单行注释使用的是#,在其后面(此行)写即就为注释 。

    1. str1 = """
    2. 多行注释
    3. 2022 - 10 - 24
    4. """
    5. print("单行注释") # 输出语句 -- 单行注释
    6. print(str1) # 可以证明多行注释实际上就是一个多行字符串
    7. '''
    8. 这个
    9. 也是多行注释哦
    10. '''

            当然,在写注释的时候也需要一定的规范:比如在#后写注释时,之间要留下一个空格。然后在行内注释的时候直接的间隔至少两个空格哦。

    2.标识符和关键字

            计算机数据中的一个变量、方法、对象都需要名称,而这些名称所使用的的符号就是所谓的标识符,方便程序进行调用。

            标识符的格式:

    Python标识符可以由如下组成:字母、数字、_。同理,注意不能以数字开头

    标识符区分大小写,没有长度限制。

    注意不可和关键字重名。

    标识符的命名尽量符合见名知义的原则,提高代码的可读性。

            在了解完后标识符后,我们再来看看关键字吧:

            Python语言保留某些单词作为特殊用途,这些单词被称为关键字。标识符不可与其重名哦~

    andasassertbreakclasscontinue
    defdelelifelseexceptFalse
    finallyforfromglobalifimport
    inislambdanonlocalnotor
    NonepassraisereturnTruetry
    whilewithyield

            可以使用帮助文档进行详细查看关键字信息哦,在交互执行下,输入help()

            然后输入指令keyworlds

             任意输入一个关键字名字即可:

            按下enter就是看下一行,输入q就可退出当前画面,quit就退出此查询系统。

    3.Python的数据类型

            计算机程序设计的目的是存储和处理数据,将数据分为不同并且合理的类型既可以方便数据处理,也可以提高数据的处理效率,节省储存空间。数据类型指明了数据的状态和行为

            在Python中,数据类型有:

    数值类型(Number)

            基本数据类型,包含整型(int)、浮点型(float)、复数类型(complex)、布尔类型(bool)四种。

    字符串类型(Str)

            是由一对' 或者"以及三个引号'''、"""括起来的字符序列。由于字符串应用频繁,有时候我们也将字符串当做基本数据类型哦。

    列表类型(List)

            是一种序列类型,由[]括起来的数据集合。列表内容用,进行分隔。

    元组类型

            元组由0个和读个元素组成的不可变序列类型。用()括起来的数据集合,和列表的区别除了括号不同外就是无法修改数据。

    字典类型

            映射类型,可以实现通过数据查找关联数据的功能,是用{}括起来的数据集合:字典中的数据包含两部分:键和值,键通常是一个字符串,对应的值可以任意类型,中间由:表示映射关系。同样的不同元素之间用,进行间隔。

    集合类型

            在Python中,集合是一组对象的集合,此对象可以是任何类型。元素之间没有任何顺序,并且元素都不重复。集合和数学上的集合类似,使用{}进行表示或者set()进行表示。空集合必须使用set()进行表示。

            上述类型只是大致的介绍和理解,下面简单使用代码演示一下如上类型:

            整型中,表示其数据的方式有四种:十进制(直接就是字面值),二进制(以0B/0b开头),八进制(0o/0O开头),十六进制(0X/0x开头)。可以使用方法type()测试类型。将十进制转化为对应进制类型的方法有:bin()、oct()、hex()

    在Python中变量具备类型的概念,即变量的类型由所赋的值来决定。--系统自动识别变量的数据类型

            我们可以使用交互执行的方式测试代码:

             浮点型是带有小数点的数据类型,也可以使用十进制或者科学计数法进行表示:科学计数法中E或者e的基数为10,后面的整数表示指数,默认为+,想表示负数在E/e后加-即可。Python的浮点型占8个字节,能表示数的精度为2.2e-302~1.8e308。

    1. f = 1.2 # 带有小数点的
    2. f3 = 1.1e2 # 可以使用科学计数法进行表示
    3. f4 = 1.2E-2 # +-
    4. print(f, f3, f4)
    5. print(type(f), type(f3), type(f4))

             布尔类型可以看做是一种特殊的整型,True和False。如果将这两个关键字进行数值运算就分别代表1和0.空对象空的数据类型均可以当做是False,有值的均为True。

            使用bool方法可以验证变量是否为空。

    1. Bool = True
    2. print(type(Bool))
    3. i = 0
    4. print(bool(i)) # 验证空对象
    5. while Bool:
    6. print(i, end=" ") # end参数可以修饰结尾的符号,默认为\n
    7. i += 1
    8. if i == 10:
    9. Bool = False
    10. print() # 打印\n
    11. print(i)
    12. print(bool(i)) # 验证非空对象

             

              字符串类型、列表类型、元组类型、集合类型

    1. str1 = 'Hello'
    2. str2 = "Hello" # ''或者 "",多行字符串使用'''或者"""进行,上面已经演示过
    3. print(str1, str2)
    4. list1 = [1, 2, 3, "world", 3.2] # 列表 数据集合 -- 可变
    5. print(list1[0])
    6. list1[0] = "Yu"
    7. print(list1[0])
    8. tuple1 = (1, 2, 3, "world") # 元组 数据集合 -- 不可变
    9. print(tuple1[0])
    10. print(tuple1[3])
    11. gather1 = {1, 2, 3} # 集合 元素不重复
    12. gather2 = set([1, 2, "shen"])
    13. gather3 = set() # 空集合
    14. print(bool(gather3))
    15. print(gather1, gather2)

             字典类型:使用{},数据有两个部分,键值。每个数据之间用,进行分隔。

    1. dictionary = {'year': 2022, 'age': 19, '生日': "农历6月初10"}
    2. print(dictionary)
    3. print(dictionary.get("year"))
    4. print(dictionary.get("age"))
    5. print(dictionary.get("生日"))

            使用get方法可以返回键对应的值。

            如果想要比较类型之间的是否相同的话可以使用isinstance(obj, 类型),相同就返回True,否则返回False。

    4.Python的运算符

             运算符是用来表示不同运算类型的符号,运算符可以分为算术运算符、比较运算符、逻辑运算符、赋值运算符:

            算术运算符:

    +相加
    -相减
    *

    相乘

    /

    相除

    %求余
    **求幂
    //整除

            比较运算符:< > <= >= == != (判断完后返回的值也就是布尔类型的)

            赋值运算符:=

                    相关应用:

            复合赋值运算符:+=、-=、*=、**=、/=、%=、//=

            位运算符:根据整型的二进制进行变化

    ~~i按位取反(二进制每一位进行取反)
    &i&j按位与(二进制对应的一位均为1就为1,否则为0)
    |i|j按位或(二进制对应的一位有1就为1,全0就为0)
    ^i^j按位异或(二进制对应的相等就为0,不相等就为1)
    >>i>>j右移(i为被操作数,向右移动j位,左边补符号位,无符号补0)
    <<i<左移(i为被操作数,向左移动j位,右边补0)

             逻辑运算符:and、or、not表示逻辑与、逻辑或、逻辑非。C/C++中为&&、||、!

            运算符的优先级

    优先次序运算符优先次序运算符
    1**(指数)8|
    2~ +(正数) -(负数)9< > <= >=
    3* / % //10== !=
    4+ -11= += -= *= /= %= //=
    5>> <<12not
    6&13and or
    7^

  • 相关阅读:
    【用MyEclipse2017创建一个Hibernate Web登录项目】
    基础组件-流量回放(全链路流量回放预研)
    本周大新闻|苹果MR已进行Pre-EVT测试,Quest 2涨价100美元
    面试手撕并发算法题
    (C语言)printf打印的字符串太长了,我想分两行!
    某赛驱动器调节工具DM-Series使用笔记
    C语言如何执行HTTP GET请求
    SV--对象拷贝、参数化的类
    Chrome 基于 Wappalyzer 查看网站所用的前端技术栈
    Maven编译java及解决程序包org.apache.logging.log4j不存在问题
  • 原文地址:https://blog.csdn.net/weixin_61508423/article/details/126390888