本文目錄一覽:
python3的問題,關於swap name
交換簡寫式
def swap_name(name_list):
name_list[0],name_list[-1]=name_list[-1],name_list[0]
即可。
如何成為Python高手
如果你有一定的計算機編程知識基礎,那麼很容易學;再如果你對編程十分感興趣,那麼很容易學的。
1,找到合適的入門書籍,大致讀一次,循環啊判斷啊,常用類啊,搞懂(太難的跳過)
2,做些簡單習題,字符串比較,讀取日期之類 Python Cookbook不錯(太難太無趣的,再次跳過,保持興趣是最重要的,不會的以後可以再學)
3,加入Python討論群,態度友好笑眯眯(很重要,這樣高手才會耐心糾正你錯誤常識)。很多小問題,糾結許久,對方一句話點播思路,真的節約你很多時間。耐心指教我的好人,超級超級多謝。
4,解決自己電腦問題。比如下載美劇,零散下載了2,4,5,8集,而美劇共12集,怎樣找出漏下的那幾集?然後問題分解,1讀取全部下載文件名,2提取集的數字,3數字排序和(1–12)對比,找出漏下的。
對於python初學者來說,能找到一個好老師學習格外重要,這能決定你是不是可以做出好的項目,在python開發的路上越走越輕鬆,如果現在的你缺乏學習經驗,找不到老師指導你學習,可以加企 鵝扣-Q前面112再加上中間的983以及最後四位數4903,連在一起就可以了。
5,時刻記住目的,不是為了當程序員,是為了解決問題。比如,想偷懶抓網頁內容,用urllib不行,用request也不行,才發現抓取內容涉及那麼多方面(cookie,header,SSL,url,javascript等等),當然可以聽人家勸,回去好好讀書,從頭讀。 或者,不求效率,只求解決,用ie打開網頁再另存為行不行?ie已經渲染過全部結果了。 問題變成:1–打開指定的10個網頁(一行代碼就行)。更複雜的想保存呢?利用已經存在的包,比如PAM30(我的是Python3),直接打開ie,用函數outHTML另存為文本,再用搜索函數(str搜索也行,re正則也行)找到數據。簡單吧?而且代碼超級短。
6,保持興趣,用最簡單的方式解決問題,什麼底層驅動,各種交換,留給大牛去寫吧。我們利用已經有的包完成。
7,耐心讀文檔,並且練習快速讀文檔。拿到新包,找到自己所需要的函數,是需要快速讀一次的。這個不難,讀函數名,大概能猜到是幹嘛的,然後看看返回值,能判斷是不是自己需要的。
8,寫幫助文件和學習筆記,並發布共享。教別人的時候,其實你已經自己再次思考一次了。 我覺得學程序就像學英文,把高頻率的詞(循環,判斷,常用包,常用函數)搞懂,就能拼裝成自己想要的軟件。 一定要保持興趣,太複雜的跳過,就像小學數學,小學英語,都是由簡入深。 網絡很平面,無數國際大牛著作好書,關於Python,算法,電腦,網絡,或者程序員思路,或者商業思維(浪潮之巔是本好書)等等,還有國際名校的網絡公開課(中英文字幕翻譯完畢,觀看不是難事),講計算機,網絡,安全,或者安卓系統,什麼都有,只要能持續保持興趣,一點點學習下去,不是難事。 所有天才程序員,都曾是兒童,回到兒童思維來理解和學習。覺得什麼有趣,先學,不懂的,先放着,遇到問題再來學,效果更好。 唯一建議是,不要太貪心,耐心學好一門優雅的語言,再學其它。雖然Javascript做特效很炫,或提某問題時,有大牛建議,用Ruby來寫更好之類,不要改方向。就像老笑話:“要學習遞歸,必須首先理解遞歸。”然後死循環一直下去。堅持學好一門語言,再研究其他。 即使一門語言,跟網絡,數據庫等等相關的部分,若都能學好,再學其他語言,是很快的事情。 另外就是,用學英文的耐心來學計算機,英文遇到不懂的詞,抄下,查詢。 python里,看到Http,查查定義,看到outHtml,查查定義,跟初學英語時候一樣,不要直接猜意思,因為精確描述性定義,跟含糊自然語有區別的。而新人瞎猜,很容易錯誤理解,wiki,google很有用。
Python為什麼不需要swap
問:Python中為什麼沒有swap(a, b)方法?我們在Python中如何交換對象?
Python 不使用這種方式(swap(a, b))。Python以引用方式管理對象,你可以交換引用,但通常不能交換內存中的對象值。當然你也不需要這樣做。
在C++中這種函數用來交換“a和b的值”。在Python中,a和b的值不會發生交換,但位於當前命名空間中的標記(如a和b)是可以交換的。而對象本身是仍然保留。
所以與其調用一個swap(a, b),你倒不如使用:a,b = b,a。
通常python函數不會混淆它們的命名空間,所以它不能像C++的swap(a, b)那樣進行引用操作。
因此,在python中應該這樣做:
a = 1
b = 2
def swap(t1, t2):
return t2, t1
a,b = swap(a, b) # After this point, a == 2 and b == 1
But there is not way (other than abusing globals or the module
namespace) to do it like this:
不過下面這段代碼不可能像我們希望的那樣工作(全局命名空間和局部命名空間是隔離的):
a = 1
b = 2
def swap(t1, t2):
t2, t1 = t1, t2
return
swap(a, b)
# After this point, a == 1 and b == 2. The calling namespace is
# not changed.
在類中,你可以構造一個命名空間來操作可調用的對象(類實例方法),事實上,這意味着也許可以實現一個swap()方法。但是它們仍然只是操作命名空間中的對象引用,而不會交換對象本身(或者它們在機器內存中的數據)。以下只是一個示例,並不表示它們有什麼實用性:
class Pair:
def __init__(self, t1, t2):
self.t1 = t1
self.t2 = t2
def get(self):
return self.t1, self.t2
def swap(self):
self.t1, self.t2 = self.t2, self.t1
a = 1
b = 2
pair = Pair(a, b)
pair.get() # returns 1,2
pair.swap() # changes the namespace of the pair object
pair.get() # returns 2,1
a == 1
b == 2 # The a and b labels did NOT change
如何在PYTHON 中寫一個函數交換兩個變量的值
python交換兩個變量的值很簡單,a,b = b,a 就可以,寫成函數,代碼如下:
def jh(a,b):
return b,a
x = 1
y = 2
x,y = jh(x,y)
print(x,y)
執行結果如下:
原創文章,作者:JKX39,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/128869.html