python常見演算法記錄

2021-10-06 01:15:57 字數 1526 閱讀 2104

最近在準備華為軟體崗的面試,發現對python還是挺不熟悉的,打算長期更新乙個錯題本來記錄我犯過的錯誤。

for index,value in enumerate(list1):

for i in list1:

第一種用了列舉,可以訪問到interesting型別的index和str型的value。

第二種直接遍歷整個列表,i就是str型的列表內容。

ascii = ord("a")-32

cap = chr(ascii)

print(ascii)

print(cap)

上面**的輸出結果為65和a

python內建了ord()字元轉acii碼和chr()ascii碼轉字元,記得ascii小寫在前,減去32就好了。

def bubble(string):

for i in range(len(string)-1):

for j in range(len(string)-1):

if string[j] > string[j+1]:

mid = string[j+1]

string[j+1]=string[j]

string[j]=mid

return string

times = int(len(string)/8)
python中的除法有時候除出來是浮點數,這裡沒注意很容易報錯,所以加上乙個int型別轉換保險一點。

while true:

try:

print(int(input(),16))

except:

break

一道進製轉換的題,直接int進製轉換秒殺。這算是python3的奇技淫巧吧,int就內建了常用的八進位制二進位制十六進製制轉換了。用法是:

#後面的引數是幾就接受幾進製的數

print(bin(int("25",10)))#10->2

print(oct(int("25",10)))#10->8

print(hex(int("25",10)))#10->16

print(int("0xa",16))#16->10

print(int("1001",2))#2->10

一般python3中用round()做為四捨五入的處理函式,但是其實round()並不是四捨五入,具體來說應該是四捨六入五平分。跟我們平常用的不一樣,所以要自己構建四捨五入的函式。其實也不難,只需要判斷小數點後面那位是不是五就可以了,其他情況還是可以用round()的。

string = input()

first = string.find('.')+1

if int(string[first]) == 5:

print(int(float(string)+0.5))

else:

print(round(float(string)))

python常見問題記錄

name raw input enter your name 備註 raw input會把所有的輸入當作原始資料 raw data 然後將其放入到字串中,也就是說name是乙個str型別。字串 整數,主要用於接收輸入引數 intvar int strvar 整數 字串,主要用於print列印或者構建...

python常見排序演算法 python常用排序演算法

def bubble sort alist 氣泡排序 n len alist for i in range n 1 外層迴圈次數 for j in range n 1 i 這裡 記得要 i if alist j alist j 1 alist j alist j 1 alist j 1 alist ...

python 實現常見排序演算法

coding utf 8 bubble sort 氣泡排序 時間複雜度最壞為o n2 最優的為n import time def bubble sort alist 氣泡排序 param alist return cur 1 while cur len alist 1 and len alist 1...