首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python编程一定要注意的那些“坑”(七)

已发“坑”列表:Python函数默认值参数的2个坑,Python编程中一定要注意的那些“坑”(一),Python编程中一定要注意的那些“坑”(二),Python中一定要注意的那些“坑”(三),Python...编程一定要注意的那些“坑”(四),Python编程一定要注意的那些“坑”(五),Python编程一定要注意的那些“坑”(六) 今天介绍一下函数返回值的“坑”,其实严格来说这并不是坑,而是程序员不熟悉或者不注意函数或方法的工作机制和返回值造成的...在Python中,如果函数或方法中没有return语句、有return语句但是没有执行到、有return语句也执行到了但是该return语句没有返回任何值,那么Python都会认为这个函数或方法返回的空值...看下面的代码: from random import shuffle lst = list(range(20)) lst = shuffle(lst) print(lst.index(5)) 这段代码无法运行...(lst.index(5)) 在使用内置函数、标准库函数、扩展库函数或对象方法时,一定要注意它们的用法,是原地操作还是返回处理后的新对象,这决定了该函数或方法的用法。

72680

开源图书《Python完全自学教程》6.3.2两个常用函数

> zip("abc", "def") 函数的返回值是一个迭代器对象( zip object 。...9) [('python', 0, 'name'), ('ml', 1, 'age')] 注释(9)中以包含不同成员数量的不同类型的可迭代对象为 zip() 的参数,请认真观察返回结果。...如果有疑问,请参考 dict() 函数的使用方法,并结合 zip() 函数返回结果。除了上述两个方法之外,6.4节还会提供第三种实现。...enumerate() 的返回值是可迭代的 enumerate 对象(如注释(13)的返回对象),依据学习 zip() 的经验,按照注释(14)那样,用 list() 函数将其转化为列表,就能看到此对象里面的成员...n in enumerate(lst): if n % 2 == 0: # idx = lst.index(n) lst[idx] = 'even' print

