自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

30個(gè)神奇的Python技巧來(lái)編寫(xiě)更好的代碼

開(kāi)發(fā) 后端
使用Python技巧將您的邏輯轉(zhuǎn)換為更優(yōu)雅的代碼。Python因其代碼的簡(jiǎn)單性和可讀性而成為一種非常流行的語(yǔ)言。 它是您選擇的最簡(jiǎn)單的語(yǔ)言之一。 如果您是python基本概念的初學(xué)者,那么這是學(xué)習(xí)編寫(xiě)更好代碼的最佳時(shí)間。

 使用Python技巧將您的邏輯轉(zhuǎn)換為更優(yōu)雅的代碼

[[330982]]

Python因其代碼的簡(jiǎn)單性和可讀性而成為一種非常流行的語(yǔ)言。 它是您選擇的最簡(jiǎn)單的語(yǔ)言之一。 如果您是python基本概念的初學(xué)者,那么這是學(xué)習(xí)編寫(xiě)更好代碼的最佳時(shí)間。

python中有許多技巧可以比以前更好地改善程序。 本文將幫助您了解python中可用的各種技巧。 不斷地練習(xí)它們,直到成為您編程習(xí)慣的一部分。

技巧01-變量的多重分配

Python允許我們?cè)谝恍兄袨槎鄠€(gè)變量分配值。 可以使用逗號(hào)分隔變量。 一線(xiàn)多任務(wù)有很多好處。 它可用于為多個(gè)變量分配多個(gè)值或?yàn)閱蝹€(gè)變量名稱(chēng)分配多個(gè)值。 讓我們做一個(gè)問(wèn)題陳述,其中我們必須將值50和60分配給變量a和b。 常規(guī)代碼如下所示。

 

  1. a = 50  
  2. b = 60 
  3. print(a,b) 
  4. print(type(a)) 
  5. print(type(b)) 

輸出量

 

  1. 50  
  2. 60  
  3. <class 'int' 
  4. <class 'int'

 

條件I-值等于變量

當(dāng)變量和多個(gè)賦值相等時(shí),每個(gè)值將存儲(chǔ)在所有變量中。

 

  1. a , b = 50 , 60 
  2. print(a,b) 
  3. print(type(a)) 
  4. print(type(b)) 

輸出量

  1. 50  
  2. 60 
  3. <class 'int'
  4. <class 'int'

這兩個(gè)程序給出相同的結(jié)果。 這是使用一個(gè)行值分配的好處。

條件II-值大于變量

讓我們嘗試增加上一個(gè)程序中的值數(shù)量。 可以將多個(gè)值分配給單個(gè)變量。 在為變量分配多個(gè)值時(shí),我們必須在變量名稱(chēng)前使用星號(hào)。

 

  1. a , *b = 50 , 60 , 70 
  2. print(a) 
  3. print(b) 
  4. print(type(a)) 
  5. print(type(b)) 

輸出量

  1. 50 
  2. [60, 70] 
  3. <class 'int'
  4. <class 'list'

第一個(gè)值將分配給第一個(gè)變量。 第二個(gè)變量將從給定值中收集值。 這將創(chuàng)建一個(gè)列表類(lèi)型對(duì)象。

條件III-多變量一個(gè)值

我們可以為多個(gè)變量分配一個(gè)值。 每個(gè)變量將使用等號(hào)分隔。

 

  1. a = b = c = 50 
  2. print(a,b,c) 
  3. print(type(a)) 
  4. print(type(b)) 
  5. print(type(c)) 

輸出量

  1. 50 50 50 
  2. <class 'int'
  3. <class 'int'
  4. <class 'int'

技巧02-交換兩個(gè)變量

交換是彼此交換兩個(gè)變量的值的過(guò)程。 這在計(jì)算機(jī)科學(xué)的許多操作中可能很有用。 在這里,我編寫(xiě)了兩種主要的方法供程序員用來(lái)交換值以及最佳解決方案。

方法I-使用臨時(shí)變量

此方法使用臨時(shí)變量存儲(chǔ)一些數(shù)據(jù)。 以下代碼使用臨時(shí)變量名編寫(xiě)。

 

  1. a , b = 50 , 60 
  2. print(a,b) 
  3. temp = a+b  
  4. #a=50 b=60 temp=110 
  5. b = a  
  6. #a=50 b=50 temp=110 
  7. a = temp-b  
  8. #a=60 b=50 temp=110 
  9. print("After swapping:",a,b) 

輸出量

 

  1. 50 60 
  2.  
  3. After swapping: 60 50 

 

方法II-不使用臨時(shí)變量

以下代碼在不使用臨時(shí)變量的情況下交換了變量。

 

  1. a , b = 50 , 60 
  2. print(a,b) 
  3. a = a+b  
  4. #a=110 b=60 
  5. b = a-b  
  6. #a=110 b=50 
  7. a = a-b  
  8. #a=60 b=50 
  9. print("After swapping:",a,b) 

輸出量

 

  1. 50 60 
  2.  
  3. After swapping: 60 50 

 

方法III-Python中的優(yōu)秀解決方案

這是使用python交換變量的另一種方法。 在上一節(jié)中,我們了解了多個(gè)分配。 我們可以使用交換的概念。

 

  1. a , b = 50 , 60 
  2. print(a,b) 
  3. a , b = b , a 
  4. print("After swapping",a,b) 

輸出量

 

  1. 50 60 
  2.  
  3. After swapping 60 50 

 

技巧03-反轉(zhuǎn)字符串

還有另一個(gè)很酷的技巧可以在python中反轉(zhuǎn)字符串。 用于反轉(zhuǎn)字符串的概念稱(chēng)為字符串切片。 可以在變量名稱(chēng)后使用符號(hào)[::-1]反轉(zhuǎn)任何字符串。

 

  1. my_string = "MY STRING" 
  2. rev_string = my_string[::-1] 
  3. print(rev_string) 

輸出量

 

  1. GNIRTS YM 

技巧04-在一行中拆分單詞

將單詞分割成一行不需要特殊的算法。 為此,我們可以使用關(guān)鍵字split()。 在這里,我寫(xiě)了兩種分割單詞的方法。

方法一-使用迭代

 

  1. my_string = "This is a string in Python" 
  2. start = 0 
  3. end = 0 
  4. my_list = [] 
  5. for x in my_string:  
  6.     end=end+1  
  7.     if(x==' '):  
  8.     my_list.append(my_string[start:end])  
  9.     start=end+1 
  10.     my_list.append(my_string[start:end+1]) 
  11. print(my_list) 

輸出量

['This ', 'is ', 'a ', 'string ', 'in ', 'Python']

