Python基础性知识(非常详细版)(前部分)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

本文综合我现阶段学习Python的一些小感受,综合写了这一篇学习Python小总结,由于内容有点小多,分三篇来撰写~~


提示:以下是本篇文章正文内容,下面案例可供参考

1、认识Python

1.1Python的背景知识

1.1.1Python 是怎么来的?

  • 吉多.范罗苏姆(Guido van Rossum)是一个荷兰的程序员(人称龟叔)在1989年圣诞节,因为呆在家里无聊,为了打发时间,开始了Python的开发。正式版本发布于1991年。

龟叔---------->
在这里插入图片描述


丫!正所谓牛人的世界咱不懂,但咱不得不佩服人家的能力,闲暇之余,开天辟地,正是我等的心中所想丫。


经典语录:
“人生苦短、python是岸”!!!

  • 这里既然说到1991年,简单陈列一下这个不平凡年份所发生的大事:
    Python、万维网、Linux,Vim,Qt,第一台笔记本电脑,都诞生于这一年,不平凡之年丫!!!!!!!!!!!!!

1.1.2Python 都能干点啥?

经过了多年的发展,Python 目前是一个应用场景非常广泛的编程语言。具体有以下应用场景

  • 科学计算和数据分析
  • Web开发(网站的搭建)
  • 自动化运维
  • 人工智能
  • 爬虫程序
  • 自动化测试

在这里插入图片描述

1.1.3Python的优缺点

优点:

  • 语法言简意赅,容易上手,比C应该说语法操作啥的简单的多
  • 功能强大,用途广泛
  • 生态丰富,具有海量的成熟第三方库(后面会详细介绍)
  • 方便调用C/C++编写的代码进行高性能/系统级操作
    缺点:
  • 执行效率比较弱
  • 对于多核心并发程序支持偏弱
  • 动态类型系统对于大型项目不太友好

1.2Python环境的搭建

要想能够进行Python的开发,就必须要搭建好Python的环境,而需要安装的环境主要是两部分:
运行环境:Python
开发环境:PyCharm

  • 安装Python–Python运行环境的搭建
    (1).找到官方网站
    在这里插入图片描述
    在百度中搜索python,然后再网页中找到python的官方网站进行下载
    (2).点击Downloads下载
    在这里插入图片描述
    在这里插入图片描述
    注意Python的版本再持续更新当中,大家看到的版本不一定和我这里的完全一致,但是基本不影响正常学习使用

下载完成后会得到一个安装包
在这里插入图片描述
(3)双击安装包来进行python的安装

  • 注意:最好勾选“Add Python 3.10 to PATH”这个选项,后续在使用安装第三方库的时候方便我们操作
    在这里插入图片描述
    安装完成后我们打开Python基本得到以下界面(从开始菜单上搜索python)
    在这里插入图片描述
    (4).简单输入运行hello world
    在这里插入图片描述
    这样Python的运行环境就搭建好了

虽然通过交互式解释器可以执行Python代码了,但是代码写起来并不方便,就需要更专业的开发工具来编写Python代码
目前界面上最常用最主流的Python开发工具有PyCharm 和VS Code 这里我们主要介绍PyCharm

  • PyCharm–Python开发环境的搭建

  • Pycharm环境的搭建
    (1).找到官方网站
    在这里插入图片描述
    这里官网主要要认准“jetbrains.com”这个域名!!!
    (2).找到下载界面
    在这里插入图片描述
    点击Download后来到下载界面拉至网页最下面找到社区版(Community)来进行下载即可(现阶段社区版就足以,免费的)
    在这里插入图片描述
    在这里PyCharm有三个版本:
    专业版(Professional Edition)
    社区版(Community Edition)
    教育版(Educational Edition)
    专业版相比于社区版,功能要更丰富一些,但是专业版收费,社区版免费。教育版功能与专业版相同,但是需要凭借edu邮箱去JB官网申请。
    下载完后会出现exe安装程序
    在这里插入图片描述
    (3).双击安装包
    在这里插入图片描述
    这里安装过程中记得要把Add "Open Folder as Project"选项要勾中

这样子就把python的运行环境与开发环境给安装好了,具体pycharm的使用比较简单,这里不做过多阐述,如果想深入了解一下的话,可以参考哔哩哔哩上的视频进行详细学习。

