VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > python入门教程 >
  • 学python的第5天(按第五天算吧)

没想到之前刚发了园子就开始停了。这段时间有些笔记我都记在文档里了。在这里就直接发出来了。东西也不是很多。最近我打篮球崴脚了象个馒头,从单位回家了,也没啥心情学习了。最近效率几乎为零。但是人得往上奔啊!最近写的东西也很乱,凑合一下吧

 

若元组中只有一个元素,务必要添加一个逗号,否则不是元组  a = (,)

Python面试题

 

V1 = 10 and 99  输出啥?  99

学会在py中如果将0、“ ”、[ ] 、{ }、()、None转成布尔值的时候,false,其他都是true

现在将第一个值转成布尔值:true,整体结果取决于那个值(后面的),结果就是那个值

所以  v2=0 and 22  输出 0

Or 和and一个道理

如果and和or同时出现的时候,and优先级大于or的优先级

 

Python操作文件

  1. 找到文件,打开   f = open(filename,mode=”…”) mode= w r a 。文档里面有数据的时候,追加数据mode = “a” 如果要是w的话文档会被清空之后再追加
  2. 读,修改         f.read( ) 读所有     f.write(sdfdsfdsfdsf)写
  3. 保存&关闭  f.close()   自动保存

文件打开模式:只能以一种模式操作文件。读 、写、打开。不能同时。就是在write的时候不能print(f.read() ) 会报错

读  r  read

写  w  write

打开  a  append

 

For i in range(100) 相当于生成一个列表[0 ……99]

 

其他常用方法:filename.readline(number)  读取前……个字符。为空的话读第一行

Seek(number)光标从初始位置走多少个字节。中文一个字三个字节。英文一个

 f.tell ( ) 返回当前光标位置

 

打开文件的三种混合模式:mode = ……

w+  写读,创建新文件,写一段内容,再读出写出的内容。没什么卵用

r+  读写。能读能写,但都是写在文件的最后,和追加一样

a+ 追加读。文件一打开时光标就会在文件尾部,写的数据全毁是追加形式

 

修改文件

 

 

 

Str.strip () 移除字符串头或尾的指定字符,默认为空格。中间字符不动

Str.split()

 

字典 dict.items()之后,返回的是带有键值元组的列表,也就是说每个元组中有两个元素。可以用两个变量循环,解出元组中的键和值。 for v,a in dict.items(): 

 

 

 

函数:

定义函数:def  name():     # 函数名。括号内可传参数,没有参数空着

函数名写法:say_hi()  下划线式

函数的参数只能在函数中用。想要调用函数的结果,必须要函数return返回函数的结果才可以用

 

形参:相当于占位符。只在函数内部有效

实参:可以是常量,变量。表达式,函数等

位置参数:就是按着形参的顺序传入实参

关键参数:传入实参无视顺序,实参为:形参=…

优先级:未知参数 > 关键参数/默认参数

非固定参数:定义函数时,不确定之后调用时会传入几个参数进来。实参加入*args,**kwargs

*args是元组,用来传入位置参数(value)  **kwargs是字典,用来传入关键参数(name=value)

def info(name,*args,**kwargs):

Print(name,args,kwargs)

  Info(“alex”,22,beijing,sex=”male”) 位置参数以元组形式存储,关键参数以字典形式存储

形参有几个,实参就要传几个。按顺序传

默认参数:在设形参的时候给形参赋值,用实参传值的时候如果没有传入默认参数的值,则该参数按默认参数的值来走。    默认参数必须要写在所有参数最后

 

Python中,函数内部定义的变量是局部变量。外部定义的变量是全局变量

变量查找顺序 局部>全局。现在本层找,没有一层,一层往上找

函数内部可以调用全局变量。但是不可更改全局变量。局部变量只能在函数内部使用,外部无法调用。

Locals()  所有局部变量  print(locals())

Globals() 所有全局变量  print(glocals())

