学习python第二天
来源:互联网 发布:csgo优化脚本 编辑:程序博客网 时间:2024/05/16 11:16
北京时间2015年1月28日9点44分。python第二天。启东今天很冷,一个人躲在家里开着取暖器,学学东西写写博客也不错。
废话不多说。昨天学习了一些python的一些基础知识,并主要学习了python的两种基本的数据类型(列表和元组)。下面我们来学习另外两种python的数据类型(字典和集合)
字典:dict
python内置了字典,在其他语言中称为map,使用键值存储,具有极快的查找速度。
定义方式: dictionary={key:value} #当有多个键值时,用逗号进行分割
#-*-coding:utf-8-*-def main():dict = {'zhangsan':1, 'lisi':2, 'wangwu':3, 'jack':4}print dict #print出来的结果是没有顺序的print dict['lisi'] #结果应该是2"""字典的添加,删除,修改"""dict['rose']=5 #添加del(dict['zhangsan']) #删除dict['lisi']=1 #修改print dictprint dict.pop('wangwu') #删除指定元素并返回其值print dictfor k in dict: #字典的遍历print "dict[%s]="%k,dict[k]dict.clear() #删除字典中的所有键值对print dictif __name__=="__main__":main()关于dict还要一些需要注意的:
#-*-coding:utf-8-*-def main():dict = {'zhangsan':1, 'lisi':2, 'wangwu':3, 'jack':4}#通过 in 判断 key 是否存在print ('zhangsan' in dict) #in 则返回Trueprint ('Zhangsan' in dict) #not in 则返回False#通过 get 判断 Key 是否存在print dict.get('zhangsan') #in 则返回 1print dict.get('zz')#not in 则返回 Noneprint dict.get('zz', -1)#key不存在时也可以自己指定返回值if __name__=="__main__":main()dict可以用在需要高速查找的很多地方,在python代码中几乎无处不在,正确使用dict非常的重要,需要牢记dict的key必须是不可变对象
集合: set
set和dict一样,也是一组key的集合,但不存储value,由于key不能重复,所以,在set中,没有重复的key,重复元素在set中自动被过滤:
要创建一个set,需要提供一个list作为输入集合
#-*-coding:utf-8-*-def main():a=[1,2,3,4,5]b=set(a)print bb.add(6) #向集合中添加元素print bb.remove(4) #删除集合中的元素print b#如何用set来找到两个list中相同的元素a=["11","22","33"]b=["11","33","55"]c=set(a)&set(b)print c#是不是很好用啊,哈哈哈if __name__=="__main__":main()
对于可变对象,比如list,对list进行操作,list内部的内容是会发生变化的,而对于不可变对象呢?比如str?我们来看下面的代码:
#-*-coding:utf-8-*-def main():a = ['c','b','a'] #对可变对象进行操作,内容是会变化的a.sort()print aa = 'abc' #对不可变对象(字符串)进行操作,内容不会改变print a.replace('a','A')print a
<pre name="code" class="python">if __name__=="__main__":main()运算符与算术表达式:
+,-,*,/,
%(求余数), **(求幂), //(取整数)
#-*-coding:utf-8-*-def main():x = 4y = 3print y**x #求幂,3的4次方print x%y #求余数print x//y #取整除print x/y #普通除if __name__=="__main__":main()
赋值运算符与赋值表达式:=, +=都支持
逻辑运算符: and or not. 注意:在python中参与逻辑运算的不限于布尔类型,任何类型的值都可以参与到逻辑运算中。
关系运算符与关系表达式: ==, !=, >, <, >=, <=,
流程控制:
条件语句if, elif, else:
循环语句for...in...; while...
<span style="font-size:14px;">#-*-coding:utf-8-*-"""day02_06"""def main():#我们用raw_input()输入数字,但是raw_input()读取的内容永远以字符串的形式返回,所以我们要先对其强制转换age = int(raw_input('your age is: ') )if age >= 18:print 'your age is', age, ', you are an adult'elif age >=6:print 'your age is', age, ', you are a teenager'else:print 'your age is', age, ', you are a kid'#用for循环计算1+2+...+100sum = 0num = range(101)for x in num:sum = sum + xprint sum#用while循环计算1+3+5...+99sum = 0num = 99while num > 0:sum = sum + numnum = num -2print sumif __name__=="__main__":main()</span>
函数:
首先我们来看一下python内置的一些函数:http://docs.python.org/2/library/functions.html
对于函数来说,函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给另一个变量,相当于给这个函数起了一个”别名“:
#-*-coding:utf-8-*-def main():a = abs #变量a指向abs函数 print a(-3) #所以也可以通过a调用abs函数if __name__=="__main__":main()空函数 :pass. pass语句什么都不做,只是用来作为占位符
下面我们来定义一个函数来求输入参数的绝对值:
#-*-coding:utf-8-*-def my_abs(x):if not isinstance(x,(int,float)): #isinstance完成数据类型的检查raise TypeError('bad operand type') #出错就返回错误信息,raise类似于java中的throwelif x >= 0:return xelse:return -xdef main():print my_abs(10)print my_abs(-10)print my_abs('c')if __name__=="__main__":main()函数可以返回多个值吗?可以,但是事实上这只是一种假象,函数返回的依然是单一值,但这个单一值可以是一个tuple.此处就不举例了。
有些时候我们定义函数的同时需要为其设定默认参数:
#-*-coding:utf-8-*-def pow(x,n=2): #默认参数为2,不传入时就为2s = 1while n > 0:s = s * xn = n - 1return sdef enroll(name, gender, age=6, city='beijing'): #招生的一个函数print 'name is ', nameprint 'gender is ', genderprint 'age is ', ageprint 'city is ', citydef main():print pow(3)print pow(3,4)enroll('zhangsan','male')enroll('lisi','female',7)enroll('wangwu','male',city='Tianjin') #如果不按顺序传入默认参数的话,需要把参数名称写上if __name__=="__main__":main()
在Python中,还可以定义可变参数,顾名思义,可变参数就是传入的参数个数是可变的:
#-*-coding:utf-8-*-"""day02_10"""def calc(*numbers): #计算传入参数的平方和sum = 0for n in numbers:sum = sum + n*nreturn sum def main():print calc(1,3,5,7)lis=[1,3,5,7]print calc(*lis) #python支持把list与tuple的元素变成可变参数传进去tup=(1,3,5,7)print calc(*tup)if __name__=="__main__":main()关键字参数允许你传入0个或者任意个含参数名的参数。这些关键字参数在函数内部自动组装成为一个dict,当然也可以先组装出一个dict,再将其转化为关键字参数传进去
#-*-coding:utf-8-*-"""day02_11""" def person(name, age, **kw): #函数除了必选参数外,还接受关键字参数kwprint 'name:',name,'age:',age,'other:',kwdef main():person('zhangsan',30) #只传入必选参数person('lisi',30,city='beijing') #传入一个含参数名的关键字参数person('wangwu',28,gender='male',job='engineer') #传入两个含参数名的关键字参数#关键词参数在函数内部自动组装成为一个dictif __name__=="__main__":main()在python中定义函数,可以用必选参数,默认参数,可变参数和关键字参数。这四种参数可以一起使用。但是请注意,参数定义的顺序必须是:必选参数,默认参数,可变参数和关键字参数。
ok,Python第二天的内容就是这么多,继续努力啊少年。
如果你觉得自己行的话,那么就要让所有人都看到。
- 学习Python第二天
- 学习第二天python
- Python 学习第二天
- Python学习第二天
- 学习python第二天
- 学习python第二天
- Python学习第二天
- python学习第二天
- python 学习第二天
- python学习第二天
- 学习python第二天
- Python学习第二天
- 第二天学习python
- python--学习第二天
- Python 学习 第二天
- 【学习Python】第二天
- python学习第二天
- python学习---第二天
- C语言及程序设计初步例程-7 分支结构程序体验
- 利用SharpZipLib实现解压缩
- VB.net总结
- 经常逛的网站和一些不错的个人博客(苹果开发方面的)
- 通识基础_原码 反码 补码
- 学习python第二天
- ADS-B显示终端6.7
- Using R — Callling C code with Rcpp
- 服务端Socket的选项
- 详解Java中的clone方法
- Vim中设置空格(space)代替tab键
- Spring系列(2)--为什么需要动态代理
- AS3.0 数组(Array)
- 在类中声明时可以赋值的元素