python学习

一.python的类型:
1.数字:int,long,float,complex(复数)
2.字符串:
两种取值顺序:
从左到右索引默认0开始的,最大范围是字符串长度少1
从右到左索引默认-1开始的,最大范围是字符串开头
加号(+)是字符串连接运算符,星号(*)是重复操作
print str[2:5](左取又不取)

print a[-5:-2]


3.列表:
列表用[ ]标识,列表中的元素是允许更新的
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
print list[1:3] # 输出第二个至第三个的元素
[786, 2.23]
序列中的每个元素都分配一个数字 – 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
删除列表元素:del list1[2];
更新列表元素:list[2] = 2001;

[1, 2, 3] + [4, 5, 6]
[1, 2, 3, 4, 5, 6]
组合
列表函数:
(1)cmp(list1, list2):比较两个列表的元素
如果list1大于list2,则返回1;小于则返回-1
如果比较的元素是同类型的,则比较其值,返回结果
如果两个元素不是同一种类型,则检查它们是否是数字
如果是数字,执行必要的数字强制类型转换,然后比较。
如果有一方的元素是数字,则另一方的元素"大"(数字是"最小的")
否则,通过类型名字的字母顺序进行比较
如果有一个列表首先到达末尾,则另一个长一点的列表"大"。
如果我们用尽了两个列表的元素而且所 有元素都是相等的,那么结果就是个平局,就是说返回一个 0。
(2)len(list):列表元素个数
(3)max(list):返回列表元素最大值
(4)min(list):返回列表元素最小值
(5)list() 方法用于将元组转换为列表
列表方法:
(1)append() 方法用于在列表末尾添加新的对象。
list.append(obj)
(2)count() 方法用于统计某个元素在列表中出现的次数。
list.count(obj)
(3)extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。 list.extend(seq)
(4)index() 函数用于从列表中找出某个值第一个匹配项的索引位置
list.index(obj)
(5)insert() 函数用于将指定对象插入列表
list.insert(index, obj)
(6)pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
list.pop(obj=list[-1])
(7)remove() 函数用于移除列表中某个值的第一个匹配项
list.remove(obj)


(8)reverse() 函数用于反向列表中元素
list.reverse()
(9)sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
list.sort([func])
该方法没有返回值,但是会对列表的对象进行排序。修改了元素顺序。

4.元组
元组用"()"标识。内部元素用逗号隔开。但是元素不能更新,相当于只读列表。
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
print tinylist * 2 # 输出列表两次
元组中只包含一个元素时,需要在元素后面添加逗号
tup1 = (50,);
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
任意无符号的对象,以逗号隔开,默认为元组
tuple() 函数将列表转换为元组
元组的内置函数与列表的类似


5.字典
列表是有序的对象结合,字典是无序的对象集合。
字典由键和对应值成对组成。字典也被称作关联数组或哈希表
字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
键必须独一无二,但值则不必
值可以取任何数据类型,但必须是不可变的,如字符串,数或元组
可向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对
不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
键必须不可变,所以可以用数,字符串或元组充当,所以用列表就不行
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
dict[2] = "This is two"
print dict[2] # 输出键为 2 的值
print tinydict # 输出完整的字典
print tinydict.keys() # 输出所有键
print tinydict.values() # 输出所有值
删除,清空字典元素:
del dict['Name']; # 删除键是'Name'的条目
dict.clear();     # 清空词典所有条目
del dict ;        # 删除词典
字典的内置函数:
cmp(dict1, dict2)
len(dict)
str(dict)输出字典可打印的字符串表示
type(variable)返回输入的变量类型,如果变量是字典就返回字典类型。
字典的内置方法:
radiansdict.clear()删除字典内所有元素
radiansdict.copy()返回一个字典的浅复制
dict.fromkeys(seq[, value]))以序列seq中元素做字典的键,value为字典所有键对应的初始值
radiansdict.get(key, default=None)返回指定键的值,如果值不在字典中返回default值
radiansdict.has_key(key)如果键在字典dict里返回true,否则返回false
radiansdict.items()以列表返回可遍历的(键, 值) 元组数组
radiansdict.keys()以列表返回一个字典所有的键
radiansdict.setdefault(key, default=None)和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
radiansdict.update(dict2)把字典dict2的键/值对更新到dict里
radiansdict.values()以列表返回字典中的所有值


