文档章节

Python基本语法

ChamPly
 ChamPly
发布于 2017/08/31 13:01
字数 2492
阅读 2
收藏 0
点赞 1
评论 0

这是我自己通过学习记录下来的笔记,有错误的地方希望大家提出来,有不明白的地方请发邮件champly@outlook.com联系我,我希望与大家一起学习python,这只是一点基础,对于没有一点编程基础的人来说,相对有点不适合。这个笔记是python3.4版本的,2.*版本的有点不一样,阅读前请先阅读这段文字,希望能帮到你!

切片:a[起始位置:结束位置] -- 可以截取字符串a当中的一段字符串

         eg:a[:4] -- 从开头取到第四个

                   a[2:]-- 从第二个取到结尾

                   a[::n]-- 每隔n个单位取一个                 

                  

字符串:

         +:把两个字符串连接起来

         *:重复出现字符串的次数

         len():得出字符串的长度

         in:判断元素是否在序列中

         max():取出最大值

         min():取出最小值

         cmp(str1, str2):比较2个字符串是否相同

         count:统计参数在列表中出现的次数

         index:返回参数在列表中的位置

         reverse:把列表原地翻转

         sort:把列表进行排列(默认是从小到大)

                   sort(指定排序的算法,和算法搭配的关键字,reverse = false)

                   sort(reverse=True):从大到小

        

         注意:list2 =list1 和 list2 = list1[:]的区别

                            第一个是共用一个地址,相当于static

                            第二个是copy,一个改变不改变另外一个       

 

元组:

         单个元素不允许改变

         整体被改变的话内存空间变了

         定义的时候用()

         如果只有一个变量的话也要用','逗号        

 

列表:

         单个元素可以改变,改编之后内存空间不变

         定义的时候用[]

        

         使用方法:

                   增加一个值:列表.append();

                   删除一个变量:列表.remove();括号里面可以是 列表[] 或者是 直接写变量的值

                   del(list[]):删除一个变量的值

                  

 

-3 ** 2 = -9;

3 ** -2 = 0.1111111111111111;

 

 

else if        用     elif    来代替

 

 

assert 用于程序调试,当程序执行到这一行的时候,如果后面为假的话程序自动崩溃并

            抛出AssertionError的异常

           

           

字符串:

         capitalize():把字符串的第一个字符改为大写

         casefold():把字符串变成小写

         center():把字符串居中(左右的空格相等)

         endswith(str):字符串是否是以str结尾

         find(str):检测字符串中是否包含str,不存在返回-1

         index(str):和find一样,不存在抛出异常

         join(str):以str作为分隔符插入字符串

         replace(old,new):用new替换old

         strip():删除字符串左右两边的空格

        

        

filter(变换方法,列表):过滤器

map():和filter的用法差不多,映射,括号里的参数都是一样的

 

 

字典的清空方法:clear(),这样用是清空内存

 

 

pickle:(腌制泡菜)

         二进制文件最好是以.pkl 作为后缀

         导入到一个二进制文件:

                   temp:为一个列表,字典,或者是元组

                   pickle_file= open(path, "wb"):path是一个要保存的二进制文件的路径

                   pickle.dump(temp,pickle_file)

                   pickle_file.close():必须关闭

        

         从二进制文件导出:

                   pickle_file= open(path, "rb"):path是一个要存放的二进制文件的路径

                   temp= pickle.load(pickle_file):temp为一个列表,字典,或者是元组

                  

 

raise:自身产生一个异常

         用法:raise + 异常名

         例子:

                   输入:     raise ZeroDivisionError("除数为零")

                   结果:     Traceback (most recent call last):

                                   File"<pyshell#0>", line 1, in <module>

                                raiseZeroDivisionError("除数为零")

                                     ZeroDivisionError:除数为零

                                    

                                    

else的用法:

         和 if 搭配;

         和 while 的搭配:源代码中的:素数.py

         和 try 的搭配:源代码中的:try_else的用法.py

        

        

