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

相关推荐

  • 于浩的第一篇随笔

    人生只有两件事,努力工作,享受生活!

    2018-03-26
  • 【N25第一周作业】Linux上命令的使用格式和基础命令详解

    一、Linux上命令的使用格式 命令行提示符详解: 用户通过终端的命令行接口来控制操作系统,登陆后如下: [root@localhost ~]# root: 当前登录的用户 @:分隔符 localhost: 当前主机的主机名,非完整格式;此处的完整格式为:localhost.localdomain [root@localhost ~]#&…

    Linux干货 2016-12-03
  • 软链接和硬链接的区别

    文件管理 前言 Linux的一则哲学:一切皆文件。既然入坑,那么管理linux就是管理一堆文件,操作文件这是展示个人十八般武艺的时候,功夫高下一招下。怎么成为高手,高手的招式都有哪些,拳脚掌刀枪棍棒,一招一式如何练就。 1文件存储 文件存储就好比每个练武人必备的技能——挨打,在你耍十八般武艺前,必须先扛住对方的一掌。我们不必拥有金刚罩铁布衫,至少要学会如何躲…

    Linux干货 2016-10-20
  • 马哥教育网络班22期第二周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示? cp命令:copy 源文件;目标文件;    单源复制:cp [OPTION]… [-T] SOURCE DEST    多源复制:cp [OPTION]… SOURCE… DIRECTORY  …

    Linux干货 2016-08-22
  • 8.1_Linux习题和作业

    7.28 作业 1、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中 1 # cat /etc/issue | tr 'a-z' 'A-Z'whoi > /tmp/issue.out 2、将当前系…

    Linux干货 2016-08-04
  • CentOS Linux解决Device eth0 does not seem to be present

    CentOS Linux解决Device eth0 does not seem to be present 今天早上打开xshell链接虚拟机,突然链接不上。然后进入虚拟机执行 ifconfig 或者 ip addr list 命令发现eth0 不见。然后执行重启网卡命令发现  解决办法:   首先,打开/etc/udev/rules.d/70-p…

    Linux干货 2016-08-02