二.类型转换:
int(x [,base]) 将x转换为一个整数
str(x)  将对象 x 转换为字符串
tuple(s)  将序列 s 转换为一个元组
list(s)  将序列 s 转换为一个列表
set(s)  转换为可变集合
dict(d)  创建一个字典。d 必须是一个序列 (key,value)元组。
chr(x)  将一个整数转换为一个字符
unichr(x)  将一个整数转换为Unicode字符
ord(x)  将一个字符转换为它的整数值


三.细节:
1.比较运算符<>,不等于 – 比较两个对象是否不相等,(a <> b) 返回 true。这个运算符类似 != 。
2.成员运算符
in :if ( a in list )如果x在y序列中返回True。
not in :if ( b not in list ):如果x不在y序列中返回True
3.身份运算符
身份运算符用于比较两个对象的存储单元
is: x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not:x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1
4.条件语句:
if 判断条件:
…...
else:
…...

中间可以加上:elif 判断条件2:
5. python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
6.while循环:
while 判断条件:
执行语句……
7.while...else...和for...else...
else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行
8.for循环:
for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for iterating_var in sequence:
statements(s)
9.python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
10.python的字符串内建函数
http://www.w3cschool.cc/python/python-strings.html
11.python中的包:
在__init__.py里使用显式的导入语句


四.时间日期
1.import  time
time.time()返回时间戳
time.localtime(time.time())返回浮点数的时间辍方式向时间元组转换,struct_time元组
>>> time.localtime(time.time())
time.struct_time(tm_year=2014, tm_mon=10, tm_mday=22, tm_hour=10, tm_min=40, tm_sec=19, tm_wday=2, tm_yday=295, tm_isdst=0)
time.asctime( time.localtime(time.time()) )获取可读的时间模式的函数是asctime()
>>> time.asctime( time.localtime(time.time()) )
'Wed Oct 22 10:43:07 2014'
time.sleep(secs)
time.clock( )用来衡量不同程序的耗时
2.import  calendar
>>> c=calendar.month(2008, 1)#打印某月的月历
>>> print c
    January 2008
Mo Tu We Th Fr Sa Su
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31


五.函数
函数代码块以def关键词开头,后接函数标识符名称和圆括号()
函数内容以冒号起始,并且缩进
Return[expression]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。


def printme( str ):
print str
return
不定长参数,加了星号(*)的变量名会存放所有未命名的变量参数。选择不多传参数也可
def printinfo( arg1, *vartuple ):
匿名函数,Lambda函数能接收任何数量的参数但只能返回一个表达式的值
lambda [arg1 [,arg2,.....argn]]:expression
sum = lambda arg1, arg2: arg1 + arg2;
sum( 10, 20 )


六.文件IO
1.print语句,你可以给它传递零个或多个用逗号隔开的表达式
2.raw_input([prompt]) 函数从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符):
3.input([prompt]) 函数和raw_input([prompt]) 函数基本可以互换,但是input会假设你的输入是一个有效的Python表达式,并返回运算结果。
Enter your input: [x*5 for x in range(2,10,2)]
4.file object = open(file_name [, access_mode][, buffering])
5.fileObject.write(string);
6.fileObject.read([count]);被传递的参数是要从已打开文件中读取的字节计数
7.fileObject.close();刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入
8.重命名和删除文件:
import os
os.rename(current_file_name, new_file_name)
os.remove(file_name)
os.mkdir("newdir")
os.chdir("newdir")改变当前的目录
` os.getcwd()显示当前的工作目录。
os.rmdir('dirname')删除目录


七.关键字
1.del :删除对象
   del  var
2.函数 len() :返回列表的长度,即元素的个数
3.range()返回一个序列的数。
>>> range(7)
     [0, 1, 2, 3, 4, 5, 6]
>>> range(1,6)
[1, 2, 3, 4, 5]
4.pass是空语句,是为了保持程序结构的完整性。
5.%  格式字符串
print "My name is %s and weight is %d kg!" % ('Zara', 21)
6.dir()函数:返回的列表容纳了在一个模块里定义的所有模块,变量和函数
7.reload(module_name)重新导入之前导入过的模块,参数不是一个字符串形式
8.locals(),返回的是所有能在该函数里访问的命名。
9.globals(),返回的是所有在该函数里能访问的全局名字。



八.小程序
1.读取文件的每一行
f = open("bigFile.txt", "r")
for line in f:
    pass    # do something here
f.close()
或者
f = open("bigFile.txt", "r")
while True:
    line = f.readline()
    if line:
        pass    # do something here
    else:
        break
f.close()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值