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

相关推荐

  • mysql cluster安装部署

    一、安装要求 安装环境:CentOS-6.5-32bit 软件名称:mysql-cluster-gpl-7.2.25-linux2.6-i686.tar.gz 下载地址:http://mysql.mirror.kangaroot.net/Downloads/ 软件包:mysql-cluster-gpl-7.2.25-linux2.6-i686.tar.gz …

    Linux干货 2016-08-22
  • http请求过程

    1、浏览器根据访问的域名找到其IP地址。DNS查找过程如下: 1.浏览器缓存:浏览器会缓存DNS记录一段时间。 2.系统缓存:如果在浏览器缓存里没有找到需要的域名,浏览器会查系统缓存中的记录。 3.路由器缓存:如果系统缓存也没找到需要的域名,则会向路由器发送查询请求。 4.ISP DNS缓存:如果依然没找到需要的域名,则最后要查的就是ISP缓存DNS的服务器…

    Linux干货 2017-10-23
  • 计算机基础及Linux基础入门

    一.计算机的组成及其功能一.计算机的组成及其功能  1.组成部分: 计算器是由运算器,控制器,存储器,输入设备以及输出设备五大部件组成。 2.功能: 运算器:    对数据进行各种运算 存储器:    存储程序和各种数据信息,并能在计算机运行过程中高速、自动地完成程序或数据的存取 控制器:    控制器是整个计算机系统的控制中心,指挥计算机各部分协调地工作,…

    2017-09-16
  • bash特性之基础

    bash shell 命令历史history 环境变量: HISTSIZE :命令历史记录的条数 HISTFILE :~/.bash_history HISTFILESIZE: 显示环境变量:echo    环境变量的修改:export  history history [-c] [-d&…

    Linux干货 2016-11-22
  • 实验:系统启动和内核管理

    实验:bootloader 破坏stage1: 备份:dd if=/dev/sda of=/app/mbr bs=1 count=512 破坏:dd if=/dev/zero of=/dev/sda bs=1 count=446;此时/boot/grub/下的文件没有任何改动; 表现:stage1破坏后系统会直接进行光盘引导 修复1:救援模式–&…

    Linux干货 2017-05-14
  • 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