python的return可以返回多个值吗?

作者&投稿:希露 (若有异议请与网页底部的电邮联系)
~

函数的return语句只能返回一个值,可以是任何类型。因此,可以“返回一个tuple类型,来间接达到返回多个值”。

例1、:x除以y的余数与商的函数

defF1(x,y):

a=x%y

b=(x-a)/y

return(a,b)#也可以写作returna,b

(c,d)=F1(9,4)#也可以写作c,d=F1(9,4)

printc,d

结果显示:1,2

Python与大多数其它语言一样有局部变量和全局变量之分,但是它没有明显的变量声明。变量通过首次赋值产生,当超出作用范围时自动消亡。

例2、定义myParams变量

if__name__=="__main__":

myParams={"server":"mpilgrim",/

"database":"master",/

"uid":"sa",/

"pwd":"secret"/

首先注意缩进。if语句是代码块,需要像函数一样缩进。

其次,变量的赋值是一条被分成了多行的命令,用反斜线(“/”)作为续行符。

当一条命令用续行符(“/”)分割成多行时,后续的行可以以任何方式缩近,此时Python通常的严格的缩近规则无需遵守。如果您的PythonIDE自由对后续行进行了缩近,应该把它当成是缺省处理,除非您有特别的原因不这么做。

严格地讲,在小括号,方括号或大括号中的表达式(如定义一个dictionary)可以用或者不用续行符(“/”)分割成多行。甚至在不是必需的时候,我也喜欢使用续行符,因为我认为这样会让代码读起来更容易,但那只是风格的问题。

第三,您从未声明过变量myParams,您只是给它赋了一个值。这点就象是VBScript没有设置optionexplicit选项一样。幸运的是,与VBScript不同的是,Python不允许您引用一个未被赋值的变量,试图这样做会引发一个异常。

3.4.1.变量引用

例4、引用未赋值的变量

扩展资料:

Python中编程简写使用序列来一次给多个变量赋值。

例:一次赋多值

>>>v=('a','b','e')

>>>(x,y,z)=v

>>>x

'a'

>>>y

'b'

>>>z

'e'

v是一个三元素的tuple,并且(x,y,z)是一个三变量的tuple。将一个tuple赋值给另一个tuple,会按顺序将v的每个值赋值给每个变量。

这种用法有许多种用途。我经常想要将一定范围的值赋给多个变量。在C语言中,可以使用enum类型,手工列出每个常量和其所对应的值,当值是连续的时候这一过程让人感到特别繁琐。而在Python中,您可以使用内置的range函数和多变量赋值的方法来快速进行赋值。

例:连续值赋值

>>>range(7)

[0,1,2,3,4,5,6]

>>>(MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY)=range(7)

>>>MONDAY

0

>>>TUESDAY

1

>>>SUNDAY

6

内置的range函数返回一个元素为整数的list。这个函数的简化调用形式是接收一个上限值,然后返回一个初始值从0开始的list,它依次递增,直到但不包含上限值。(如果愿意,可以传入其它的参数来指定一个非0的初始值和非1的步长。也可以使用printrange.__doc__来了解更多的细节。)

MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY和SUNDAY是我们定义的变量。(这个例子来自calendar模块。它是一个很有趣的打印日历的小模块,UNIX的cal命令。

这个calendar模块定义了一星期中每天的整数常量表示。)现在每个变量都拥有了自己的值:MONDAY的值为0,TUESDAY的值为1,等等。

也可以使用多变量赋值来创建返回多个值的函数,只要返回一个包含所有值的tuple即可。调用者可以将其视为一个tuple,或将值赋给独立的变量。许多标准的Python库都是这样做的,包括os模块。




mac本使用opencv打开摄像头导致python意外退出?
我再win上测试没有问题,import cv2 cap = cv2.VideoCapture(0)while 1:ret, frame = cap.read()k = cv2.waitKey(1)if k == 27:break cv2.imshow("capture", frame)cap.release()cv2.destroyAllWindows()实在不行试试cv+pygame 代码如下:import pygame import cv2 cap = cv2.VideoCapture(...

python:‘print a,’ 如何让a后面没有空格而且不要换行?
print("a", end='')print("b", end='')print("c")输出结果:abc 程序中的 end='' 参数表示,print 打印后的结尾不用换行,直接连接后面输出字符。当然可以改为空格或其他连接字符。默认情况下 print 打印后会在结尾换行。

关于Python 字典里的value
初学python,以此题练习,不求财富。-*- coding: utf-8 -*-dic = {'a':[1,2,3,4], 'b':[11,22,33]}def gcd(m, n): ''' 求两个数的最大公约数 (greatest common divisor) ''' return m if n == 0 else gcd(n, m % n) #三元表达式格式:true_part if condit...

如何解决Python读取PDF内容慢的问题
retstr, laparams=laparams)process_pdf(rsrcmgr, device, pdfFile)device.close()content = retstr.getvalue()retstr.close() return contentpdfFile = urlopen("http:\/\/pythonscraping.com\/pages\/warandpeace\/chapter1.pdf")outputString = readPDF(pdfFile)print(outputString)pdfFile.close()如...

请教如何用Python完成一个将老师随机分配到办公室的程序。
teachers=['a','b','c','d','e','f','g','h','j','k','m']# offices=[[],[],[],[]]# 要求是将11名老师随机分配到4个办公室,每个办公室保证至少分配两名老师。import randomteachers = ['a','b','c','d','

有关python正则表达式的问题?
163邮箱格式 ret = re.match(r"^[a-zA-z]{1}\\w{5,17}@163\\.com$", email)原意是想匹配一个前三个字符为字母、后三个字符为数字的163邮箱:ret=re.match(r'^[a-zA-z]{3}[0-9]{3}@163\\.com$", email)或ret=re.match(r'^[a-zA-z]{3}\\d{3}@163\\.com$", email)?

python如何获得响应包的大小
直接上码:coding=utf-8import requestsurl = 'https:\/\/www.baidu.com\/'ret = requests.get(url).headers #返回的是字典# 如果没有content-length,'content-length' in ret.keys()返回Flaseif 'content-length' in ret.keys(): # if Flase 执行 content_length = Noneelse: # true...

Python代码调试的几种方法总结
pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。pdb 提供了一些常用的调试命令,详情见表 1。表1. pdb 常用命令下面结合具体的实例讲述如何使用 pdb 进行调试。清单1. 测试代码示例import...

Python实现,输入一个正整数数组,把数组里所有数字拼接起来排成一个...
你的例子第一列全是 3,我给个例子吧:[321, 32, 3, 4],输出该是 321,32,3,4。第一个数越大,则应该排在后面,毕竟 4XXX 是比 3XXX 大的。setp 1: [0][1][2] 3 2 1 3 2 3 4排序第 0 列,越大的排越后。ret = [?, ?, ?, 4]setp 2: [0][1...

python如何操作SQL语句
ret = cursor.fetchall()cursor.close()print ret return ret def closeDB(self):self.conn.close()if __name__ == "__main__":if len(sys.argv) < 4:print "Need Arguments: user passwd server"sys.exit(1)user=sys.argv[1]passwd=sys.argv[2]server=sys.argv[3]sql='select ...

云溪区13884346128: python中return怎么用 -
裘俘盐酸: return是返回值的意思,比如你定义一个函数a()让他返回值为1 那么你可以调用这个函数b = a() 这样b变量就被赋值a()函数的返回值了 b的值就为1了 当然你也可以让a()函数返回变量

云溪区13884346128: Python的return如何理解? -
裘俘盐酸: 就跟C里面的函数一样是返回值用的.例如:#定义一个函数,返回a+b的和 def sum(a,b): return a+b#调用函数sum,计算2+3 print sum(2,3)>>>5

云溪区13884346128: python 3 的return语句与print语句的用法 区别:? -
裘俘盐酸: return只能出现在函数中,功能是结束函数执行,返回调用的地方,可以返回一个结果.顺便说一句,return与if无关,可以出现在任何语句的地方,只有是在函数里面. print只是显示结果,与return没有任何关系.

云溪区13884346128: python中print,return和yield的区别 -
裘俘盐酸: print就是把对象的内容,输出到标准输出.. return,就是函数的返回,表示把return 后面的内容,返回给调用这个函数的函数,或者说返回到函数调用点. yield,python中生成器的必须关键字..一般函数是一次执行然后返回,加入这个yield后,函数调用一次,只会执行到yield然后返回,下次调用再继续这个关键字后面的内容,直到下一个yield或者函数结束.

云溪区13884346128: Python怎么return后让循环继续运行 -
裘俘盐酸: return 会直接另函数返回,函数就运行结束了,所有该函数体内的代码都不再执行了,所以该函数体内的循环也不可能再继续运行.如果你需要让循环继续执行,就不能return函数,而应该选用break或者continue. break:跳出所在的当前整个循环,到外层代码继续执行. continue:跳出本次循环,从下一个迭代继续运行循环,内层循环执行完毕,外层代码继续运行. return:直接返回函数,所有该函数体内的代码(包括循环体)都不会再执行.

云溪区13884346128: python中return到底什么意思 -
裘俘盐酸: 就是返回值的意思 比如 return 1 就表示返回值是1 return a+b 就表示返回a+b的和

云溪区13884346128: python中的 return 有什么用 -
裘俘盐酸: 携带函数返回值 Python函数 python 不需要指定是否有返回值,每一个python都有一个返回值,没有return语句时,将返回None(空值)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网