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.178linux.com/93341

(0)
RicadoRicado
上一篇 2018-03-27
下一篇 2018-03-27

相关推荐

  • bash脚本进阶

    case  变量引用  in PAT1)分支1 ;; PAT2)  分支2 ;; … *) 分支n ;; esac case支持glob风格的通配符:   *:任意长度任意字符: ?:任意单个字符: [ ]:指定范围内的任意单个字符: a|b:a或b function:函数   &nbs…

    Linux干货 2017-05-21
  • 七.Linux博客-2016年8月4日cat、cut、less、head、tail、wc、sort、uniq、grep

    格式说明: 操作 概念 命令 说明及举例 七.cat、cut、less、head、tail、wc、sort、uniq、grep cat cat -A a.txt 查看隐藏内容 cat -n a.txt 显示行号 cat -s a.txt 压缩空行,把多行空行压缩为一行 …

    Linux干货 2016-08-24
  • M22 使用NFS实现web共享发布

    实验目的: 搭建两个LAMP web发布系统搭建WordPress博客网站,并使用NFS作为共享的网络文件系统使这两个web服务器发布的内容一致。 实验工具: webServer1 Centos6.8 172.18.55.6 webServer2 Centos7.3 172.18.55.7 nfsServer Centos7.3 172.18.55.71 w…

    2017-04-26
  • 马哥教育网络班21期-第一次课程作业

    计算机组成部分及其作用 1.总线 电子管道,携带信息字节并在各个部件间传输。分为地址总线,数据总线,控制总线。 CPU最大可寻址范围:2^N*M,  N为地址总线数量,M为数据总线数量。 2.I/O设备 I/O设备及输入输出设备,最常见的输入设备就是我们非常熟悉的键盘,鼠标,我们通过我们通过这些设备向计算机传达指令,让计算机完成我们想要它完成的工作…

    Linux干货 2016-06-29
  • Linux基础 文件权限

    概述 从接触linux第一天开始,Linux一切皆文件的哲学思想就深植于每个linuxer的心中,因此,实现Linux的系统安全必然绕不开文件权限。文件的权限是建立在用户的基础上的,脱离了用户,文件权限也就变得毫无意义了。用户、组和文件权限一起铸就了linux的系统安全模型。本文主要从文件权限方面了解Linux的安全模型。 文中主要讲解了: 1. 文件权限r…

    Linux干货 2016-08-05
  • 内核编译

    单内核体系设计、但充分借鉴了微内核设计体系的优点,为内核引入模块化机制。 内核组成部分核心,一般为bzImage,通常在/boot目录下,名称为vmlinuz-VERSION-RELEASE;: kernel: 内核 kernel object: 内核对象,一般放置于/lib/modules/VERSION-RELEASE/ [ ]: N [M]: M [*…

    Linux干货 2015-11-06