主頁 > 軟體設計 > 你需要知道的 20 個 Python 技巧

你需要知道的 20 個 Python 技巧

2021-10-23 09:00:01 軟體設計

🌊 作者主頁:海擁
🌊 作者簡介:🏆CSDN全堆疊領域優質創作者、🥇HDZ核心組成員、🥈蟬聯C站周榜前十
🌊 粉絲福利:粉絲群 每周送四本書,每月送各種小禮品(搪瓷杯、抱枕、滑鼠墊、馬克杯等)

直接跳到末尾 去評論區領書

目錄

🥇 1.用itertools排列
👓 2.單行條件運算式
🚋 3. 反轉字串
🐱?🏍 4. 使用 Assert 處理例外
🎪 5. 對多個輸入使用拆分
🎢 6. 用 zip() 轉置矩陣
🎈 7. 資源背景關系管理器
🎡 8. 下劃線作為分隔符
🎠 9. 嘗試 f 字串格式
🧦 10.用這個技巧交換整數
🎱 11. 使用 lambda 代替函式
🎳 12.多次列印無回圈
🥅 13. 將字串解包為變數
🎯 14. 使用 Map 進行串列理解
🎴 15. 從串列中洗掉重復項
🍫 16. 列印陳述句中的條件
🍺 17. 條件串列 All 和 Any
🍖 18. 合并兩個字典
🚒 19.檢查執行時間
🚀 20.檢查函式庫
🧵 去評論區領書

🥇 1.用itertools排列

在這個程式中,我們匯入了名為 itertools 的內置模塊,使用 itertools,您可以找到給定字串的所有排列,在 itertools 中有很多方法,您可以嘗試組合和其他方法,

import itertools
name= 'Python'
for i in itertools.permutations(name):
    print(i)                                                                        

回到目錄


👓 2.單行條件運算式

此條件運算式已添加到 Python 2.5 版本中,這可以與A if condition else B語法一起使用,首先,評估條件并根據條件的布林值回傳,如果為真,則回傳 A,否則,如果為假,則回傳 B,

x=10
y=100
res = x if x>y else y
print(f"The greater number is {res}")    

回到目錄


🌹 3. 反轉字串

在這個程式中,我們使用擴展切片來反轉字串,擴展切片使用[begin:end:step]語法,所以當我們跳過開始、結束和步驟時,我們傳遞 (-1) 作為值,這將反轉給定的字串,

string = "medium"
reverse_string = string[::-1]
print(f"The reversed string is {reverse_string}")  

回到目錄


🐱?🏍 4. 使用 Assert 處理例外

例外處理是編程中一個非常重要的概念,使用 assert 關鍵字和給定的條件列印錯誤陳述句,如果給定的條件不為真,那么它將列印一條錯誤訊息并終止程式,

x = int(input("enter a number to divide ")) 
assert x<=-1 and x>0, 'Number should be greater than 0' 
ans = 100/x 
print(f'The output is {ans}')

回到目錄


🎪 5. 對多個輸入使用拆分

split() 是字串方法之一,它將字串拆分為一個串列,此方法中使用的默認分隔符是空格,在這個程式中,不是為輸入操作創建三個重復的行,而是用一行替換,

a,b,c = input("Enter the value for a, b, c :").split()
print(a)
print(b)
print(c)    

回到目錄


🎢 6. 用 zip() 轉置矩陣

Zip 函式具有來自不同列的任意數量的可迭代物件并聚合相應的元組,星號(*) 運算子用于解壓縮串列,稍后串列被更改為給定串列的轉置矩陣,

matrix=[[1,2],[3,4],[5,6]]
trans=zip( *matrix)
print(list(trans))   

回到目錄


🎈 7. 資源背景關系管理器

資源管理是編程程序中的重要任務之一,訪問和釋放檔案、鎖和其他資源是一項繁忙的任務,如果沒有正確關閉資源,可能會導致記憶體泄漏等幾個問題,為了解決這個問題,不要每次都使用 open 和 close 方法,而是使用代碼片段中所示的背景關系管理器,

with open("demo.txt", mode="w") as file:
    file.write('Hola!')  

回到目錄


🎡 8. 下劃線作為分隔符

在程式中使用大數字時,使用下劃線代替逗號作為分隔符可以提高可讀性,Python 語法不承認下劃線,它用下劃線表示,以首選格式表示數字并且可讀,

x = 10_000_000_000
print(f" It is Ten Billion: {x}")                                                       

回到目錄


🎠 9. 嘗試 f 字串格式

F 字串格式是在 Python 3.6 版本中引入的,它是最簡單易行的字串格式化方法,使用 f 字串格式而不是傳統格式使代碼易于理解,

Name = input("Enter your name ")
print(f'Hello{Name}! This is a Python Example')    

回到目錄


🧦 10.用這個技巧交換整數

注意交換整數是在不使用臨時變數的情況下完成的,Python 從左到右計算運算式,但在賦值操作中,首先計算右側,這為右側變數(b 和 a)創建了元組,其值是從左側變數分配的,此程序有助于交換變數,

a,b = input("Enter the value for a, b :").split()
a,b = b,a
print(a,b) 

回到目錄


🎱 11. 使用 lambda 代替函式

Lambda 是最強大的函式之一,也稱為匿名函式,它不需要名稱或函式定義或回傳陳述句,普通函式 def 關鍵字,而 lambda 函式使用 lambda 關鍵字,它的作業方式與函式類似,只是它只適用于一個運算式,

x = lambda a, b : a + b
print(x(1, 2))  

