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
下一篇 2018-03-27

相關推薦

  • 路徑操作

    路徑操作模塊 3.4版本之前 os.path模塊 from os import path p = path.join(‘/etc’, ‘sysconfig’, ‘network’) print(type(p), p) print(path.exists(p)) print(path.split(p)) print(path.abspath(‘.’)) p =…

    2017-10-27
  • N26-第四周

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。   2.編輯/etc/group文件,添加組hadoop。          3.手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為h…

    2017-02-22
  • Ubuntu之apt-get光盤源配置小結

    Ubuntu配置本地apt源的方法:    1. 命令自動配置:        mount    /dev/cdrom   /mnt/cdrom        apt-cdrom   ident   &nbsp…

    Linux干貨 2016-03-09
  • 20160808作業

    ?1、刪除/etc/grub2.conf文件中所有以空白開頭的行行首的空白字符      ?2、刪除/etc/fstab文件中所有以#開頭,后面至少跟一個空白字符的行的行首的#和空白字符      ?3、在/root/install.log每一行行首增加#號  &nbs…

    Linux干貨 2016-08-11
  • nginx安裝配置

    nginx安裝配置 Nginx介紹 Engine X是一個高性能、高并發的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。由Igor Sysoev為俄羅斯訪問量第二的Rambler.ru站點開發的,因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。 Nginx優點 高并發:Nginx 是一個很強大的高性能Web和反向代理…

    Linux干貨 2016-11-08
  • Linux上實現rsyslog+mysql+loganalyz進行日志收集

    在我們的運維工作中,常常會對系統上的日志進行收集,手動管理少量的幾臺服務器的日志收集沒有太大難度,但是企業當中批量的管理成千上萬臺服務器的時候,這時候想一臺臺的收集日志未免太浪費時間了,這時候我們需要一個批量管理日志的系統來解決這一難題,今天我給大家帶來的使用 1、syslog介紹       &n…

    Linux干貨 2016-10-24
欧美性久久久久