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 17:48
下一篇 2018-03-27 19:35

相关推荐

  • DNS基础知识

    一、DNS介绍:   1、DNS: Domain  Name Service,域名解析服务;      部署方式为分布式部署,如图所示:        2、查询类型:     递归查询:仅发出一次请求,要求对方回复最终结果&nbs…

    Linux干货 2015-05-18
  • vfork 挂掉的一个问题

    在知乎上,有个人问了这样的一个问题——为什么vfork的子进程里用return,整个程序会挂掉,而且exit()不会?并给出了如下的代码,下面的代码一运行就挂掉了,但如果把子进程的return改成exit(0)就没事。 我受邀后本来不想回答这个问题的,因为这个问题明显就是RTFM的事,后来,发现这个问题放在那里好长时间,而挂在下面的几个答案又跑偏得比较严重,…

    Linux干货 2016-08-15
  • ntp时间服务器搭建实例

    ntp时间服务器采用stratum分级架构来处理时间同步;举例说明:你搭建了一台ntp服务器,然后同步的server为stratum-1,你的ntp则为stratum-2,你的下级ntp则为tratum-3。依此类推,最多为15层。 1.ntp server安装: [root@localhost ~]# yum -y …

    Linux干货 2015-11-10
  • HA高可用集群学习笔记

    前言   什么是HA?HA做什么用的?   HA(High Available)是高可用集群,是保证业务不中断性的有效解决方案;通常HA集群部署在多个节点,正在提供服务的节点成为活动节点,没有提供服务的是非活动节点;当活动节点发生故障,非活动节点会转为活动节点,向外提供服务,以保证业务的连续性;这就是HA。 一、HA(High Avail…

    Linux干货 2015-06-30
  • 文件搜索之find的使用

    一.find介绍:   find是Linxu中一个十分常用的文件查找工具,其工作原理是通过遍历启起始路径下文件层级结构完成的,其特点是查找速度慢,能做到实时查找和精确查找。 二.使用方法: find  start_path search_conditions  action 1.statr_path:所要查找的文件的起始位置,默…

    Linux干货 2016-11-01
  • 第1周作业

    第一周作业   1、描述计算机的组成及其功能。 计算机由运算器,控制器,存储器,输入装置和输出装置五大部件组成计算机 运算器,控制器:CPU 存储器:内存和硬盘 输入装置和输出装置:键鼠和显示器   2、按系列罗列Linux的发行版本,并描述不同版本的联系和区别。   linux的发行版本大致分为两大类,一类是商业公司维护的发行…

    Linux干货 2017-08-24