Python中為什麼有的函式可以直接用,有的就要賦值才能用呢?

時間 2021-06-01 08:36:57

1樓:剛吉訶德

a[4].upper()函式是將k僅僅進行了大寫操作。

舉個栗子

就像c語言裡面的 i+1

你要用i = i+1才能改變他的值。

2樓:青牛

你好。a[4].upper() 是說你把k變成大寫的了,但是這個是臨時的,因為沒有儲存給a,所以print得時候還是原來的值。

3樓:Aoriel

那是因為函式有些是有返回值,而有些是沒有的,python是一門動態語言,如果想要深入,必須要掌握api的返回值和資料型別,否則寫出來的程式,全都是型別錯誤!動態型別也有優點,那就是語法簡潔,不用每次都定義變數的型別。

4樓:小張

1, a[4]=a[4].upper() 等價於:

b = a[4]

a[4] = b.upper()

2, 在Pandas裡面很多函式有inplace引數, 是否修改原物件

5樓:於愚與魚餘

upper函式返回的是乙個 string 物件,所以能列印返回的string。

insert 返回的是None 列印none所以是空。

6樓:YPSheng

這個主要是為了符合程式語言更加符合實際邏輯有的方法是直接改變值,有的方法是不直接改變原始值,而是返回乙個處理過的值。怎麼區分,如果使用IDE工具,你可以選擇檢視該方法原始碼,來判斷其原理,或者是一些IDE工具帶有提示功能,你可以通過提示判斷是否有返回值。一般無返回值的都是直接修改,有返回值的都是返回乙個處理後的值,你需要接收一下。

7樓:Li Ye

比如乙個a列表在4號位置插入'k'字元,

a.insert(4,'k')

物件是a.列表a有方法insert( )對列表直接修改。因為列表是可變物件。

print(a) #列印物件a就可以了看到結果但是要想將k變成大寫

a[4].upper()#注意,upper是字串的方法,字串是不可變物件,反回的是個新的字元

print(a) #就不行。a[4]這個元素,指向的還是原來那個字元a[4]=a[4].upper()#a[4]元素被繫結為新返回的字元。

print(a) #列表還是那個列表,只是其中的某個元素被修改了。

了解下可變物件和不可變物件。

通過python自帶的REPL里查一下幫助文件。試驗一下。

help(str)

Python中id函式為什麼會對不同物件返回相同值?

冒泡 關於1,請參考py的語法,你在a中用a.b和A.b都可以呼叫到b,這裡a.b實際上會像你說的,向上查詢到A.b,但你直接寫b不行 關於2,反對現在所有答案中關於 引用同乙個方法物件 的說法 class Adef f selfpass.a1 A a2 A id a1.f id a2.f True...

有的python內建函式怎麼就乙個pass

劉志軍 當你寫乙個函式或者在類裡面寫方法時,如果你暫時還沒想好怎麼實現,可以暫時用乙個pass來代替 class Person def eat self pass defcry self print I m crying 如果你什麼都不寫的話,就會報錯 IndentationError expect...

python函式引數中的 和 是什麼意思?

遇事不決,查文件 parameter 形參 function 或方法 定義中的命名實體,它指定函式可以接受的乙個 argument 或在某些情況下,多個實參 有五種形參 positional or keyword 位置或關鍵字,指定乙個可以作為 位置引數 傳入也可以作為 關鍵字引數 傳入的實參。這是...