python基礎(chǔ)知識(shí)

1,Python中的數(shù)據(jù)類型有哪些

Python基本數(shù)據(jù)類型一般分為:數(shù)字、字符串、列表、元組、字典、集合這六種基本數(shù)據(jù)類型。

2,Python中的三元運(yùn)算符是什么,怎么寫?

a = 1

b = 2

h = ""

h = "變量1" if a>b else "變量2"

3,計(jì)算1到100的和(進(jìn)階:用一行代碼實(shí)現(xiàn))

print(sum(range(1,101)))

4,字典如何刪除鍵和合并2個(gè)字典

刪除key

dic1={'name':'laowang','age':18}

del dic1['name']

print(dic1)

合并2個(gè)字典

dic2.update(dic1)

print(dic2)

5,字典操作中 del 和 pop 有什么區(qū)別?

del 語句和 pop() 函數(shù)作用相同,pop() 函數(shù)有返回值。

names.pop("alex") # 刪除指定key

names.popitem()? # 隨便刪除1個(gè)key

del names["oldboy"] # 刪除指定key,同pop方法

names.clear()? ? # 清空dict

6,如何把元組("a","b")和元組(1,2),變?yōu)樽值鋥"a":1,"b":2}

zip() 函數(shù)用于將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表。

如果各個(gè)迭代器的元素個(gè)數(shù)不一致,則返回列表長度與最短的對(duì)象相同,利用 * 號(hào)操作符,可以將元組解壓為列表。

實(shí)現(xiàn)代碼:

t1=("a","b")

t2=(1,2)

c=zip(t1,t2)

l1=[]

for iin c:

l1.append(i)

print(dict(l1))

7,列表如何按值刪除,按下標(biāo)刪除和合并2個(gè)列表,列表去重。

1.按值刪除可以使用remove函數(shù)刪除。del 和pop均可以按照下邊刪除。

2.合并列表可以采用extend函數(shù),例如:

l1=[1,2,3,4]

l2=["a","b","c"]

l2.extend(l1)

print(l2)

列表去重可以采用set方法去重后再轉(zhuǎn)換回來,例如:

l1=[1,2,3,4,3,2]

print(list(set(l1)))

8,兩個(gè)列表[1,5,7,9]和[2,2,6,8]合并為[1,2,2,3,6,7,8,9]

冒泡算法

l1=[1,5,7,9]

l2=[2,2,6,8]

l3=l1+l2

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

? ? for j in range(len(l3)-1-i):

? ? ? ? if l3[j]>l3[j+1]:

? ? ? ? ? ? l3[j],l3[j+1]=l3[j+1],l3[j]

print(l3)

9,如何打亂一個(gè)有序的列表

random.shuffle(item) #打亂item的順序,相當(dāng)于"洗牌"

10,列表 [:: - 1]是什么意思

將列表倒過來排列(-1這個(gè)位置代表的是步長)??

切片[開始:結(jié)束:步進(jìn)]

11,列出python中可變數(shù)據(jù)類型和不可變數(shù)據(jù)類型,并簡述原理

可變類型(mutable):變量進(jìn)行append、+=等這種操作后 == 改變了變量的值,而不會(huì)新建一個(gè)對(duì)象,變量引用的對(duì)象的地址也不會(huì)變化,不過對(duì)于相同的值的不同對(duì)象,在內(nèi)存中則會(huì)存在不同的對(duì)象,即每個(gè)對(duì)象都有自己的地址,相當(dāng)于內(nèi)存中對(duì)于同值的對(duì)象保存了多份,這里不存在引用計(jì)數(shù),是實(shí)實(shí)在在的對(duì)象。

list

dict

set

bytearray

user-defined classes (除非是特別定義的不可變)

a = [1,2]

b = [1,2]

print(id(a))

print(id(b))

不可變類型(immutable):改變了變量的值 == 新建了一個(gè)對(duì)象,而對(duì)于相同的值的對(duì)象,在內(nèi)存中則只有一個(gè)對(duì)象(一個(gè)地址), python的id() 方法讓你明白

int

float

decimal

complex

bool

string

tuple

range

frozenset

bytes

12,s = "ajldjlajfdljfddd",去重并從小到大排序輸出"adfjl"

sort方法還有兩個(gè)可選參數(shù):key和reverse

1、key在使用時(shí)必須提供一個(gè)排序過程總調(diào)用的函數(shù):

1

2

3

x = ['mmm', 'mm', 'mm', 'm' ]

x.sort(key = len)

print x # ['m', 'mm', 'mm', 'mmm']

2、reverse實(shí)現(xiàn)降序排序,需要提供一個(gè)布爾值:

1

2

3

y = [3, 2, 8 ,0 , 1]

y.sort(reverse = True)

print y #[8, 3, 2, 1, 0]

實(shí)現(xiàn)代碼:

s = "ajldjlajfdljfddd"

# 將s轉(zhuǎn)換成set類型去重

ss = set(s)

print(ss)

# 將去重的set轉(zhuǎn)換成列表,用于排序

ss = list(ss)

ss.sort(key=s.index)

print(ss)

# 將排好序的列表轉(zhuǎn)換成字符串

ss = ''.join(ss)

print(ss)

13,字典dict={"name":"alex","age":18,"city":"北京","tel":"1381111111"}根據(jù)鍵從小到大排序輸出

dict = {"name": "alex", "age": 18, "city": "北京", "tel": "1381111111"}

l1 = []

for i in dict:

? ? l1.append(i)

l1.sort()

for i in l1:

? ? print(i, dict[i])

14,a=(1,)b=(1),c=("1") 分別是什么類型的數(shù)據(jù)?試著用type測試一下看看和你想的一樣不一樣

<class 'tuple'> <class 'int'> <class 'tuple'>

15,python中交換兩個(gè)數(shù)值是如何做的

a,b=b,a

第三種辦法本質(zhì)上是元組之間的賦值

16,[1,2,3]+[4,5,6]的結(jié)果是多少?試試看

[1, 2, 3, 4, 5, 6]

17," hehheh "去除首尾空格 ps:字符串的操作也很多,大多數(shù)很常用,想想(首字母大寫,字符串全部轉(zhuǎn)換成大寫,全部轉(zhuǎn)換成小寫,字符串拼接,字符串查找,判斷字符串是否全是數(shù)字等等,有很多,試試自己知道這些對(duì)應(yīng)的方法是什么?)

s=" HehHeh "

print(s.strip())

print(s.upper())

print(s.index("h"))

print(s.count("h"))

print(s.center(50,"*"))

print(s.isdigit())

print(s.zfill(20))

print(s.casefold())

print(s.rfind("e"))

print("**********")

print(s.isspace())

print(s.replace("h","g"))

print(s.swapcase())

18,r、r+、rb、rb+文件打開模式區(qū)別

#只讀模式

with open ( "file.txt" ,'r' ) as f:

for line in f.readlines():

print ( line )

#? 讀寫,可以寫,內(nèi)容在文件最開頭

with open ( "file.txt" ,'r+' ) as f:

#for line in f.readlines():

f.write('r+ ...')

# w? : 普通的寫模式,如文件不存在,則建立

# w+ : 如果文件不存在,則建立

with open ( "file.write2.txt" , 'w+' ) as f:

for line in f.read():

print (line)

f.write('w+ ...2 ')

# rb? : read binary? 讀取一些非文本形式,二進(jìn)制形式文件用到

# wb? : write binary? 寫一些PDF,二進(jìn)制形式的文件需要

19,什么是相對(duì)路徑,什么是絕對(duì)路徑

絕對(duì)路徑,從根目錄為起點(diǎn)到你所在的的目錄;

相對(duì)路徑,從一個(gè)目錄為起點(diǎn)到你所在的目錄。

絕對(duì)路徑: C:\A文件夾

相對(duì)路徑(如果你在B文件夾時(shí)): ..\B文件夾 (‘..\’向上一級(jí)意思)

20,Python中is和==有什么區(qū)別

== 比較操作符:用來比較兩個(gè)對(duì)象值是否相等。

is? 同一性運(yùn)算符:比較兩個(gè)對(duì)象的id值是否相等,即是否是同一對(duì)象,是否指向同一個(gè)內(nèi)存地址。

補(bǔ)充:當(dāng)兩個(gè)對(duì)象值相同時(shí),只有其為數(shù)值型或字符串型,a is b才為True,當(dāng)a和b是tuple,list,dict或set型時(shí),a is b為False 。

21,文件操作的read,readline,readlines的區(qū)別

read

1.讀取整個(gè)文件,將文件內(nèi)容放到一個(gè)字符串變量中。

2.如果文件非常大,尤其是大于內(nèi)存時(shí),無法使用read()方法。

3.read()直接讀取字節(jié)到字符串中,包括了換行符

readline

1.readline()方法每次讀取一行;返回的是一個(gè)字符串對(duì)象,保持當(dāng)前行的內(nèi)存

2.比readlines慢得多

3.readline() 讀取整行,包括行結(jié)束符,并作為字符串返回

readlines 一次性讀取整個(gè)文件;自動(dòng)將文件內(nèi)容分析成一個(gè)行的列表。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容