打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python基础一

这是我做的一些笔记,重点文字以灰底呈现。    

注释

在Python中,添加注释的方式有两种:单行注释和多行注释。

 单行注释:以“#”开始,后面是代码的说明内容。例如:#你好。

多行注释:以“"""”开始,以“"""”结束,说明内容分布在多行。例如:"""你好"""。

在 PyCharm 中,快速注释的组合键是“Ctrl+/”。

变量和数据类型

变量

变量是给数据起的一个名字。

在Python中,变量赋值使用等号运算符“=”。

【语法】

变量名 = 值

【说明】

变量不需要声明数据类型,其类型在赋值的那一刻被初始化。

Python变量的命名规则:

变量名的长度不受限制,其中的字符只能是英文字母、数字或者下划线“_”,而不能使用空格、连字符、标点符号、引号或其他符号。

变量名的第一个字符不能是数字,而必须是字母或下划线。

Python区分大小写

不能将Python关键字作为变量名,例如and、del、return等。

变量命名尽量做到“见名知意”,即看见变量名就能知道变量的意思,这样能有效地提高程序开发的效率。

在Python中支持同时为多个变量赋值,也是使用等号运算符“=”,多个变量之间使用逗号“,”隔开。

【语法】

① 变量名1[,变量名2,…,变量名n] = 值

② 变量名1[,变量名2,…,变量名n] = 值1[,值2, …, 值n]

【说明】

可以将多个变量赋值为同一个值,“=”左边为多个变量名,通过“,”分隔开,右边为这些变量的值。

也可以为多个变量分别赋值,变量名1对应值1,变量名2对应值2,以此类推,变量名需要与变量值一一对应,如果没有一一对应,程序将会报错。

数据类型

Python的常见基础数据类型是:整型、浮点型、布尔型和字符串类型。

(1)整型

整型就是整数,在Python中用int表示。例如数字83。

(2)浮点型

浮点型用于表示实数,通俗来说就是带小数点的数,在Python中用float表示

(3)布尔型

布尔型是特殊的整型,在Python中用bool表示,它的值只有两个,分别是True和False。

(4)字符串类型

字符串是一种表示文本的数据类型,在 Python 中用 str 来表示,字符串类型在Python 中被定义为一个字符集合,其中的字符可以是 ASCII 字符、各种符号和Unicode字符等。

字符串有3种创建方式,分别是使用单引号、双引号和三引号。

在字符串中,如果要让字符输出换行,或者字符串中包含“'”引号,需要用到字符串的转义字符“\”。单个反斜杠转义字符表示之后的一个字符没有特殊含义。

  1. 字符串表示(str和repr)

  2. 字符串拼接:"字符串{0}{1}".format("可以传多个参数");与占位符一一对应

转义字符


Python字符串可以通过索引来获取字符串中的字符,第1个字符的索引是0,第2个字符的索引是1,以此类推。字符串的索引方式是在该字符串名字后加上“[index]”,index是索引位置。

type()函数输出变量类型

在Python中,声明变量时不需要定义变量的类型。如果遇到更复杂的数据类型或者变量之间耦合度较高时,会有不知道变量类型的情况。使用type()函数可以返回变量类型。

常用类型转换

在Python中,字符串、整型、浮点型数据之间的转换非常简便,只需要调用str()、int()、float()这3个函数就能实现。但需要注意:字符串类型的字符必须全部是数字才能被转换为整型和浮点型,通俗一点就是字符串看起来是由数字组成的。

运算符

1.赋值运算符

赋值运算符只有一个,就是“=”,它的作用是把等号右边的值赋给左边的变量。

2.算术运算符

算术运算符主要用于计算,例如:+、-、*、/都属于算术运算符,分别代表加、减、乘、除。

在Python3中,对于除法运算符,如果两个操作数都是整数,输出结果将自动转换为浮点型;如果操作数包含浮点数,输出结果也将为浮点型。

3.比较运算符

比较运算符用于比较两个数,其返回的结果只能是布尔值True或False。