2、Python基础语法——1

2.1常量和表达式

以一段代码来说明常量和表达式

print(1 + 2 - 3)
print(1 + 2 * 3)
print(1 + 2 / 3)

在这里插入图片描述
在以上代码注意:

  • print 是一个Python 中的内置函数,后面说到函数章节会详细说一下
  • 可以使用±*/()等运算符进行算术运算,先算乘除,后算加减
  • 运算符和数字之间,可以没有空格,也可以有多个空格,但是一般习惯上写一个空格(比较美观)

在这里形如“1+2-3”这样是算式,,在编程语言中称为表达式,而算式的结果称为表达式的返回值,其中1,2,3这种称为字面值常量,±*/称为运算符或者操作符

在这里要注意涉及到小数截断问题,在C或者Java中2/3会被认为结果为零(小数部分被截断),但是在Python中得到的 结果则是一个小数,更加符合日常生活中的直觉,但是这样的结果也不是准确的,程序结果最后一位是5显然是不正确的,这涉及到浮点数在内存中的存储知识,后面会阐述一下

  • 小应用->计算67.5,89.0,12.9,32.2这四个数的平均数
print((67.5 + 89.0 + 12.9 + 32.2)/ 4)

在这里插入图片描述
这里很显然结果有微小的偏差,这与浮点数在内存中的存储有关

2.2变量与类型

2.2.1变量是什么

  • 有时候我们需要进行复杂的计算,需要把一些计算的中间结果给保存起来,这时候我们就需要用到变量
    计算67.5,89.0,12.9,32.2这四个数的方差
avg = (67.5 + 89.0 + 12.9 + 32.2) / 4
total = (67.5 - avg) ** 2 + (89.0 - avg) ** 2 + (12.9 - avg) ** 2 + (32.2 - avg) ** 2
result = total / 3
print(result)

在这里插入图片描述
在上面的代码中,avg,total,result 均为变量

  • 同时我们又可以换个角度理解,变量可以视为一块能容纳数据的空间,这个空间往往对应到“内存”这样的硬件设备上。
    在这里插入图片描述
    联系我们的日常生活,我们可以把内存想象成一个宿舍楼,这个宿舍楼上有很多的房间,每个房间都可以存放数据,衡量内存的一个重要的指标就是内存空间大小,而我们现在的电脑一般是16GB,或者8GB,这个数字越大,意味着内存的存储空间越大,能够存放的数据(变量)就越多

2.2.2 变量的语法

  • 定义变量:
a = 10

在这里创建变量的语句非常简单,其中
a 为变量名, 当我们创建很多个变量的时候,就可以用名字来进行区分;
‘=’为赋值运算符,表示把‘=’右侧的数据放到‘=’左侧的空间中

注意我们给变量命名的时候要遵守一定的规则:
(1).硬性规则(必须要遵守的)
变量名由数字、字母、下划线构成;
数字不能开头;
变量名不能和“关键字”重复;
变量名的大小敏感,num和Num是两个不同的变量名
(2).软性规则(建议遵守)
变量名可以由多个单词构成,长一点没有关系,重要的是含义要表达清楚;
当变量名包含多个单词的时候,建议可以使用“驼峰命名法”形如“totalCount、personInfo”即除了首个单词外,剩余单词首字母大写;

另外关于变量的命名还要提醒一点:
数学上, 变量通常使用 x, y, z 这种简单的英文字母或者拉丁字母表示. 但是在编程中不建议这样使用,原因是编程中, 一个程序里通常会同时创建出很多个变量. 如果只是使用单个字母表示, 在变量多了的时候, 就很难记住哪个变量是干啥的, 从而给维护程序带来了一定的困难. 因此我们更建议使用带
有明确描述性的名字, 来表示变量的用途.

  • 使用变量
    (1).读取变量
a = 10
print(a)

(2).修改变量

a = 10
print(a)

a = 20
print(a)

在这里插入图片描述

这里修改变量也是用’=',其实看起来和定义变量没有明显区别;
同时我们也可以用另外一个变量的值赋给另一个变量

a = 10
b = 20
print(a)
a = b 
print(a)

在这里插入图片描述

2.2.3 变量的类型

注意 变量里面存储的不仅仅是数字,还可以存储其他种类的数据,为了区分不同种类的数据,我们引入了“类型”这样的概念,下面介绍几种常用类型

  • 常用类型:
    (1).整型
