Python学习入门基础教程(learning Python)--2.3.5Python返回多个值问题
本节主要学习Python的函数是如何同时返回多个值的问题。
在学习Python的时候惊奇的发现,Python的函数可以同时返回多个值,很有意思。
#define function sum
def sum(x, y):
z = x + y
x = x ^ y
y = x ^ y
x = x ^ y
return z, x, y
#define function main
def main():
a = int(raw_input("plz input a "))
b = int(raw_input("plz input b "))
c = sum(a, b)
print(c)
#entry of programme
main()
先看看程序的执行结果如何
plz input a 12
plz input b 13
(25, 13, 12)
结果里(25,13,12)这个看上去很奇怪,这是Python里的tuple(元组),新名词,没关系我们后边将list时会提及。在子函数sum里,除了求和(第3行)之外还有交换x和y的值的运算操作(第4~6行),返回z、x、y(第7行)给main函数的c(第13行)的打印结果(第14行)来看,确实x和y交换了值。
那main函数里的a和b有变化么?a还是12,b还是13么?我们在main函数里在print(c)(第14行)之后增加两条打印语句,分别打印a和b的值(第15、16行),看看a和b变了没?
#define function sum
def sum(x, y):
z = x + y
x = x ^ y
y = x ^ y
x = x ^ y
return z, x, y
#define function main
def main():
a = int(raw_input("plz input a "))
b = int(raw_input("plz input b "))
c = sum(a, b)
print(c)
print(a)
print(b)
#entry of programme
main()
运行结果
plz input a 12
plz input b 13
(25, 13, 12)
12
13
结论是不影响a和b的值。
调用sum函数时,将a和b的值传递一份给x和y(a和x都指向12所在数据单元)(b和y都指向13所在数据单元),在sum函数里x和y通过交换操作,改变了执行x和y指向的数据单元。
转载于:https://blog.51cto.com/witting/1281715
Python学习入门基础教程(learning Python)--2.3.5Python返回多个值问题相关推荐
- Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级
前文5.2节和5.4节分别就Python下读文件操作做了基础性讲述和提升性介绍,但是仍有些问题,比如在5.4节里涉及到一个多次读文件的问题,实际上我们还没有完全阐述完毕,下面这个图片的问题在哪呢? 问 ...
- Python学习入门基础教程(learning Python)--6.3 Python的list切片高级
上节"6.2 Python的list访问索引和切片"主要学习了Python下的List的访问技术:索引和切片的基础知识,这节将就List的索引index和切片Slice知识点做进一 ...
- Python学习入门基础教程(learning Python)--1.4 Python数据处理基础 .
本节主要讨论数据操作及运算符等基础知识,熟悉C语言相关知识的读者请跳过此节. 在高级语言编程过程中,有了数据以后通常要对数据进行相应的数据处理,加.减.乘.除等基本运算,不难理解. 在Python里 ...
- Python学习入门基础教程(learning Python)--3.3.3 Python逻辑关系表达式
在if分支判断语句里的条件判断语句不一定就是一个表达式,可以是多个(布尔)表达式的组合关系运算,这里如何使用更多的关系表达式构建出一个比较复杂的条件判断呢?这里需要再了解一下逻辑运算的基础知识.逻辑关 ...
- Python学习入门基础教程(learning Python)--5.3 Python写文件基础
前边我们学习了一下Python下如何读取一个文件的基本操作,学会了read和readline两个函数,本节我们学习一下Python下写文件的基本操作方法. 这里仍然是举例来说明如何写文件.例子的功能是 ...
- Python学习入门基础教程(learning Python)--5.5 Python写操作详解
在前文5.3节我们简单的学习了如何在Python里进行文件的写操作,所举例里写入的都是字符串数据,那我们现在想写入数值型数据可以直接写入么?我们先看看下边的程序是否能正常运行? wfile = ope ...
- Python学习入门基础教程(learning Python)--5.4 Python读文件详解
问题1.多余的'\n' 在5.2节里我们基本掌握了Python下的文件读文件操作基本方法,但是也存在一些小小问题,细心的读者会发现下面这幅图的问题. 上图每次打印输出words时,先打印了一行从文件里 ...
- Python学习入门基础教程(learning Python)--4.3 Python的for嵌套
Python下的循环体和其他高级语言一样循环体也是可以嵌套的! 我们做个小例子看看,从而结束本章的学习. 任务:打印矩阵下三角 BASE_SIZE = 8for r in range(BASE_SIZ ...
- Python学习入门基础教程(learning Python)--4.2.3 Python的for实现递归,(0629学习笔记)我研究出来了!...
呵呵,本节主要简单的讨论一下用for来实现递归操作. 先看一下本节设计的小程序要求,有这样一个list: [1, 2, [3, 4], 5, 6, [7, 8, 9]] 用for循环打印结果是什么样的 ...
最新文章
- java注解机制_Java 注解机制
- 陈怡然团队最新研究:用复数神经网络提高梯度正则化准确度 | ICML 2021
- 三种运动让身高增长4-10cm
- 长连接和Keepalive
- H5 输入框text和number切换
- 又有程序员把产品经理给打了!
- 电子计算机诞生于1946年第几台,人类第一台电子计算机诞生于1946年2月
- Maven学习(八)-----Maven依赖机制
- goland配置mysql失败_GoLand配置数据库、远程host以及远程调试
- 2018云+未来峰会圆桌面对面:以网络安全之能,造国之重器
- c语言宏代码大全,C语言宏
- 【Three.js】十二、three.js摄像机控件
- 安卓的三个Activity
- 衣服尺寸里面A,B是什么意思
- 网站/APP 流量分析、点击流分析、用户访问分析
- 论文笔记:多标签学习——ACkEL算法
- 【算法导论】幻方算法
- 阅读《人类简史》思考的几个问题。
- 关于奋斗的150条中国名人名言
- 在Windows10环境下安装RabbitMAQ、Erlang的坑
热门文章
- python基础教程第二版下载-Python基础教程(第2版)
- mybatis中的插件
- 题目1551:切蛋糕
- tip use view.isineditmode() in your custom views to skip code when shown in eclipse
- Python操作Rabbit MQ的5种模式
- jTessBoxEditor工具进行Tesseract3.02.02样本训练
- 一天一种设计模式(一)------观察者模式
- BestCoder Round #78 (div.2)
- 正则表达式之 测试阶段
- vbs脚本读写INI文件