1. 程式人生 > >python 函式返回多個值

python 函式返回多個值

(廖雪峰Python教程學習筆記)

函式體內部的語句在執行時,一旦執行到return,函式就執行完畢,並將結果返回。
如果沒有return語句,函式執行完畢後也會返回結果,只是結果為None。
return None可以簡寫為return。

Python中的函式是可以返回多個值的。

比如在遊戲中經常需要從一個點移動到另一個點,給出座標、位移和角度,就可以計算出新的新的座標:

import math
def move(x, y, step, angle=0):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return
nx, ny

然後,我們就可以同時獲得返回值:

>>> x, y = move(100, 100, 60, math.pi / 6)
>>> print(x, y)
151.96152422706632 70.0

但其實這只是一種假象,Python函式返回的仍然是單一值:

>>> r = move(100, 100, 60, math.pi / 6)
>>> print(r)
(151.96152422706632, 70.0)

原來返回值是一個tuple!但是,在語法上,返回一個tuple可以省略括號,而多個變數可以同時接收一個tuple,按位置賦給對應的值,所以,Python的函式返回多值其實就是返回一個tuple

,但寫起來更方便。

相關推薦

python 函式返回

(廖雪峰Python教程學習筆記) 函式體內部的語句在執行時,一旦執行到return,函式就執行完畢,並將結果返回。 如果沒有return語句,函式執行完畢後也會返回結果,只是結果為None。 return None可以簡寫為return。 Python

python函式返回

返回多個值 函式可以返回多個值嗎?答案是肯定的。 比如在遊戲中經常需要從一個點移動到另一個點,給出座標、位移和角度,就可以計算出新的新的座標: import math def move(x, y, step, angle=0): nx = x + step * m

python基礎之函式返回的方法

例: >>> def test(): a=11 b=22 c=33 return a #多個return,語法不會報錯,但是隻執行第一個return return b #不會執行此條語句 return c #不會執行此條語句 >>> num

Javascript函式返回

                Javascript函式返回多個值左直拳我從來就沒有真正掌握過Javascript,又或許是Javascript不斷地在發展,有好多東西看起來常常令我覺得十分驚奇。比如說,在網上看到一條Javascript語句:Return [a,b,c,d];這是返回語句,可是它有對方括號,

C語言如何讓一個函式返回

轉載:https://jingyan.baidu.com/article/d169e1860d278d436711d854.html 一、實現方法 1.用指標和陣列(陣列名本質上是一個指標); 2.或是你根本就不要返回,設定一個巨集觀變數(全域性變數),主函式和子函式都使用,就不用返回了

自定義函式 返回(指標)

#include "iostream.h"void calcu(int *a,int *b,int *l,int *angle){//進行相應的操作//比如...*l += *a;*angle += *

從C++函式返回

今天在回顧std::initializer_list時候,想到C++中一個函式返回多個值的方法都有哪些? 搜尋到了這麼一篇譯文,寫的還是挺全面的。 它的原文地址在這裡: 作為深度閱讀可以看

函式返回,傳入引數和傳出引數

 函式包括了除函式名以外還有返回值和形參。   這個形參包括了傳入引數和傳出引數;   傳入引數:就是數值的傳遞。在函式中不會修改這個引數,不會修改呼叫這個函式的函式的值。   例如   void e

C++呼叫返回Python函式

  某些時候,用python模組來實現一些特定的功能會比用其他型別的模組更加簡潔方便。 在C++程式中,呼叫python模組時需要載入一些必要的libs,這些libs在網上都可以找到。下面的程式碼演示了C++程式如何呼叫python中的函式,並得到從python函式中返回的多

Python 返回+Lambda的使用

最大值 imp from return post 一個 lambda turn mat def MaxMin(a,b): if(a>b): return a,b else: return b,a max,min=Ma

Python返回

() class turn urn pytho emp bsp nbsp code 1 def get_abc(): 2 a = 1 3 b = 2 4 c = 3 5 return a,b,c 6 7 temp = get_abc()

用結構體指標做函式形參實現返回(fishing_6)

        最近在學ST32驅動數字攝像頭OV2640的實驗,無意中遇到了函式返回多個值的情況,決定Mark一下,說不定以後就會用到,因為一般函式都是隻有一個返回值的嘛,具體如下:         首先在標頭檔案定義結構體:                 typed

函式變相做到返回的方法

 2方法1:利用全域性變數        分析:全域性變數作為C語言的一個知識點,雖然我們都瞭解它的特點,但在實際教學過程中應用得並不是很多。由於全域性變數的作用域是從定義變數開始直到程式結束,而對於編寫有多個返回值的C語言函式,我們可以考慮把要返回的多個值定義成全域性變

lua函數返回

less logs msg exec eat 函數返回 sta cpp then function CompareString(in_source, in_compare) local ret_value; local ret_msg; if (in_sourc

C獲取函式的方法

C: 關於函式返回值的小思考 1.函式的返回值只能有一個,但如果希望獲得函式中的多個值,可以採用指標的方式。 2.注意向函式傳遞列指標的形式: void InputArray(int *p, int m, int n){ //這裡傳入的是二維陣列,但形參指標是一

c# 方法返回用out

該方法返回   a+10   和   a-10   的結果,返回兩個值: public  static  void  GetValue( int a , out int b , out

4.2 使用元組-返回

parse_int(List) -> parse_int(skip_to_int(List), 0). parse_int([H|T], N) when H >= $0, H =< $9 -> parse_int(T, 10 * N + H - $0);

java如何從方法返回

import java.util.HashMap; import java.util.Map; public class Test { /** * 方法1:使用集合類 (Map以外的集合類也可以隨意使用) * 目標:返回一個數組的最大值和最小值 */ pu

redis列表型別list如何一次返回並刪除這些

redis的列表型別list是一個常用的資料型別,但是這個型別並不支援一次性返回多個值並刪除這些已經返回的值。 其實我們可以通過redis的事務,來完成這個一次性返回多個值並刪除這些已經返回的值的需求。 redis中的事務就是一組命令的集合,這些命令要麼全部執行,要麼全都

mysql儲存過程之返回

mysql儲存函式只返回一個值。要開發返回多個值的儲存過程,需要使用帶有INOUT或OUT引數的儲存過程。咱們先來看一個orders表它的結構:mysql> desc orders; +----------------+-------------+------+----