中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

有哪些重要的Python技巧

發布時間:2021-11-01 15:17:25 來源:億速云 閱讀:112 作者:iii 欄目:編程語言

本篇內容介紹了“有哪些重要的Python技巧”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

一、變量的交換

a = 1  b = 2  如果我們需要交換a 和 b中的內容  我們通常可以定義一個臨是變量tmp tmp = a   a = b  b = tmp

先將a 的內容存放在其中,然后將a 設置成b,再將b 設置成這個臨時的變量;

不過上面這段代碼其實在Python中可以被改寫成這樣:這樣的話,程序的可讀性就提高了很多;

a = 1  b = 2  a, bb = b, a

二、字符串的格式化

name = "Chan"  print("Hi, I'm" + name)

通常我們在程序中需要組合或拼接字符串的話,我們用加號來做字符串的連接,如果做兩個字符串的連接,這樣做其實并沒有什么問題,但如果字符串比較多的話,類似這種情況:

name = "Chan"  country = "China"  age = 23  print("Hi, I'm " + name + ". I'm from " + country + ". And I'm " + str(age) + "."

這樣的程序就會顯得非常的雜亂并且不易閱讀;而且,當我們在連接整形數據的時候,還需要進行類型的轉化,不然程序會報錯。

其實,我們可以把程序寫成這個樣子,利用Python的百分號語法來格式化字符串,其中%s代表這里會被替代成一個字符串,%d表示這里會被替換成一個替換成一個十進制,最后面括號內里的內容表示會被替換的內容:

name = "Chan"  country = "China"  age = 23  print("Hi, I'm %s. I'm from %s. And I'm %d." % (name,country,age))

雖然程序寫成這樣已經好看很多了,但是我們在這里還可以做的更好一些,我們可以利用python中的format函數和花括號語法,把程序寫成下面這樣:

花括號里面的內容會被替換成format函數中傳入的各個參數;

name = "Chan"  country = "China"  age = 23  print("Hi, I'm {}. I'm from {}. And I'm {}.".format (name,country,age))

花括號里面的內容會被替換成format函數中傳入的各個參數,使用這個函數好處是:

你可以在花括號中寫入被替代的索引,同個索引的地方會被替換成同一個內容,像下面這樣:

name = "Chan"  print("Hi, I'm {0}. And I'm {0}.".format (name))  結果:Hi, I'm Chan. And I'm Chan

最后一種,也是我最喜歡的,叫做f-string,我們只需要在字符串開頭寫一個f,花括號中的內容就會被自動替換成指定表達式的值,注意是表達式:

name = "Chan"  country = "China"  age = 23  print(f"Hi, I'm {name}. I'm from {country}. And I'm {age+1}."

三、Python中Yield語法

比如在這里,我們定義了一個fibonacci()函數,來列舉斐波那契數列的前n位:0、1、1、2、3、5...

def fibonacci(n):      a = 0      b = 1      nums = []      for _ in range(n):          nums.appends(a)          a, bb = b, a+b      return nums  for i in fibonacci(10):      print(i)

我們可以修改這個fibonacci()函數來使用Python中的yield語法:

首先把append改寫成yield;

然后刪除num列表;

這樣程序會和以上是一樣的,yield a表示,每當我們計算出一個元素,就立馬將這個元素送出去;并不需要等整個列表生成后再輸出;yield的優勢是在一些非常耗時的操作,及時輸出;

def fibonacci(n):      a = 0      b = 1      for _ in range(n):          yield a           a, bb = b, a+b      return nums  for i in fibonacci(10):      print(i)

四、列表解析式

比如我們有一系列水果的名字,存放在fruit列表里,如果我們希望把列表的內容都改成大寫,我們可以有很多種辦法:

fruit = ["apple", "pear", "orange", "banana"]  第一種:  for i in range(len(fruit)):       fruit[i] = fruit[i].upper()   更簡單的語法:  fruit = [x.upper for x in fruit]

方括號中for后面內容是告訴python,我們需要枚舉fruit變量中的所有元素,而其中每個元素名稱叫做x,前半部分則是將x大寫upper().

做個練習,評論區可以說說這段代碼是什么意思:

fruit = ["apple", "pear", "orange", "banana"]  new_fruit = [x for x in fruit if x.startwith("a")]

五:Enumerate函數

使用4的例子,我們希望按順序輸出一個列表中的所有元素,我們可以使用下面方式:

fruit = ["apple", "pear", "orange", "banana"]  for x in fruit:      print(x)

如果我們希望得到每個值對用的索引值,比如apple是0,orange是2,我們可以使用Enumerate函數,把程序改成這樣:

fruit = ["apple", "pear", "orange", "banana"]  for i,x in enumerate(fruit):      print(i,x) i是索引值,x是內容值

六、反向遍歷

如果我們希望對列表從后往前依次輸出,那么應該怎么做呢?

其實只要加入reversed函數就可以了:

fruit = ["apple", "pear", "orange", "banana"]  for i,x in enumerate(reversed(fruit)):      print(i,x)

希望水果元素按照字母順序輸出,使用sorted函數:

fruit = ["apple", "pear", "orange", "banana"]  for i,x in enumerate(sorted(fruit)):      print(i,x)

七、字典的合并操作

比如我們有兩個字典,存放不同用戶的用戶名和密碼,可以寫一個程序,將兩個字典合并:

a = {"ross":"123456","xiaoming":"xiao123"}  b = {"lili":"11111","nana":"123456"}  c = {}  for k in a :      c[k] = a[k]  for k in b:      c[k] = b[k]

我們可以將程序改寫成:

a = {"ross":"123456","xiaoming":"xiao123"}  b = {"lili":"11111","nana":"123456"}  c = {**a, **b}

兩個**號在python中稱為解包unpacking,意為將a和b的內容都直接放入c中;

八、三元運算符:

我們經常會根據條件,將變量設置成不同的值:

if score > 60:     s = "pass"   else:     s = "fail"

其實可以直接改成:

s = "pass" if score > 60 else "fail"

這里的if...else稱為Python中的三元運算符;

九、序列解包

我們定義一個變量,存儲名字的名和姓,如果我們想要單獨提取他們的姓和名,并存入不同變量,我們最簡單的辦法就是使用split()函數:

Name = "Xiao Chen"  str_list = name.split()  first_name = str_list[0]  last_name = str_list[1]

其實這段代碼可以被改寫成:

Name = "Xiao Chen"  first_name,last_name = name.split()

我們直接將split()函數返回列表中的元素賦給first_name和last_name,這個操作在python中就被稱為序列解包,這里的序列不一定是列表,可以是元組,甚至是range;

十、With語句

如果我們想打開某個文件,我們可以使用open函數,打開并讀取文件;

讀取后不要忘記關閉文件,如果不關閉,Python將一直占用這個文件的資源,直到程序退出為止;

f = open("suchfils.txt", "r")  s = f.read()  f.close()

對于小腳本來說,這不是什么大事,但是,對于一個長時間在服務器運行的程序,系統資源很可能被吃光,系統程序就會崩潰;所以更好的習慣是使用Python的with語句,將程序改寫成:

with open("suchfils.txt", "r") as f:       s = f.read()

這樣的話,就不用調用close函數了,執行完,文件就會自動關閉

“有哪些重要的Python技巧”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

囊谦县| 望江县| 甘孜县| 南城县| 威信县| 平原县| 永年县| 冀州市| 石屏县| 龙口市| 百色市| 无极县| 陆河县| 阜新| 桦川县| 宜川县| 鱼台县| 灵石县| 光泽县| 贵港市| 潼南县| 雷山县| 张家界市| 民勤县| 青铜峡市| 阿巴嘎旗| 仙居县| 华蓥市| 余姚市| 邳州市| 偏关县| 昂仁县| 万源市| 兴化市| 渝中区| 广州市| 宽城| 江陵县| 黔西| 闽清县| 镇坪县|