搜尋
首頁後端開發Python教學17條好用的 Python 技巧分享!

17條好用的 Python 技巧分享!

Apr 17, 2023 am 09:22 AM
python技巧

17條好用的 Python 技巧分享!

正文

大家好,我是Python人工智慧技術。

在這篇文章中,我們將討論最常用的python技巧。大多數這些技巧都是我在日常工作中使用過的簡單的Trick,我覺得好東西就是要拿出來和大家一起分享。

閒話少說,我們直接開始吧! :)

技巧總結

1、處理使用者的多個輸入

有時我們需要從使用者那裡獲得多個輸入,以便使用循環或任何迭代,一般的寫法如下:

# bad practice码
n1 = input("enter a number : ")
n2 = input("enter a number : ")
n2 = input("enter a number : ")
print(n1, n2, n3)

但是更好的處理方法如下:

# good practice
n1, n2, n3 = input("enter a number : ").split()
print(n1, n2, n3)

2、處理多個條件語句

如果我們在程式碼中需要檢查多個條件語句,此時我們可以使用all() 或any() 函數來實現我們的目標。一般來說, 當我們有多個 and 條件時使用 all(),當我們有多個 or 條件時使用 any()。這種用法將使我們的程式碼更加清晰易讀,可以方便我們在調試時不會遇到麻煩。

對於all()的一般例子如下:

size = "lg"
color = "blue"
price = 50
# bad practice
if size == "lg" and color == "blue" and price < 100:
 print("Yes, I want to but the product.")

更好的處理方法如下:

# good practice
conditions = [
 size == "lg",
 color == "blue",
 price < 100,
]
if all(conditions):
 print("Yes, I want to but the product.")

對於any()的一般例子如下:

# bad practice
size = "lg"
color = "blue"
price = 50
if size == "lg" or color == "blue" or price < 100:
 print("Yes, I want to but the product.")

更好的處理方法如下:

# good practice
conditions = [
 size == "lg",
 color == "blue",
 price < 100,
]
if any(conditions):
 print("Yes, I want to but the product.")

3、 判斷數字奇偶性

這很容易實現,我們從用戶那裡得到輸入,將其轉換為整數,檢查對數字2的求餘操作,如果餘數為零,則它是偶數。

print('odd' if int(input('Enter a number: '))%2 else 'even')

4、 交換變數

在Python中如果需要交換變數的值,我們不需要定義臨時變數來操作。我們一般使用以下程式碼來實現變數交換:

v1 = 100
v2 = 200
# bad practice
temp = v1
v1 = v2
v2 = temp

但是更好的處理方法如下:

v1 = 100
v2 = 200
# good practice
v1, v2 = v2, v1

5、 判斷字串是否為回文字串

將字符字串進行反轉最簡單的實作方式為[::-1] ,程式碼如下:

print("John Deo"[::-1])

6、 反轉字串

在Python中判斷一個字串是否為回文字串,只需要使用語句

string.find(string[::-1])== 0 ,範例程式碼如下:

v1 = "madam" # is a palindrome string
v2 = "master" # is not a palindrome string
print(v1.find(v1[::-1]) == 0) # True
print(v1.find(v2[::-1]) == 0) # False

7、 盡量使用Inline if statement

大多數情況下,我們在條件之後只有一個語句,因此使用Inline if statement 可以幫助我們編寫更簡潔的程式碼。舉例如下,一般的寫法為:

name = "ali"
age = 22
# bad practices
if name:
 print(name)
if name and age > 18:
 print("user is verified")

但是更好的處理方法如下:

# a better approach
print(name if name else "")
""" here you have to define the else condition too"""
# good practice
name and print(name)
age > 18 and name and print("user is verified")

8、刪除list中重複的元素

我們不需要遍歷整個 list列表來檢查重複元素,我們可以簡單地使用set() 來刪除重複元素,代碼如下:

lst = [1, 2, 3, 4, 3, 4, 4, 5, 6, 3, 1, 6, 7, 9, 4, 0]
print(lst)
unique_lst = list(set(lst))
print(unique_lst)

9、 找到list中重複最多的元素

#在Python中可以使用max ( ) 函數並傳遞list.count 作為key,即可找出列表list中重複次數最多的元素,程式碼如下:

lst = [1, 2, 3, 4, 3, 4, 4, 5, 6, 3, 1, 6, 7, 9, 4, 0]
most_repeated_item = max(lst, key=lst.count)
print(most_repeated_item)

10、 list 生成式

Python中我最喜歡的功能就是list comprehensions , 這個特性可以使我們編寫非常簡潔功能強大的程式碼,而且這些程式碼讀起來幾乎像自然語言一樣通俗易懂。舉例如下:

