if語句
if condition:
代碼塊
condition必須是一個bool類型,這個地方有一個隱式轉換bool(condition)
if 1<2:
print(‘1 less than 2’)
循環——while語句
while condition:
block
當條件滿足即condition為True,進入循環體,執行block
循環——for語句*
for element in iteratable:
block
當可迭代對象中有元素可以迭代,進入循環體,執行block
#具有對稱性的 可以用range(-n//2,n-n//2)
循環 else子句
語法
while condition:
block
else:
block
for element in iteratable:
block
else:
block
如果循環正常的執行結束,就執行else子句;如果使用break終止,else子句不會執行
數字的處理函數
round(),四舍六入五取偶
floor()向下取整、ceil()向上取整
int() 取整數部分
// 整除且向下取整
列表list
一個隊列,一個排列整齊的隊伍
列表內的個體稱作元素,由若干元素組成列表
元素可以是任意對象(數字、字符串、對象、列表等)
列表內元素有順序,可以使用索引
線性的數據結構
使用 [ ] 表示
列表是可變的
列表list 內存上連續的 可變的
鏈表 不是連續的
queue 只能頭尾插入 先進先出
stack 棧 后進先出
列表查詢
index(value,[start,[stop]])
通過值value,從指定區間查找列表內的元素是否匹配
匹配第一個就立即返回索引
匹配不到,拋出異常ValueError
count(value)
返回列表中匹配value的次數
時間復雜度
index和count方法都是O(n)
隨著列表數據規模的增大,而效率下降
列表增加、插入元素
append(object) -> None
列表尾部追加元素,返回None
返回None就意味著沒有新的列表產生,就地修改
時間復雜度是O(1)
insert(index, object) -> None
在指定的索引index處插入元素object
返回None就意味著沒有新的列表產生,就地修改
時間復雜度是O(n)
extend(iteratable) -> None
將可迭代對象的元素追加進來,返回None
就地修改
+ -> list
連接操作,將兩個列表連接起來
產生新的列表,原列表不變
本質上調用的是__add__()方法
* -> list
重復操作,將本列表元素重復n次,返回新的列表
列表刪除元素
remove(value) -> None
從左至右查找第一個匹配value的值,移除該元素,返回None
就地修改
效率O(n)
pop([index]) -> item
不指定索引index,就從列表尾部彈出一個元素
指定索引index,就從索引處彈出一個元素,索引超界拋出IndexError錯誤
指定索引的的時間復雜度 O(n)
不指定索引 O(1)
clear() -> None
清除列表所有元素,剩下一個空列表
列表其它操作
reverse() -> None
將列表元素反轉,返回None
就地修改
sort(key=None, reverse=False) -> None
對列表元素進行排序,就地修改,默認升序
reverse為True,反轉,降序
key一個函數,指定key如何排序
lst.sort(key=functionname)
in
[3,4] in [1, 2, [3,4]]
for x in [1,2,3,4]
列表復制
copy() -> List
shadow copy返回一個新的列表
shadow copy
影子拷貝,也叫淺拷貝,遇到引用類型,只是復制了一個引用而已
打印菱形
n = int(input())
if not n%2:
n += 1
e= -(n//2)
for i in range(e,n+e):
print(‘ ‘*abs(i)+’*’*(n-2*abs(i)))
#1-5的階乘
sum = 0
a = 1
for i in range(1, 6):
a *= i
sum += a
print(sum)
#打印100以內的斐波那契數列
x = 1
y = 1
for i in range(100):
if y < 100:
print(x+y)
x,y = y,x+y??? # x=y? y=x+y
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/93341