OS 模块中关于文件/目录常用的函数使用方法:

         函数名                                 使用方法

       getcwd()                     返回当前工作目录

       chdir(path)                          改变工作目录

       listdir(path='.') 列举指定目录中的文件名('.'表示当前目

                                                     录,'..'表示上一级目录)

      

       mkdir(path)                         创建单层目录,如该目录已存在抛出异常

       makedirs(path)                  递归创建多层目录,如该目录已存在抛出异

                                                     常,注意:'E:\\a\\b'和'E:\\a\\c'并不会冲突

      

       remove(path)            删除文件

       rmdir(path)                         删除单层目录,如该目录非空则抛出异常

       removedirs(path)     递归删除目录,从子目录到父目录逐层尝试删除,

                                                     遇到目录非空则抛出异常

      

       rename(old, new)    将文件old重命名为new

       system(command)            运行系统的shell命令

       walk(top)                    遍历top路径以下所有的子目录,返回一个三元

                                                     组:(路径, [包含目录], [包含文件])

        

         以下是支持路径操作中常用到的一些定义,支持所有平台

       os.curdir                     指代当前目录('.')

       os.pardir                    指代上一级目录('..')

       os.sep                                  输出操作系统特定的路径分隔符(Win下为'\\',

                                                     Linux下为'/')

                                                    

       os.linesep                            当前平台使用的行终止符(Win下为'\r\n',Linux下

                                                     为'\n')

                                                    

       os.name                              指代当前使用的操作系统(包括:'posix',  'nt',

                                                     'mac','os2', 'ce', 'java')

 

os.path模块中关于路径常用的函数使用方法:

         函数名                                 使用方法

       basename(path)                去掉目录路径,单独返回文件名

       dirname(path)          去掉文件名,单独返回目录路径

       join(path1[, path2[, ...]]) 将path1, path2各部分组合成一个路径名

       split(path)                           分割文件名与路径,返回(f_path,f_name)元组。

                                                     如果完全使用目录,它也会将最后一个目录作为文

                                                     件名分离,且不会判断文件或者目录是否存在

 

       splitext(path)            分离文件名与扩展名,返回(f_name,f_extension)元组

       getsize(file)               返回指定文件的尺寸,单位是字节

       getatime(file)            返回指定文件最近的访问时间(浮点型秒数,可用time

                                                     模块的gmtime()或localtime()函数换算)

                                                    

       getctime(file)            返回指定文件的创建时间(浮点型秒数,可用time模块

                                                     的gmtime()或localtime()函数换算)

                                                    

       getmtime(file)          返回指定文件最新的修改时间(浮点型秒数,可用time

                                                     模块的gmtime()或localtime()函数换算)

        

         以下为函数返回True或False

       exists(path)               判断指定路径(目录或文件)是否存在

       isabs(path)                          判断指定路径是否为绝对路径

       isdir(path)                           判断指定路径是否存在且是一个目录

       isfile(path)                 判断指定路径是否存在且是一个文件

       islink(path)                 判断指定路径是否存在且是一个符号链接

       ismount(path)           判断指定路径是否存在且是一个挂载点

       samefile(path1, paht2)判断path1和path2两个路径是否指向同一个文件

 

