学一点记一点之Python
来源:互联网 发布:软件售后合同范本 编辑:程序博客网 时间:2024/04/30 06:31
(格式提示,标题2,标题3)
没想到大学里看的那点儿Python,到了现在完全已经忘记了。于是随学着随记一点吧。
0,基本语法
0.1 逗号
python里的逗号简直是逆天(hui san guan)的存在啊
示例代码1:
>>> a,b='misaka','mikoto'>>> a'misaka'>>> b'mikoto'
0.2 函数可以有多个返回值
测试代码:
#测试函数里可以有多个返回值def get_info(): return 'misaka',17001,{'nennrei':20}v1,v2,v3=get_info()print(v1)print(v2)print(v3)输出
misaka
17001
{'nennrei': 20}
注意:
17001
{'nennrei': 20}
注意:
1,返回值的个数跟接收的变量的个数应该是相等的,不能多也不能少
2,返回的是按照顺序的,都是从左到右
0.3 字符串的格式化
示例代码:
>>> a=('goetze is number %d in die Mannschaft'%(19))>>> a'goetze is number 19 in die Mannschaft'>>> a=('%s and won the word cup in 2014'%(a))>>> a'goetze is number 19 in die Mannschaft and won the word cup in 2014'可以看到,这里的a是可以被改变的。
1,字典
1.1 字典的建立
示例代码
kanojyo={'name':'c','age':20}; #建立一个人物,指定姓名和年龄信息kanojyo['exinfo']={}; #字典里可以再嵌套一个字典kanojyo['exinfo']={'post_code':300072,'address':'tj university'}; #设置嵌套里的字典的字段exinfo=kanojyo.get('exinfo',{}); #可以用一个临时数据address=exinfo.get('address','un-known'); #获得某些信息并打印print("kanojyo's address is %s"%(address));
1.2 Get方法
get是可以连用的,示例代码
>>> cyl={'name':'cyl','age':20,'exinfo':{'address':'tju','post_code':300072}}>>> cyl{'age': 20, 'name': 'cyl', 'exinfo': {'post_code': 300072, 'address': 'tju'}}>>> cyl.get('exinfo',{}).get('address')'tju'>>>
输出
noumi
misaka
chino
kud
mikoto
kafuu
misaka
chino
kud
mikoto
kafuu
示例代码
>>> kurasu={'chino':'kafuu','misaka':'mikoto','noumi':'kud'};>>> kurasu.keys()dict_keys(['noumi', 'chino', 'misaka'])>>> kurasu.values()dict_values(['kud', 'kafuu', 'mikoto'])
1.3 keys()、values()和items()
#测试字典里的items keys kurasu={'chino':'kafuu','misaka':'mikoto','noumi':'kud'};for k in kurasu.keys(): print('%s'%(k))print('')for v in kurasu.values(): print('%s'%(v))
1.4 len()
len函数可以获得字典里的条目的“个数”测试代码
>>> dic={'misaka':'mikoto','noumi':'kut','kafuu':'chino'}>>> len(dic)3 <span style="color:#3366ff;">#字典里有3个条目(而不是6个)</span>>>> len(dic.keys())3 <span style="color:#3366ff;">#字典里有3个key</span>>>> dic['exinfo']={'asada':'shino','chitanda':'eru'}>>> dic{'noumi': 'kut', 'kafuu': 'chino', 'misaka': 'mikoto', 'exinfo': {'chitanda': 'eru', 'asada': 'shino'}}>>> len(dic) <span style="color:#3366ff;">#扩充后的字典有4个条目</span>4>>> len(dic.get('exinfo',{}))2 <span style="color:#3366ff;">#扩充的长度为2</span>
1.5 字典的列表(或叫做对象的数组)
示例代码如下:
>>> a=[{'kaf':'chn','msk':'mkt','ctd':'eru'},{'nou':'kut','asd':'sno'}]>>> a[1]{'nou': 'kut', 'asd': 'sno'}>>> a[0]{'kaf': 'chn', 'ctd': 'eru', 'msk': 'mkt'}>>> a[0].get('kaf','nill')'chn'>>>这样,通过从0开始的下标就可以访问数组中的每一个字典了
2,类
2.1 类里的成员变量
示例代码(错误的代码)
#测试类里面的下划线的作用class misaka: def __init__(self): self.bango=17001; def who(self): print("misaka number: %d"%(bango));
这样运行会提示:
Line6 NameError: name 'bango' is not defined
示例代码(正确的代码)
#测试类里面的下划线的作用class misaka: def __init__(self): self.bango=17001; def who(self): print("misaka number: %d"%(self.bango));得到了正确的结果:
misaka number: 17001
示例代码(正确的代码)
#测试类里面的下划线的作用class misaka: def __init__(self): self.bango=17001; def _next_one(self): self.bango=self.bango+1; def who(self): print("misaka number: %d"%(self.bango));是可以运行的,可见类外面也可以用带下划线的函数
>>> from leilidexiahuaxian import misaka as m
>>> a=m();
>>> a.who()
misaka number: 17001
>>> a._next_one()
>>> a.who()
misaka number: 17002
>>>
>>> a=m();
>>> a.who()
misaka number: 17001
>>> a._next_one()
>>> a.who()
misaka number: 17002
>>>
示例代码(代码是正确的,但是没有按照目的进行执行)
class gakusei: name='null' age=16 def __init__(self): name='ninngenshigaku' #注意这里都没加self. age=20执行结果
>>> from gakusei import gakusei
>>> a=gakusei()
>>> a.age
16
>>> a.name
'null' <------注意这里并没有按照__init__里的进行初始化
>>> a.age=17
>>> a.age
17
>>> a=gakusei()
>>> a.age
16
>>> a.name
'null' <------注意这里并没有按照__init__里的进行初始化
>>> a.age=17
>>> a.age
17
示例代码
class gakusei: name='null' age=16 def __init__(self): self.name='ninngenshigaku' self.age=20执行结果:(这里就能正常初始化了)
>>> from gakusei import gakusei
>>> a=gakusei()
>>> a.name
'ninngenshigaku'
>>> a.age
20
>>>
2.2 类的继承
示例代码(能运行但是得不到想要的结果)
文件gakusei.py
class gakusei: name='null' age=16 def __init__(self): self.name='ninngenshigaku' self.age=20文件misaka.py(两个文件在同一个目录下)
from gakusei import gakuseiclass misaka(gakusei):#class misaka: bango=0 def __init__(self): self.bango=17001执行结果:
>>> from misaka import misaka
>>> a=misaka()
>>> a.bango
17001
>>> a.age #注意这里并没有初始化为20,因此说明在Python中,如果父类定义了__init__(),则子类需要显式调用父类的__init__()
16
>>>
示例代码(能得到想要的结果的代码)
文件gakusei.py
class gakusei: def __init__(self): self.name='ninngenshigaku' self.age=20文件misaka.py(两个文件在同一个目录下)
from gakusei import gakuseiclass misaka(gakusei):#class misaka: bango=0 def __init__(self): gakusei.__init__(self) self.bango=17001执行结果(想要的结果)
>>> from misaka import misaka
>>> a=misaka()
>>> a.bango
17001
>>> a.name
'ninngenshigaku'
>>> a.age
20
>>>
3,异常处理
示例代码
#测试和学习Python里的异常处理机制 (似乎一般把open放在外面)try: s=open('no_exist.file','r') #文件当然不存在except EOFError: print('EOF Error occured')except IOError: print('IO Error occured')except: print('undefined error')print('owari') #这一句也会执行
执行结果:
IO Error occured
owari
owari
0 0
- 学一点记一点之Python
- 学一点记一点之Linux/Centos(通用篇)
- Objective-C之学一点记一点 关于sqlite3_prepare_v2的各返回值解释
- Objective-C之学一点记一点 IBOulet与IBAction到底是什么
- Objective-C之学一点记一点 页面跳转过程中的参数传递
- 每天学一点python---模块,导入模块
- 学少一点,学精一点!
- 每天都学一点
- 每天学一点
- 想要多学一点
- 学了一点贝叶斯
- 每天学一点英语
- 每天学一点
- 每天学一点C#
- 静下心来,多学一点
- 每天学一点,总有一天
- 每天学一点1
- 每天学一点2
- css样式设置(居中)普通
- Android:WebView与Javascript交互(相互调用参数、传值)
- shell之比较
- UML图例
- [矩阵快速幂] CodeForces 392C Yet Another Number Sequence
- 学一点记一点之Python
- 同步两个目录,Junction
- 第四周 项目一 三角形类的构造函数(4)
- 改变缩放或旋转的支点用 AnchorPoint
- Android 获取机身内存,SD卡内存,Ram内存。
- android studio常用配置
- Core Data入门
- Java基础--函数和数组
- 第四周 项目1三角形类的构造函数(3)---参数初始化表