注意:“=”为赋值运算符,“==”为等于运算符。“>”“<”“>=”“<=”只支持数值类型的比较。“==”“!=”支持所有数据类型的比较,包括数值类型、布尔类型等。

4.逻辑运算符

逻辑运算符用于对两个布尔类型操作数进行运算,其结果也是布尔值。

5.成员运算符

成员运算符用来判断指定的序列中是否包含某个值,如果包含,返回True,否则返回False。

6.身份运算符

身份运算符用于比较两个对象的存储地址。

“is”与“==”的区别在于“is”用于判断两个变量引用对象是否为同一个,而“==”用于判断引用变量的值是否相等。

字符串拼接

1.使用运算符拼接字符串

在Python中,可以使用算术运算符“+”来拼接字符串,运算符“+”左边的字符串会在最末尾的地方拼接上“+”右边的字符串。

2.通过占位符格式化字符串

Python支持格式化输出字符串。Python中的字符串可以通过占位符格式化,占位符对应着所要占位的变量类型,并通过“%”给对应占位符传入数值,最终字符串将与占位符传入的值进行拼接。

在Python中,还支持一种高效的占位函数format()

1.常用操作字符串的方法

Python 的字符串函数 lower()和 upper()在处理英文字母时会将英文大小写统一,lower()函数将所有英文字母小写,upper()函数将所有英文字母大写。

2.去除字符串首尾空格

可以通过Python内建函数去除字符串首尾的空格。lstrip()函数去除字符串开头的空格,rstrip()函数去除字符串末尾的空格,strip()函数同时去除字符串首尾的空格。

3.拆分字符串

在Python中,可以通过内建函数split()对字符串进行拆分。split()函数接收一个分隔符作为参数,以该分隔符为标志将字符串分割为几部分,并将分割部分存入列表中,最后返回整个列表。

4.查找子串的位置

find()函数接收一个字符串作为参数,如果该字符串存在于目标字符字符串中,则会返回该字符串在目标字符串中的初始索引位置;如果不存在于目标字符串中,会返回-1。

5.截取字符串

在Python中,字符串属于可迭代对象,可以直接对字符串使用循环和索引,截取字符串时可以直接使用索引的方式。

【语法】

字符串变量[索引]

字符串变量[起始索引:结尾索引]

【说明】

“[]”为索引符号,索引只能为整数,“字符串变量[4]”表示取字符串变量中的第 4个元素。取一段字符可以在索引位置中间添加“:”,“字符串变量[6:8]”表示从第6个元素开始,到第8个元素结束,但是不包含第8个元素,所以输出的是第6和第7个元素。

6.字符串替换

若要对字符串中的某些字符或子串做替换修改可以使用内建函数replace()

【语法】

字符串变量.replace(要替换的字符串,替换后的字符串)

【说明】

replace()函数作为Python中的字符串内建函数,只能对字符串使用

7.获取字符串的长度

若要知道字符串的长度可以使用内建函数len()。函数len()接收一个可迭代的对象作为参数,返回该对象中元素的个数。例如:输入一个字符串,返回的是字符串的长度,即字符串中字符的个数。


流程控制结构

在Python中有3种流程控制结构:顺序结构、选择结构、循环结构。

  1. 条件判断if/else

    1. if condition:…… else:……

    2. if condition:…… elif:……

  2. while循环

    1. while 判断条件:执行语句

    2. 死循环:while True:执行语句

  3. break/continue

    1. break,立即跳出本次循环

    2. continue,结束本次循环,继续下次循环

  4. for循环

    1. for 变量 in 序列:执行语句

    2. for循环能直接遍历字符串/数字区间/列表等序列

  5. range()函数

    1. range(x,y)从x到y-1之间的整数不包括y

在开发中,统一使用 tab 键来实现代码的缩进。

input()函数是 Python 的内置函数,实现程序与操作者交互并为变量赋值,它接收一段字符串作为参数,程序运行之后字符串将在控制台打印,这时操作者可以输入内容到控制台中,按下回车键后,input()函数就获取了输入的内容,作为变量的值。

 常用数据结构

在 Python 中可以使用列表(list)、元组(tuple)、字典(dict)和集合(set)4种数据结构来处理多个数据。

列表(list)。列表是最常用的Python数据结构,数据在列表中是有序的,可以通过索引访问列表中的数据。

元组(tuple)。元组与列表一样,保存在其中的数据也是有序的,可以通过索引访问元组中的数据。元组内的数据不能修改。

字典(dict)。字典中的数据以键值对的形式保存,字典中的键是不重复的、唯一的,通过键能够快速地获得对应的值。字典中的数据是无序的。

 集合(set)。集合中的数据是不重复的、无序的。

列表(list)

 列表中的数据是有序的,每个数据都会分配一个数字来标识这个数据在列表中的位置,称为索引。

创建列表

【语法】

变量 = [数据1, 数据2,…]

正向索引:列表中第一个数据的索引值为0,最后一个数据的索引值为列表长度减1。

反向索引:最后一个数据的索引值为-1,第一个数据的索引值为负的列表长度。

append():在列表末尾添加数据。

insert():在列表中的指定位置添加数据。

pop():移除列表中的数据并获得该数据的值。

[]:可以修改指定索引位置的数据,第2个数据的索引值为1。

del:可以删除指定索引位置的数据,第5个数据的索引值为4。

  1. 列表推导式

    1. 什么是推导式

      1. 推导式是从一个或者多个迭代器快速简介地创建数据类型的一种方法,他将循环和条件判断结合,从而避免语法冗长的代码,提高代码运行效率。

    2. 条件推导式

      1. 语法:如果 condition成立,返回值1;不成立,返回值2;

    3. 列表推导式

      1. 列表推导式是条件推导式和循环一起配合使用,并返回一个列表,并且整个表达式需要在[]内,因为返回值也是列表

      2. 语法:'''语法一: exp1:在for循环中,如果x的值满足条件表达式condition(即条件表达式成立),返回exp1;条件表达式不成立则不返回 x:for循环中变量 data:一个序列(比如:列表/元组/字符串等) condition:条件表达式'''

      3. list2=[x*10 for x in range(1,21) if x%2==0]print(list2)

二维列表

【语法】

变量 = [[元素1,元素2…], [元素1,元素2…], …]

元组(tuple)

元组中存储的数据是有序的,每个元素都可以使用索引进行访问,索引规则与列表一致。

元组的大小和元组中的元素都是只读的、不可变的。

元组中可以存储不同数据类型的数据。

创建元组

【语法】

变量 = (数据1, 数据2,…)

将元组转化成列表使用list(),将列表转化成元组使用tuple()。

字典(dict)

字典是一种以键值对(key:value)的形式保存数据的数据结构。它具有以下特点。

键必须是唯一的,但值可以是不唯一的。

 键的类型只能是字符串、数字或者元组,值可以是任意数据类型。

 通过键可以快速地获取与其唯一对应的值。

 字典中的数据保存是无序的。

 字典中的数据是可变的。

(1)创建字典

【语法】

变量 = {键1:值1,键2:值2,…}

(2)访问字典数据

字典中的数据是通过键来访问的。

【语法】

变量 = 字典[键]

(3)更新字典中的数据

向字典中添加数据和修改数据的语法相同。

【语法】

