python 学习笔记

python 学习笔记1(个人理解存在误区)

注意点
1./ 运算得到结果为浮点数,整数和浮点数运算得到结果为浮点数

2.字符串不能和非整数类型相乘

3.输入类型转换是一层一层,一个命令一个命令进行的(个人阶段的理解)

4.Python中各字符串之间用逗号隔开,不同命令之间用分号隔开

**5.逗号是以“空格”的形式去连接的,两边数据类型可以不同(也可以打空格)

6.加号只能连接两个相同数据类型的,输出的字符串就要求全部都是字符串!**

7.变量名不能以数字开头,中间不能有空格

8.python使用缩进(行的开始处的空白)来分隔代码块。其他语言如C,使用{}来实现这一点,但在Python中缩进是强制性的。

9.Python中if条件句后的代码块要有:,而结果句前要有缩进(四个空格或者tab键)。而C语言中分支结构使用{}花括号来分隔条件句

10.input()函数输出的类型是字符串,要使用其他函数再进行转化

11.当在Python中打开文件时使用\’ 有时会被当成转义符,所以有时会使用\\’ 来起到避免被当成转义符的作用

12.print()==None,none是空,不等同于0,false

分支结构(选择结构)

进行多元判断时,由于未知的事项过多,尝试用条件句使其对应相应的情况,即为分支结构。在Python中,要构造分支结构可以使用if、elif和else关键字。

基本结构为: 注意:
if 条件: 1.条件句之后的代码块注意:的存在
条件成立执行的代码块 2.注意结构保持相同的结构缩进,避免
… 前缩后不缩的情况
elif 条件: 3.结果句的代码块前使用的缩进要相同,
条件成立执行的代码块 为四个空格或tab键 ,在pycharm软件
… 中会自动进行缩进不用额外操作
else:

这里我们需要注意的是,条件后一定要加“ :”,条件成立执行的代码块前要打四个空格。不同于C++、Java等编程语言,Python中没有用花括号来构造代码块而是使用了缩进的方式来表示代码的层次结构,条件成立执行的代码只需要保持相同的缩进就可以了,缩进可以任何数量空格,但是我们一般使用四个空格。

  1. 用 tab 缩进是可以的,但是要保证每行用同样个数的 tab 。
    注意点
    进行if语句嵌套时同一个if语句下必须前提满足则进行下面的代码块,若不满足则代码块终止运行

**

标识符

**
2.A:什么是标识符
就是给类,接口,方法,变量,常量等起名字时使用的字符序列
B:标识符的组成规则
(1): 英文的大小写字母
(2): 数字字符
(3): $和_
C:标识符的注意事项
(1): 不能以数字开头
(2): 不能是java中的关键字
(3): 区分大小写
标识符中的常见命名规则
A:包(就是文件夹,它的存在是为了解决我们同一个目录下不能同时存在两个相同名称的文件。)
字母都是小写 itcast

B:类或者接口
一个单词: 首字母大写,其余字母小写 Student , Teacher , Spring , Struts , Hibernate
多个单词: 每一个单词的首字母都是大写,其余字母小写 StudentName , UserLoginController

C:方法或者变量
一个单词: 字母全是小写 name , age
多个单词: 从第二个单词开始,首字母大写,其余字母小写 getName , getAge

D:常量
一个单词: 字母全是大写 NAME , AGE
多个单词: 字母全是大写,每一个单词之间使用 _ 隔开 STUDENT_MAX_AGE

循环

A.## while循环(包括代码运算符的优先级)

**1.在if语句中输出位true则会被执行,为false则不会,提前进行的if语句,else语句块不会被再次进行。

2.算符优先是Python中重要的原则(先括号,后求幂,然后乘除,再加减)

  1.     幂运算  **
          正负号  +  -
    算术操作符  ×  /   ±   
    比较操作符  <  <=  >  >=  ==   !=
    逻辑运算符   and   or    not
    