回到目錄


🎳 12.多次列印無回圈

在這個程式中,我們嘗試使用單行而不使用回圈多次列印陳述句,星號 (*) 使您能夠將陳述句列印指定的次數,

print("This is a Python example to print this 100 times\n" *100) 

回到目錄


🥅 13. 將字串解包為變數

一個序列或一個字串可以解包成不同的變數,在這個程式中,python字串字母將分別解壓到變數中,程式的輸出將是 p、y、t,

name='Python'
a,b,c,d,e,f =name
print(a)
print(b)
print(c)                                                                          

回到目錄


🎯 14. 使用 Map 進行串列理解

在這個程式中,我們嘗試將元素添加到串列中,為此,我們將 lambda 函式與 map 和 list comprehension 結合使用,該程式的輸出將是 [12, 15, 18],

num1=[1,2,3]
num2= [4,5,6]
num3=[7,8,9]
result= map(lambda x,y,z:x+y+z,num1,num2,num3)
print(list(result))  

回到目錄


🎴 15. 從串列中洗掉重復項

在這個程式中,我們嘗試從串列中洗掉重復項,要記住的一件事是集合不允許重復,我們將串列傳遞給 set(),并再次將其更改為串列,洗掉串列中的所有重復元素,

old_list = [1,2,2,3,3,4,5,5,6]
new_list = list(set(old_list))
print(new_list)     

回到目錄


🍫 16. 列印陳述句中的條件

這個程式很有趣并且包含了相當多的操作,首先,將執行輸入法,然后將輸入值更改為整數,然后它將檢查條件并回傳一個布林值,如果它回傳,一個非零數字奇數將是輸出,或者,如果它回傳零,那么偶數將是輸出,

print("odd" if int(input("enter the value"))%2 else "even")  

回到目錄


🍺 17. 條件串列 All 和 Any

在這個程式中,我們一次檢查一個條件串列,有兩個函式:all()和any(),顧名思義,當我們使用 all() 時,所有條件都必須為真,并且當使用any()時,即使其中一個條件為真,代碼塊也會被執行,

Marks = 350
Percentage = 60
Passed = 5
Conditions = [Marks>200, Percentage>50,Passed>4]
if(all(Conditions)):
    print("Hired for a company A")
elif(any(Conditions)):
    print("Hired for a company B")
else:
    print("Rejected")   

回到目錄


🍖 18. 合并兩個字典

這一條現在已經棄用了

在這個程式中,我們嘗試合并兩個字典,請注意,在此程式中,可以使用“|”完成合并 操作員,

Household = {'Groceries':'100','Electricity':'150'}
Travel = {'Food':'50','Accomodation':'122','Transport':'70'}
Expense = Household | Travel
print(Expense)  

回到目錄


🚒 19.檢查執行時間

通過匯入timeit包來檢查程式的執行時間,在這個程式中,形成一個1到1000個串列的執行時間,

import timeit
execution_time = timeit.timeit('list(range(1,1000))')
print(execution_time)    

回到目錄


🚀 20.檢查函式庫

在這個程式中,我們嘗試檢查函式的庫,itertools 的所有屬性和模塊都會用這個程式列印出來,

import itertools
print(dir(itertools))  

回到目錄


🥇 評論區抽粉絲送書啦

💌 歡迎大家在評論區提出意見和建議! (抽兩位幸運兒送書,實物圖如下)💌

在這里插入圖片描述

《機器學習與深度學習演算法基礎》

【內容簡介】

本書從機器學習的概念與基本原理開始,介紹了機器學習及近年來流行的深度學習領域的經典模型,閱讀本書可以讓讀者系統地了解機器學習和深度學習領域的基本知識,領會模型演算法的思路與策略,
  本書分為兩篇,共18章,一篇為經典機器學習模型,主要介紹常用的機器學習經典模型,包括線性回歸、支持向量機模型、邏輯斯蒂回歸、決策樹模型、k近鄰、樸素貝葉斯、線性判別分析和主成分分析、流形學習、聚類演算法、稀疏編碼、直推式支持向量機、集成演算法,第二篇為深度學習模型與方法,剖析神經網路的基本要素,并介紹常用的深度學習模型,包括感知機、卷積神經網路、回圈神經網路、生成對抗網路,

也有不想靠抽,想自己買的同學可以參考下面的鏈接

京東自營購買鏈接:

《機器學習與深度學習演算法基礎》(賈壯) - 京東圖書

當當自營購買鏈接:

《機器學習與深度學習演算法基礎》- 當當圖書

📣 注意:

大家點贊關注,三天后也就是 10月25日 從評論區留言的同學中抽取兩位送書

🌊 面試題庫:Java、Python、前端核心知識點大全和面試真題資料
🌊 電子圖書:圖靈程式叢書 300本、機械工業出版社6000冊免費正版圖書
🌊 辦公用品:精品PPT模板幾千套,簡歷模板一千多套
🌊 學習資料:2300套PHP建站原始碼,微信小程式入門資料

如果中獎了聯系不上則視為放棄,可以從下方公眾號里找到作者的聯系方式,每周都會送四本書,后面送書力度還會加大,一年送幾百上千本不是問題,回復【進群】領書不迷路,群內 每位成員 我都會送一本,回復【資源】可獲取上面的資料👇🏻👇🏻👇🏻

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/332140.html

標籤:其他

上一篇:《萬人千題》第一階段:演算法零基礎抱團養成,我命由我不由天!

下一篇:(c語言)-- 深度剖析指標和陣列(上)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more