已采纳回答 / kelerensheng
我之前也困惑过,然后找到的原因是:在python中执行到return语句时,会退出函数,return之后的语句不再执行(将return语句放在try语句块中例外)。所以对应这里的代码,逻辑上就是前两个return放到了if语句中,当第一个if条件满足时返回-1结束函数,不满足时不会执行return;然后判断第二个if语句,同理条件满足则返回1结束函数,不成立则执行最后一个return语句返回0.
2017-09-01
已采纳回答 / __微醺
来看看r = f(i),这里的r引用了f函数,所以r可以当做一个函数调用,调用r()就是相当于调用f(i),接着我们把r添加进了列表。相当于 fs[f(i)]。接着for又循环了两次,所以啊,最后返回的是一个包含三个元素的列表,每个元素都是一个函数,这个函数就是f(i)的返回值g函数。至于你说的j值,只是个形参,在r = f(i) 这里就是把i值赋给了形参j了 所以 j就是"当时的i"。
2017-08-28
已采纳回答 / a_flying_fish
s and len(s.strip()) > 0这里是一个bool表达式,,相当于(s) and (len(len(s.strip()) > 0),如果你学过其他计算机语言,理解起来就是s && len(s.strip()) > 0,其中s.strip()指的是去掉字符串首尾的空格剩下的字符串,len(...)就是长度了根据python的and运算规则,0,none,“”表示逻辑的False,如果此处s为False,则返回False,如果s不为False,当s.strip...
2017-08-26
已采纳回答 / Mad_King3552331
你说的问题有两个方面,我觉得是你没弄明白u和b的区别。一、Python 2有两种字符串类型:Unicode字符串和非Unicode字符串,Python 3只有一种类型:Unicode字符串(Unicode strings)。python2中字符串是以beytes方式存储的,pyton3中字符串是以unicode方式存储的。引用python的模块后,s = 'am I an unicode?' 默认就是Unicode方式存储的,这对应了Python2 的s = u'am I an unicode?'例如在p...
2017-08-24
已采纳回答 / weibo_咸田两心_0
1、对于sorted()的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。至于加了reversed_cmp函数之后实现倒序是因为和上面的排序定义正好相反2、如果比较的字符串中的首字母一样,就比较下一个字母么
2017-08-21
最赞回答 / Alex罗伊
会打印出None是因为改成print之后get_grade(self)函数的返回值为空,而print p1.get_grade()print p2.get_grade()print p3.get_grade()语句的 意思打印出函数的返回值,所以都是None.你可以get_grade(self)函数最后加个return “abc”测试一下,会发现返回结果中None 就都变成了abc
2017-08-17
已采纳回答 / 起伏
第一种是输出的格式化;第二种也可以不过要去掉引号,作为tuple输出.``` def __str__(self): return (self.name,self.gender,self.score)```
2017-08-16