定义一个类:(支持多继承)

         1.类中的方法有一个 self参数,相当于 JAVA 中的 this

         2.__init__(self),构造方法

         3.对象的属性默认的都是公有的,私有变量或者方法在变量名或方

           法名前面加 "__" 两个下划线就好了(其实就是改了名的,__类名__变量名

           还是可以访问的                           

         4.继承的方法,在类名后面加一个括号,里面写上父类就好了,可以有多个

         5.调用父类的构造方法:父类的名.__init__(self) //未绑定的对象

         6.super方法,super().父类的方法();

 

类的相关方法:

         issubclass(B,A):判断 B 是不是 A 的子类

                   注意:任何类都是自己的子类,都是 object 类的子类

         isinstance(object,class):判断一个实例化对象 object 是不是 class 的

                                                                    对象

         hasattr(object,name):判断一个 name 是否属于 object 的属性

                                                           name 必须用双引号引起来,不然系统不认

         getattr(object,name[, default]):判断 name 的值,如果存在于 object 对象

                                                        则打印结果,如果不存在并且default 有东西,则打印

                                                        default中的类容,否则什么也不打印

         setattr(object,name, value):设定 object 对象的 name 属性的值,如果不存在

                                                        则新建一个属性

         deleteattr(object,name):删除 object 对象的 name 属性,如果不存在则抛异常

 

 

property(fget=None, fset=None, fdel=None,doc=None):

         用属性控制属性

        

        

__new__(cls [,]):是类调用的第一个方法

__del__(self):析构方法

 

 

关于属性的魔法方法:

         __getattr__(self,name):定义当用户试图去一个不存在的属性时的行为

         __getattribute__(self,name):定义当该类的属性被访问是的行为

         __setattr__(self,name, value):定义当一个属性被设置时的行为

         __delattr__(self,name):定义当一个属性被删除时的行为

        

 

描述符:就是将某种特殊类型的类的实例化指派给另一个类的属性

         __get__(self,instance, owner):用于访问属性,它返回属性的值

         __set__(self,instance, value):将在属性分配(赋值)的操作中调用,不返回任何内容

         __delete__(self,instance):控制删除操作,不返回任何内容

        

 

容器类型的协议:

         如果希望定制的容器是不可变的话,只需要定义:

                   __len__()和__getitem__()方法

         如果希望定制的容器是可变的话,要定义:

                   __len__(),__getitem__(), __setitem__()和__delitem__()方法

        

 

迭代器的内置函数:

         iter():

         next():返回下一个值,如果没有下一个值了,抛出一个 StopIteration 异常

        

 

raise:产生一个异常

 

 

生成器:

         当运行到 yield 时,自动挂起

         用圆括号括起来的就是生成器的推导式

        

 

模块:就是程序

         导入:

                     import 模块名   

                            用法:模块名.方法名()

                     from 模块名 import 函数名

                          用法:直接使用方法名(不建议这么写,命名空间)

                     import 模块名 as 别名

                          用法:别名.方法名()

                         

         if__name__ == '__main__'的用法:

                   判断程序是否是在测试状态

                  

         搜索路径:sys.append();加入列表里面

        

         包(package):

                   创建:1.创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字

                              2.在文件夹中创建一个 __init__.py的模块文件,内容可以为空

                              3.将相关的模块放入文件夹中

                   导入一个包:

                            import包名.模块名

2015年3月21日

by:champly 

© 著作权归作者所有

共有 人打赏支持
ChamPly

ChamPly

粉丝 11
博文 42
码字总数 32506
作品 0
朝阳
程序员
《Python从小白到大牛》简介

本书是一部系统论述Python编程语言、OOP编程思想以及函数式编程思想的立体化教程(含纸质图书、电子书、教学课件、源代码与视频教程)。为便于读者高效学习,快速掌握Python编程方法。本书作...

tony关东升 ⋅ 05/29 ⋅ 0

人工智能“网红”编程语言Python进入教材,我们应该准备些什么?

除了要学英语外,对于一些高中生,甚至小学生来说,他们未来很可能还要多学一门“外语”—— Python。 在程序员的世界中,有句广为流传的话,叫“人生苦短,快用Python”。这句话非常形象地说...

python达人 ⋅ 05/25 ⋅ 0

python2.x和python3.x的区别

Python的3.0版本,常被称为Python3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。 为了不带入过多的累赘,Python3.0在设计的时候没有考虑向下相容。许多针对早期Python版本...

leejia1989 ⋅ 05/30 ⋅ 0

Python 数据挖掘学习 一 结巴分词

近期,想对古典小说进行索引,和知识挖掘,所以研究了下python数据挖掘方面的知识 Python安装 python学习 一 python语法,及变量类型 python学习 二 爬一个图片网站上 python学习 二 02 爬一...

shuilan0066 ⋅ 01/22 ⋅ 0

Python学习你掌握对方法了吗?python自动化

阅读官方文档即可满足日常需求,官方文档有中文翻译,更加方便学习。但这些都是基础的语法和常见的模块,Python学习重要的是模块,快速、高效的开发依赖的是模块的应用,站在前人的肩膀会省时...

老男孩Linux培训 ⋅ 06/12 ⋅ 0

大数据分析挖掘学习方向?数据分析师的就业前景怎么样?

加米谷数据分析挖掘课程明细,从理论到云端实操环境到项目实战,手把手教您从0掌握数据分析与挖掘技术,带您走进数据时代。 第一阶段(python基础) python入门:1、Python版本特性介绍2、P...

加米谷大数据 ⋅ 04/17 ⋅ 0

推荐几本对于Python初学者比较好的书籍(内含PDF)

我们提供一个初学者最好的Python书籍列表。Python是一个初级程序员可以学习编程的最友好语言之一。为了帮助您开始使用Python编程,我们分享此列表。泡一杯茶,选一本书阅读,开始使用Python编...

柯西带你学编程 ⋅ 06/08 ⋅ 0

5个python爬虫教材,让小白也有爬虫可写,含视频教程!

认识爬虫   网络爬虫,如果互联网是一张蜘蛛网,网络爬虫既是一个在此网上爬行的蜘蛛,爬了多少路程即获取到多少数据。 python写爬虫的优势   其实以上功能很多语言和工具都能做,但是用...

柯西带你学编程 ⋅ 06/12 ⋅ 0

精彩源于起点——2018年潍坊市首次青少年Python编程公开课

有一种语言叫计算机语言 I want to talk with Computer 春遇到冬,有了岁月 天遇到地,有了永恒 我们拥有的, 不止是长大, 还有那份长大的悲欢经历。 未来会有很多可能, 但一切源于万象开始...

bodasisiter ⋅ 05/07 ⋅ 0

Fedora上使用Python操作MongoDB学习笔记

1. 创建Python虚拟环境 Fedora中已经安装有Python2和Python3,可执行文件的目录在/usr/bin/目录下,其中软连接为 接下来采用Python3来操作MongoDB,因此为不污染原有的系统环境,以及隔离此特...

t_huanghai ⋅ 04/21 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mysql in action / alter table

change character set ALTER SCHEMA `employees` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci ;ALTER TABLE `employees`.`t2` CHARACTER SET = utf8mb4 , COLLAT......

qwfys ⋅ 今天 ⋅ 0

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

MySQL

查看表相关命令 - 查看表结构    desc 表名- 查看生成表的SQL    show create table 表名- 查看索引    show index from  表名 使用索引和不使用索引 由于索引是专门用于加...

stars永恒 ⋅ 昨天 ⋅ 0

easyui学习笔记

EasyUI常用控件禁用方法 combobox $("#id").combobox({ disabled: true }); ----- $("#id").combobox({ disabled: false}); validatebox $("#id").attr("readonly", true); ----- $("#id").r......

miaojiangmin ⋅ 昨天 ⋅ 0

金山WPS发布了Linux WPS Office

导读 近日,金山WPS发布了Linux WPS Office中文社区版新版本,支持大部分主流Linux系统,功能更加完善,兼容性、稳定性大幅度提升。本次更新WPS将首次在Linux提供专业办公文件云存储服务,实...

问题终结者 ⋅ 昨天 ⋅ 0

springboot2输出metrics到influxdb

序 本文主要研究一下如何将springboot2的metrics输出到influxdb maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo......

go4it ⋅ 昨天 ⋅ 0

微信小程序 - 选择图片显示操作菜单

之前我分享过选择图片这个文章,但是我在实际开发测试使用中发现一个问题在使用 wx.chooseImage 选择照片显示出第一格是拍照,后面是相册里的图片。这种实现之前说过了,效果如下。 但是你从...

hello_hp ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部