python分支循環和列表

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的次數

時間復雜度

indexcount方法都是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

對列表元素進行排序,就地修改,默認升序

reverseTrue,反轉,降序

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

(0)
RicadoRicado
上一篇 2018-03-27 17:48
下一篇 2018-03-27 19:35

相關推薦

  • python面向對象第二周魔術方法詳解

    魔法方法及其使用__開頭和結束的方法,定義外部沒有辦法直接調用,但會有影響使用運算符號的魔法方法, + ,-,*,/,%,//,**, __add__,__sub__,__mul__,__truediv__,__mod__,__floordiv__,__pow__,__divmod__(?),系統內部對于數值型,字符串型,容器內型都定義了其中部分或者全部的運…

    Linux干貨 2017-11-22
  • Linux常用命令及bash特性(1)

    馬哥教育網絡班22期第二周課程練習 Linux簡單使用(1) Linux常用命令介紹 linux命令是對Linux系統進行管理的命令。對于Linux系統來說,無論是中央處理器、內存、磁盤驅動器、鍵盤、鼠標,還是用戶等都是文件,Linux系統管理的命令是它正常運行的核心。 linux命令在系統中有兩種類型:內置Shell命令和Linux命令??梢允褂胔elp、…

    Linux干貨 2016-08-29
  • 20161019第5天作業

    1、只顯示/root下的隱藏文件 ls -d '.'* 2、只顯示/etc下的目錄 ls -d */ ls -l |grep '^d' ls -F | grep "/$"  &nb…

    Linux干貨 2016-10-20
  • 六.Linux博客-2016年8月2日用戶、權限

    格式說明: 操作 概念 命令 說明及舉例 六.用戶、權限 創建用戶、修改用戶、刪除用戶 useradd 創建一個用戶 useradd -r 創建系統用戶,系統用戶不創建家目錄 useradd -D /etc/default/useradd 默認設置配置文件 newusers +文件 批量創…

    Linux干貨 2016-08-24
  • bash腳本基礎認知

    編程基礎:程序:指令+數據                過程式:以指令為中心,數據服務于指令              &nbs…

    Linux干貨 2017-03-02
  • 重定向與管道

         本次內容    1.三種I/O設備    2.把I/O從定向入文件    3.命令tr    4.使用管道鏈接命令    5.tee   我們都知道程序是由:指令+數據    &n…

    2017-07-23
欧美性久久久久