a = 10
print(type(a)) 

在这里插入图片描述
这里type是一个python的内置函数,用来显示变量的数据类型;
这里的整型和C++/Java等的语言不同,Python的int类型变量,表示的数据范围是没有上限的,只要内存足够大,理论上就可以表示无限大小的数据,但是初始分配的是4个字节,并且关于整数,python只有整型这一个类型,也没有long,short类型,比较单一

(2).浮点型

a = 0.5
print(type(a))

在这里插入图片描述
注意:这里的浮点数与C++/Java等语言不同,Python的小数只有float一种类型,没有double类型,但是实际上Python中的float就相当于C++/Java的double,表示双精度浮点数
(3).字符串类型

a = 'hello'
print(type(a))

在这里插入图片描述
注意:在Python中,单引号构成的字符串和双引号构成的字符串,没有区别,‘hello’和“hello”是完全等价的

关于字符串的基本操作有字符串的拼接和获取字符串的长度

求字符串的长度:

a = 'hello'

print(len(a))

在这里插入图片描述
进行字符串的拼接:

a = 'hello'
b = 'world'
print( a + b)

在这里插入图片描述
当然,这里知识最简单的操作,字符串作为开发中最常用到的类型,支持的操作也是非常丰富的,此处就不过多展开。
(4).布尔类型
布尔类型是一个特殊的类型,他只有两种取值:True(真)、False(假)。
对于布尔类型我们可以联想到数学中的真假命题

a = True
print(type(a))

b = False

print(type(b))

在这里插入图片描述
布尔类型在后续咱们进行逻辑判断的时候,是非常有用的

(5).除了上述类型之外Python中还有list,tuple,dict,自定义类型等等,下面内容会详细介绍。

  • 为什么要有这么多类型呢?
    (1).类型决定了数据在内存中占据多大的空间
    例如 float 类型在内存中就占据了8个字节
    关于字节来展开说一下:

在计算机里面使用二进制来表示存储,也就是每个位只能表示0或者1.一个二进制位,就称为一个“比特”,8个二进制位,就成为一个“字节”(Byte)一个float变量在内存中占据8个字节空间,也就是64个二进制位

(2).类型其实约定了能对这个变量做什么操作
例如int/float类型的变量,可以进行±*/等操作
而str类型的变量,只能进行+(行为是字符串拼接)不能进行- * /,但是还能进行len等特殊其他操作等

类型系统其实是对变量进行“归类”。相同的变量(数据)往往具有类似的特性和使用规则

  • 动态类型特性

Python中,一个变量是什么类型,是可以在“程序运行”过程中发生变化的,这个特性称为“动态类型”

a = 10
print(type(a))

a = 'hello'

print(type(a))

在这里插入图片描述
如上代码所示,在程序执行的过程中,a的类型刚开始是Int,后来变成了str.这就是动态类型,Python就是这样的类型
这可不得了丫, 这更加方便了我们使用变量,特别的灵活,像C++/Java语言中则是不允许这样的操作的,一个变量定义后类型就固定的了,这种特性则成为“静态类型”
但是动态类型是一把双刃剑:
(1).对于中小型程序,可以大大的解约代码量(比如写一段就可以同时支持多种类型)
(2).对于大型程序,则提高了模块之间的交互成本(程序员A提供的代码难以被B理解)

2.3 注释的相关内容

2.3.1 注释是什么?

  • 注释是一种特殊的代码,它不会影响程序的执行,但是能构起到解释说明的作用,能够帮助程序员理解代码的执行逻辑

我们程序员在写代码之后的读代码过程是一个非常烧脑的事情,相比于一板一眼的代码,一些口语化的描述能更好的帮助程序员理解程序

# 计算4个数字 67.5,89.0,12.9,32.2的方差
avg = (67.5 + 89.0 + 12.9 + 32.2) / 4
total = (67.5 - avg) ** 2 + (89.0 - avg) ** 2 + (12.9 - avg) ** 2 + (32.2 - avg) ** 2
result = total / 3
print(result)

如果不给上面的注释,我们只看孤零零的代码会显得晦涩难懂,但我们给了计算方差的注释,很容易就get到了这段代码的意图,

