标签:result 格式 模块 else pytho 元素 c内存 end err
语法:
# 单分支
if <condition>:
<执行代码块>
# 多分支
if <condition1>:
<执行代码块1>
elif <condition2>:
<执行代码块2>
elif <condition3>:
<执行代码块3>
else:
<执行代码块>
# 注:
# condition必须为一个bool类型
# if elif else语句后面有一个冒号,冒号之后的执行代码块需要另起一行并进行缩进
示例:
# 单分支示例
age = 18
if age < 20:
print("tool small")
# 多分支示例(成绩评级)
result = int(input('Please input your result: '))
if result >= 90:
print("Your result is A")
elif 80 <= result < 90:
print("Your result is B")
elif 70 <= result < 80:
print("Your result is C")
elif 60 <= result < 70:
print("Your result is D")
else:
print("Your result is E")
#注:
# input()为内建函数,在控制台与用户进行交互,获取用户输入,返回字符串
# int(value) 将给定的值value转换成整数
while 循环
# 语法
while cond:
block
while True: # 死循环
pass
# 示例
a = 10
while a : # 条件满足则进入循环,当a = 0时,0为等价False,则不进入循环
print(a)
a -=
for 循环
# 语法
for element in interatable: # 可迭代对象有可迭代元素,进入循环
block
# 示例:循环输出10以内的数字
for i in range(0, 10):
print(i)
# 注:
# range(stop) 计数器
# range(start, stop, step)生成一个序列,遍历start和stop之间的值,前包后不包;step表示步长,默认为1;
else子句:如果循环正常结束,else子句会被执行
列表(List):有序的集合,可修改,使用[]表示
定义列表
格式:list_name = [1, 2, 3, 4, 5]
空列表:list_name = []
列表操作
>>> lst = [1, 2, 3]
# append(obj),末尾追加元素,就地修改且返回None,时间复杂度O(1)
>>> lst.append(5)
>>> lst
[1, 2, 3, 5]
# list_name[index] = value 索引访问修改,需注意索引不可越界
>>> lst[3] = 4
>>> lst
[1, 2, 3, 4]
# insert(index, obj) 在指定索引位置插入元素obj,就地修改且返回None,时间复杂度O(n),可越界:越上界,尾部追加;越下界,头部追加
>>> lst.insert(1,6)
>>> lst
[1, 6, 2, 3, 4]
# extend(interatable),将可迭代元素追加至列表中,就地修改且返回None
>>> lst.extend(range(7,10))
>>> lst
[1, 6, 2, 3, 4, 7, 8, 9]
>>> lst.extend([11, 12])
>>> lst
[1, 6, 2, 3, 4, 7, 8, 9, 11, 12]
# + 将两个列表连接起来,产生新的列表,原列表不变
>>> lst + [100, 200, 300]
[1, 6, 2, 3, 4, 7, 8, 9, 11, 12, 100, 200, 300]
>>> lst # 原列表不变
[1, 6, 2, 3, 4, 7, 8, 9, 11, 12]
# * 将本列表元素重复n次,返回新列表;注意分辨以下示例区别
>>> lst * 3
[1, 6, 2, 3, 4, 7, 8, 9, 11, 12, 1, 6, 2, 3, 4, 7, 8, 9, 11, 12, 1, 6, 2, 3, 4, 7, 8, 9, 11, 12]
>>> lst # 原列表不变
[1, 6, 2, 3, 4, 7, 8, 9, 11, 12]
>>> [1, 2, 3] * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> [[1, 2, 3] * 3]
[[1, 2, 3, 1, 2, 3, 1, 2, 3]]
>>> [[1, 2, 3] ] * 3
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
# remove(value),从左至右匹配第一个value的值,找到则删除,就地修改且并返回None
>>> lst = [1, 2, 3, 1, 2, 5, 6]
>>> lst.remove(1)
>>> lst
[2, 3, 1, 2, 5, 6]
# pop(index),不指定index,从列表尾部删除一个元素,指定index则从索引出删除一个元素,返回所删除元素,越界抛出:IndexError错误
>>> lst.pop()
6
>>> lst
[2, 3, 1, 2, 5]
>>> lst.pop(3)
2
>>> lst
[2, 3, 1, 5]
# clear(),清除列表所有元素,剩下一个空列表
>>> lst.clear()
>>> lst
[]
# reverse(),对列表内元素降序排序,就地修改且返回None
>>> lst = [1, 2, 3, 1, 2, 5, 6]
>>> lst.reverse()
>>> lst
[6, 5, 2, 1, 3, 2, 1]
# sort(key=None, reverse=False),对列表内元素进行排序,就地修改且返回None;默认为升序,若reverse=True,则为降序;key一个函数,指定如果排序
>>> lst.sort()
>>> lst
[1, 1, 2, 2, 3, 5, 6]
>>> lst.sort(reverse=True)
>>> lst
[6, 5, 3, 2, 2, 1, 1]
# in 包含关系判断,即:in左侧元素是否包含在右侧列表内;返回布尔值
>>> [1, 2] in [1, 2, [3, 4]]
False
>>> [3, 4] in [1, 2, [3, 4]]
True
# 列表复制:lst1 = lst2
>>> a = list(range(4)) # 产生一个新列表a
>>> b = list(range(4)) # 产生一个新列表b
>>> a == b # 判断a列表和b列表内元素是否相同
True
>>> c = a # 将列表c指向列表a的列表内存地址,所以当修改列表c或者列表a时,修改的都是a和c所指向的同一个内存地址的列表元素
>>> c[2] = 10
>>> c
[0, 1, 10, 3]
>>> a
[0, 1, 10, 3]
>>> b # 虽然a和b列表内容相同,但是b和a指向的是不同的内存地址,所以当a列表修改时,b列表不变
[0, 1, 2, 3]
>>> id(a), id(c), id(b) # 通过id(),查看内存地址,由次可见,a和c内存地址相同
(4509036368, 4509036368, 4509036288)
# copy(),影子拷贝(浅拷贝),遇到引用类型,只复制引用
>>> a = [1, [2, 3], 4]
>>> b = a.copy() # 列表内元素复制,列表内引用的列表,只复制引用地址,即列a和b列表内引用的列表为同一内存地址的列表
>>> b
[1, [2, 3], 4]
>>> b[1][1] = 11 # 当b修改列表内引用的列表内元素时,由于a和b列表内引用的列表指向同一内存地址,所以a也会随之修改
>>> b
[1, [2, 11], 4]
>>> a
[1, [2, 11], 4]
>>> b[0] = 99 # 由于列表内元素直接复制,所以当b修改元素时,a不会发生修改
>>> b
[99, [2, 11], 4]
>>> a
[1, [2, 11], 4]
# 深拷贝deepcopy(需调用copy模块;import copy),直接复制所有元素,列表内的引用类型亦直接拷贝引用元素
>>> import copy
>>> a = [1, [2, 3, 4], 5]
>>> b = copy.deepcopy(a)
>>> b
[1, [2, 3, 4], 5]
>>> b[1][1] = 88 # 列表内引用的列表直接拷贝其列表内容,所以当b列表发生改变时,a列表不变
>>> b
[1, [2, 88, 4], 5]
>>> a
[1, [2, 3, 4], 5]
# random()随机数
>>> import random
>>> random.random()
0.8953651046887807
>>> random.random()
0.02852709684663768
>>> random.randint(5, 20) # 返回5-20之间的整数
6
>>> random.randint(5, 20)
15
>>> random.randrange(11, 100, 2) # 返回11-100之间以2递增的整数的随机值,默认步长为1
57
>>> random.randrange(11, 100, 2)
41
>>> random.choice(['剪刀', '石头', '布']) # 从非空序列随机挑选一个元素
'剪刀'
>>> random.choice(['剪刀', '石头', '布'])
'石头'
>>> random.sample('abcdefghijklmnopqrstuvwxyz!@#$%^&*()', 8) # 从非空序列取出n个不同的元素并生成一个新列表
['!', 'n', '&', 'd', 'q', 'l', 's', 't']
>>> random.sample('abcdefghijklmnopqrstuvwxyz!@#$%^&*()', 8)
['x', '@', 'c', 'p', 'a', 'u', 'h', 'g']
>>> lst = [1, 2, 3, 4, 5]
>>> random.shuffle(lst) # 就地打乱列表排序
>>> lst
[2, 5, 3, 1, 4]
索引:序列里的元素都是有序号的,从0开始递增,索引0指向第一个元素,最后一个元素可以用-1表示
同列表一样,可以通过索引index访问
元组操作:元组是只读的,所以增删改查操作都没有
>>> tup = tuple(range(1, 10, 2)) # interable
>>> tup
(1, 3, 5, 7, 9)
>>> t = (1,) # 注意一个元素需要加逗号
>>> t * 5 # 产生新元组,原元组不变
(1, 1, 1, 1, 1)
>>> t
(1,)
>>> tup[2] # 通过index查看tuple特定索引位置的值
5
# count(value),返回元组中value的次数
>>> tup = (1, 2, 3, 2, 3, 2)
>>> tup.count(2)
3
# len(tuple)返回元组中元素的个数
>>> len(tup)
6
标签:result 格式 模块 else pytho 元素 c内存 end err
原文地址:https://www.cnblogs.com/summer-dhy/p/11261889.html