最近在準備華為軟體崗的面試,發現對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...