字典[键] = 值

  1. 字典推导式

    1. 字典返回值是一个字典,所以整个表达式需要写在{}内部

    2. '''语法一: key:字典中的key value:字典中的value dict.items():序列 condition:条件表达式 key_exp:在for循环中,如果条件表达式condition成立(即条件表达式成立),返回对应的key,value并作key_exp,value_exp处理 value_exp:在for循环中,如果条件表达式condition成立(即条件表达式成立),返回对应的key,value并作key_exp,value_exp处理'''{key_exp:value_exp for key,value in dict.items() if condition}'''

    3. dict2={"a":"ani","B":"baby"}dict3={key:value for key,value in dict2.items() if key.islower()}print(dict3)

集合(set)

集合中保存的数据是唯一的,不重复的。向集合中添加重复数据后,集合只会保留一个。

集合中保存的数据是无序的。

(1)创建集合

创建集合的情况分为两种。

创建一个空集合

【语法】

变量=set()

创建一个非空集合

【语法】

变量={元素1,元素2,…}

函数与模块

无参函数

无参函数就是参数列表为空的函数。如果函数在调用时不需要向函数内部传递参数,就可以使用无参函数。

【函数语法】

def func_name(参数列表):

函数体

[return 函数返回值]

不定长参数

【语法】

def func(*args):

函数体

包裹关键字参数

当参数传入到函数中后,这些传入的参数会以字典的形式组织在一起,其中关键字参数的参数名就是字典中的键,参数值就是键对应的值。

【语法】

def func(**kwargs):

函数体

函数不定长参数*args和**kwargs只能放在形参的末尾,顺序不能错.

匿名函数lambda

    1. 匿名函数语法:lambda a,b,c:expression

    2. 特点:

      1. 匿名函数有关键字lambda修饰

      2. 匿名函数冒号:之前的是函数的参数,匿名函数可以是无参匿名函数,也可以带参

      3. 匿名函数冒号:之后是表达式,匿名函数不需要写return,表达式的结果就是返回值

      4. 匿名函数不仅可以直接当做函数调用,还能直接作为函数中的参数直接使用。

函数的返回值

return关键字

return关键字的特点是执行了return语句后,就表示函数已经执行完成了,return后面的语句不会再执行。

【语法】

def func_name(参数列表):

函数体

[return [函数返回值]]

yield关键字

使用yield作为返回关键字的函数叫作生成器。生成器是一个可迭代对象,在Python中能够使用for…in…来操作的对象都是可迭代对象。

yield像一个不终止函数执行的return语句。每次执行到它都会返回一个数值,然后暂停函数(而不是终止),直到下一次从生成器中取值。

模块

在Python中使用模块来管理代码,事实上一个Python文件(一个以.py结尾的文件)就是一个模块。在模块中可以定义函数、类和变量,甚至可以包含可执行代码。

导入模块

Python 的模块分为内置模块和第三方模块。

内置模块只要安装了 Python 就可以使用,第三方模块则需要进行安装。

使用import关键字导入模块。

【语法】

from模块名import方法名或类名

给模块取别名

在导入模块时Python还允许给模块起一个别名。

【语法】

import模块名as模块的别名

#给模块中的方法或类取别名

from模块名import模块中的方法或类as别名。

创建模块

在Python中,一个.py文件就是一个模块,文件名就是模块的名字。如果调用者和被调用者处于同一文件夹下,使用关键字import加文件名即可导入模块。

包就是Python模块文件所在的目录,文件夹名就是包名。

在使用包时,文件夹下必须存在一个__init__.py文件(文件内容可以为空),用于标识当前文件夹是一个包,如果缺少了这个文件,文件夹外的文件将无法导入文件中的模块。

【语法】

import包名.模块名

常用模块

内置模块介绍

第三方模块


程序调试方法

异常概述

异常是在程序运行过程中发生的非正常事件,这类事件可能是程序本身的设计错误,也可能是外界环境发生了变化,如网络连接不通、算术运算出错、遍历列表超出范围、导入的模块不存在等,异常会中断正在运行的程序。

常见的异常

(1)NameError

当程序尝试访问一个未声明的变量或者函数时,会引发NameError异常。

(2)ZeroDivisionError

在计算的过程中,当有除数为0的情况发生时,会引发ZeroDivisionError异常。

(3)SyntaxError

程序出现语法错误时,会引发SyntaxError异常。

(4)IndexError

当使用序列中不存在的索引时,会引发IndexError异常

异常处理

Python提供的try-except语句和try-except-finally语句都能非常方便地处理异常。

使用try-except处理异常

把可能出现异常的代码放入try语句块中,并使用except语句块来处理异常。

【语法】

try:

…#语句块1

#尝试运行语句块1

except ErrorName1:

…#语句块2

#如果语句块1触发ErrorName1这种异常,运行语句块2

except ErrorName2 as e:

…#语句块3例如:print(e)

#如果语句块2没运行,且语句块1触发了ErrorName2这种异常,运行语句块3

…#except ErrorName这个语句可以有多个。类似于elif

except:

…#语句块4

#当代码1出现异常,但不是ErrorName1和ErrorName2的其他异常,运行语句块4

else:

…#语句块5

#如果语句块1运行正常,则运行语句块5,否则不运行

主要关键字:

➢ try:执行可能会出错的试探性语句,即这里的语句可能导致致命性错误,使程序无法继续执行下去。

➢ except:如果在try语句块中无法正确执行,那么就执行except语句块里面的语句,这里可以是打印错误信息或者其他的可执行语句。

➢ else:如果try语句块可以正常执行,那么就执行else里面的语句。

使用try-except-finally进行异常处理

在Python中,还有一种处理异常的语句,也是try-except语句的一个扩展,它就是try-except-finally语句。

【语法】

try:

…#语句块1

#尝试运行语句块1

except:

…#语句块2

#如果语句块1发生异常,语句块2运行…#中间可以有多个except ErrorName

finally:

…#语句块3

#不管语句块1或2运行,语句块3都运行

从语法中可以看出,与try-except语句的区别就是多了finally语句块,可以理解成无论之前try-except中有什么内容,finally中的内容都会被执行

使用raise抛出异常

【语法】

raise ErrorName #抛出ErrorName的异常

raise ErrorName()#抛出ErrorName的异常

raise #重新引发刚刚发生的异常ErrorName是异常名,类似于IndexError、ZeroDivisionError等。

利用PyCharm进行debug

1.设置断点

PyCharm提供了多种不同类型的断点,并设有特定的图标。这里只介绍行断点,即标记了一行待挂起的代码。当在某一行上设置了断点之后,通过调试模式运行程序,程序会在断点处停止,并且在调试面板中输出变量、函数等信息。

通过鼠标左键单击PyCharm编辑区域中序号和代码内容中间的区域可以设置断点。

在项目代码较多时,如果想要选择性地让某一些断点允许程序进入,而另一些断点希望程序暂时忽略,可以在断点位置单击鼠标右键,将Suspend选项取消勾选即可。

2.进入调试模式界面

设置完断点之后单击PyCharm页面中右上角的小蜘蛛形状按钮,可以使程序进入调试模式运行。

在调试界面中,最左边有一列与正常运行模式相似的图标,也有暂停、停止、启动等功能。在显示区域中有两个模块,一个模块是Frames,另一个模块是Variables。

Frames主要用于比较大型繁杂的系统,可以查看各个模块、类、方法的各种耦合结构。

(1)查看变量信息

通过Variables模块中的信息,可以查看程序进入断点时所有的变量信息,包括变量当前的值或内容、变量的类型等,

从中发现蛛丝马迹来最终确定程序崩溃的原因。

(2)常用快捷键

如果在循环中设置断点,程序第一次进入断点是在第一次循环的时候,之后如果想查看变量在循环中是如何变化的,可以通过使用F7、F8、F9三个快捷键进行下一个操作。

 F7键:step into进入,按顺序逐行停止,如果遇到函数,会进入到函数内,并在调试界面中显示运行该行代码后得到的变量信息

F8键:step over单步,如果断点设置在一行执行代码处,效果会和F7键一样;如果断点设置在函数调用的代码上,F8键将会忽略,不进入函数,直接外跳到下一行。但是调试界面中仍然会显示函数运行之后得到的变量信息,F8键适合已经确认某个函数没有错误时的调试,会比较省时间。

9键:resume program运行到下一个断点处,适合快速调试。

 Shift + F8组合键:跳出函数,当进入函数内,可以使用Shift+F8组合键:跳出函数。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python语法基础
Python那些事——关于运维,我有话要讲!
python的基本语法和脚本格式
前50个Python面试问题(最受欢迎)
Python基本语法
0基础自学Python,如何才能达到月薪2万的程度?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服