4. while循环中的代码重复执行,这叫做迭代
(while循环中while代码块为真,则循环进行,否则不进行)

5.while语句和if语句代构相同,执行时所有一个语句下的代码必须在一个代码块下运行,不能跑出来,如break语句,再循环外break语句是错误的

**6.基础格式(包含break和continue语句)
while +代码块 :
代码块
if +代码块: (此处要注意是否进行缩进,一次缩进值为4个空格
continue 或者一次tab键)
if +代码块 :
break
(注意条件函数后面的每个冒号)
注:break 语句跳出整个循环
continue 语句只是跳出当前的循环,不退出整个循环语句,若当前循环语句中仍存在未执行的代码,则不进行当前循环剩下的所有语句!

B.for in 循环 ( for in : )

1.for 相当于其他循环里的 foreach

2.在for循环中,可以重复一定次数的代码,结合具有范围对象的循环来完成,如range,由于在for循环中不需要调用范围对象的列表,因为其未被索引故不需要列表
(for 临时变量 in range(次数))

3.range(1, 101):可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间,用于for in循环中的计数

切片的注意点和类型

A.字符串切片

1.无步长的切片 list[start:stop] (start表示的是字符串要截取的开始下标,stop 表示终止的字符串结束的前一个位置)
其中,使用 : 表示从开始或结尾处截取,
s[: x] 表示从开始截取到指定位置处 ,而指定序列可为正也可为负。(正表示从左向右正向,负表示从右向左负向)

2.有步长的切片 list[start stop stride] 其中的stride表示间隔长度
反方向的截取部分的字符串:
这个时候我们将步长的那个地方设置为负数,表示从右向左取字符串,步长的绝对值大于1表示间隔的取数。
开始的部分那个截取下标也要从负数计算,或者start必须大于结束的下标,因为它是从右开始的截取的。

添加链接描述

B.列表的切片

1.可以直接使用list[ : ]切片(此处相当于前闭后开
list[:2],没有指定索引时,即从索引0开始,输出索引0到1的两个列表元素,相当于lists[0:2]。
注:当负值用于切片时其数字表示从列表的末尾处计数!!!!!!

2.遍历切片:(输出列表中的每个值)
如:
musics = [‘只想一生跟着你走’,‘开心的马骝’,‘人在黎明’,‘痛哭’];
for music in musics[:3]:
print("I love music is " + music);
返回值为:
添加链接描述

字典

3.列表中可以使用字典(相当于映射的工具,具有目录的功能)
1).只有不可变的对象可以作为字典的键(即目录)
2).不可变的对象是不能改变的对象,即列表(lists)和字典(dictionaries)
注意:字典可以存储任何类型!!!!!!!!!!!!!!!
3).新字典键既可以重新被赋值,而不仅仅是已经存在的值
4).使用get方法可以查找键是否存在于字典中

额外小技巧
复制列表:
要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。 这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表

LIsts-列表函数(用于存储索引的项目列表)

两 个 列 表 之 间 的 连 接 也 可 以 使 用 ‘+’ 来 进 行

1.第一个列表项的索引为0

2.一般逗号不会跟随列表中最后一个项目的,但将它放在那里是完全有效的

3.列表的镶嵌
things=[1,0,[1,2,3,],4.56]
print(a [2] [2])
(注意在提取输出多层嵌入的表格时要打多次代码)

4.lists列表索引时可以不拘泥于列表,可以使字符串,其每个字符和列表中的项相同

5.列表索引的某个项目可以重新再次赋值,列表list也可以添加也可以相乘,和字符串一样(字符串可以被看做是无法改变的字符列表)

6.list-检测(仍然用print输出)
1.用in语句来检查列表中是否有某个项目,如果返回True则有,如果返回False则没有(in运算符还用于确定字符串是否是另一个字符串的子字符串)