38420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    python中函数的返回值详解

    1.返回值介绍 现实生活中的场景: 我给儿子10块钱,让他给我买包烟。...这个例子中,10块钱是我给儿子的,就相当于调用函数时传递到参数,让儿子买烟这个事情最终的目标是,让他把烟给你带回来然后给你对么,,,此时烟就是返回值 开发中的场景: 定义了一个函数,完成了获取室内温度,...想一想是不是应该把这个结果给调用者,只有调用者拥有了这个返回值,才能够根据当前的温度做适当的调整 综上所述: 所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果 2.带有返回值的函数 想要在函数中把结果返回给调用者....保存函数的返回值 在本小节刚开始的时候,说过的“买烟”的例子中,最后儿子给你烟时,你一定是从儿子手中接过来 对么,程序也是如此,如果一个函数返回了一个数据,那么想要用这个数据,那么就需要保存 保存函数的返回值示例如下...5.在python中我们可不可以返回多个值?

    3.3K20

    Python编程一定要注意的那些“坑”(四)

    已发过的“坑”请参考Python函数默认值参数的2个坑,Python编程中一定要注意的那些“坑”(一),Python编程中一定要注意的那些“坑”(二),Python中一定要注意的那些“坑”(三)。...先来看一段代码: >>> def find(lst, e): if e in lst: return lst.index(e) else: return False >>> def main(lst...(range(5)), 0) not exist 上面的函数find()用来测试列表lst中是否包含元素e,如果包含就返回其首次出现的下标,否则返回False表示不存在。...函数main()调用函数find(),如果find()函数返回False则认为列表lst中不包含元素e,否则就认为包含并输出该位置上的元素。 思路看起来很自然,但很明显最后一个结果是错的。...那就要学学Python字符串对象的find()和rfind()方法了,如果包含就返回其首次出现位置,如果不包含就返回-1,而不是False。

    1.1K130

    python学习3-内置数据结构1-列表

    列表及常用操作     列表是一个序列,用于顺序的存储数据 1、定义与初始化 lst = list() #使用list函数定义空列表 lst = []    #使用中括号定义列表 lst = [1,2,3...]    #使用中括号定义初始值列表 lst = list(range(1,20))    #使用list把可迭代对象转换为列表     通常在定义列表的时候,使用中括号,在转化可迭代对象为列表是使用...lst.index(value)    #通过值来查找索引,返回查找到的第一个索引  lst.index(value,start,stop) #start指定从那个索引开始,end指定那个结束,并且不包含该索引...lst.pop() #返回并删除最后一个元素,时间复杂度O(1) lst.pop(index) #返回并删除index所在位置的值,不存在的索引,IndexError。...时间复杂度O(n) lst.clear() #清空列表 6、其它操作 len(lst) #查list的长度 lst.rerverse() #反转列表 无返回值 lst.sort() #排序 无返回值

    1.1K20

    Python中的几种数据类型

    中认为所有的东西都是对象,所以Python不用像其它一些高级语言那样主动声明一个变量的类型。...在与python打交道的过程中经常会碰到ASCII、Unicode和UTF-8三种编码。具体的介绍请参见这篇文章。...的基础上扩展了lstextend进来 #【index】 返回某个值第一次出现的索引位置,如果未找到会抛出异常 print lst.index("hello") #5 #print...lst.index("kitty") #ValueError: 'kitty' is not in list 出现异常 #【remove】 移除列表中的某个元素,如果待移除的项不存在,会抛出异常...(浅复制)的一个副本 dict.get(key,default=None) 对字典dict 中的键key,返回它对应的值value,如果字典中不存在此键,则返回default 的值(注意,参数

    1.3K100

    python基础知识

    #列表,元组,字符串 break 结束while,for循环,continue 结束本次循环,pass 占位符 r 与C#中的@功能一致 print(r"12\n23") python字符串常用方法...) 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串 string.rpartition(str) 类似于 partition()函数,不过是从右边开始查找 [string.rstrip...个字符)转换 string 的字符,要过滤掉的字符放到 del 参数中 string.upper() 转换 string 中的小写字母为大写 string.zfill(width) 返回长度为 width...隐含着将列表进行一次遍历 print("OK") else: print("NO") lst = [1,2,3,4,5] print(lst.index(3, 1, 3)) #从1到3...,查询3的位置 print(lst.index(3, 1, 2)) #如果查询不到,会报错,[1,3)左闭右开 lst = [1,2,3,4] lst.reverse() #将列表元素进行反转

    17810

    《Python完全自学教程》免费在线连载4.2.6

    4.3.1 基础知识 列表的基础知识内容与字符串类似,包括创建方法、索引和切片、基本操作、常用方法等(这几项也是所有 Python 序列类对象都要学习的内容)。...创建列表 Python 中的列表,可以用方括号表示,即 [ ] ,它不像数字、字符串那样直接与自然语言中的内容对应,列表是完全人为定义的对象类型。...但 list(123) 不能执行,因为 list() 函数的参数必须是可迭代对象(参阅第9章9.6节)。 前面提到的顺口溜中说了,列表是个“筐”,那么“筐”里面可以装什么?...再仔细观察其中的每个成员,与字符串中的成员有明显的区别(字符串中的成员只能是字符),此列表中的成员类型包括了 int 、float 、str 、list 、bool 、complex 等到目前为止所学过的各种...0 >>> lst.index('E') 4 总而言之,4.2.4节的所有关于索引的内容都可搬过来使用。

    34010

    golang 中函数使用值返回与指针返回的区别,底层原理分析

    变量内存分配与回收 堆与栈的区别 变量内存分配逃逸分析 检查该变量是在栈上分配还是堆上分配 函数内变量在堆上分配的一些 case 函数使用值与指针返回时性能的差异 其他的一些使用经验 总结 变量内存分配与回收...栈 函数调用栈简称栈,在程序运行过程中,不管是函数的执行还是函数调用,栈都起着非常重要的作用,它主要被用来: 保存函数的局部变量; 向被调用函数传递参数; 返回函数的返回值; 保存函数的返回地址,返回地址是指从被调用函数返回后调用者应该继续执行的指令地址...那么在 Go 中变量分配在堆上与栈上编译器是如何决定的?...上文介绍了 Go 中变量内存分配方式,通过上文可以知道在函数中定义变量并使用值返回时,该变量会在栈上分配内存,函数返回时会拷贝整个对象,使用指针返回时变量在分配内存时会逃逸到堆中,返回时只会拷贝指针地址...200000 个 int 类型的结构体返回值更快些,小于 200000 时返回指针会更快。

    5.4K40

    Python 字符串中返回bool类型的函数集合

    字符串中返回bool类型的函数集合 isspace 功能: 判断字符串是否是由一个空格组成的字符串 用法: booltype = string.isspace() -> 无参数可传 ,返回一个布尔类型...=‘’’ istitile 功能: 判断字符串是否是一个标题类型 用法 booltype = String.istitle() -> 无参数可传, 返回一个布尔类型 注意: 该函数只能用于英文 isupper...与islower 功能: isupper判断字符串中的字母是否都是大写 islower判断字符串中的字母是否都是小写 用法: booltype = string.isupper() -> 无参数可传..., 返回一个布尔类型 booltype = string,islower() ->无参数可传 ,返回一个布尔类型 注意: 只检测字符串里的字母,对其他字符不做判断 join与split 稍后见 我们数据类型转换的时候见...upper_str_02 = 'Python Is A Good Code' lower_str = ' i love python 哈哈!'

    2.4K20

    Python花式编程案例集锦(5)

    问题描述: 输入三个序列,例如:[0.9,0.5,0.7],[0.4,0.6,0.3],[0.5,0.2,0.4],输出三个序列中各取一个相乘后最大的值,以及组合方式,如最大值为0.9*0.6*0.5,...参考代码及优化思路: 首先让我们导入标准库random,并编写用来获取随机列表的函数,以便后面进行测试: from random import randrange # 获取测试数据 def getData...仔细分析题意,大概可以知道,因为是乘法运算,所以从每个列表中选择最大数再相乘,应该也是符合题意的,于是编写代码如下: # 利用Python内置函数和列表对象方法 def demo2(x, y, z):...# 利用Python函数式编程特点 def demo3(lst): maxValues = tuple(map(max, lst)) f = lambda lst, item: lst.index...注意第三个函数的调用方式与前两个略有区别。 ?

    64750

    超详解——Python 列表详解——小白篇

    示例: lst = [1, 2, 3, 4, 3, 5] print(lst.index(3)) # 输出:2 print(lst.count(3)) # 输出:2 4....列表类型内建函数 Python提供了一些内建函数,用于操作和处理列表。这些函数包括: len():返回列表的长度。 max():返回列表中的最大值。 min():返回列表中的最小值。...sum():返回列表中所有元素的和(适用于数字列表)。 sorted():返回列表的排序副本。 reversed():返回列表的反转迭代器。 enumerate():返回列表中的元素和索引。...深拷贝:适用于多维列表或当列表中包含可变对象(例如嵌套列表)时,确保拷贝的副本与原始列表完全独立。 深拷贝和浅拷贝的区别 浅拷贝:仅复制对象的引用,不复制对象本身。...深拷贝的实现细节 深拷贝通过递归地复制对象及其包含的所有子对象实现。在Python中,copy.deepcopy() 函数可以处理各种复杂对象,包括嵌套列表、字典、集合等。

    1.1K10

    Python基础语法-内置数据结构之列表

    lst = list() # 使用list函数定义空列表 lst = [] # 使用中括号定义空列表 a = [1, 2, 3] # 使用中括号定义带初始值的列表 lst = list(range...(1, 10)) # 使用list函数把可迭代对象转化为列表 a_ref = aa[2] = 100 列表的访问 可以通过下标访问列表中的元素,下标从0开始。...异常 # lst.remove(10)# pop # 默认返回并删除最后一个元素 lst.pop() print(lst) # pop可以有参数 # 返回并删除索引所在位置的元素 lst.pop(1)...的对比: append原地修改列表,返回None extend原地修改,返回None append操作单个元素 extend操作可迭代对象 pop与remove的对比: pop是弹出索引对应的值 remove...基础语法-流程控制 Python基础语法-常量与变量 Python开发环境准备

    97420

    列表

    主要是列表的学习: # 编写日期:2021/1/13 20:31 #主要是对列表的复习 ##列表的创建 lst1=['hello','world',98,'hello'] lst=list(['hello...lst1.extend(lst)#在末尾添加至少一个元素,也可以是一个列表,可以进行两个数列的合并 print() print(lst1) ##列表的添加insert lst1.insert(1,30...的起始位置也是保留的,结束位置也是保留的,只覆盖中间的元素 print('切片第二次')#1是起始位置,2为结束位置,如果没有2则直接对后面进行删除不在保留,如果有2则保留2后面的包括二 print(lst1...print('第二次排序') print(lst) print(lst2) #我认为是查找操作,index函数可以查找出来所给的在列表中的索引位置 lst=list(['hello','world',98...,'hello']) print(lst.index('hello')) print(lst.index('world',1,))#对开始位置进行比对,对结束位置不进行操作 #列表生成式 lst=[i

    58510

    Python常用操作的复杂度

    我们前面讲过list、deque、堆、字典树等高性能计算的技巧,这一节我们来整理一下Python中常用操作的时间复杂度。本文中的N表示容器的元素数量,K表示参数中元素的数量或参数的值。...(N)) 排序 lst.insert(1,200) O(N) 在某一位置插入元素 del lst[0] O(N) 删除某个位置的元素 lst.index(15) O(N) 查找元素,并返回元素位置 bisect.bisect_left...[2] O(1) 访问元素 tpl.count(2) O(N) 元素计数 tpl.index(2) O(N) 查找元素,并返回元素位置 set ss1 = set(range(10)) ss2 = set...(range(5,15)) 操作 时间复杂度 描述 5 in ss1 O(N) 判断元素是否在set中 ss1 | ss2 O(len(ss1)+len(ss2)) 取并集,等同于ss1.union(...高性能系列文章 Python高性能计算之列表 Python高性能计算之字典 Python高性能计算之堆 欢迎关注微信公众号:Quant_Times

    1.1K11

    Python基础语法-内置数据结构之列表

    lst = list() # 使用list函数定义空列表 lst = [] # 使用中括号定义空列表 a = [1, 2, 3] # 使用中括号定义带初始值的列表 lst = list(range...(1, 10)) # 使用list函数把可迭代对象转化为列表 a_ref = aa[2] = 100 列表的访问 可以通过下标访问列表中的元素,下标从0开始。...lst = [1, 2, 3, 2, 5]help(lst.index) : Help on built-in function index: : : index(...) method of...异常 # lst.remove(10)# pop # 默认返回并删除最后一个元素 lst.pop() print(lst) # pop可以有参数 # 返回并删除索引所在位置的元素 lst.pop(1)...的对比: append原地修改列表,返回None extend原地修改,返回None append操作单个元素 extend操作可迭代对象 pop与remove的对比: pop是弹出索引对应的值 remove

    1.5K50
    领券