美文网首页
Python学习(二)

Python学习(二)

作者: 九除以三还是三哦 | 来源:发表于2019-06-07 16:13 被阅读0次

字典(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)

  • 异常是可以修改程序控制流程的事件。
  • 菜鸟教程的讲解还比较详细
  • 这个的讲解就比较生动有趣
  • 4种处理异常的语句
语句 作用
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...
  • 用户自定义异常

相关文章

网友评论

      本文标题:Python学习(二)

      本文链接:https://www.haomeiwen.com/subject/enzpxctx.html