新手学习的小知识点
{:5_92:}如果非要在原始字符串结尾输入反斜杠,可以如何灵活处理?
>>>str = r'C:\Program Files\FishC\Good''\\' 本帖最后由 晒肚皮的大青蛙 于 2019-11-23 22:57 编辑
4. 请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
如果你的回答是 0,那么小甲鱼很开心你中招了!
答案是:4
not or and 的优先级是不同的:not > and > or
我们按照优先级给它们加上括号:(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
== 0 or 0 or 4 or 6 or 9
== 4
为啥是 4?
大家还记得第四讲作业提到的“短路逻辑”吗?3 and 4 == 4,而 3 or 4 == 3。
所以答案是:4
温馨提示:为了更好的表达你的程序,小甲鱼再次呼吁有些括号还是不能省下的,毕竟不是所有程序员都跟你一样都将优先级烂透于心的。 本帖最后由 晒肚皮的大青蛙 于 2019-11-24 22:32 编辑
第007-008讲:1. Python 的作者在很长一段时间不肯加入三元操作符就是怕跟 C 语言一样搞出国际乱码大赛,蛋疼的复杂度让初学者望而生畏,不过,如果你一旦搞清楚了三元操作符的使用技巧,或许一些比较复杂的问题反而迎刃而解。
请将以下代码修改为三元操作符实现:
x, y, z = 6, 5, 4
if x < y:
small = x
if z < small:
small = z
elif y < z:
small = y
else:
small = z
答案:
small = x if (x < y and x < z) else (y if y < z else z)
本帖最后由 晒肚皮的大青蛙 于 2019-11-24 22:32 编辑
第009讲:7. 【学会提高代码的效率】你的觉得以下代码效率方面怎样?有没有办法可以大幅度改进(仍然使用while)?
i = 0
string = 'ILoveFishC.com'
while i < len(string)):
print(i)
i += 1
答案:
这段代码之所以“效率比较低”是因为每次循环都需要调用一次 len() 函数(我们还没有学到函数的概念,小甲鱼这里为零基础的朋友形象的解释下:就像你打游戏打得正HIGH的时候,老妈让你去买盐......你有两种选择,一次买一包,一天去买五次,或者一次性买五包回来,老妈要就直接给她。)
i = 0
string = 'ILoveFishC.com'
length = len(string)
while i < length:
print(i)
i += 1
本帖最后由 晒肚皮的大青蛙 于 2019-12-15 23:15 编辑
P11-010
添加在列表最后:member.appond()
添加在列表最后,且可以在最后添加一个列表:member.extend([]) ;用extend不要用加号+
添加在列表的任意地方,比如添加在列表的最前端:member.insert( 0, )
第011讲:
remove的用法:删除一个元素并不返回该元素,不同于pop()
若: list1 =
list1.remove(3) 则list1 = 即可以不用知道列表中元素的位置,只要该列表中有这个元素即可删除!
del 的用法:
del 不是一个函数,就是一个语句!
如list1 = 则 del list1 结果是:list1 =
list1.count(3) 返回 1;说明元素 3 在列表中出现了 1 次。
list1.index(9) 返回 3;说明该元素的位置是 3 即 list1。
list1.index(9,0,4),说明在列表中元素0到元素4位置区间中出现元素9的位置。
list1.reserve()则list1中元素反转,即 list1 =
list1.sort();就是把列表从小到大自动排序。
list1.sort(reverse = True);就是相当于把数组从小到大排序然后倒序过来。
课堂上小甲鱼说可以利用分片完成列表的拷贝 list2 = list1[:],那事实上可不可以直接写成 list2 = list1 更加简洁呢?
千万不可以!
列表名.pop(元素位) 代表从列表中把该元素取出来,即列表也少了该元素了,如果是:列表名.pop(), 括号为空则代表取出列表中的最后一位。
如: list1 =
list1.pop()= 8 则 list1 =
list1.pop(0) = 1 则 list1 = [ 3, 2, 9, 7]
若: list1 =
还可以指定列表的步长: 如 list1[::2] 指定列表的步长为2;
>>> list1[::2]
同样:
>>> list1
步长可以是负数,改变方向(从尾部开始向左走):
>>> list1[::-2]
步长不能为0,要不就走不动了:
013元组:元组比较古板,没有列表那么灵活,元组不能被修改。和列表的区别:1、创建列表用中括号 [] 而创建元组大部分时候是用小括号(),而创建元组也可以不用小括号,直接用逗号隔开即可,比如:temp = 1 , 。
元组中间插入元素怎么做呢?利用切片! 如:temp = ("你是","我是","大家是","是不是","呢")插入用 temp = temp[:2]+('谁',)+temp,注意中间的谁后面的逗号,和用到的是中括号!
print('red\tyellow\tgreen')
for red in range(0, 4):
for yellow in range(0, 4):
for green in range(2, 7):
if red + yellow + green == 8:
# 注意,下边不是字符串拼接,因此不用“+”哦~
print(red, '\t', yellow, '\t', green) 本帖最后由 晒肚皮的大青蛙 于 2019-11-26 09:28 编辑
第010讲:将member =['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]修改一下代码打印成下图的样式。【请至少使用两种方法实现】
http://p2.so.qhmsg.com/t01b761d88868e29344.jpg
答案:
方法一:
count = 0
length = len(member)
while count < length:
print(member, member)
count += 2
方法二:
for each in range(len(member)):
if each%2 == 0:
print(member, member)[/code
页:
[1]