0%

异常处理

作为一个成熟的语言,肯定要有异常处理机制,python使用try…except…else来进行异常处理

1
2
3
4
5
6
try:
1/0;
except Exception as e:
print('出错了',e)
else:
print('没有异常')

使用except来处理相应的异常,else子句在没有发生异常的时候执行

手动抛出异常

可以使用raise手动抛出异常

1
2
3
4
5
6
try:
raise Exception('抛出异常')
except Exception as e:
print('出错了',e)
else:
pass

finally

像java一样,python中也有finally,用来释放资源。

1
2
3
4
5
6
try:
raise Exception('抛出异常')
except Exception as e:
print('出错了',e)
finally:
print('finally执行')

类和对象

Python也像java一样,使用class来声明类

1
2
3
4
5
class Person:
pass # 表示空的代码块
# 实例化的时候不需要使用new
p = Person()
print(p)

类中也可以声明函数,但是与普通的函数不同,需要在参数列表的第一个增加一个self变量。self传入的是该类的对象实例(这个是python自动传入的,我们在调用方法时不需要传入)

1
2
3
4
5
6
class Person:
def say(self):
print('Hello')

p = Person()
p.say()

__init__方法

python中的构造方法与java不同,不是使用类的名字,而是使用__init__方法

1
2
3
4
5
6
7
8
class Person:
def __init__(self,name):
self.name = name
def say(self):
print('Hello ',self.name)

p = Person('zs')
p.say()
阅读全文 »

作用域

python的变量作用域还是和java不同的,不是说写在函数外边就是全局变量,需要用global修饰才会是全局变量

局部变量

在函数内定义中声明变量时,其不会以任何方式与在函数之外定义但是具有相同名称的变量产生关系。这个变量只存在于函数内部

1
2
3
4
5
6
7
8
9
10

x = 50
def function_local(x):
print('x值为',x)
x = 2
print('修改局部变量x值为',x)


function_local(x)
print('函数外x值为',x)

输出结果为

1
2
3
x值为 50
修改局部变量x值为 2
函数外x值为 50

也就是说主代码块的x值不会受到影响

阅读全文 »

函数

函数对应的就是java的方法,不过写法倒是和JavaScript类似,使用def来定义,函数名结尾为冒号

不包含参数的函数

1
2
3
4
5
def say_hello():
print('hello')

# 调用函数
say_hello()

包含方法参数的函数

1
2
3
4
5
6
7
8
9
def print_max(a,b):
if a > b:
print(a,'是最大值')
elif a == b:
print('两者相等')
else:
print(b,'是最大值')

print_max(5,7)
阅读全文 »

字典

python中的字典类似于java中的Map,由多个键及其对应的值构成的键值对

1
2
// 键值用冒号分隔,项之间用逗号分隔,结构像是json
dict1 = {'zs':12,'ls':15}

添加新数据

1
dict1['ww'] = 10

删除数据

1
del dict1['ww']

字典的遍历

1
2
3
4
5
6
7
8
9
# items()方法可以获取字典中的每一对键值对
for key,value in dicts.items():
print('key为',key,',value为',value)

# 只遍历键,keys返回的是所有的键
for key in dicts.keys()

# 只遍历值,values返回的是所有的值
for value in dicts.values()