字典(Dictionary)
- 字典的定义
dictionary_name = {key_1: value_1,
key_2: value_2
}
-
字典的输出:
代码中字典中的前一项叫name,后一项叫meaning,其实叫什么都可以
一般循环输出比较方便,下面是几种输出方式,都可以。
for name, meaning in python_words.items():
print("\n名称: %s" % name)
print("解释: %s" % meaning)
for word in python_words:
print("%s" % word)
for word in python_words.keys():
print(word)
for meaning in python_words.values():
print("值: %s" % meaning)
for word in sorted(python_words.keys()):
print("%s: %s" % (word, python_words[word]))
- 常用操作
操作 | 实现 |
---|---|
加入新的键-值对 | 字典名[键名] = 值 |
修改字典中的值 | 字典名[键名] = 新值 |
删除字典中的项 | 字典名.pop('项名') |
修改键名 | 创建一个新键 ,将要更换键名的值赋给新键 |
-
嵌套:嵌套包括把列表或字典放在另一个列表或字典中。
值为列表的字典:通过 字典名[词条名][词条内位置] 访问
值为字典的字典:通过 字典名[词条名][词条内属性名] 访问
函数(Functions)
-
定义一个函数
使用关键字 def 告诉 Python 你将要定义一个函数。
确保函数的定义以冒号结束。 -
使用一个函数
返回值
参数缺省值、位置参数、混合位置和关键字参数(部分参数赋初值,应该把有默认值的形参放在没有默认值的形参的后面)和c++差不多,就不再总结了
关键字参数不太一样,只要指出参数名字,调用传参时不再严格受到位置的限制
接受任意长度的序列:
它提供了一种语法,可以让函数接受任意数量的参数。如果我们在参数列表的最后一个参数前加一个星号,这个参数就会收集调用语句的剩余参数并传入一个元组。
如果函数中既有不定长参数又有普通参数,那么不定长参数必须放在普通参数的后边。
def example_function(arg_1, arg_2, *arg_3):
# Let's look at the argument values.
print('\narg_1:', arg_1)
print('arg_2:', arg_2)
print('arg_3:', arg_3)
example_function(1, 2)
example_function(1, 2, 3)
example_function(1, 2, 3, 4)
example_function(1, 2, 3, 4, 5)
接受任意数量的关键字参数
在参数名前加两个*, 会将这个参数变成一个字典来获取关键字参数的值,其他关键字作为key,实参作为value
def example_function(**kwargs):
print(type(kwargs))
for key, value in kwargs.items():
print('{}:{}'.format(key, value))
example_function(first=1, second=2, third=3)
example_function(first=1, second=2, third=3, fourth=4)
example_function(name='Valerio', surname='Maggio')
- 如果我们在参数列表的最后一个参数前加一个星号,这个参数就会收集调用语句的剩余参数并传入一个元组
- 如果一个参数前有两个星号,代表着收集调用语句中剩余的所有键值对参数。这个参数常被命名为 kwargs 。这些参数键值对被存储在一个字典中。
两个的参数要放在一个的后边
类(Classes)
- 定义:类是一种组合信息和行为的方式
class Rocket():
def __init__(self):
#在类中要做的第一件事就是定义 __init__ 函数。当对象被创建时,__init__ 函数就会执行,为需要的参数设置初始值。
# Each rocket has an (x, y) position
self.x = 0
self.y = 0
使用对象名和点符号来访问对象的变量和方法
-
面向对象基础
常用术语 | 意义 |
---|---|
attribute:属性 | 是一系列信息的集合。在类中,一个属性通常是一个变量。 |
behavior:行为 | 是定义在类中,组成方法的部分。即定义在类中函数的一部分 |
method:方法 | 类中的函数,由 behavior 组成 |
object:对象 | 类的实例 |
-
_ init_() 方法:初始化函数
类名必须是驼峰式的。也即每个单词的开头必须是大写的,不允许下划线的出现。
目前为止圆括号里都是空的
"self" 指向当前的对象,基本上,类中所有的函数都需要 self 对象作为第一个参数,因此它们就可以访问类中的属性。可以在其中添加关键字参数,更改对象的初始位置 -
继承
新类可以重写覆盖任一继承自旧类的属性或行为。也可以添加新的属性和行为。旧类被称为父类,新类被称为父类的孩子。父类也被称为 superclass ,子类被称为 subclass。
- 当一个子类要继承父类时,在定义子类的圆括号中填写父类的类名:
- 新类的 init() 函数接受的参数需要传递给父类的 init() 函数。由 super().init() 函数负责:
模块(Modules)和类
越长的程序越变得难以阅读和维护。Python 允许将类放进另一个文件中然后在你的程序中导入。这样就将类和程序隔离,也就能在不同的程序中运用。随着使用次数的增多,类也会变得越来越可靠和完善。
-
在模块中存储一个类
模块的名字是小写的单词,类名是以大写字母开头的。
创建一个单独的 .py 文件。确保使用约定的命名方式,小写字母加下划线的方式为文件命名
from rocket import Rocket #导入一个类#
from module_name import ClassName #导入多个类#
-
导入模块和类的一些方法
1.都导入最常见
from module_name import ClassName
2.只导入模块
import module_name
3.在你的项目中导入模块时,你可以为模块自定义名字。
import module_name as local_module_name
4.导入模块中的所有类和函数:尽量避免使用因为导入的太多了
from module_name import *
-
函数模块
导入方法与上相同
异常(Exceptions)
语句 | 作用 |
---|---|
try/except | 捕捉并恢复 Python 自动触发的或自己代码中的异常 |
try/finally | 无论异常是否发生,执行清理操作 |
raise | 手动触发一个异常 |
with/as | 在 Python 2.6 ,3.0 或更新的版本中实现上下文管理器。 |
1.try/except
try:
<语句> #运行别的代码
except <名字>:
<语句> #如果在try部份引发了'name'异常
except <名字>,<数据>:
<语句> #如果引发了'name'异常,获得附加的数据
else:
<语句> #如果没有异常发生
2.try/finally
try:
<语句>
finally:
<语句> #退出try时总会执行
raise
3.raise
raise [Exception [, args [, traceback]]]
语句中 Exception 是异常的类型(例如,NameError)参数标准异常中任一种,args 是自已提供的异常参数。
最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。
4.with/as
with open(r'C:\misc\data') as myfile:
for line in myfile:
print(line)
# ...more code here...
- 用户自定义异常
网友评论