首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【python基础】python异常处理

    1 、常用异常类 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件 ImportError 无法引入模块或包...;基本上是路径问题或名称错误 IndentationError 语法错误(的子类) ;代码没有正确对齐 IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5] KeyError...试图访问字典里不存在的键 KeyboardInterrupt Ctrl+C被按下 NameError 使用一个还未被赋予对象的变量 SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误...,写错了) TypeError 传入对象类型与要求的不符合 UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它 ValueError...传入一个调用者不期望的值,即使值的类型是正确的 2、异常举例: # TypeError:int类型不可迭代 for i in 3: pass # ValueError num=input("

    83210

    【Python 初级函数详解】—— 参数沙漠与作用域丛林的求生指南

    而prompt是位置参数,调用函数时必须按照顺序传递参数,否则就会导致错误!...默认值为列表、字典或类实例等可变对象时,会产生与该规则不同的结果。...例如,以下调用方式是错误的: # 错误示例,位置参数应在关键字参数之前 parrot(state='dead', 300) 所有传递的关键字参数都必须匹配一个函数接受的参数(比如,actor 不是函数...**keywords:这是一个可变关键字参数,它会将函数调用时传入的所有未在函数定义中明确指定的关键字参数收集到一个字典中。字典的键是关键字参数的名称,值是对应的参数值。...可以把这种情况想象成有两个不同的 “区域”,一个区域(仅限位置参数 name)只能通过位置传递的方式放东西进去;另一个区域(**kwds 字典)可以接收关键字参数。这样就避免了参数名的冲突。

    35300

    Python:What the f*ck Python(下)

    (target_list "=")+ 中的 + 意味着可以有一个或多个目标列表。在这个例子中,目标列表是 a, b 和 a[b]。表达式列表只能有一个,是 {}, 5。...3.5): 0 1 2 3 4 5 6 7 说明: Python 不支持 对字典进行迭代的同时修改它,它之所以运行 8 次,是因为字典会自动扩容以容纳更多键值(译: 应该是因为字典的初始最小值是8,...__defaults__ (['some_string', 'some_string'],) 避免可变参数导致的错误的常见做法是将None指定为参数的默认值,然后检查是否有值传给对应的参数。...ValueError: list.remove(x): x not in list 说明: 如果你想要同时捕获多个不同类型的异常时,你需要将它们用括号包成一个元组作为第一个参数传递。...也就是说,代码原意是捕获IndexError, ValueError两种异常,但在 python2 中,必须写成(IndexError, ValueError),示例中的写法解析器会将ValueError

    2K50

    python中*args和**kwargs用法解读

    其实, 并不是必须写成 *args 和 **kwargs,真正在参数传递时起作用的,只有变量前面的 *。你也可以写成 *params 和 **kv_params。...1. * 用于传入的多个参数将按照元组形式存储,是一个元组。 2.** 用于参数前则表示传入的(多个)参数将按照字典的形式存储,是一个字典。...而 *args 是用来发送一个非键值对的可变数量的参数列表给一个函数。...鸿蒙 通过*args传递的参数: go 可以发现,看起来argsdemo函数只接收两个参数,可实际上我们向argsdemo函数传递了四个参数,魔法之处就在于 *args,实际上是 *args 把多个参数组装成了一个元组传递给了...=3) 结果: **kwargs: {'name': 'leizi', 'age': 3} 类型: name = leizi age = 3 **kwargs 把多个参数组装成了一个字典传递给了

    68310

    Django 系列篇(五):路由篇(中)

    额外变量 除了在路由地址中设置变量外,还可以为 path 函数追加一个变量 需要注意的是,变量必须以字典的形式表示,参数值不限制数据格式,可以是实体对象,也可以是基本数据类型 # urls.py(App...) # 新建一个路由地址airpython # 指向视图函数with_extra_params # 并带有参数,参数通过字典定义 path('airpython', views.with_extra_params...,其中 namespace 代表路由的命名空间,为可选参数;arg 参数类型为字符串或元组(长度为:2 ),作用是指向项目某一个 App 的 urls.py 文件 需要注意的是: 1、如果路由函数不存在命名空间...,arg 的数据格式是字符串,比如:first_app.urls,指向 first_app 这个 App 的 urls.py 路由文件 2、如果路由函数命名空间存在,arg 的数据格式一定要设置为长度为...2 的元组,比如:('first_app.urls','first_app'),其中第一个参数为目标 App 的 urls.py 文件,第二个参数一般设置为 App 的名称 from django.contrib

    60130

    Python内置函数详解【翻译自pyth

    如果locals字典被忽略,默认是globals字典。如果两个字典都省略,则在调用eval()的环境中执行表达式。返回值是被演算的表达式的结果。语法错误报告成异常。...如果classinfo是对象类型的元组(或递归地,其他这样的元组),如果对象是任何类型的实例,则返回true。...参数可以是序列(如字符串,字节,元组,列表或者范围)或者集合(如字典,集合或者固定集合)。...max(iterable, *[, key, default]) max(arg1, arg2, *args[, key]) 返回可迭代的对象中的最大的元素,或者返回2个或多个参数中的最大的参数。...标准名称包括: 'strict'引发ValueError例外,如果存在编码错误。默认值None具有相同的效果。 'ignore'忽略错误。请注意,忽略编码错误可能会导致数据丢失。

    2.1K20

    Python 内建函数大全

    如果 classinfo 是类型对象的元组, object 是其中任何一个类型的实例,则返回 true。如果 classinfo 不是类型或一组类型的元组,则会引发 TypeError 异常。..., arg2, *args[, key]) 返回 iterable 中的最大项或两个或更多个参数中最大的项。...]) min(arg1, arg2, *args[, key]) 返回 iterable 中的最小项或两个或更多个参数中的最小项。...name 字符串是类名,并成为 __name__ 属性;bases 元组逐项列出基类,并成为 __bases__ 属性;dict 是包含类体的定义的命名空间,并被复制到标准字典中以变为 __dict__...返回元组的迭代器,其中第 i 个元组包含来自每个参数序列或迭代的第 i 个元素。当最短的输入迭代耗尽时,迭代器停止。使用单个迭代参数,它将返回 1 元组的迭代器。没有参数,它返回一个空的迭代器。

    2.4K30

    python函数的参数细节

    所以上面的函数将输出: (1, 2, 3, 4) 既然是元组,就可以对参数进行迭代遍历: def f(*args): for arg in args: print(arg) f...例如,下面的都是错误的def定义方式: def f(x,**args,y) def f(x,**args,y=3) def f(x,**args,*t) 只能将位置参数或者*的收集放在**的前面。...def f(x,y,**args) def f(x,*args1,**args2) 函数调用时的*和** 除了在def定义函数时,参数中可以使用*或**收集参数,在函数调用的时候也可以使用*或**分别解包元组...(列表或其它对象)、字典。...例如: def f(a,*b,c): print(a,b,c) 按照keyword-only的规则,被*b收集的位置参数不包括c,这个c必须只能使用关键字的方式传值,否则就被当作位置参数被收集到元组

    2.6K40

    Python指南:控制结构与函数

    str.index()与list.index()返回给定字符串或数据想得索引位置,如果找不到则产生ValueError异常。现在我们改变一下策略:如果找不到数据项,返回-1。...Lambda函数是表达式,因此可以在需要使用的地方创建。 方法是与特定数据类型关联的函数,并且只能与数据类型关联在一起使用。 函数的参数可以指定默认值,比如def add(a, b=1)。...=params, **kwargs) 对函数文档而言,如果比函数本身还长,也并非不同寻常,常规的做法是,docstring的第一行知识一个简短的描述,之后是一个空白行,再之后跟随的是完整的描述信息,如果是交互式输入再执行的程序...tuple'> (1, 'love', 2) 由输出可以看出,在函数内部参数args的类型为元组,其项数随着给定的位置参数个数的变化而变化。...如果某个参数为0,就会产生一个AssertionError并向错误流(通常为控制台)写入错误信息: x = product1(0, 1, 2, 3, 4) [out] Traceback (most

    1.1K20

    python基础教程:内置函数(一)

    返回元组的迭代器,其中第i个元组包含来自每个参数序列或迭代的第i个元素。当最短输入可迭代用尽时,迭代器停止。使用单个iterable参数,它返回一个1元组的迭代器。没有参数,它返回一个空迭代器。...如果只提供了一个位置参数,它必须是非空 iterable,返回可迭代对象中最大的元素;如果提供了两个及以上的位置参数,则返回最大的位置参数。 有两个可选只能用关键字的实参。...如果只提供了一个位置参数,它必须是 iterable,返回可迭代对象中最小的元素;如果提供了两个及以上的位置参数,则返回最小的位置参数。 有两个可选只能用关键字的实参。...tuple([iterable]) 元组是内置的不可变序列类型。tuple()生成一个元组对象,可选参数iterable的元素将被加入到新元组。...名称字符串是类名,并成为name属性; 基元元组列出基类并成为bases属性; 并且dict字典是包含类主体定义的命名空间,并被复制到标准字典以成为dict属性。

    1.1K20

    Python基础篇

    那就只能重新开辟一块内存,创建新的元组了。 比如下面的例子,我们想增加一个元素5给元组,实际上就是创建了一个新的元组,然后把原来两个元组的值依次填充进去。...实际应用中,很多情况下,我们需要对字典或集合进行排序,比如,取出值最大的50对。...错误与异常 首先要了解,Python中的错误和异常是什么?两者之间又有什么联系和区别呢? 通常来说,程序中的错误至少包括两种,一种是语法错误,另一种则是异常。...; my_func是函数的名称; 括号里面的message则是函数的参数; 而print那行则是函数的主体部分,可以执行相应的语句; 在函数最后,你可以返回调用结果(return或yield),也可以不返回...总结 Python的基础篇,我们先是讲了关于列表和元组,列表和元组都是有序的,可以存储任意数据类型的集合,区别主要在于下面这两点。 列表是动态的,长度可变,可以随意的增加、删减或改变元素。

    1.1K50

    python核心知识汇总(精编版)

    排序:字典可使用函数sorted()并且指定键或值,进行升序或降序排序;集合排序直接调用 sorted(set) 即可。...write() 函数,可以把参数中的字符串输出到文件中。 注意所有 I/O 都应该进行错误处理。...不定长参数 当参数个数不确定时使用不定长参数,有两种类型分别为*args和**kwargs。 加了*的参数会以元组tuple的形式导入,而**的参数以字典形式导入。...成员函数:是正常的类的函数,第一个参数必须是self;可通过此函数来实现查询或修改类的属性等功能。...如果元组变量值包含原子类型对象,即使采用了深拷贝,也只能得到浅拷贝。 ---- Python协程 协程是实现并发编程的一种方式,是用户态的线程,由用户决定在什么地方交出控制权,切换到下一个任务。

    1.7K10
    领券