2.用not语句可以检测某个语句是否不在列表里面
7.append ( 插入或查找时,列表名和
在列表的最后添加一项 函数之间要有个英文小点)

格式: A=[a,b,c] (在最后的结果输出)
A.append(4)

8.insert函数 类似于append函数,但insert函数可以允许你在任何位置插入一个新位置,而没有限制

1).索引
**在关系数据库中,索引是对数据库表中指定字段的一种存储结构。**索引也是一张表,表中存储着索引的字段值和该值所在的物理位置。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

2).使用insert函数时可以使用index索引进行确定插入位置,也可以不使用索引,直接在insert函数中直接输入插入位置
格式:list.insert(位置,插入数)

index又可以用于查找列表,确定第一次出现查找内容在列表中的顺序,如果查找内容不在列表中则会引发

ValueError(valueerror:函数或方法虽然接受了正确的【类型】的参数,但是该参数的【值】不适当,比如int(‘nick’))

9.len函数,用来查看列表中的个数 len(list)

10.常见的list有用方法
max(list):返回列表中最大的数
min(list):返回列表中最小的数
list.count():返回一个数在列表中出现的次数
list.remove():从列表中删除第一个遇到的数
list.reverse():翻转列表中的项目(全部翻转)

list.sort():将列表的元素按照升序排序
#将sort(reverse=True)输入代表其进行降序排列
list.pop():删除列表中的一个项目
#默认值为列表的最后一项,即index默认为-1
sum():计算列表的总数

11.Range-范围 (创建一个整数列表范围对象,如果你将range本身作为一个对象,则必须将其转换为列表)
1).如果range只有一个参数,其将产生一个0到参数的列表

2).如果range有两个参数,其将产生一个从一个参数到另一个参数的列表

3).如果range有三个参数,第三个参数决定所产生的的序列的间隔,其必须
是整数

列表推导式:
在列表内进行条件代码的规定来实施列表

( 列表推导式可以包含if语句来限制列表中的值。)

元组tuple

1.元组是不可变的,使用括号或直接使用逗号间隔创建(他们无法被重新赋值)
注:空括号代表空元组

基础符号与函数运算

1.+加 -减 *乘 /除(结果返回整数) //整除 %取余 **次方运算

2.字符串格式化
既可以使用默认顺序相同类型的格式化又可以借用命名参数来完成

(相当于format函数或者f开头的代码)

print()输出中以 f开头表示在字符串内支持大括号内的python 表达式

个人理解:Python中print()前端的f是format()的缩写,所以当使用print输出时为了避免直接返回值为长字符串,使 用 在 末 尾 使 用 format()函 数 得 到 想 要 的 返 回 值 或 者 使 用 简 化 f直 接 格 式 化 字 符 串 来 得 到 结 果 。

3基本函数及其运用.
添加链接描述

4.每个函数中的代码块以冒号(:)开头并缩进;函数也可以被重新赋值并再次引用,还可以实现函数的嵌套
5.虚数
复数写有“j”作为虚部。

6.多行注释

