Python3 學習中的問題

2021-09-27 06:35:00 字數 3608 閱讀 6533

1.表示式運算子優先順序,如果所有的操作符優先順序相同該怎麼計算優先順序?

如果表示式的操作符有相同的優先順序,則運算規則是從左到右計算。

比如:1-2+55-88

注意:有乙個特殊的例子,如下這個是從右到左結合計算

python 3.7.4 (tags/v3.7.4:e09359112e, jul  8 2019, 19:29:22) [msc v.1916 32 bit (intel)] on win32

>>> 2**2**2**2

65536

>>>

2.python 變數和其他語言中的變數區別

3.列表、元組、字典、集合它們的區別和聯絡

比較點列表

元組字典

集合是否可變

可變不可變

可變可變

是否有序

有序有序

無序無序

元素是否唯一

不唯一,可重複

不唯一,可重複

鍵是唯一的,值可以重複

是唯一的

建立方式

(){}

刪除方式

del、remove()、pop()

deldel

del、remove()、pop() 、clear()

修改和插入

不可修改

dict[key]=value

add,update,

訪問和遍歷

索引訪問

索引訪問

鍵訪問推導式

[i for i in list]

(i for i in tuple)

切片支援切片

支援切片

不支援切片

不支援切片

索引支援索引

支援索引

不支援索引

不支援索引

+ 和 * 運算

支援支援

不支援不支援

其他不能作為字典的鍵

可以作為字典的鍵

集合不支援切片

>>> thisset=

>>> print(thisset)

>>> ss=thisset[1:]

traceback (most recent call last):

file "", line 1, in ss=thisset[1:]

typeerror: 'set' object is not subscriptable

4.編寫程式判斷輸入的乙個整數是否是阿姆斯特朗數
number =

input

("請輸入乙個整數: "

)# 此處可以對輸入做合法性驗證

n =len

(number)

sum=

0for i in number:

sum+=

int(i)

**nif

sum==

int(number)

:print

(number,

"is a amrstrong number."

)else

:print

(number,

"is not a amrstrong number."

)

5.理解什麼是閉包

6.理解遞迴函式

7.理解匿名函式

簡單示例:

lambda x: x * x
8.快速排序演算法的程式實現

以下**是菜鳥學院的**(非原創):

def

partition

(arr, low, high)

: i =

(low-1)

# 最小元素索引

pivot = arr[high]

for j in

range

(low, high)

:# 當前元素小於或等於 pivot

if arr[j]

<= pivot:

i = i+

1 arr[i]

, arr[j]

= arr[j]

, arr[i]

arr[i+1]

, arr[high]

= arr[high]

, arr[i+1]

return

(i+1

)# 快速排序函式

defquicksort

(arr, low, high)

:if low < high:

pi = partition(arr, low, high)

quicksort(arr, low, pi-1)

quicksort(arr, pi+

1, high)

arr =[10

,7,8

,9,1

,5,6

]n =

len(arr)

quicksort(arr,

0, n-1)

print

("排序後的陣列:"

)for i in

range

(n):

print

("%d"

% arr[i]

)

9.閱讀偽**並使用python實現

插入排序演算法的偽**如下:

使用python實現

def

insertsort

(list):

for j in

range(1

,len

(list))

: key =

list

[j] i = j-

1while i >=

0and

list

[i]> key:

list

[i+1]=

list

[i] i -=

1list

[i+1

]= key

list=[

5,2,

4,6,

1,3]

insertsort(

list

)print

(list

)

關於偽**的語法規則:

- 賦值運算

使用 ← 表示

示例:i ← i-1

- 使用縮排表示分支結構

- 注釋

- 陣列連續...表示

a[1…j]表示含元素a[1], a[2], … , a[j]的子陣列;

陣列的下標是從1開始的,要注意哦。

- 不區分變數大小寫

- 過程使用 call 來呼叫

示例:call calvalue(x,y)

參考文章

python3學習問題彙總

1 python2指令碼轉python3報型別錯誤 原因 python3x的string型別與python2x的型別不相同,在python3x中需要將str編碼,如 套接字的成員函式send socket.send bytes flags 形參為位元組型別 socket.recv bufsize f...

python3中多重繼承的問題

本來以為多重繼承很簡單,但是多看了一些資料後發現還是挺複雜的。如果繼承情況簡單就還比較好理解,但是如果繼承的情況太過於複雜的話,python3 中會使用拓撲排序的方式來尋找繼承的父類。有關繼承的拓撲排序 關於這方面看上面的文章就可以了。我下面給出除此之外的一些說明 class a object de...

Python3中map物件問題

在python2中,map函式會返回乙個list列表,例如 x map str,1,2,3 1 2 3 在python3中,map函式返回的是乙個map物件,例如 x map str,1,2,3 在python3中如果想要將這個map物件用列表的方式輸出,需要用list 函式進行轉換,例如 list...