方法II-使用分割功能

 

  1. my_string = "This is a string in Python" 
  2. my_list = my_string.split(' '
  3. print(my_list) 

輸出量

 

  1. ['This ''is ''a ''string ''in ''Python'

技巧05-將單詞列表排成一行

這與上一個(gè)過(guò)程相反。 在這一部分中,我們將使用join函數(shù)將單詞列表轉(zhuǎn)換為單行。 下面給出了使用join函數(shù)的語(yǔ)法。

語(yǔ)法:"" .join(string)

 

  1. my_list = ['This' , 'is' , 'a' , 'string' , 'in' , 'Python'
  2. my_string = " ".join(my_list) 

輸出量

 

  1. This is a string in Python 

技巧06-多次打印字符串

我們可以使用乘法運(yùn)算符多次打印字符串。 這是重復(fù)字符串的非常有效的方法。

 

  1. n = int(input("How many times you need to repeat:")) 
  2. my_string = "Python\n" 
  3. print(my_string*n) 

輸出量

 

  1. How many times you need to repeat:3 
  2.  
  3. PythonPythonPython 

 

技巧07-使用加法運(yùn)算符連接兩個(gè)字符串

可以在不使用join函數(shù)的情況下連接各種字符串。 我們可以只使用加法運(yùn)算符(+)來(lái)執(zhí)行此操作。

 

  1. a = "I Love " 
  2. b = "Python" 
  3. print(a+b) 

輸出量

 

  1. I Love Python 

技巧08-多個(gè)條件運(yùn)算符

兩個(gè)可以在程序中組合兩個(gè)或多個(gè)條件運(yùn)算符,我們可以使用邏輯運(yùn)算符。 但是,通過(guò)鏈接運(yùn)算符可以得到相同的結(jié)果。 例如,如果我們需要在變量的值大于10且小于20時(shí)打印某些內(nèi)容,則代碼將類(lèi)似于以下內(nèi)容。

 

  1. a = 15 
  2. if (a>10 and a<20):  
  3.     print("Hi"

取而代之的是,我們可以將條件運(yùn)算符組合成單個(gè)表達(dá)式。

 

  1. a = 15 
  2. if (10 < a < 20):  
  3.     print("Hi"

輸出量

 

  1. Hi 

技巧09-在列表中查找最頻繁的元素

在列表中大部分時(shí)間出現(xiàn)的元素,然后將成為列表中最頻繁出現(xiàn)的元素。 以下代碼段將幫助您從列表中獲取最頻繁的元素。

 

  1. my_list = [1,2,3,1,1,4,2,1] 
  2. most_frequent = max(set(my_list),key=my_list.count
  3. print(most_frequent) 

輸出量

 

技巧10-查找列表中所有元素的出現(xiàn)

先前的代碼將提供最頻繁的值。 如果我們需要知道列表中所有唯一元素的出現(xiàn),則可以使用收集模塊。 該集合是python中一個(gè)很棒的模塊,它提供了強(qiáng)大的功能。 Counter方法提供具有元素和出現(xiàn)對(duì)的字典。

 

  1. from collections import Counter 
  2. my_list = [1,2,3,1,4,1,5,5] 
  3. print(Counter(my_list)) 

輸出量

 

  1. Counter({1: 3, 5: 2, 2: 1, 3: 1, 4: 1}) 

技巧11-檢查兩個(gè)字符串的字謎

如果一個(gè)字符串由另一字符串中的字符組成,則兩個(gè)字符串是字謎。 我們可以在collections模塊中使用相同的Counter方法。

 

  1. from collections import Counter 
  2. my_string_1 = "RACECAR" 
  3. my_string_2 = "CARRACE" 
  4.  
  5. if(Counter(my_string_1) == Counter(my_string_2)):  
  6.     print("Anagram"
  7. else: print("Not Anagram"

輸出量

 

  1. Anagram 

技巧12-創(chuàng)建帶范圍的數(shù)字序列

函數(shù)range()對(duì)于創(chuàng)建數(shù)字序列很有用。 在許多代碼片段中,它可能很有用。 范圍函數(shù)的語(yǔ)法在此處編寫(xiě)。

語(yǔ)法:range(開(kāi)始,結(jié)束,步長(zhǎng))

讓我們嘗試創(chuàng)建一個(gè)偶數(shù)列表。

 

  1. my_list = list(range(2,20,2)) 
  2. print(my_list) 

輸出量

 

  1. [2, 4, 6, 8, 10, 12, 14, 16, 18] 

技巧13-多次重復(fù)元素

與字符串乘法相似,我們可以使用乘法運(yùn)算符創(chuàng)建一個(gè)多次填充元素的列表。

 

  1. my_list = [3] 
  2. my_list = my_list*5 
  3. print(my_list) 

輸出量

 

  1. [3, 3, 3, 3, 3] 

技巧14-在三元運(yùn)算符中使用條件

在大多數(shù)情況下,我們?cè)赑ython中使用嵌套的條件結(jié)構(gòu)。 除了使用嵌套結(jié)構(gòu),還可以在三元運(yùn)算符的幫助下替換一行。 語(yǔ)法在下面給出。

語(yǔ)法:if True then Statement1 else Statement2

 

  1. if age > 20 then age = 25, print("czz"else print("不合格") 

輸出量

 

  1. 合格 

技巧15-使用Python列表推導(dǎo)表達(dá)式

列表推導(dǎo)表達(dá)式是從另一個(gè)列表創(chuàng)建列表的一種非常緊湊的方法。 看下面的代碼。 第一個(gè)是使用簡(jiǎn)單的迭代編寫(xiě)的,第二個(gè)是使用列表理解的。

 

  1. square_list = [] 
  2. for x in range(1,10):  
  3.     temp = x**2 square_list.append(temp
  4. print(square_list) 

輸出量

 

  1. [1, 4, 9, 16, 25, 36, 49, 64, 81] 

使用列表推導(dǎo)表達(dá)式

 

  1. square_list = [x**2 for x in range(1,10)] 
  2. print(square_list) 

輸出量

 

  1. [1, 4, 9, 16, 25, 36, 49, 64, 81] 

技巧16-將可變項(xiàng)轉(zhuǎn)換為不可變項(xiàng)

函數(shù)frozenset()用于將可變的可迭代對(duì)象轉(zhuǎn)換為不可變對(duì)象。 使用此方法,我們可以?xún)鼋Y(jié)對(duì)象的值更改。

 

  1. my_list = [1,2,3,4,5] 
  2. my_list = frozenset(my_list) 
  3. my_list[3]=7 
  4. print(my_list) 

輸出量

 

  1. Traceback (most recent call last): File "<string>", line 3, in <module>TypeError: 'frozenset' object does not support item assignment 

當(dāng)我們將frozenset()函數(shù)應(yīng)用于列表時(shí),項(xiàng)目分配受到限制。

技巧17-用floor和Ceil四舍五入

Floor和Ceil是數(shù)學(xué)函數(shù),可用于浮點(diǎn)數(shù)。 floor函數(shù)返回的整數(shù)小于浮點(diǎn)數(shù),而ceil函數(shù)返回的整數(shù)大于浮點(diǎn)數(shù)。 要使用此功能,我們必須導(dǎo)入數(shù)學(xué)模塊。

 

  1. import math 
  2. my_number = 18.7 
  3. print(math.floor(my_number)) 
  4. print(math.ceil(my_number)) 

輸出量

 

  1. 1819 

技巧18-返回布爾值

有時(shí)我們必須通過(guò)檢查某些參數(shù)的條件來(lái)返回布爾值。 代替編寫(xiě)if語(yǔ)句,我們可以直接返回條件。 以下程序?qū)a(chǎn)生相同的輸出。

方法I-使用其他條件

 

  1. def function(n):  
  2.     if(n>10):  
  3.     return True  
  4.     elsereturn False 
  5.  
  6. n = int(input()) 
  7. if(function(n)):  
  8.    print("Eligible"
  9. else:  
  10.     print("Not Eligible"

方法II-無(wú)其他條件

 

  1. def function(n):  
  2.     return n>10 
  3.  
  4. n = int(input()) 
  5.  
  6. print("Eligible") if function(n) else print("Not Eligible"

輸出量

 

  1. Eligible 

技巧19-一行創(chuàng)建函數(shù)

Lambda是python中的匿名函數(shù),可在一行中創(chuàng)建函數(shù)。 這里給出了使用lambda函數(shù)的語(yǔ)法。

語(yǔ)法:lambda 參數(shù):表達(dá)式

 

  1. x = lambda a,b,c : a+b+c 
  2. print(x(10,20,30)) 

輸出量

 

  1. 60 

技巧20-將功能應(yīng)用于列表中的所有元素

map是一個(gè)高階函數(shù),它對(duì)列表中的所有元素應(yīng)用特定功能。

語(yǔ)法:map(函數(shù),可迭代)

 

  1. my_list = ["felix""antony"
  2. new_list = map(str.capitalize,my_list) 
  3. print(list(new_list)) 

輸出量

 

  1. ['Felix''Antony'

技巧21-將Lambda與map功能配合使用

該函數(shù)可以用python中的lambda函數(shù)替換。 創(chuàng)建以下程序以創(chuàng)建數(shù)字列表的平方。

 

  1. my_list = [1, 2, 3, 4, 5] 
  2. new_list = map(lambda x: x*x, my_list) 
  3. print(list(new_list)) 

輸出量

 

  1. [1, 4, 9, 16, 25] 

技巧22-從函數(shù)返回多個(gè)值

python函數(shù)可以返回多個(gè)值,而無(wú)需任何額外的需要。 我們可以通過(guò)用逗號(hào)分隔它們來(lái)返回值。

 

  1. def function(n):  
  2.     return 1,2,3,4 
  3.  
  4. a,b,c,d = function(5) 
  5. print(a,b,c,d) 

輸出量

 

  1. 1 2 3 4 

技巧23-使用filter函數(shù)過(guò)濾值

filter函數(shù)用于過(guò)濾可迭代對(duì)象中的某些值。 filter函數(shù)的語(yǔ)法如下。

語(yǔ)法:filter(函數(shù),迭代)

 

  1. def eligibility(age):  
  2.     return age>=24 
  3.  
  4. list_of_age = [10, 24, 27, 33, 30, 18, 17, 21, 26, 25] 
  5. age = filter(eligibility, list_of_age) 
  6. print(list(age)) 

輸出量

 

  1. [24, 27, 33, 30, 26, 25] 

技巧24-用Python合并兩個(gè)字典

在python中,我們可以合并兩個(gè)字典,而無(wú)需任何特定方法。 下面的代碼是合并兩個(gè)字典的示例。

 

  1. dict_1 = {'One':1, 'Two':2} 
  2. dict_2 = {'Two':2, 'Three':3} 
  3. dictionary = {**dict_1, **dict_2} 
  4. print(dictionary) 

輸出量

 

  1. {'One': 1, 'Two': 2, 'Three': 3} 

技巧25-獲取對(duì)象的大小

內(nèi)存大小根據(jù)對(duì)象的類(lèi)型而變化。 我們可以使用sys模塊中的getsizeof()函數(shù)獲取對(duì)象的內(nèi)存。

 

  1. import sys 
  2. a = 5 
  3. print(sys.getsizeof(a)) 

輸出量

 

  1. 28 

竅門(mén)26-將兩個(gè)列表組合成字典

郵編功能在python中有很多優(yōu)點(diǎn)。 使用zip函數(shù),我們可以從兩個(gè)列表創(chuàng)建字典。

 

  1. list_1 = ["One","Two","Three"
  2. list_2 = [1,2,3] 
  3. dictionary = dict(zip(list_1, list_2)) 
  4. print(dictionary) 

輸出量

 

  1. {'Two': 2, 'One': 1, 'Three': 3} 

技巧27-計(jì)算程序的執(zhí)行時(shí)間

時(shí)間是python中另一個(gè)有用的模塊,可用于計(jì)算執(zhí)行時(shí)間。

 

  1. import time 
  2. start = time.clock() 
  3. for x in range(1000):  
  4.   pass 
  5. end = time.clock() 
  6. total = end - start 
  7. print(total) 

輸出量

 

  1. 0.00011900000000000105 

技巧28-刪除列表中的重復(fù)元素

發(fā)生多次的元素稱(chēng)為重復(fù)元素。 我們可以使用類(lèi)型轉(zhuǎn)換簡(jiǎn)單地刪除重復(fù)的元素。

 

  1. my_list = [1,4,1,8,2,8,4,5] 
  2. my_list = list(set(my_list)) 
  3. print(my_list) 

輸出量

 

  1. [8, 1, 2, 4, 5] 

技巧29-用python打印月歷

日歷模塊具有許多與基于日期的操作有關(guān)的功能。 我們可以使用以下代碼打印每月日歷。

 

  1. import calendar 
  2. print(calendar.month("2020","06")) 

輸出量

 

  1. June 2020 
  2. Mo Tu We Th Fr Sa Su  
  3. 1 2 3 4 5 6 7  
  4. 8 9 10 11 12 13 14 
  5. 15 16 17 18 19 20 21 
  6. 22 23 24 25 26 27 28 
  7. 29 30 

技巧30-使用zip功能進(jìn)行迭代

zip函數(shù)允許使用循環(huán)迭代多個(gè)可迭代的過(guò)程。 在下面的代碼中,兩個(gè)列表同時(shí)被迭代。

 

  1. list_1 = ['a','b','c'
  2. list_2 = [1,2,3] 
  3. for x,y in zip(list_1, list_2): 
  4.   print(x,y) 

輸出量

 

  1. a 1b 2c 3 

總結(jié)思想

希望您喜歡這篇文章。 最后,您必須了解學(xué)習(xí)技巧不是必須的。 但是,如果這樣做,您將在其他程序員中獨(dú)樹(shù)一幟。 必須持續(xù)練習(xí)才能流利地編碼。 感謝您閱讀本文。 您可以在中等水平上關(guān)注我。

編碼愉快!

 

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2020-05-08 19:52:31

Reactreact.js前端

2020-06-23 07:48:18

Python開(kāi)發(fā)技術(shù)

2017-08-30 11:10:25

代碼

2017-08-30 19:32:08

代碼程序員編程

2020-08-06 00:25:38

Python代碼開(kāi)發(fā)

2020-06-08 07:52:31

Python開(kāi)發(fā)工具

2020-08-06 16:34:48

Python開(kāi)發(fā)工具

2021-02-23 10:48:30

Python代碼開(kāi)發(fā)

2014-07-29 13:55:10

程序員代碼

2021-03-17 08:00:59

JS語(yǔ)言Javascript

2016-12-13 10:06:25

編寫(xiě)Java單元測(cè)試技巧

2023-03-27 15:05:10

Python技巧

2017-09-14 12:45:35

2025-01-14 00:01:01

2024-05-11 18:48:40

技巧代碼技能

2014-04-21 10:14:52

PromisesJavaScript

2023-10-10 08:00:00

2024-01-30 08:54:05

JavaScript技巧代碼

2012-04-27 16:54:57

Java代碼

2023-10-07 14:37:10

Java開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)