Python基础

1.基础概论

Python是一种解释型,面向对象的,带有动态语义的高级程序设计语言。

运行不像编译语言那么快,但是可以用C实现制约性能的关键部分,让他们和Python编写部分相互协作。

python交互式解释器;ctrl+D退出解释器

交互式python shell:Python集成开发环境(Python Integrated Development Environment IDLE),只要运行Python GUI就可以进入,按键F1或者选择help-python docs进入python文档

>>>:python提示符

命令行版本采用^指明错误

输入help获得帮助

Python除法:实数(浮点数float)进行运算,只要有一个数是浮点数,结果就是浮点数/Python改变除法执行方式,执行普通除法,程序前面加上如下:

                from __future__ import division

//:实现整除的操作

%:取余(每10分钟xx,就可以采用取余运算%10 结果是否为0)

**:幂(乘方)运算符

长整数和整数可以混合使用,除非需要类型检查

十进制和八进制首位数字都是0

=:就是将数值赋值给了变量,或者说是变量绑定到了数值上面

变量名:包括字母,数字下划线,不能以数字开头

表达式是某件事情,语句就是做某件事情,语句改变了事物

Python3以后,print()成为函数

pow():计算幂,乘方,这类标准函数成为内建函数

abs():数的绝对值

round():浮点数四舍五入转为整数

floor():向下取整;ceil():向上取整

sqrt():计算平方根,cmath.sqrt():处理负数平方根

import:把模块想象成导入到python的扩展,然后使用模块.函数格式使用模块的函数,事实上,可以采用foo=math.sqrt()进行赋值,然后采用foo进行计算;而使用from math import sqrt形式时候,直接使用函数不用模块作为前缀。

类型转换不是普通的函数,它们是类型对象(type object)

nan:not a number


除非真的需要form形式模块导入语句,负责坚持使用普通import

Python提供了对复数的支持

#!:pound bang/shebang,其后加入用于解释脚本程序的绝对路径,如下:#!/usr/bin/env python

#!/usr/bin/python2,具体路径和系统有关,然后运行方式:chmod a+x hello.py    hello.py或者./hello.py

hello.pyw:windows上专用文件类型

\:对字符串引号转义,单引号就是字符串字符,而不是结束标记

str函数:把值转换为合理形式字符串,repr函数:创建一个字符串,合法的python形式表示值;

str,repr,反引号都是将python值转换为字符串,str使得字符串更易于阅读,repr和反引号转换为合法的python表达式;

raw_input,input:前者会把所有输入当做原始数据,然后放入字符串中,后者要求用户输入字符串,所以坚持使用前者;

长字符串:三个引号代替普通引号,可以在字符串之中同时使用单引号和双引号,不需要反斜线转义

一行之中最后一个字符反斜线,换行符本身就转义,也就是被忽略了;

原始字符串:以r开头,可以放入任何字符



2.列表和元组

数据结构就是通过某种方式组织在一起的数据元素的集合,这些数据元素可是是数字或者字符,甚至可以是其他数据结构;

sequence序列:列表和元组,元组除了不能更改以外,其他性质和列表都类似

内建序列:列表和元组,字符串,Unicode字符串,buffer对象和xrange对象

序列操作:索引(indexing),分片(slicing),加(adding),乘(multiplying),以及检查某个原色是否属于序列成员(成员资格),计算序列长度,找出最大元素,最小元素内建函数;

索引:

字符串就是一个由字符组成的序列,索引0指向第一个元素;

字符串字面值能够直接使用索引,而不需要一个变量引用他们;

可以直接对返回结果进行索引操作;

分片:

访问一定范围内元素,分片通过冒号隔开两个索引来实现;

分片操作对于提取序列一部分很有用,第一个索引是要提取的第一个元素编号,最后的编号是分片以后剩余部分的第一个元素,总之,分片操作就是提供两个索引作为边界,第一个索引包含在分片内,第二个不包含在分片内;

只要分片左边序列比右边序列晚出现,就是空序列,所以,如果分片部分包含结尾元素,只需要置空最后一个索引;

复制整个序列时候,将两个序列都置空;

步长:分片操作就是按照这个步长进行逐个遍历序列元素,然后返回开始和结束处所有元素;

如果需要将每x个元素第一个提取出来,只需要步长设置为x就可以;

步长设置为负数,分片将从右向左提取元素nunber[8:3:-1],必须让开始点索引大于结束点;

对于一个正数步长,会从序列头部开始向右提取元素直到最后元素,对于负数步长,从序列尾部开始向左提取元素直到第一个元素;

序列相加:

形同类型的序列才能进行连接操作;

乘法:数字x乘以一个序列,新生成的序列为原来的序列被重复x次;

空列表通过两个中括号表示,里面什么东西都没有;

None内键值:含义是什么都没有;

成员资格:

in运算符:检查条件是否为真,为真返回true,为假返回false,返回的值叫做布尔值;检查字符是否在字符串中,检查序列是否在列表中;

长度,最小值,最大值:

len():返回序列中元素数量,min():返回最小数值,max():最大值;max和min函数的参数并不是一个序列,而是多个数字直接作为参数;

list():根据字符串创建列表,适用于所有类型的序列,不只是字符串;

‘’.join(somelist):将一个由字符串组成的列表转换为字符串,somelist为需要转换的列表;

