當前位置:首頁 » 編程語言 » python有指針嗎

python有指針嗎

發布時間: 2022-04-27 15:03:32

python中.*和.*的區別

概要等式運算函數中參數的定義與調用定義函數時*的作用:out定義函數時:**OUTOUT調用函數時,和*均是為了分配參數用的調用函數時:*:調用函數時:**:

概要
關於""和"*"兩個特殊符號的區別,首先在python中是沒有指針的,與C++有很大的不同。
等式運算
python中常用的乘法運算符*
>>> 3*7
21
>>> l=[2 * i for i in range(100) ]
>>> l
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102,
104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198]

函數中參數的定義與調用
如果在定義函數時,代表收集參數,*代表收集關鍵字參數。
定義函數時*的作用:
def symbols(*params):
print(params)

out
symbols(1,2,3)
(1,2,3)

此時*是將調用時提供的所有值,放在一個元組里。
這種情況下,在函數定義時的形參里的*params後面,就最好不要再加入別的形參了,比如你定義成 def symbols(*params,x) ,調用的時候symbols(1,2,3),就會報錯。因為這樣python分不清哪個數據是給params的。如果你非要這么定義也行,不過在調用的時候,必須顯示的指出哪個值是給x的。比如symbols(1,2,x=3),通過這種方式調用才不會出錯。
定義函數時:**
對於之前參數是*params的情況,symbols並不能傳入關鍵字參數。仍然採取這種方式定義時:會報錯
def symbols1(*params):
print(params)

OUT
>>>symbols1(x=1,y=2,z=3)

Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
TypeError: symbols1() got an unexpected keyword argument 'x'

報錯
因為*號並不會收集關鍵字參數。所以需要如下方式修改,採用兩個星號:
def symbols2(**params):
print(params)

這樣調用symbols2就不會有問題:
OUT
>>> symbols2(x=1,y=2,z=3)

{'z'=3,'x'=1,'y'=2}

以上輸出得到一個字典。字典中元素的先後順序取決於你的環境。
調用函數時,和*均是為了分配參數用的
調用函數時:*:
例如,還是剛剛那個print函數
def symbols(x,y):
print(x)
print(y)

兩個形參,如果只想傳入一個形參呢
對,「調用函數時分配參數」跟「定義函數時收集參數」,反過來了!
假設你還有一個元組:
params=(1,2)

可以通過如下方式調用symbols函數:
>>> symbols(*params)
就可以輸出:

1
2

調用函數時:**:
和上面*時一樣,只是分配的是字典。
params={'x':1,'y':2}

可以通過如下方式調用symbols函數:
>>> symbols(**params)
就可以輸出:

1
2

❷ Python中數組有類似C中指針嗎 可以把一串數據賦值給數組 從數組第一個開始賦值

代碼如下:

#coding=utf8

defdata(arr):
foriinrange(10):
arr.append(i)


if__name__=='__main__':

#定義一個數組
arr=[]

#通過方法data()為arr賦值
data(arr)

#輸出數組
print(arr)

運行結果:

❸ Python有沒有指針,下面的例子如何理解

python沒有指針,但它也可以傳引用
最簡單的例子
def add(a, my_list=[]):
my_list.append(a)
print my_list
add(1) -> [1]
add(2) -> [1,2]
add(3) -> [1,2,3]
https://docs.python.org/2.7/tutorial/controlflow.html#default-argument-values

❹ python怎麼使用指針

python 不像c, 沒辦法直接使用指針。指針就是內存地址。
python中,最接近指針的就是, id() 返回某個對象的唯一id,類似於地址了。

❺ 在python中,變數就是指針,可以這樣理解么

不是。
應該是指向指針的指針,只不過變數本身的地址在python中不提供訪問途徑。也就是只能訪問這個指針所指地址(指針)和此地址里的內容。
比如
python中 a="xyz"
a本身的地址(對應的C運算:&a)python里是沒有辦法看到的。
python的id(a),返回的是"xyz"在內存中的起始地址,而不是存儲a變數本身的地址。

❻ Python中也有指針的概念嗎

沒有,python比較簡單 容易理解。

❼ python 里邊 有沒有類似C++的 別名 或者 指針 的功能

樓上說的列表讓我想起來,你可以利用列表的可變性,就是看起來有點怪:

>>>classfoo(object):
def__init__(self):
self.bar=['Initial']


>>>a=foo()
>>>a.bar[0]
'Initial'
>>>b=a.bar
>>>a.bar[0]='other'
>>>b[0]
'other'

❽ python小白的問題

首先python中不存在指針。如果非要說有,那麼python的一切變數全是指針(比如a=1,python會在某處創建了整數1,然後把a指向這里)。open返回的一般稱為文件對象。
這就是python。——「一切皆對象」
(另外,一般建議用with open("xxx.txt",'w') as tp: 後加語句塊打開文件,這種方式會在語句塊結束時自動關閉文件)

❾ python有一級指針和二級指針的概念嗎

python把一切數據,一切的一切都看作對象,在python中,沒有變數,只有指針,要說變數,也是指針變數。

熱點內容
滑鼠如何編程 發布:2025-05-16 02:29:09 瀏覽:815
安卓70能用什麼軟體 發布:2025-05-16 01:45:09 瀏覽:480
編程發展史 發布:2025-05-16 01:38:52 瀏覽:528
android圖片氣泡 發布:2025-05-16 01:38:40 瀏覽:886
文件加密編輯器下載 發布:2025-05-16 01:30:41 瀏覽:343
linuxapacheyum安裝 發布:2025-05-16 01:30:31 瀏覽:476
大連賓利浴池wifi密碼是多少 發布:2025-05-16 01:25:36 瀏覽:172
緩存數據生產服務 發布:2025-05-16 01:08:58 瀏覽:585
普通電腦伺服器圖片 發布:2025-05-16 01:04:02 瀏覽:971
伺服器地址和埠如何區分 發布:2025-05-16 01:03:17 瀏覽:834