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的次数
时间复杂度
index和count方法都是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
对列表元素进行排序,就地修改,默认升序
reverse为True,反转,降序
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