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...