Python常見面試題


1、Python生成隨機數

import random

random.random() 隨機生成0-1之間的數字

random.uniform(1,10)隨機生成1-10之間的數字(包括小數整數)

random.randint(1,10)生成1-10之間的整數

random.randrange(1,10,2) 生成1-10之間 步長為2的數字 所以只能是奇數。1,3,5,7,9

list=[1,2,3,4,5,6,7] 

random.choice(list) 從list中隨機抽取

random.sample(list,2) 從list中隨機抽取2個元素的片段。

 

2、字符串逆序

a = "abcdefg"

1.切片 a[::-1]

2.t = list(a)

t.reverse  

"".join(t)

3.寫函數

def reverseStr(ss):

    c =  []

    for i in range(len(ss)):

        c.append(ss[i])

    c.reverse()

    return ''.join(c)

if __name__ == "__main__":

    s = raw_input("please input str:")

    print reverseStr(s)

 

3、判斷一個字符串是否為回文字符串

abcdcba 一個字符串從前往后讀和從后往前讀是一樣的。

1.s = "abcdcba"    s == s[::-1]  字符串翻轉

2.定義函數

def converted(s):

    ss = s[:]

    if len(ss) >= 2 and s == ss[::-1]

        return True

    else:

       return False

if __name__ == "__main__":

    s = "abcdcba"

    print(converted(s))

 

4、隨機生成100個數,然后寫入文件

思路:

1.打開一個新文件,准備去寫

2.然后隨機生成一個數(整數或者小數),並將該數寫入文件中

3.循環第二部,知道完成100個隨機數的生成

import random

with open("1.txt",'w') as f:

    for i in range(1,101):

        n = random.randint(1,100)
        f.write(str(n)+"\n")

 

5、給定字典進行排序

給定dict = {'a':3,'bc':5,'c':3,'asd':4,'33':56,'d':0}

根據其鍵值進行排序

 sorted(dict.items(),key = lambda i:i[0],reverse = True) 

 

list2 = [[1,2],[4,6],[3,1]]

list2.sort(key = lambda x:x[0],reverse = False)

print list2

 

6、對列表進行去重

1.對 a = [1,3,2,2,1,5,5,3]

print list(set(a))

2.t = dict.fromkeys(a,0) 利用字典key的唯一性

t.keys()  或者list(t)

3.利用count函數查找重復

for i in a:

    if a.count(i) > 1:

         a.remove(i)

4. list1 = [1,4,3,3,4,2,3,4,5,6,1]

reduce(lambda x,y : x if y in x else x + [y],[[]]+list1)

 

7、去重字符串

s = 'abddaddfd'  先轉list 然后set去重,然后join字符串、

 

8.有UTF-8編碼的文件a.txt。文件路徑在E盤根目錄,寫一段程序逐行讀入文本文件。並在屏幕(gbk編碼)打印出來

  

65001 utf-8      936 GBK 編碼 采用chcp命令查看當前的CMD編碼。

思路:

1.打開編碼為UTF-8的文件,准備讀

2.readlines方法將文件以行的方式讀取,存到變量中。

3.打印到屏幕(編碼需要調整,打印至GBK屏幕)

fp = open("f:\test\a.txt",'r')

content = fp.read()

fp.close()

print content.decode("utf-8").encode("gbk","ignore")

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM