-
一维list并不能满足所有的要求(上述所有list均为一维list),这个时候需要二维list甚至更高维的list。
任务:
# 有三个长方体,他们的长宽高分别是[1, 2, 3], [5, 3, 2], [7, 3, 2],定义在数组L中,L = [[1, 2, 3], [5, 3, 2], [7, 3, 2]],请分别求出三个长方体的表面积。
# Enter a code
L = [[1, 2, 3], [5, 3, 2], [7, 3, 2]]
area = []
for i in range(3):
x = 1
for j in L[i]:
x *= j
area.append(x)
print(area)
查看全部 -
列表已有的元素,也是可以修改的,通过索引指定位置,并赋值新的元素,即可替换列表中原有的元素。
L[2] = 'Canlina'
L[-3] = 'Canlina'
如果替换一个不存在的下标,则同样会引起Python运行错误。IndexError: list assignment index out of range.
任务:
# 班上某次考试,['Alice', 'Bob', 'Candy', 'David', 'Ellena'] 的成绩分别是 89, 72, 88, 79, 99,请按照成绩高低,重新排列list中同学名字的顺序。
# Enter a code
L = [['Alice', 'Bob', 'Candy', 'David', 'Ellena'], [89, 72, 88, 79, 99]]
print(L)
# 冒泡排序法:
for i in range(5):
for j in range(5-i-1):
if L[1][j] < L[1][j+1]:
# 排成绩
x = L[1][j]
L[1][j] = L[1][j+1]
L[1][j+1] = x
# 排名字
y = L[0][j]
L[0][j] = L[0][j+1]
L[0][j+1] = y
print(L)
查看全部 -
使用列表的pop()方法,pop()方法默认删除列表的最后一个元素。
name = L.pop()
pop()还可以接收一个参数,指定需要删除的元素的位置。
name = L.pop(2)
任务:
# L = ['Alice', 'Bob', 'Candy', 'David', 'Ellena'],由于Candy,David依次转学,某同学写出以下代码,请判断以下代码是否可以正常运行?如果不可以,为什么?请帮忙修正。
# Enter a code
L = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
L.pop(2)
L.pop(2)
print(L)
查看全部 -
添加元素的方法:
1.用append()方法,把新元素加到列表的末尾。
names.append('Candy')
注意:append()方法总是将元素添加到list的尾部。
2.用insert()方法,insert()方法需要两个参数,分别是需要插入的位置,以及需要插入的元素。
任务:
# 班上已有同学['Alice', 'Bob', 'Candy', 'David', 'Ellena'],新来报到3名同学分别是'Zero', 'Phoebe', 'Gen',请综合利用append()方法,insert()方法,把三个同学的名字按首字母顺序插入到列表里去。
# Enter a code
names = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
names.append('Gen')
names.append('Zero')
names.insert(-1, 'Phoebe')
print(names)
查看全部 -
Python的列表,除了支持正向顺序索引获取列表中的每一个元素以外,也支持倒序访问list中的每一个元素。
在Python中,可以使用-1来表示最后一个元素,越界会报错。
任务
三名同学的成绩可以用一个list表示:L = [95.5, 85, 59, 66, 72],请按照倒序索引的方式分别打印出第一名、第二名、第三名。
# Enter a code
L = [95.5, 85, 59, 66, 72]
L.sort()
print(L[-1], L[-2], L[-3])
查看全部 -
与运算
只有两个布尔值都为 True 时,计算结果才为 True。
True and True # ==> True
True and False # ==> False
False and True # ==> False
False and False # ==> False或运算
只要有一个布尔值为 True,计算结果就是 True。
True or True # ==> True
True or False # ==> True
False or True # ==> True
False or False # ==> False非运算
把True变为False,或者把False变为True:
not True # ==> False
not False # ==> True这些运算有什么用呢?计算机程序是由无数的逻辑分支组成的,通过布尔运算,可以在计算机中实现条件判断,根据计算结果为True或者False,计算机可以自动执行不同的后续代码,因此学习布尔运算也是非常有必要的。
在Python中,布尔类型还可以与其他数据类型(字符串,数字等)做 and、or和not运算,请看下面的代码:
a = True
print(a and 0 or 99) # ==> 99得到的计算结果不是布尔类型,而是数字99,这是为什么呢?
因为Python把0、空字符串和None看成False,其他数值和非空字符串都看成True,所以:
True and 0计算结果是0
继续计算0 or 99计算结果是 99
因此,结果是99。
需要注意的是,not计算的优先级是高于and和or的。True and not False # ==> True
在上述布尔计算中,先计算not False = True,然后再计算True and True,因此得到True的结果。
短路计算
在计算a and b时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
在计算a or b时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。
查看全部 -
取模运算
Python数字支持取模运算,使用百分号%表示取模。
print(3 % 2) # ==> 1
print(33 % 10) # ==> 3
print(99 % 30) # ==> 9恰当使用取模运算,可以判断一个数是否为偶数,当一个数对2取模结果为0时,则这个数为偶数,否则为奇数。
print(3 % 2) # ==> 1 因此3为奇数
print(33 % 2) # ==> 1 因此33为奇数
print(100 % 2) # ==> 0 因此100为偶数查看全部 -
四则运算可以发现一个规律,整数和浮点数运算后 ,得到的结果不管小数点后是否有值,结果都变成浮点数了,这是合理的,浮点数可以表达整数的结果,但是整数不能表达浮点数的结果。
查看全部 -
变量命名规范
合法的变量名
只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型(字符串、布尔值、空值、字典等)。在Python中,定义一个变量需要遵循一定的约束,否则,Python可能识别不出它是一个变量。
变量名由大小写英文字母、数字和下划线_组成
变量不能用数字开头
变量尽量不要和Python关键字重合(比如前面学习过的:and、or、not,否则可能导致Python原有关键字发挥不出作用)
以下这些变量的定义都是合法的。
num, count, _none, min_value
他们都满足上面的三个条件。
以下这些变量的定义都是不合法的。
1num, 666, 1_cd, and
查看全部 -
空值在python语言中是一个特殊的值。用None表示。注意None和0是不一样的,None不能理解为0,因为0是有意义的。比如我有0个苹果,0代表的数值,而不能表示我有None个苹果,None是一个特殊的空值
查看全部 -
布尔值
在生活中就是对和错,true和false,布尔值可以用and、or、not这些都属于python语言自身的关键字;
and运算是与运算,只有所有都为 True,and运算结果才是 True。
or运算是或运算,只要其中有一个为 True,or 运算结果就是 True。
not运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True。
查看全部 -
字符串
比如之前练习过的第一个Python程序:print('Hello World'),其中的Hello World就是字符串
查看全部 -
浮点数例如 0.1,0.5,12.34,0.000012,在Python中,把10用e替代,比如:1.23x10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5
查看全部 -
整数例如1,2,3,10,100,1000,-1000等等
查看全部 -
由于列表list是一个有序的容器,所以在list里面,每一个元素都有一个唯一的位置,我们称之为索引(index),这和字符串是类似的,因此我们也可以通过位置的方式获取list中的元素,通过中括号[]来按位置访问对应的元素。
注意:这里要注意区分,列表的定义也是通过中括号[]来定义的,但这和通过索引访问列表里面的元素并不冲突。
我们在使用索引的方式访问列表时,一定要特别注意不要越界,否则会引起Python运行的错误,提示索引访问超出范围。
列表和字符串一样,也支持切片,通过切片的方式,获取到列表的子列表。
注意:越界切片的话,不会出现Python运行错误,但是按照这样的下标去切片,获取不到任何元素。
任务:
# 五名同学的成绩可以用一个list表示:L = [95.5, 85, 59, 66, 72],请按照索引的方式分别打印出第一名、第二名、第三名。
# Enter a code
L = [95.5, 85, 59, 66, 72]
L.sort() # 默认升序排序
L.reverse() # 反转,得到降序排序
print(L) # [95.5, 85, 72, 66, 59]
print(L[0:3]) # [95.5, 85, 72]
查看全部
举报