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

相关推荐

  • 系统管理和内核管理(二)之grub使用、编译安装内核

    系统管理和内核管理(二)之grub使用、编译安装内核   回顾CentOS 6启动流程: POST –> Boot Sequence(BIOS) –> Boot Loader –> Kernel(ramdisk) –> rootfs–> switchroot&…

    Linux干货 2016-09-15
  • 什么是Ansible?

    自动化工具——ansible   ansibleArchitecture ansibleProject 1. 什么是ansible ansible是个什么东西呢?官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具。这个工具的目标有这么几项:让我们自动化部署APP;自动化管理配置项;自动化的持…

    2017-09-24
  • 8月3日课堂笔记

    课堂笔记 linux用户和组管理(非常非常重要)    用户管理和组管理各种相关的应用程序    简单的管理命令 安全上下文:   每次对主机操作都是以发起一个进程来完成的,进程代表着人来执行操作,进程以其发起者的身份来运行;所以开机时有很多守护类的进程,我们应该以普通身份来运行,普通用户通常都是系统用户;从来不用登陆系统的;进程对文件的访问权限,取决于发起…

    Linux干货 2016-08-04
  • 脚本数组及yum软件包管理器

    一、数组 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合。 数组名和索引索引:编号从0开始,属于数值索引注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开始支持。bash的数组支持稀疏格式(索引不连续) 1.定义数组声明数组:    declare …

    Linux干货 2016-08-25
  • 编译安装LAMP-centos7

    编译安装LAMP (centos7 基于模块化) 编译安装所需版本 Httpd 2.4,PHP 5.4,MariaDB 5.5通用二进制格式(绿色安装包) MAriDB5.5 绿色安装 1、#mkdir lamp :创建一个文件夹,存放软件的版本 2、从官网上下载httpd2.4 mariaDb 5.5 PHP 5.4到该文件夹下 3、# tar xvf m…

    Linux干货 2017-05-17
  • Linux源程序包管理器之RPM

    一、 RPM功能描述 l  打包 l  安装 l  卸载 l  升级 l  校验 l  数据库管理 二、 RPM包命名格式 1.       命名格式举例 name-version-relase.arch.rpm 例如:bash-4.2.3…

    系统运维 2015-09-25