学一点记一点之Python

(格式提示,标题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}
注意:
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


示例代码
>>> 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': 'e
ru', '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
>>>

示例代码(代码是正确的,但是没有按照目的进行执行)
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

示例代码
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 gakusei
class 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 gakusei
class 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




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值