numbers = [1,2,3,4,5,6,7]
evens = [x for x in numbers if x % 2 is 0]
odds = [y for y in numbers if y not in evens]
cities = ['London', 'Dublin', 'Oslo']
def visit(city):
 print("Welcome to "+city)
for city in cities:
 visit(city)

11、 使用*args傳遞多個參數

在Python中我們可以使用*args來傳遞多個參數給函數,舉例如下:

def sum_of_squares(n1, n2)
 return n1**2 + n2**2
print(sum_of_squares(2,3))
# output: 13
"""
what ever if you want to pass, multiple args to the function
as n number of args. so let's make it dynamic.
"""
def sum_of_squares(*args):
 return sum([item**2 for item in args])
# now you can pass as many parameters as you want
print(sum_of_squares(2, 3, 4))
print(sum_of_squares(2, 3, 4, 5, 6))

12、 在循環時處理下標

有時我們在工作中,想要獲得循環中元素的下標,一般來說,比較優雅的寫法如下:

lst = ["blue", "lightblue", "pink", "orange", "red"]
for idx, item in enumerate(lst):
print(idx, item)

13、拼接list中多個元素

在Python中一般使用Join() 函數來將list中所有元素拼接到一起,當然我們也可以在拼接的時候添加拼接符號,樣例如下:

names = ["john", "sara", "jim", "rock"]
print(", ".join(names))

14、 將兩個字典進行合併

另外,搜尋公眾號頂級Python後台回复“進階”,獲取一份驚喜禮包。

在Python中我們可以使用{**dict_name, **dict_name2, … }將多個字典合併,樣例如下:

d1 = {"v1": 22, "v2": 33}
d2 = {"v2": 44, "v3": 55}
d3 = {**d1, **d2}
print(d3)

結果如下:

{'v1': 22, 'v2': 44, 'v3': 55}

15 使用兩個list產生一個字典

在Python中,、果我們需要將兩個列表中對應的元素組成字典,那麼我們可以使用zip 功能來方便地做到這一點。程式碼如下:

keys = ['a', 'b', 'c']
vals = [1, 2, 3]
zipped = dict(zip(keys, vals))
16、 字典按照value進行排序

在Python中我們使用sorted()函數來依照字典的value來對其進行排序.程式碼如下:

d = {
 "v1": 80,
 "v2": 20,
 "v3": 40,
 "v4": 20,
 "v5": 10,
}
sorted_d = dict(sorted(d.items(), key=lambda item: item[1]))
print(sorted_d)
当然我们也可以使用itemgetter( )来替代上述 lambda函数,代码如下:
from operator import itemgetter
sorted_d = dict(sorted(d.items(), key=itemgetter(1)))

更進一步,我們也可以透過傳遞reverse=True 對其進行降序排序:

sorted_d = dict(sorted(d.items(), key=itemgetter(1), reverse=True))

17、 Pretty print

在Python中使用Print()函數,有時候的輸出賊拉拉醜陋,此時我們使用pprint可以使輸出更加美觀,樣例如下:

from pprint import pprint
data = {
 "name": "john deo",
 "age": "22",
 "address": {"contry": "canada", "state": "an state of canada :)", "address": "street st.34 north 12"},
 "attr": {"verified": True, "emialaddress": True},
}
print(data)
pprint(data)

輸出如下:

{'name': 'john deo', 'age': '22', 'address': {'contry': 'canada', 'state': 'an state of canada :)', 'address': 'street st.34 north 12'}, 'attr': {'verified': True, 'emialaddress': True}}
{'address': {'address': 'street st.34 north 12',
'contry': 'canada',
'state': 'an state of canada :)'},
'age': '22',
'attr': {'emialaddress': True, 'verified': True},
'name': 'john deo'}

可見使用pprint函數可以讓字典的輸出更加容易閱讀。

以上是17條好用的 Python 技巧分享!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
Python和時間:充分利用您的學習時間Python和時間:充分利用您的學習時間Apr 14, 2025 am 12:02 AM

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python:遊戲,Guis等Python:遊戲,Guis等Apr 13, 2025 am 12:14 AM

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python vs.C:申請和用例Python vs.C:申請和用例Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時的Python計劃:一種現實的方法2小時的Python計劃:一種現實的方法Apr 11, 2025 am 12:04 AM

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python:探索其主要應用程序Python:探索其主要應用程序Apr 10, 2025 am 09:41 AM

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

您可以在2小時內學到多少python?您可以在2小時內學到多少python?Apr 09, 2025 pm 04:33 PM

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?Apr 02, 2025 am 07:18 AM

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具