分片赋值:一次为多个元素赋值;可以使用与原序列不等长的序列分片替换;可以在不需要替换任何原有元素的情况下插入新的元素;

方法:就是和对象密切联系的函数,对象可以是列表,数字,字符串,调用方式:对象.方法(参数);

extend和连接区别:前者修改了被扩展的序列,后者返回一个全新的列表;

index():从列表中找出某个值第一个匹配项的索引位置;

pop():移除列表中的一个元素,默认最后一个,同时返回该元素值;

remove():移除列表中某个值的第一个匹配项;

sort():原位置对列表排序,意味着改变原来的列表,而不是简单的返回一个排序的列表副本;

y=x[:]:得到包含x所有元素的分片,一种很有效率的复制整个列表的方法;y=x:只是简单赋值,这样就让x,y指向同一个列表了;

元组:

创建元组逗号分割值,就自动创建了元组;大部分通过圆括号表示;实现一个值的元组,需要加逗号;

tuple():序列作为参数转为元组;

字符串:

所有序列操作(索引,分片,乘法,判断成员资格,求长度,最大值最小值),对于字符串同样适用;

字符串格式化适用字符串格式化操作符即%实现;左侧放置一个字符串(格式化字符串),而右侧放置希望被格式化的值;如果使用列表和其他序列代替元组,序列就会被解释成一个值,只有元组和字典可以格式化多个值;

%s:转换说明符,标记了需要插入转换值的位置,s表示会被格式化为字符串;因为格式化说明符总是以表示类型的字符结束,所以精度应该放在类型字符前面;如果要在字符串里面包含%,必须使用%%,这样python就不会将百分号认为为转换说明符了;

如果右侧操作数是元组的话,其中的每一个元素都会被单独格式化,每个值都需要对应一个转换说明符;如果需要转换的元组作为转换表达式的一部分存在,必须使用圆括号括起来;

find():查找子串,返回最左侧索引;,如果没有返回-1;这个方法还可以接受起始点和结束点参数,但是包含起始点不包含结束点,python的惯例;in只能用来查找单个字符;

join():连接字符串,连接的元素必须是字符串;,‘/’.join(dirs);

lower():返回字符串小写字母版;title()和capwords()把单词首写字母大写;

replace():返回字符串的所有匹配项被替换之后得到的字符串,类似于查找和替换;

split():将字符串分割成序列,如果不提供分隔符,程序会把所有空格作为分隔符;

strip():出去两侧空格的字符串;也可以指定去除的字符串,将他们作为参数就可;和lower结合可以对比输入和存储的值;

translate():只处理单个字符替换,但是可以同时进行多个替换;


映射(mapping):

字典是python唯一内建映射类型;字典中的值并没有特殊的顺序,但是都存储在唯一特定的键key下,键可以是数字,字符串,元组;

实质就是通过查找特定的词语(键),来找出他的定义(值);

字典创建通过{}创建,由多个键和对应的值,键值对组成,每个键和值之间用:隔开,项之间用,分开,整个字典使用一对大括号括起来;空字典由两个大括号组成;

字典中的键是唯一的,而值是不唯一的;

dict():通过其他映射或者(键,值)对的序列建立字典;也可以通过关键字参数建立字典;

字典中检查键的成员资格比在列表中检查值的成员资格高效;

键是任意不可变类型;

字符串格式化说明符:右侧使用字典而不是元组,后面加上键(用圆括号括起来),后面再跟上其他说明元素;这种字符串格式化在模板系统很有用,string.Template类;

clear():清除所有项,无返回值或者说返回none;

copy():返回一个相同的键值对的新字典;

formkeys():使用给定的键值建立新的字典,每个键对应一个默认的值none;dict是所有字典的类型,采用dict.formkeys([xx,xx]);如果不想采用默认值,可以提供参数作为默认值;

get():访问字典中的项;访问一个不存在的键时,没有任何异常,而得到none值,可以定义默认值,替换none(d.get('name','N/A'));如果键存在就像普通的字典查询一样;

hash_key():检查字段中是否含有特定的键;d.hash_key(k)相当于表达式k in d;

items():将字典的所有项按照列表的形式返回,列表中的每一项都表示(键,值)对的形式,但是项在返回的时候没有遵循特定顺序;iteriems()方法类似,但是返回的是一个迭代器对象而不是列表;

keys():将字典中的键以列表的形式返回,iterkeys则是返回针对键的迭代器;

pop():获取给定键的值,然后将这个键值对从字典移除;

popitems():一个接一个移除项从字典中;

setdefault():获得与给定键关联的值;还能再字典中不含有给定键的情况下设置相应的键值;

update():利用一个字典更新另外一个字典;提供字典的项目会被添加到旧的字典中,如果有相同的键进行覆盖;

values():以列表的形式返回字典中的值,itervalues():返回值的迭代器;返回值的列表可以包含重复的元素;


对象:

object看做是数据(特性)以及由一系列可以存取,操作这些数据的方法组成的集合;

多态:不同类的对象使用同样的操作;

封装:对外部隐蔽对象的细节;

继承:通用的类为基础建立专门的类对象;

所有子类的所有实例都有这些方法,定义子类只是,也有可能重载,定义更多的方法的过程;



















































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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值