Locals 和 globals 都是字典形式

函数内部声明全局变量:

global name

Name = “alex”  先声明,后赋值。要分开

外部列表,集合,字典传入函数中,在函数中更改之后外部随之更改

 

函数嵌套:函数中有函数

内部函数和局部变量一样,只能在局部使用

 

匿名函数:没有名字的函数。用lambda声明。 c = lambda x,y: x**y

匿名函数中不可加循环,判断等,最多的就是三元表达式了。

 

高阶函数:函数的参数除了str,int,list,dict,cuple等,参数为函数

Abs() 取绝对值

高阶函数条件满足一个即可:1.接受一个或多个函数作为输入

  1. return返回另一个函数

Def get_abs(n):    #定义取绝对值的函数

Return(int(str(n).strip(“-”)))

Def add(x,y,f):   #f作为可传入的函数的形参

Return f(x)+f(y)

Print(add(5,10,get_abs))   #调用参数函数,参数函数不加(),否则就是直接调用了

 

函数的递归: 自己调用自己。默认有次数限制(1000左右,忘了),每次递归是一次压栈,次数太多会造成栈溢出。

练习:用二分法递归查询一个数是否在列表中存在

 

 

 

一些内置函数:

Bin()转二进制

Enumerate():将列表的索引和值以元组方式一对一打印 enumerate(list)

 

名称空间:存放名字的地方。若变量x=1,1存放于内存中,那么x存放在哪呢?名称空间就是存放名字x与1绑定关系的地方

名称空间有四个:

locals:函数内部的名字空间,一般包括函数的局部变量以及形式参数

globals:当前模块空间。类似全局变量

enclosing function:在嵌套函数中外部函数的名字空间,若fun2嵌套在fun1中,对fun2来说,fun1的名字空间就是enclosing

__builtins__:内置模块空间,存储内置方法

 

闭包现象:函数正常执行完毕之后会释放掉,但是由于内层函数还在调用外层函数中的变量,而且外层函数返回了内层函数,这种情况叫闭包。

Def out():

         Name = “bob”

         Def inner():

                  Print(“inner”,name)

         Return inner

 

装饰器:在不改变源代码和调用方式的情况下添加功能

 

列表生成器

 

函数生成器:函数中的print改成yield就好。yield暂停。P92

 

线程:cpu执行的任务单元

 

迭代器:

可迭代对象iterable  可迭代就是可循环,可遍历

Isinstance()判断对象是否是可迭代对象isinstance({} , iterable)返回布尔值

 

 

模块:可以避免变量名,函数名的冲突

模块分类:标准模块(内置模块)300个左右

                    第三方模块  18W多   额……  需要单独安装  pip install

                    自定义模块:自己写的

调用:import ……模块名称

 

           From 模块名 import 模块中的方法 from my_moudle_a import sayhi方法可不加参

使用模块中的方法:moudle name.方法    my_moudle_a.sayhi()   #方法之后要加参数

 

模块调用:一般先从当前文件下寻找模块,再按顺序从其他的文件找

第三方模块,一般通过pip安装。其他方法用的比较少。文件中存放第三方模块的文件夹Site-packages

 

Pip安装模块。如果电脑有多个版本可以选择python的版本。命令的时候pip3(py3)pip2

一般pip下载的来源地址服务器在国外,下载很慢。所以从国内的镜像网站豆瓣源下载。需要指定下载地址。

例如:pip install -I http://pypi.douban.com/simple/alex_sayhi –trusted-host pypi.douban.com

 

系统调用模块:os 、sys

时间处理模块:time 、datetime

随机数模块:random(可用来做验证码)扎金花

序列化:pickle、json  把字典里的东西通过一定规则存到硬盘上。反序列化:把硬盘上的数据通过一些列规则转成字典类型

 

来源:https://www.cnblogs.com/xiaoyuheng/p/14599172.html


相关教程