python 基础学习(小甲鱼)
来源:互联网 发布:网贷平台知乎 编辑:程序博客网 时间:2024/04/27 16:34
http://bbs.fishc.com/forum.php -- 鱼c工作室
http://blog.fishc.com/ -- 鱼c论坛
https://pypi.python.org/pypi
http://bbs.fishc.com/search.php?mod=forum -- 鱼c论坛搜索知识点
在IDLE下通过键入dir(__builtins__)回车可以列出所有Python的内置函数,而每个内置函数的功能及使用方法可以使用help(内置函数名)
数据类型信息获取;
函数type(),直接给出数的数据类型,例如type(12.0)则返回float,type(1000)返回int, type(False)返回bool等;
函数isinstance()需要给出需要判断的数和一个数据类型,是则返回True,否则返回False,如isinstace(1,int)返回True ,isinstance(12.5,float)返回True,isinstance('I love u',float)返回False,而isinstance('I love u',str)返回True
列表 list:
新增元素:append 一次只能加一个元素,extend 一次可以加多个元素 (只能插入列表末尾)
insert 函数:允许用户将加入的元素放置到任何位置。insert(位置,元素)
删除元素:
remove 删除该列表中的元素,若元素不在列表中,则报错。a.remove('b')
del 通过索引值获得需要删除的元素,del a[1]
pop 不给出参数,直接返回列表中的最后一个元素,也可以给出索引参数,直接删除索引值对应的元素 m.pop(1)
列表切片(slice):a = m[1:5] , b = m[-3:-1:1]
列表内置函数:clear copy count reverse sort
逻辑操作,拼接操作,重复操作,成员关系操作
index 函数:L.index(value,[start,[stop]]) 用于寻找所输入参数在列表中的第一个位置并返回该位置值,还有两个参数可以确定寻找该值得列表范围
字符串 str
capitalize() 将字符串中的第一个字符大写,注意:只有字符串的首字符为字母时才能起到大写作用
upper,lower,casefold,swapcase,title,istitle,isupper,islower,isalnum(),isalpha,isdigit,isnumeric,isdecimal,isspace,center,ljust,rjust,zfill,strip([chars]):参数为空时删除字符串前后空格,参数不为空是,删除字符串前后与参数一样的字符lstrip,rstrip,find(sub[,start[,end]]) 和 index(sub[,start[,end]]):判断sub子字符串是否包含字符串内,包含则返回对应的索引值,不一样的地方在于,如果不包含,前者会返回 -1,二后者会报错rfind ,rindex 分别判断字符串首或尾是否以子字符串开头
partition(sub),rpartition(sub):将字符串分为 3 个元组(字符串sub左边的,sub,sub 字符串右边的),若sub不在字符串内,则返回为(原字符串,",")
replace(old,new[,count]) 和将字符串中的old字符串替换为 new 子字符串,如果count定义,则指定替换的个数,count(sub[,start[,end]]) 统计sub子字符串在字符串中出现的次数,开始和结束位置不指定为全部字符串
字符串 format 函数,花括号来表明字符串中需要格式化的位置,花括号内的值可以是位置参数或关键字参数。
'{0:.1f}'.format(27.68,'GB') 27.7
字符串格式化操作符
%s 格式化为字符串
%d 格式化为 10 进制整数
%o 格式化为八进制数
%x和%X 转换为 16 进制数(大小写字母)
%f 格式化为定点数,默认小数点后 6 位 '%f' %10.1234567 #'10.123457'
%e 和 %E 格式浮点数为 e 记法,默认小数点后 6 位
%g 和 %G 根据数字大小决定 %f 或 %e
q = True
while q:
data = input("请输入一个整数(输入Q结束程序)")
if data != 'Q':
data = int(data)
print('十进制 -> 十六进制:%d -> %#x'%(data,data))
print('十进制 -> 八进制:%d -> %#o'%(data,data))
print('十进制 -> 二进制:%d ->'%data,bin(data))
else:
q = False
print('程序已经退出循环!')
序列相关内置函数:
字符串 str,列表 list,和元组 tuple 作为序列所具有的一些共同特点以及序列的内置函数用法
list,tuple,str,len,sum,max,min,sorted,reversed,
enumerate:将可迭代对象的每一个元素与其对应的索引值组成一个元组,并返回这个由元组组成的可迭代的对象,
zip:
1.都可以通过索引访问其元素
2.默认索引值都是从 0 开始
3.通过分片方式可以得到多个元素组成新的序列类型
4.有许多共同操作符,例如重复操作符 * ,拼接操作符 +,成员操作符 in ,not in
在Python 程序内,函数、类对象、模块是最基础和最重要的部分
print(function_name.__doc__):查看函数的说明
py 文件打包成 exe 文件
python 是一个跨平台的脚本语言,写完一个py文件后原则上是可以脱离python环境在任意一个计算机系统上运行的,而实现这一步就需要打包工具,将py文件编译成可执行文件,
例如在windows 下就是 .exe文件,打包工具 cxfreeze 。
字典:当索引不好用时 {1:'one',2:'two',3:'three'}
集合:python 中集合和数学里的集合概念是一致的,都是一组元素的集,且元素之间不能重复,python 中集合的定义和字典类似,都需要大括号,区别在于集合不需要映射。
set 函数:我的世界里,你就是唯一。集合内置函数:add,remove,frozenset
文件:因为懂你,所以永恒
python 中通过 open 内置函数打开或创建一个新的文件,
打开模式,主要是关系到文件操作权限方面,默认是 'r',是以只读模式打开文件,当打开文件不存在时会报错;
当为 'w'时以写入模式打开文件,会覆盖已经存在的文件,不存在则新建一个文档
例如:open('E:\\test01.txt','w')
当参数为 'x'时,以写入模式打开文件,不存在文件时新建,存在时则报出异常问题
当参数为 'a'时,以写入模式打开文件,不存在文件时新建,存在是,则在末尾追加写入。
参数里面还有 4 个辅助参数 'b','t','+','U'分别表示以二进制打开文件,以文本文档打开文件,以可读可写模式及通用换行符,默认是一文本文档模式打开。
文件对象方法:
f.write(str) 将一个字符串写入文档,并返回当前的字符数,文档写入后内容还存在内存中,为了能否永久存在,需要执行关闭文档,即函数 f.close()
f.readline(seq) 函数,将一个字符串序列seq写入到文档中,seq 是一个字符串的可迭代对象
f.tell() 获得当前的文件指针位置,并且利用 f.seek(offset,from)来重置文件指针位置,from 为指针起始位置:0 表示从文件开头,1表示文件指针当前位置,2表示文件末尾位置,offset 为偏置字节数。
for each_line in f:
print(each_line,end='')
字节和字符的区别:
每一个汉字,字母或数字或特殊符号都算一个字符,而字节是字符所占位数大小,例如:一个字母字符是一个字节,一个汉字字符是两个字节
文件系统:一个高大上的东西
模块:调用 import random
os 模块:getcwd() 函数,获取当前工作目录,chdir() 该表当前工作目录
listdir(path='') 输出一个由指定文件目录下的所有文件名组成的列表
创建文件目录,mkdir(path) 创建单级目录,makedirs(path)可以递归创建多级文件目录
rmdir(path) 删除文件路径下的最后一层目录
removedirs(path)删除多级目录,在删除文件目录时一定要先删除目录下的所有文件,另外在使用多级目录删除时保证路径是到最后一级目录下面,程序自动递归删除空文件目录的
rename(old,new) :将文件名更新,用new替换掉old
system(command):运行操作系统的 shell 命令,例如windows 系统下 cmd 打开系统shell
walk(top) 遍历top 目录下所有子目录并返回一个三元组('路径',[路径包含目录],[路径包含文件])
支持路径操作中用到的一些定义,支持跨平台,举例说明:
os.curdir 相当于 windows 系统下的当前目录
os.pardir 相当于 windows下的上级目录
os.sep 文件路径分隔符,windows下相当于 '\\',linux下 '/'
os.linesep 行终止符,windows 下相当于 '/r/n',linux下则是:'/n'
os.name系统名称,例如 windows 系统是 'nt',苹果系统是 'mac'
os.path 模块:完成文件路径相关的函数模块
basename(path)去掉文件路径,返回文件名,如果输入的路径中不包含文件名,程序会把最后一级目录作为文件名返回
dirname(path)返回文件路径而去掉文件名,当输入的路径不包含文件名,程序也会把最后一级目录作为文件名去掉。
split(path)自动将文件目录和文件名进行切分并返回一个目录和文件名组成的元组
splitxf(path) 自动将文件名和扩展名进行切分并返回一个由文件名及扩展名组成的元组
getsize(file)获取文件大小,大小以字节为单位
getatime(file),getctime(file),getmtime(file)返回文件的访问、创建和修改时间,注意返回的数值是浮点秒,为了得到年月日时分秒的值,需要引入另一个time模块的gmtime() 和localtime()分别表示格林尼治时间和当地时间
time.gmtime(os.path.getatime(r'E:\test\test.txt'))
time.localtime(os.path.getatime(r'E:\test\test.txt'))
isabs(path) 实现对文件路径的判断,如果是绝对路径返回 true,否则返回false
isdir(path) 判断路径是否存在且是一个目录
isfile(path)判断指定路径是否存在且是一个文件
islink(path)判断指定路径是否存在且是一个链接
ismount(path)判断执行路径是否一个挂载点,对于windows系统而言就是各种盘符
samepath(path1,path2)判断两个指定路径是否指向同一个文件
永久存储:腌制一缸美味的泡菜
pickle 模块:两个内置函数 dump() ,load() 实现将复杂的数据类型打包成二进制文件并将其恢复为原数据类型
dump(obj,file,protocol=None,*,fix_imports=True) obj是复杂数据类型变量名,file是一个写入的二进制文件名,两个参数将复杂的数据类型转换为一个二进制文件保存起来,
load(file,*,fix_imports=True,encoding='ASCII',errors='static') 将保存好的二进制文件恢复成相应的复杂数据类型
异常处理:你不可能总是对的
首先是 try,被检测代码段 exceptExceptiom[as reason]
丰富的else语句和简洁的with
类和对象:一些相关的 BIF
issubclass(class,classinfo)判断一个类是否是另一个类或类组成的元组的其中一个类的子类的方法
isinstance(object,class)判断一个对象是否属于一个类或者类组成的元组的某个类
hasattr(object,name)判断一个对象内是否具有某个变量
getattr(object,name[,defalut])返回一个对象内某个成员的值
setattr(object,name,value)设置一个对象内某个变量的值
delattr(object,name)删除一个对象的某个变量
property(fget=None,fset=None,fdel=None,doc=None) 用属性设置属性,第一个参数为获取对象属性的方法名,第二个参数为设置对象属性的方法名,第三个参数为删除对象属性的方法名,可以将其赋值给一个对象属性,那么当其被一个对象调用时则调用对象内定义的获取对象属性方法,当对其进行赋值时则调用设置对象属性的方法,当用 del 语句删除时则调用删除对象属性的方法。
魔法方法一:构造和析构
3 个代表性的方法:
1.__init__(self,*.args,**kwargs)类的构造方法,在创建完对象后调用来初始化对象,且规定其返回值为 None
2.new(cls,*.args,**kwargs)类的构造方法,在创建对象时调用并返回一个类对象方法,且其调用在 __init__方法之前
3.del(self)方法,用来回收一个对象,在python中只有当对象对其引用都消失时才会调用,将该对象空间释放
魔法方法二:算数运算符http://bbs.fishc.com/forum.php?mod=viewthread&tid=48793
工厂函数:a = int("123")含义变为将 int 类实例化对象为 a 和 b 而且 a + b 会调用算数运算求和的魔法方法
算数运算符其他魔法方法概述:
__mul__(self,other) 定义乘法的行为
__truediv__(self,other) 定义真除法的行为
__flooddiv__(self,other) 定义整数除法的行为
__mod__(self,other) 定义取模算法的行为
__divmod__(self,other) 定义当被 divmod()调用时的行为,返回一个由整数和取模运算的结果的元组
__pow__(self,other) 定义当被 power() 调用或 ** 运算的行为
反运算
http://bbs.fishc.com/forum.php?mod=viewthread&tid=55593&highlight=timeit
简单定制:Mytimer 当属性名和方法名相同时,属性名会覆盖方法名 (timeit) timeit.__doc__
print(timeit.__doc__) dir(timeit) timeit.__file__ 源代码的路径 help(timeit)
属性访问:getattr(c,'y','没有这个属性')
__getattr__(self,name) -- 定义当用户试图获取一个不存在的属性时的行为
__getattribute__(self,name) --定义当该类的属性被访问时的行为
__setattr__(self,name,value) -- 定义当一个属性被设置的行为
__delattr__(self,name) --定义当一个属性被删除时的行为
046魔法方法:描述符(Property的原理)
描述符就是将某种特殊类型的类的实例指派给另一个类的属性(例子:摄氏度和华氏度的转换)
047魔法方法:定制序列.:协议
如果希望定制的容器是不可变的,需要定义方法: __len__() 和 __getitem__()
如果希望定制的容器是可变的,除了定义:__len__() 和 __getitem__()还需要定义 __setitem__()和 __delitem__() 两个方法
048魔法方法:迭代器 iter() next(): StopIteration (例子:斐波那契数列)
049乱入:生成器 yield b = {i:i %2 == 0 for i in range(10)} 10 以内的奇数和偶数
http://bbs.fishc.com/forum.php?mod=viewthread&tid=56023&highlight=%C9%FA%B3%C9%C6%F7
050模块:模块就是程序 from xxx import xx import 模块名 as 新名字
容器:数据的封装
函数:语句的封装
类:方法和属性的封装
051模块:__name__='__main__'、搜索路径和包 (模块名字)
sys.path.append("d:\\python\\test")
包 package:
1.创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字
2.在文件夹中创建一个 __init__.py 的模块文件,内容可以为空
3.将相关的模块放入文件夹中
052模块:像个极客一样去思考:python自带着电池,python 标准库 (timeit)
阅读全文
0 0
- python 基础学习(小甲鱼)
- 小甲鱼python 基础
- 学习小甲鱼python总结1
- Python 小甲鱼爬虫代理学习
- 《小甲鱼—零基础入门学习python》学习过程(一)
- 小甲鱼学python
- 小甲鱼学python
- 小甲鱼学python
- [程序语言] 小甲鱼:零基础入门学习Delphi讲全集
- Python--小甲鱼学习笔记--第32课:异常处理
- Python--小甲鱼学习笔记--第25课:初学dict()
- 【小甲鱼】001初识Python
- 小甲鱼零基础学Python课后习题第25课
- 小甲鱼零基础学Python课后习题第29课
- 小甲鱼Python第六讲课后题
- 小甲鱼Python第八讲课后题
- 小甲鱼Python第九讲课后题
- 小甲鱼Python第十讲课后题
- C++ Lambda表达式用法
- MyCat的使用
- 结合retrofit和rxjava的使用
- NOIP比赛中如何加速c++的输入输出
- Okhttp3封装工具类
- python 基础学习(小甲鱼)
- SpringMVC之图片(文件)上传
- 数组操作及方法
- ssm架構之web.xml配置
- LeetCode-025 Reverse Nodes in k-Group
- 跨域处理
- 简述47种Shader Map的渲染原理与制作方法
- 运维自动化工具Ansible-playbook
- Java第三天