使用三引号或者左键点击选中注释代码,松开后使用**Ctrl+/**达到同样的效果

def函数(先定义再调用)

**自定义函数,**用来创造属于自己的函数,不需要调用任何参数
注意:!!!!!!!!!!!!!!!!!一定要先定义函数才能调用函数

sqrt()函数

计算一个非负实数的平方根!!!!

return函数

返回一个可以在以后使用的值
注意:一旦一个函数代码块中返回一个值,他就会立刻停止执行,返回语句后的任何代码都不执行!!!!!!

lambda函数

跟def函数功能相同,但不会定义一个函数,仅是等同于一行代码!!!!!!!!!!!!!!

**join函数:**一个字符串列表和另一个字符串作为分隔符。
方法split 与join相反,将带有某个分隔符的字符串转换成列表。

**replace函数:**替换另一个字符串中的一个子字符串。

startswith 和 endswith函数:分别确定字符串的开始和结束是否有子字符串。

若要更改字符串的大小写,可以使用lower 和 upper.

数值函数

round(a,b):将浮点数a取整,b为精确的位数,可以不填,一般默认为精确到个位

abs():返回数字的绝对值

列表函数

all()和 any()都将 作 为 列 表 的 函 数,通 常 在 条 件 语 句 中 使 用

enumerate函数

基本应用为枚举函数,用以不同情况下的函数的枚举和代码的循环

纯函数和不纯函数

纯函数不改变输入的值,仅做处理而已;不纯函数会对输入的参数进行改变使其给出的值发生改变

map函数

map函数采用一个函数和一个迭代作为参数,并返回一个新的迭代函数,并应用于每个参数
(要注意最后结果输出要弄成表格的形式)

filter过滤器

通过删除与条件不匹配的项来过滤一个可迭代的项

生成器Generatorsd

1.yield语句:带yield函数的是一个生成器而不是函数,这个生成器有一个函数next()
yield语句相当于return语句,但是return语句会直接停止函数的后面代码的运行,但是yield语句则不会,它相当于一个节点,将值一次次的返回代入至生成器之中!!!!1

1).next()函数:next就相当于“下一步”生成哪个数,这一次的next开始的地方是接着上一次的next停止的地方执行的,接着上一步停止的地方开始,然后遇到yield后,return出要生成的数,此步就结束!!!!
2).send()函数:send函数包含next函数,在上一次yield处停止的地方再次重新开始,而且send函数可以给生成器发送参数,但当没有参数或原有生成器中已有参数存在则发送的参数无用(即发送的参数对迭代的结果不起任何作用)

Iterator迭代器 (此处为转载内容)

  1. 什么是迭代器
    迭代器是访问可迭代对象的工具
    迭代器是指用iter(obj)函数返回的对象(实例)
    迭代器是指用next(it)函数获取可迭代对象的数据
  2. 迭代器函数(iter和next)
    iter(iterable)从可迭代对象中返回一个迭代器,iterable必须是能提供一个迭代器的对象
    next(iterator) 从迭代器iterator中获取下一了记录,如果无法获取下一条记录,则触发stoptrerator异常(即当迭代器中的内容完结时,无法进行下一次的记录)
    说明:
    1.迭代器只能往前取值,不会后退
    2.用iter函数可以返回一个可迭代对象的迭代器
    ————————————————
    版权声明:本文为CSDN博主「zsj.python之路」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/zhangshuaijun123/article/details/81901708

Decorators装饰器

(使用其他函数对已有的函数进行修改)
装饰器用来进行函数的套用,当你已经定义完成了一个函数,不想再重新修改他,你可以使用装饰器,再重新设置一个新的函数,去定义之后再在里面进行函数的

Modules(模块)

是其他人编写的用于完成共同任务的代码!!!
1.使用方法:在代码的顶部添加导入模块名,然后使用访问模块中具有名称的函数和值
2.random 模块
import random
注:random.randint(low,high)函数是从其中随机选取的。

3.若只需要某个模块的某个功能,就可以使用另一种导入。
使用(from 模块名 import 变量名)然后就可以使用变量名。
4.使用逗号分隔多个项目,使用*符号来导入所有内容
5.导入未知模块会导致ImportError错误!!!!!!!!!!!!!!!!
6.在导入模块或对象具有冗长或混淆的名称时使用as关键字在不同名称下再导入

Python中主要有三种主要类型的模块

包括自己编写的,从外部源安装的,及那些用Python预装的,最后一种称为标准库!
1.python预装模块名称是 The Standard Library(标准模块)
2. pip 是一个现代的,通用的 Python 包管理工具,是easy_install的替代品,英文python install packages
3**. Python包索引(PyPI)是Python编程语言的软件存储库。**
**PyPI(Python Package Index)**是python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI。PyPI推荐使用pip包管理器来下载第三方库。

断点

断点(break point) 是指在代码中指定位置,当程序运行到此位置时变中断下来,并让开发者可查看此时各变量的值。 (因断点中断的程序并没有结束,可以选择继续执行)

个人理解:可以使用assert语句(语句和错误之间有逗号隔开)进行断点,表达式只有为True时才会正常执行

注:断点可以使用第二个参数,若断点失败,则传递给断点错误。

AssertionError异常可以捕捉和处理任何异常,但如果没有处理则异常会终止程序!!!!!!!!!

Python中文件的相关处理

open函数
1.打开函数的参数是文件的路径
2.open的第二个参数用于具体的功能
发送“r”意味着在读取模式下打开,这是默认的。
发送“w”意味着写入模式,用于重写文件的内容。
发送“a”意味着追加模式,将新内容添加到文件的末尾。
在模式中添加“b”以二进制模式打开它,它用于非文本文件(如图像和声音文件)。

close()函数
当函数被打开火使用时,可以用close函数结束
格式: 文件名.close()

读取文件
若要读取特定数量的文件,可以向读取函数提供一个参数作为参数。这决定了应该读取的字节数。
您可以在同一个文件对象上进行更多的调用,以逐字节读取文件的更多内容。

readlines返回文件

Python中读取完文件之后,使用 Readlines 方法可以使文件以列表的形式返回,其中列表的每一行对应着文件的相应行的元素(文件名.readlines)
注:在返回文件制表时使用 for in 循环可以实现自动换行,以空白行实现间隔

write函数
将字符串写入文件,如果文件不存在,此方法还会创建一个新的文件
1.当文件以写模式打开时,文件的已有内容被删除,被新的内容替代;
2.如果以写模式打开又立刻关闭文件原有内容就会被删除
3.如果在写模式下输出打印文件返回值为文件内容的字节数

处理文件
为保证代码即使在出错误时仍能关闭文件,常使用:
1.try和finally语句
2.使用with语句(即使语句出现异常,文件也会在结束语句结束时关闭)
with open(文件名)as f:
print(f.read)

常见错误语句类型

1.ImportError:导入失败
2.indexerror:一个列表用一个超出范围的数字索引
3.Nameerror:使用未知变量
4.sytraceerror:无法正确解析代码
5.typeerror:在不当类型的值上使用函数
6.valueerror:函数被调用在正确类型的值上,但具有不适当的值
7.callable:可调用
8Nonetype:不可调用的

异常处理

(try/except 语句)(当try语句执行完后匹配到第一个符合执行条件的except语句执行,其他后面的except语句不再执行)

7.要处理异常,并在发生异常时调用代码,则可以使用 try/except 语句。(个人理解:两者之一未发生错误的代码块运行!!!!!!!)
1).尝试语句可以有多个不同的块,以处理不同的异常;也可以使用括号多个异常放入一个单独的块中,让除块处理所有的异常

2).直接使用 except: 语句将捕捉所有错误。
注意:其可以捕捉意外错误并隐藏编程错误!!!!!!!!!!

3).finally语句
为了确保某些代码运行,不管发生什么错误,都可以使用最终语句。放在 try/except 语句底部,在两者之一语句块执行之后运行。
finally 语句中的代码即使在前面一个块中未发生异常时也会运行。

4).可以使用 raise语句来抛出异常(需要指定引发异常的类型)
在try/except语句中使用raise可以在保证某语块正常运行时,报出所犯错误类型
个人理解:raise语句不与其他代码产生关系,仅在犯错误时指出错误类型,其余的代码正常进行。
5).使用pass语句在except末尾进行占位,不会使代码报错,pass以后的代码不再执行!!!
可以使用continue语句跳过错误的循环继续进行下面的代码!!
6).使用break语句可以使不断循环的代码停止运行并进入到下一段代码的运行之中!!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值