所以写注释不光是方便别人理解,也是为了方便3个月之后的自己理解~~~

我们写代码的第一目标是容易理解,第二目标才是执行正确

  • 一个反例就是医生给咱开的处方药。要是不加这些红色小字,拿基本上与天书无异~~

在这里插入图片描述

2.3.2注释的语法

在Python中有两种风格的注释

  • 注释行
    使用 # 开头的都是行的注释
# 这是注释行的注释!
  • 文档字符串
    使用三引号引起来的称为“文档字符串”,也可以视作一种注释。
    可以包含多行内容;
    一般放在文件/函数/类/的开头;
    ‘’’ 或者"""均可(等价)
'''
这是文档字符串
123456
'''

2.3.3 注释的规范

(1).内容准确:注释内容要和代码一致,匹配,并在代码修改时及时更新
(2).篇幅合理:注释不应该太精简,也不应该长篇大论
(3).使用中文:一般中国公司都要求使用中文写注释,
(4).积极向上:注释中不要包含负能量

2.4 输入和输出

程序需要和用户进行交互
用户把信息传递给程序的过程,称为“输入”
程序把结果展示给用户的过程,称为“输出 ”

输入输出的最基本方法就是控制台。用户输入一些字符串,程序再通过控制台打印出一些字符串

在PyCharm中运行程序,下面弹出的窗口就可以视为式控制台
在这里插入图片描述
而Windows自带的cmd,也可以视为控制台
在这里插入图片描述
输入输出的最常见的图形化界面。如我们平时用的qq,浏览器,steam等,都不需要输入命令,而只是通过鼠标点击窗口点击按钮的方式来操作

2.4.1 通过控制台输出

这里主要介绍Python的内置函数 print
print结束时候自带一个默认换行参数。
Python使用print函数输出到控制台

  • print可以输出任意单一类型:
a = 10
print(a)

a = 1.0
print(a)

a = 'hello'
print(a)

a = True
print(a)

在这里插入图片描述
但是更多的时候,我们希望输出的内容是混合了字符串和变量的

  • print 的格式化输出
    我们的格式就是print(f"字符串+{变量}")
num = 10
print(f"num={num}")

在这里插入图片描述

注意:
使用 f 作为前缀的字符串,称为f-string;
里面可以使用 { } 来内嵌一个其他变量/表达式

这里只介绍一种格式化字符串的方法,其他的后期大家可以自习了解

2.4.2通过控制台输入

咱们这里介绍input函数
Python使用input函数,从控制台读取用户的输入

num = 0
num = input('请输入一个整数:')
print(f"你输入的整数是{num}")

在这里插入图片描述
注意:
input 的参数相当于一个“提示信息”,也可以没有,但是最好写上提示;
input 的返回值就是用户输的内容,是字符串类型

a = input("请输入第一个整数:")
b = input("请输入第二个整数:")
print(f"a+b={a+b}")

在这里插入图片描述
这里的a和b都是字符串类型,+操作只是简单的字符串拼接,故而得到结果为1020.
而我们要真正做到整数的相加需要强制类型转换

a = input("请输入第一个整数:")
b = input("请输入第二个整数:")
a = int(a)#强转成int类型
b = int(b)#强转成int类型
print(f"a+b={a+b}")



在这里插入图片描述

2.5运算符

2.5.1 算术运算符

±*/ % ** //这种算术运算的运算符,称为算术运算符

对于算术运算符我觉得应该注意以下几点:

  • 对于除法运算(/)中0作为除数的时候,会出现报错的情况

print(10/0)

在这里插入图片描述

  • 整数/整数,结果可能是小数,而不会截断
print(1/2)
print(2/3)

在这里插入图片描述

  • %是求余运算
print(7%2)

在这里插入图片描述

  • **是 求乘法运算,这里不光能求整数次方,还能求小数次方
print(2**2)
print(4**0.5)

在这里插入图片描述

  • //是求取整除法(也叫做地板除)。整数除以整数,结果还是整数(舍弃小数部分,并向下取整。不是四舍五入)
print(7//2)
print(-7//2)

在这里插入图片描述
这里因为是向下取整,所以-7//2得到的结果是-4

2.5.2 关系运算符

像< <= > >= == !=这一系列的运算符称为关系运算符。它们是在比较操作数之间的关系
关于关系运算符注意以下几点:

  • 如果关系符合,则表达式返回True,如果关系不符合,则表达式返回False
a = 10
b = 20

print(a<b)
print(a<=b)
print(a>b)
print(a==b)
print(a!=b)

在这里插入图片描述

  • 关系运算符不光针对整数/浮点数进行比较,还能针对字符串进行比较
a = 'hello'

b = 'world'
print(a<b)
print(a<=b)
print(a>b)
print(a==b)
print(a!=b)

在这里插入图片描述
对于字符串之间的比较在python中我们直接使用==和!=来判断字符串内容是否相等(这和C和Java不同);
字符串比较大小,规则是“字典序”

关于“字典序”:
想象一个英文字典,上面都是按照字母顺序排列,如果首个字母相同,就比较第二个字母。我们认为一个单词在字典上越靠前,就越小,越靠后,就越大

  • 对于浮点数来说,我们不是靠==来判断是否相等的,因为涉及到浮点数的存储存在这偏差
print(0.1+0.2==0.3)

在这里插入图片描述
按照常理来说0.1+0.2应该等于0.3,但是浮点数在计算机中的表示并不是精确的!在计算过程中存在非常小的偏差

print(0.1)
print(0.2)
print(0.3)
print(0.1+0.2)

在这里插入图片描述

而对于浮点数的比较,我们应该不再要求浮点数是完全相等的,而是判定差值小于允许的误差范围

a = 0.1+0.2
b = 0.3
print(-0.000001<(a-b)<0.000001)

在这里插入图片描述

联系实际生产,在工程实践中,误差是在所难免的,只要保证误差在合理的范围内即可。

2.5.3 逻辑运算符

像 and or not 这一系列的运算符称为逻辑运算符

  • 逻辑运算符介绍:
    and 并且. 两侧操作数均为 True, 最终结果为 True. 否则为 False. (一假则假)
    or 或者. 两侧操作数均为 False, 最终结果为 False. 否则为 True. (一真则真)
    not 逻辑取反. 操作数本身为 True, 则返回 False. 本身为 False, 则返回 True.
a = 10
b = 20
c = 30
print(a < b and b < c)
print(a < b and b > c)
print(a > b or b > c)
print(a < b or b > c)
print(not a < b)
print(not a > b)

在这里插入图片描述

对于以上代码,a<b and b<c这种操作等价于 a<b<c.
这种设定和大部分编程语言都不相同。

  • 短路求值——关系运算符的应用
    和其他编程语言类似, Python里面也存在短路求值规则即:
    对于 and, 如果左侧表达式为 False, 则整体一定为 False, 右侧表达式不再执行;
    对于 or, 如果左侧表达式为 True, 则整体一定为 True, 右侧表达式不再执行;
print(10>20 and 10/0 == 1)
print(10<20 or 10/0 == 1)


在这里代码没有抛出异常,说明右侧除以0 的操作根本没有执行。

2.5.4 赋值运算符

  • ‘=’的运用:
a = 0
b = 10
print(a)
print(b)

‘=’表示赋值, 这里注意与‘’区别,‘’是判断的意思,‘=’除了基本的用法对于单个变量的赋值后还有准对多个变量的赋值,主要介绍链式赋值以及多元赋值
链式赋值: a = b = 10;
多元赋值: a,b = 10,20;
对于多元赋值的小应用——>交换两个变量

a = 10
b = 20
a,b = b,a
print(a)
print(b)

在这里插入图片描述

  • 复合赋值运算符:
    Python 还有一些 复合赋值运算符 如+=,-=,*=,/=,%=
    例如a+=1等价于a=a+1
a = 10
a+=1
print(a)

b = 20
b+=1
print(b)


在这里插入图片描述
注意:像C++/Java中,存在着++,–这样的自增/自减运算,而Python中不支持这种运算,为了避免++,–容易分不清前置和后置问题,python直接使用+=1和-=1.

2.5.5 其他运算符

除了上述之外,Python还有一些别的运算符
例如身份运算符(is,is not),成员运算符(in , not in),位运算符(& | ~ ^ << >>)这里不作过多介绍,有需要的话可以查阅一下资料

总结

本文主要介绍了python的一些小知识和一小部分基本语法,后期会接着介绍,有错误请批评指正,感谢支持!

  • 30
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值