小編寫這篇文章的一個主要目的,主要是給大家介紹,關(guān)于如何處理代碼臃腫的事項,但是如果要處理的話,還是比較的麻煩的,那么,遇到這種問題的話,需要怎么去處理呢?下面就給大家詳細(xì)的解答下。
什么是單行代碼
你可以將單行代碼視為壓縮在一起的代碼塊,使其適合一行。它是只包含在一行中的簡潔、有用的程序。
為什么我需要它們
如果你并不喜歡寫單行代碼,或者你只是好奇為什么我們必須知道這些,那么下面是一些非常有說服力的理由。
理解One-liners將使你成為Python專家,因為你將更好地理解該語言。
這將幫助你更快地編寫代碼。你可以比其他人更快地編寫一段代碼,這將有助于你進行競爭性編程。
在線課程將提高你的基礎(chǔ)知識和編程基礎(chǔ),因為它們會加強你的基礎(chǔ)知識。
你將更多地以Pythonic方式編寫代碼。通常,來自不同語言的人經(jīng)常在Python中以非Python的方式編寫代碼,例如他們不使用列表推導(dǎo)、多重賦值和切片等。
你可以給你的朋友、同事留下深刻的印象,如果你掌握了單行的話,你可以在面試中給人留下好印象。
開始
1.if-else
優(yōu)化前
if 3<2: var=21 else: var=42
優(yōu)化后
var=21 if 3<2 else 42
2.elif
優(yōu)化前
>>>x=42 >>>if x>42: >>>print("no") >>>elif x==42: >>>print("yes") >>>else: >>>print("maybe") yes
優(yōu)化后
>>>print("no")if x>42 else print("yes")if x==42 else print("maybe") yes
3.if
優(yōu)化前
condition=True if condition: print('hi')
優(yōu)化后
if condition:print('hello') print('hello')if condition else None
4.函數(shù)
優(yōu)化前
def f(x): return"hello"+x
優(yōu)化后
f=lambda x:"hello"+x f=exec("def f(x):n return'hello'+x")
5.循環(huán)(列表推導(dǎo)式)
優(yōu)化前
squares=[] for i in range(10): squares.append(i**2)
優(yōu)化后
squares=[i**2 for i in range(10)]
6.if循環(huán)
優(yōu)化前
squares=[] for i in range(10): if i%2==0: squares.append(i**2)
優(yōu)化后
squares=[i**2 for i in range(10)if i%2==0]
7.if else循環(huán)
優(yōu)化前
squares=[] for i in range(10): if i%2==0: squares.append(i**2) else: squares.append(False)
優(yōu)化后
squares=[i**2 if i%2==0 else False for i in range(10)] 8.While循環(huán)與if else
優(yōu)化前
c=0 while c<10: if c!=5: print(c) else: print("FIVE") c+=1
優(yōu)化后
while c<10:c+=1;print(c)if c!=5 else print("FIVE")
9.變量交換
優(yōu)化前
>>>def swap(x,y): x=x^y y=x^y x=x^y return x,y >>>swap(10,20) (20,10)
優(yōu)化后
>>>x,y=10,20 >>>x,y=y,x (20,10)
10.多重賦值
優(yōu)化前
a="ONE" b=2 c=3.001
優(yōu)化后
a,b,c="One",2,3.001
11.將字符串寫入文件
優(yōu)化前
text="Helllloooooo" fileName="hello.txt" f=open(fileName,"a") f.write(text) f.close()
優(yōu)化后
text="Helllloooooo" fileName="hello.txt" print(text,file=open(fileName,'a'))
12.快速排序
優(yōu)化前
def partition(array,start,end): pivot=array[start] low=start+1 high=end while True: while low<=high and array[high]>=pivot: high=high-1 while low<=high and array[low]<=pivot: low=low+1 if low<=high: array[low],array[high]=array[high],array[low] else: break array[start],array[high]=array[high],array[start] return high def quick_sort(array,start,end): if start>=end: return p=partition(array,start,end) quick_sort(array,start,p-1) quick_sort(array,p+1,end) array=[29,99,27,41,66,28,44,78,87,19,31,76,58,88,83,97,12,21,44] quick_sort(array,0,len(array)-1) print(array)
優(yōu)化后
array=[29,99,27,41,66,28,44,78,87,19,31,76,58,88,83,97,12,21,44] q=lambda l:q([x for x in l[1:]if x<=l[0]])+[l[0]]+q([x for x in l if x>l[0]])if l else[] print(q(array))
13.斐波那契數(shù)列
優(yōu)化前
def fib(x): if x<=2: return 1 return fib(x-1)+fib(x-2)
優(yōu)化后
fib=lambda x:x if x<=1 else fib(x-1)+fib(x-2)
14.HTTP服務(wù)器
優(yōu)化前
import http.server import socketserver PORT=8000 Handler=http.server.SimpleHTTPRequestHandler with socketserver.TCPServer(("",PORT),Handler)as httpd: print("serving at port",PORT) httpd.serve_forever()
優(yōu)化后
python-m http.server 8000
15.嵌套For循環(huán)
優(yōu)化前
iter1=[1,2,3,4] iter2=['a','b','c'] for x in iter1: for y in iter2: print(x,y)
優(yōu)化后
[print(x,y)for x in iter1 for y in iter2]
16.輸出不換行
優(yōu)化前
for i in range(1,5): print(i,end="")
優(yōu)化后
print(*range(1,5))
18.海象運算符:=(Python 3.8)
優(yōu)化前
command=input(">") while command!="quit": print("You entered:",command)
優(yōu)化后
while(command:=input(">"))!="quit":print("You entered:",command)
這篇文章就給大家介紹到這里了,希望可以給大家?guī)砀鄮椭?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/128312.html
摘要:利用的一些輔助函數(shù)進行類型轉(zhuǎn)換的函數(shù)和復(fù)雜的自定函數(shù)之間有一個中間段,那就是的一些輔助函數(shù)。這些輔助函數(shù)對于某些特定數(shù)據(jù)類型的轉(zhuǎn)換非常有用如。 利用Pandas進行數(shù)據(jù)分析時,確保使用正確的數(shù)據(jù)類型是非常重要的,否則可能會導(dǎo)致一些不可預(yù)知的錯誤發(fā)生。筆者使用Pandas已經(jīng)有一段時間了,但是還是會在一些小問題上犯錯誤,追根溯源發(fā)現(xiàn)在對數(shù)據(jù)進行操作時某些特征列并不是Pandas所能處理的...
摘要:今日我就和我們深化共享一下圖片優(yōu)化有必要了解的個知識點。一般我們能夠擬定結(jié)構(gòu)化數(shù)據(jù)規(guī)則讓技術(shù)人員設(shè)計程序批量替換圖片的特點,而無需我們手工操作。關(guān)于圖片地圖,我就不多說了,由于谷歌有許多輔導(dǎo)文檔來協(xié)助你提高圖片的查找排名,看這兒。 假如你運營在線商城又或是大型電商網(wǎng)站,圖片優(yōu)化是你必需求把握的。不僅僅是從招引潛在顧客,仍是添加圖片查找流量,又或是提高網(wǎng)站加載速度,圖片優(yōu)化扮演者十分要害...
摘要:今日我就和我們深化共享一下圖片優(yōu)化有必要了解的個知識點。一般我們能夠擬定結(jié)構(gòu)化數(shù)據(jù)規(guī)則讓技術(shù)人員設(shè)計程序批量替換圖片的特點,而無需我們手工操作。關(guān)于圖片地圖,我就不多說了,由于谷歌有許多輔導(dǎo)文檔來協(xié)助你提高圖片的查找排名,看這兒。 假如你運營在線商城又或是大型電商網(wǎng)站,圖片優(yōu)化是你必需求把握的。不僅僅是從招引潛在顧客,仍是添加圖片查找流量,又或是提高網(wǎng)站加載速度,圖片優(yōu)化扮演者十分要害...
摘要:同時,在元類中,我們還需要加上一個判斷,只有在這個類創(chuàng)建時才需要控制其類的生成,其他的就不需要了。完整代碼后臺回復(fù)元類獲取原創(chuàng)不易,如果文章對你有用的話,點贊留言轉(zhuǎn)發(fā)是對我的最大支持日常學(xué)代碼不止,還有美和樂趣 我之前在深入理解python中的類和對象中說過,python中的類也是一個對象,可以說是類對象,可以由type來創(chuàng)建類對象的。有了這個知識我們先看看下面這個函數(shù): showIm...
閱讀 928·2023-01-14 11:38
閱讀 902·2023-01-14 11:04
閱讀 759·2023-01-14 10:48
閱讀 2065·2023-01-14 10:34
閱讀 968·2023-01-14 10:24
閱讀 844·2023-01-14 10:18
閱讀 512·2023-01-14 10:09
閱讀 591·2023-01-14 10:02